diff options
Diffstat (limited to 'tests')
474 files changed, 42412 insertions, 1675 deletions
diff --git a/tests/arthur/common/qengines.cpp b/tests/arthur/common/qengines.cpp index e94e9cc..ce1afe4 100644 --- a/tests/arthur/common/qengines.cpp +++ b/tests/arthur/common/qengines.cpp @@ -49,6 +49,7 @@ #include <QDir> #include <QDebug> #include <QPrintEngine> +#include <QWidget> // For QApplicationPrivate::graphics_system_name #include <private/qapplication_p.h> diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index fd887fd..b4a6600 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -77,6 +77,7 @@ SUBDIRS += _networkselftest \ qaction \ qactiongroup \ qalgorithms \ + qanimationgroup \ qapplication \ qatomicint \ qatomicpointer \ @@ -141,9 +142,18 @@ SUBDIRS += _networkselftest \ qglobal \ qgraphicsitem \ qgraphicsitemanimation \ + qgraphicslayout \ + qgraphicslayoutitem \ + qgraphicslinearlayout \ + qgraphicsobject \ + qgraphicspixmapitem \ + qgraphicspolygonitem \ + qgraphicsproxywidget \ qgraphicsscene \ + qgraphicssceneindex \ qgraphicsview \ - qgridlayout \ + qgraphicswidget \ + qgridlayout \ qgroupbox \ qguivariant \ qhash \ @@ -212,10 +222,12 @@ SUBDIRS += _networkselftest \ qnumeric \ qobject \ qobjectrace \ + qcontiguouscache \ qpaintengine \ qpainter \ qpainterpath \ qpalette \ + qparallelanimationgroup \ qpathclipper \ qpen \ qpicture \ @@ -231,6 +243,7 @@ SUBDIRS += _networkselftest \ qprocess \ qprogressbar \ qprogressdialog \ + qpropertyanimation \ qpushbutton \ qqueue \ qradiobutton \ @@ -241,6 +254,7 @@ SUBDIRS += _networkselftest \ qregexpvalidator \ qregion \ qresourceengine \ + qringbuffer \ qscriptable \ qscriptclass \ qscriptcontext \ @@ -257,6 +271,7 @@ SUBDIRS += _networkselftest \ qscrollarea \ qsemaphore \ qsharedpointer \ + qsequentialanimationgroup \ qset \ qsettings \ qshortcut \ @@ -290,6 +305,8 @@ SUBDIRS += _networkselftest \ qstackedwidget \ qstandarditem \ qstandarditemmodel \ + qstate \ + qstatemachine \ qstatusbar \ qstl \ qstring \ @@ -376,7 +393,8 @@ SUBDIRS += _networkselftest \ symbols \ qrand \ uic \ - uic3 + uic3 \ + utf8 contains(QT_CONFIG, OdfWriter):SUBDIRS += qzip qtextodfwriter @@ -405,9 +423,14 @@ SUBDIRS += checkxmlfiles \ qxmlnodemodelindex \ qxmlquery \ qxmlresultitems \ + qxmlschema \ + qxmlschemavalidator \ qxmlserializer \ xmlpatterns \ xmlpatternsdiagnosticsts \ + xmlpatternsschema \ + xmlpatternsschemats \ + xmlpatternsvalidator \ xmlpatternsview \ xmlpatternsxqts \ xmlpatternsxslts @@ -419,6 +442,7 @@ xmlpatternsxslts.depends = xmlpatternsxqts unix:!embedded:contains(QT_CONFIG, dbus):SUBDIRS += \ qdbusabstractadaptor \ + qdbusabstractinterface \ qdbusconnection \ qdbusinterface \ qdbuslocalcalls \ @@ -432,5 +456,9 @@ unix:!embedded:contains(QT_CONFIG, dbus):SUBDIRS += \ contains(QT_CONFIG, webkit): SUBDIRS += \ qwebframe \ - qwebpage + qwebpage \ + qwebhistoryinterface \ + qwebelement \ + qwebhistory +SUBDIRS += math3d diff --git a/tests/auto/bic/bic.pro b/tests/auto/bic/bic.pro index a168d77..82711c9 100644 --- a/tests/auto/bic/bic.pro +++ b/tests/auto/bic/bic.pro @@ -2,3 +2,9 @@ load(qttest_p4) SOURCES += tst_bic.cpp qbic.cpp QT = core +wince*:{ + DEFINES += SRCDIR=\\\"\\\" +} else { + DEFINES += SRCDIR=\\\"$$PWD/\\\" +} + diff --git a/tests/auto/bic/tst_bic.cpp b/tests/auto/bic/tst_bic.cpp index b600d9a..36c35ff 100644 --- a/tests/auto/bic/tst_bic.cpp +++ b/tests/auto/bic/tst_bic.cpp @@ -43,6 +43,10 @@ #include <QtCore/QtCore> #include <QtTest/QtTest> +#ifdef QT_NO_PROCESS +QTEST_NOOP_MAIN +#else + #include "qbic.h" #include <stdlib.h> @@ -97,8 +101,6 @@ tst_Bic::tst_Bic() bic.addBlacklistedClass(QLatin1String("QTypeInfo<*>")); bic.addBlacklistedClass(QLatin1String("QMetaTypeId<*>")); bic.addBlacklistedClass(QLatin1String("QVector<QGradientStop>*")); - bic.addBlacklistedClass(QLatin1String("QMap<*>::iterator")); - bic.addBlacklistedClass(QLatin1String("QMap<*>::Node")); /* this guy is never instantiated, just for compile-time checking */ bic.addBlacklistedClass(QLatin1String("QMap<*>::PayloadNode")); @@ -147,7 +149,7 @@ void tst_Bic::initTestCase_data() void tst_Bic::initTestCase() { - QString qtDir = QString::fromLocal8Bit(getenv("QTDIR")); + QString qtDir = QString::fromLocal8Bit(qgetenv("QTDIR")); QVERIFY2(!qtDir.isEmpty(), "This test needs $QTDIR"); if (qgetenv("PATH").contains("teambuilder")) @@ -160,52 +162,55 @@ void tst_Bic::sizesAndVTables_data() QSKIP("Test not implemented for this compiler/platform", SkipAll); #else - int major = QT_VERSION >> 16; - if (major != 4) { - QFAIL("This test is for Qt 4"); - } - int minor = (QT_VERSION & 0x00FF00) >> 8; - int patch = (QT_VERSION & 0x0000FF); - - // Test every Qt 4 version up to this minor version. - typedef QPair<QString,bool> VersionPair; - QList<VersionPair> versions; - for (int i = 0; i <= minor; ++i) { - bool isPatchRelease = (i == minor && patch); - versions << qMakePair(QString("%1.%2").arg(major).arg(i), isPatchRelease); - } + QString archFileName400; + QString archFileName410; + QString archFileName420; + QString archFileName430; - QString arch; #if defined Q_OS_LINUX && defined Q_WS_X11 # if defined(__powerpc__) && !defined(__powerpc64__) - arch = "linux-gcc-ppc32"; + archFileName400 = SRCDIR "data/%1.4.0.0.linux-gcc-ppc32.txt"; + archFileName410 = SRCDIR "data/%1.4.1.0.linux-gcc-ppc32.txt"; + archFileName420 = SRCDIR "data/%1.4.2.0.linux-gcc-ppc32.txt"; # elif defined(__amd64__) - arch = "linux-gcc-amd64"; + archFileName400 = SRCDIR "data/%1.4.0.0.linux-gcc-amd64.txt"; # elif defined(__i386__) - arch = "linux-gcc-ia32"; + archFileName400 = SRCDIR "data/%1.4.0.0.linux-gcc-ia32.txt"; + archFileName410 = SRCDIR "data/%1.4.1.0.linux-gcc-ia32.txt"; + archFileName420 = SRCDIR "data/%1.4.2.0.linux-gcc-ia32.txt"; + archFileName430 = SRCDIR "data/%1.4.3.0.linux-gcc-ia32.txt"; # endif #elif defined Q_OS_AIX - if (sizeof(void*) == 4) { - arch = "aix-gcc-power32"; - } + if (sizeof(void*) == 4) + archFileName400 = SRCDIR "data/%1.4.0.0.aix-gcc-power32.txt"; #elif defined Q_OS_MAC && defined(__powerpc__) - arch = "macx-gcc-ppc32"; + archFileName400 = SRCDIR "data/%1.4.0.0.macx-gcc-ppc32.txt"; + archFileName410 = SRCDIR "data/%1.4.1.0.macx-gcc-ppc32.txt"; + archFileName420 = SRCDIR "data/%1.4.2.0.macx-gcc-ppc32.txt"; #elif defined Q_OS_MAC && defined(__i386__) - arch = "macx-gcc-ia32"; + archFileName410 = SRCDIR "data/%1.4.1.0.macx-gcc-ia32.txt"; + archFileName420 = SRCDIR "data/%1.4.2.0.macx-gcc-ia32.txt"; #elif defined Q_OS_WIN && defined Q_CC_GNU - arch = "win32-gcc-ia32"; + archFileName410 = SRCDIR "data/%1.4.1.0.win32-gcc-ia32.txt"; + archFileName420 = SRCDIR "data/%1.4.2.0.win32-gcc-ia32.txt"; #endif - if (arch.isEmpty()) - QSKIP("No reference files found for this arch", SkipAll); + if (archFileName400.isEmpty() && archFileName410.isEmpty() + && archFileName420.isEmpty()) + QSKIP("No reference files found for this platform", SkipAll); + + bool isPatchRelease400 = false; + bool isPatchRelease410 = false; + bool isPatchRelease420 = false; + bool isPatchRelease430 = false; QTest::addColumn<QString>("oldLib"); QTest::addColumn<bool>("isPatchRelease"); - foreach (VersionPair const& version, versions) { - QString archFileName = QString("data/%3.%1.0.%2.txt").arg(version.first).arg(arch); - QTest::newRow(qPrintable(version.first)) << archFileName << version.second; - } + QTest::newRow("4.0") << archFileName400 << isPatchRelease400; + QTest::newRow("4.1") << archFileName410 << isPatchRelease410; + QTest::newRow("4.2") << archFileName420 << isPatchRelease420; + QTest::newRow("4.3") << archFileName430 << isPatchRelease430; #endif } @@ -219,7 +224,7 @@ QBic::Info tst_Bic::getCurrentInfo(const QString &libName) tmpQFile.write(tmpFileContents); tmpQFile.flush(); - QString qtDir = QString::fromLocal8Bit(getenv("QTDIR")); + QString qtDir = QString::fromLocal8Bit(qgetenv("QTDIR")); #ifdef Q_OS_WIN qtDir.replace('\\', '/'); #endif @@ -292,6 +297,7 @@ void tst_Bic::sizesAndVTables() bool isFailed = false; + qDebug() << oldLib.arg(libName); if (oldLib.isEmpty() || !QFile::exists(oldLib.arg(libName))) QSKIP("No platform spec found for this platform/version.", SkipSingle); @@ -365,4 +371,4 @@ void tst_Bic::sizesAndVTables() QTEST_APPLESS_MAIN(tst_Bic) #include "tst_bic.moc" - +#endif diff --git a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp index 2f5cf6c..d5fef1b 100644 --- a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp +++ b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp @@ -47,6 +47,10 @@ #include <QtTest/QtTest> +#ifdef QT_NO_PROCESS +QTEST_NOOP_MAIN +#else + #include <stdlib.h> QT_USE_NAMESPACE @@ -67,8 +71,8 @@ private slots: static QStringList getFeatures() { QStringList srcDirs; - srcDirs << QString::fromLocal8Bit(getenv("QTDIR")) - << QString::fromLocal8Bit(getenv("QTSRCDIR")); + srcDirs << QString::fromLocal8Bit(qgetenv("QTDIR")) + << QString::fromLocal8Bit(qgetenv("QTSRCDIR")); QString featurefile; foreach (QString dir, srcDirs) { @@ -157,7 +161,7 @@ void tst_CompilerWarnings::warnings() QStringList args; QString compilerName; - static QString qtDir = QString::fromLocal8Bit(getenv("QTDIR")); + static QString qtDir = QString::fromLocal8Bit(qgetenv("QTDIR")); QVERIFY2(!qtDir.isEmpty(), "This test needs $QTDIR"); args << cflags; @@ -248,4 +252,4 @@ void tst_CompilerWarnings::warnings() QTEST_APPLESS_MAIN(tst_CompilerWarnings) #include "tst_compilerwarnings.moc" - +#endif // QT_NO_PROCESS diff --git a/tests/auto/gestures/customgesturerecognizer.cpp b/tests/auto/gestures/customgesturerecognizer.cpp new file mode 100644 index 0000000..12d07b1 --- /dev/null +++ b/tests/auto/gestures/customgesturerecognizer.cpp @@ -0,0 +1,167 @@ +#include "customgesturerecognizer.h" +#include "qgesture.h" + +const char* SingleshotGestureRecognizer::Name = "SingleshotGesture"; +const char* PinchGestureRecognizer::Name = "PinchGesture"; +const char* SecondFingerGestureRecognizer::Name = "SecondFingerGesture"; +const char* PanGestureRecognizer::Name = "PanGesture"; + +SingleshotGestureRecognizer::SingleshotGestureRecognizer(QObject *parent) + : QGestureRecognizer(QString(SingleshotGestureRecognizer::Name), parent) +{ + gesture = new SingleshotGesture(this, SingleshotGestureRecognizer::Name); +} + +QGestureRecognizer::Result SingleshotGestureRecognizer::filterEvent(const QEvent *event) +{ + if (event->type() == SingleshotEvent::Type) { + gesture->setHotSpot(static_cast<const SingleshotEvent*>(event)->point); + return QGestureRecognizer::GestureFinished; + } + return QGestureRecognizer::NotGesture; +} + +void SingleshotGestureRecognizer::reset() +{ + gesture->setHotSpot(QPoint()); + gesture->offset = QPoint(); +} + +PinchGestureRecognizer::PinchGestureRecognizer(QObject *parent) + : QGestureRecognizer(PinchGestureRecognizer::Name, parent) +{ + gesture = new PinchGesture(this, PinchGestureRecognizer::Name); +} + +QGestureRecognizer::Result PinchGestureRecognizer::filterEvent(const QEvent *event) +{ + if (event->type() != TouchEvent::Type) + return QGestureRecognizer::Ignore; + + const TouchEvent *e = static_cast<const TouchEvent*>(event); + if (e->points[0].state == TouchPoint::Begin) + gesture->startPoints[0] = e->points[0]; + if (e->points[1].state == TouchPoint::Begin) + gesture->startPoints[1] = e->points[1]; + gesture->lastPoints[0] = gesture->points[0]; + gesture->lastPoints[1] = gesture->points[1]; + gesture->points[0] = e->points[0]; + gesture->points[1] = e->points[1]; + if (((e->points[0].state == TouchPoint::Begin || e->points[0].state == TouchPoint::Update))) { + if (e->points[1].state == TouchPoint::End || e->points[1].state == TouchPoint::None) + return MaybeGesture; + return GestureStarted; + } else if (((e->points[1].state == TouchPoint::Begin || e->points[1].state == TouchPoint::Update))) { + if (e->points[0].state == TouchPoint::End || e->points[0].state == TouchPoint::None) + return MaybeGesture; + return GestureStarted; + } else if ((e->points[0].state == TouchPoint::End && e->points[1].state == TouchPoint::End) || + (e->points[0].state == TouchPoint::End && e->points[1].state == TouchPoint::None) || + (e->points[0].state == TouchPoint::None && e->points[1].state == TouchPoint::End)) { + return QGestureRecognizer::NotGesture; + } + return QGestureRecognizer::NotGesture; +} + +void PinchGestureRecognizer::reset() +{ + gesture->startPoints[0] = TouchPoint(); + gesture->startPoints[1] = TouchPoint(); + gesture->lastPoints[0] = TouchPoint(); + gesture->lastPoints[1] = TouchPoint(); + gesture->points[0] = TouchPoint(); + gesture->points[1] = TouchPoint(); + gesture->offset = QPoint(); +} + +SecondFingerGestureRecognizer::SecondFingerGestureRecognizer(QObject *parent) + : QGestureRecognizer(SecondFingerGestureRecognizer::Name, parent) +{ + gesture = new SecondFingerGesture(this, SecondFingerGestureRecognizer::Name); +} + +QGestureRecognizer::Result SecondFingerGestureRecognizer::filterEvent(const QEvent *event) +{ + if (event->type() != TouchEvent::Type) + return QGestureRecognizer::Ignore; + + const TouchEvent *e = static_cast<const TouchEvent*>(event); + if (e->points[1].state != TouchPoint::None) { + if (e->points[1].state == TouchPoint::Begin) + gesture->startPoint = e->points[1]; + gesture->lastPoint = gesture->point; + gesture->point = e->points[1]; + if (e->points[1].state == TouchPoint::End) + return QGestureRecognizer::GestureFinished; + else if (e->points[1].state != TouchPoint::None) + return QGestureRecognizer::GestureStarted; + } + return QGestureRecognizer::NotGesture; +} + +void SecondFingerGestureRecognizer::reset() +{ + gesture->startPoint = TouchPoint(); + gesture->lastPoint = TouchPoint(); + gesture->point = TouchPoint(); + gesture->offset = QPoint(); +} + +PanGestureRecognizer::PanGestureRecognizer(QObject *parent) + : QGestureRecognizer(PanGestureRecognizer::Name, parent) +{ + gesture = new PanGesture(this, PanGestureRecognizer::Name); +} + +QGestureRecognizer::Result PanGestureRecognizer::filterEvent(const QEvent *event) +{ + if (event->type() != QEvent::TouchBegin && + event->type() != QEvent::TouchUpdate && + event->type() != QEvent::TouchEnd) + return QGestureRecognizer::Ignore; + + const QTouchEvent *e = static_cast<const QTouchEvent*>(event); + const QList<QTouchEvent::TouchPoint> &points = e->touchPoints(); + + if (points.size() >= 1) { + gesture->lastPoints[0] = gesture->points[0]; + gesture->points[0].id = points.at(0).id(); + gesture->points[0].pt = points.at(0).startPos().toPoint(); + gesture->points[0].state = (TouchPoint::State)points.at(0).state(); + if (points.at(0).state() == Qt::TouchPointPressed) { + gesture->startPoints[0] = gesture->points[0]; + gesture->lastPoints[0] = gesture->points[0]; + } + } + if (points.size() >= 2) { + gesture->lastPoints[1] = gesture->points[1]; + gesture->points[1].id = points.at(1).id(); + gesture->points[1].pt = points.at(1).startPos().toPoint(); + gesture->points[1].state = (TouchPoint::State)points.at(1).state(); + if (points.at(1).state() == Qt::TouchPointPressed) { + gesture->startPoints[1] = gesture->points[1]; + gesture->lastPoints[1] = gesture->points[1]; + } + } + + if (points.size() == 2) + return QGestureRecognizer::GestureStarted; + if (points.size() > 2) + return QGestureRecognizer::MaybeGesture; + if (points.at(0).state() == Qt::TouchPointPressed) + return QGestureRecognizer::MaybeGesture; + if (points.at(0).state() == Qt::TouchPointReleased) + return QGestureRecognizer::GestureFinished; + return QGestureRecognizer::GestureStarted; +} + +void PanGestureRecognizer::reset() +{ + gesture->startPoints[0] = TouchPoint(); + gesture->startPoints[1] = TouchPoint(); + gesture->lastPoints[0] = TouchPoint(); + gesture->lastPoints[1] = TouchPoint(); + gesture->points[0] = TouchPoint(); + gesture->points[1] = TouchPoint(); + gesture->offset = QPoint(); +} diff --git a/tests/auto/gestures/customgesturerecognizer.h b/tests/auto/gestures/customgesturerecognizer.h new file mode 100644 index 0000000..519aba8 --- /dev/null +++ b/tests/auto/gestures/customgesturerecognizer.h @@ -0,0 +1,187 @@ +#ifndef CUSTOMGESTURERECOGNIZER_H +#define CUSTOMGESTURERECOGNIZER_H + +#include "qgesturerecognizer.h" +#include "qgesture.h" +#include "qevent.h" + +class SingleshotEvent : public QEvent +{ +public: + static const int Type = QEvent::User + 1; + + QPoint point; + + explicit SingleshotEvent(int x = 0, int y = 0) + : QEvent(QEvent::Type(Type)), point(x, y) { } +}; + +class SingleshotGesture : public QGesture +{ + Q_OBJECT +public: + SingleshotGesture(QObject *parent, const QString &type) + : QGesture(parent, type) { } + + QPoint offset; + +protected: + void translate(const QPoint &pt) + { + offset += pt; + } +}; + +class SingleshotGestureRecognizer : public QGestureRecognizer +{ + Q_OBJECT +public: + static const char *Name; + + SingleshotGestureRecognizer(QObject *parent = 0); + + QGestureRecognizer::Result filterEvent(const QEvent *event); + QGesture* getGesture() { return gesture; } + void reset(); + +private: + SingleshotGesture *gesture; +}; + +struct TouchPoint { + enum State + { + None = 0, + Begin = Qt::TouchPointPressed, + Update = Qt::TouchPointMoved, + End = Qt::TouchPointReleased + }; + int id; + QPoint pt; + State state; + TouchPoint() : id(0), state(None) { } + TouchPoint(int id_, int x_, int y_, State state_) : id(id_), pt(x_, y_), state(state_) { } +}; + +class TouchEvent : public QEvent +{ +public: + static const int Type = QEvent::User + 2; + + TouchEvent() + : QEvent(QEvent::Type(Type)) + { + } + + TouchPoint points[2]; +}; + +class PinchGesture : public QGesture +{ + Q_OBJECT +public: + PinchGesture(QObject *parent, const QString &type) + : QGesture(parent, type) { } + + TouchPoint startPoints[2]; + TouchPoint lastPoints[2]; + TouchPoint points[2]; + + QPoint offset; + +protected: + void translate(const QPoint &pt) + { + offset += pt; + } +}; + +class PinchGestureRecognizer : public QGestureRecognizer +{ + Q_OBJECT +public: + static const char *Name; + + PinchGestureRecognizer(QObject *parent = 0); + + QGestureRecognizer::Result filterEvent(const QEvent *event); + QGesture* getGesture() { return gesture; } + void reset(); + +private: + PinchGesture *gesture; +}; + +class SecondFingerGesture : public QGesture +{ + Q_OBJECT +public: + SecondFingerGesture(QObject *parent, const QString &type) + : QGesture(parent, type) { } + + TouchPoint startPoint; + TouchPoint lastPoint; + TouchPoint point; + + QPoint offset; + +protected: + void translate(const QPoint &pt) + { + offset += pt; + } +}; + +class SecondFingerGestureRecognizer : public QGestureRecognizer +{ + Q_OBJECT +public: + static const char *Name; + + SecondFingerGestureRecognizer(QObject *parent = 0); + + QGestureRecognizer::Result filterEvent(const QEvent *event); + QGesture* getGesture() { return gesture; } + void reset(); + +private: + SecondFingerGesture *gesture; +}; + +class PanGesture : public QGesture +{ + Q_OBJECT +public: + PanGesture(QObject *parent, const QString &type) + : QGesture(parent, type) { } + + TouchPoint startPoints[2]; + TouchPoint lastPoints[2]; + TouchPoint points[2]; + + QPoint offset; + +protected: + void translate(const QPoint &pt) + { + offset += pt; + } +}; + +class PanGestureRecognizer : public QGestureRecognizer +{ + Q_OBJECT +public: + static const char *Name; + + PanGestureRecognizer(QObject *parent = 0); + + QGestureRecognizer::Result filterEvent(const QEvent *event); + QGesture* getGesture() { return gesture; } + void reset(); + +private: + PanGesture *gesture; +}; + +#endif diff --git a/tests/auto/gestures/gestures.pro b/tests/auto/gestures/gestures.pro new file mode 100644 index 0000000..ac99b19 --- /dev/null +++ b/tests/auto/gestures/gestures.pro @@ -0,0 +1,3 @@ +load(qttest_p4) +SOURCES += tst_gestures.cpp customgesturerecognizer.cpp +HEADERS += customgesturerecognizer.h diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp new file mode 100644 index 0000000..d2ef64a --- /dev/null +++ b/tests/auto/gestures/tst_gestures.cpp @@ -0,0 +1,962 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtGui> + +#include <QtTest/QtTest> + +#include "customgesturerecognizer.h" + +//TESTED_CLASS= +//TESTED_FILES= + +// color generator for syntax highlighting from QQ-26 by Helder Correia +QVector<QColor> highlight(const QColor &bg, const + QColor &fg, int noColors) +{ + QVector<QColor> colors; + const int HUE_BASE = (bg.hue() == -1) ? 90 : bg.hue(); + int h, s, v; + for (int i = 0; i < noColors; i++) { + h = int(HUE_BASE + (360.0 / noColors * i)) % 360; + s = 240; + v = int(qMax(bg.value(), fg.value()) * 0.85); + + const int M = 35; + if ((h < bg.hue() + M && h > bg.hue() - M) + || (h < fg.hue() + M && h > fg.hue() - M)) + { + h = ((bg.hue() + fg.hue()) / (i+1)) % 360; + s = ((bg.saturation() + fg.saturation() + 2*i) + / 2) % 256; + v = ((bg.value() + fg.value() + 2*i) / 2) + % 256; + } + colors.append(QColor::fromHsv(h, s, v)); + } + return colors; +} + + +// a hack to mark an event as spontaneous. +class QETWidget +{ +public: + static void setSpont(QEvent *event, bool spont) { event->spont = spont; } +}; + +struct GestureState +{ + int seenGestureEvent; + struct LastGestureEvent + { + struct SingleshotGesture + { + bool delivered; + QPoint offset; + } singleshot; + struct PinchGesture + { + bool delivered; + TouchPoint startPoints[2]; + TouchPoint lastPoints[2]; + TouchPoint points[2]; + QPoint offset; + } pinch; + struct SecondFingerGesture + { + bool delivered; + TouchPoint startPoint; + TouchPoint lastPoint; + TouchPoint point; + QPoint offset; + } secondfinger; + struct PanGesture + { + bool delivered; + TouchPoint startPoints[2]; + TouchPoint lastPoints[2]; + TouchPoint points[2]; + QPoint offset; + } pan; + QSet<QString> cancelled; + } last; + + GestureState() { reset(); } + void reset() + { + seenGestureEvent = 0; + last.singleshot.delivered = false; + last.singleshot.offset = QPoint(); + last.pinch.delivered = false; + last.pinch.startPoints[0] = TouchPoint(); + last.pinch.startPoints[1] = TouchPoint(); + last.pinch.lastPoints[0] = TouchPoint(); + last.pinch.lastPoints[1] = TouchPoint(); + last.pinch.points[0] = TouchPoint(); + last.pinch.points[1] = TouchPoint(); + last.pinch.offset = QPoint(); + last.secondfinger.delivered = false; + last.secondfinger.startPoint = TouchPoint(); + last.secondfinger.lastPoint = TouchPoint(); + last.secondfinger.point = TouchPoint(); + last.secondfinger.offset = QPoint(); + last.pan.delivered = false; + last.pan.startPoints[0] = TouchPoint(); + last.pan.startPoints[1] = TouchPoint(); + last.pan.lastPoints[0] = TouchPoint(); + last.pan.lastPoints[1] = TouchPoint(); + last.pan.points[0] = TouchPoint(); + last.pan.points[1] = TouchPoint(); + last.cancelled.clear(); + } +}; + +struct TouchState +{ + int seenTouchBeginEvent; + int seenTouchUpdateEvent; + int seenTouchEndEvent; + + TouchState() { reset(); } + void reset() + { + seenTouchBeginEvent = seenTouchUpdateEvent = seenTouchEndEvent = 0; + } +}; + +class GestureWidget : public QWidget +{ + Q_OBJECT + static QVector<QColor> colors; + static int numberOfWidgets; + +public: + enum Type { DoNotGrabGestures, GrabAllGestures, GrabSingleshot, + GrabPinch, GrabSecondFinger, GrabPan }; + + static const int LeftMargin = 10; + static const int TopMargin = 20; + + GestureWidget(Type type = GrabAllGestures) + { + if (colors.isEmpty()) { + colors = highlight(palette().color(QPalette::Window), palette().color(QPalette::Text), 5); + } + QPalette p = palette(); + p.setColor(QPalette::Window, colors[numberOfWidgets % colors.size()]); + setPalette(p); + setAutoFillBackground(true); + ++numberOfWidgets; + + QVBoxLayout *l = new QVBoxLayout(this); + l->setSpacing(0); + l->setContentsMargins(LeftMargin, TopMargin, LeftMargin, TopMargin); + + singleshotGestureId = -1; + pinchGestureId = -1; + secondFingerGestureId = -1; + panGestureId = -1; + if (type == GrabAllGestures || type == GrabSingleshot) { + singleshotGestureId = grabGesture(SingleshotGestureRecognizer::Name); + } + if (type == GrabAllGestures || type == GrabPinch) { + pinchGestureId = grabGesture(PinchGestureRecognizer::Name); + } + if (type == GrabAllGestures || type == GrabSecondFinger) { + secondFingerGestureId = grabGesture(SecondFingerGestureRecognizer::Name); + } + if (type == GrabAllGestures || type == GrabPan) { + panGestureId = grabGesture(PanGestureRecognizer::Name); + } + reset(); + } + ~GestureWidget() + { + --numberOfWidgets; + ungrabGestures(); + } + + void grabSingleshotGesture() + { + singleshotGestureId = grabGesture(SingleshotGestureRecognizer::Name); + } + void grabPinchGesture() + { + pinchGestureId = grabGesture(PinchGestureRecognizer::Name); + } + void grabSecondFingerGesture() + { + secondFingerGestureId = grabGesture(SecondFingerGestureRecognizer::Name); + } + void grabPanGesture() + { + panGestureId = grabGesture(PanGestureRecognizer::Name); + } + void ungrabGestures() + { + releaseGesture(singleshotGestureId); + singleshotGestureId = -1; + releaseGesture(pinchGestureId); + pinchGestureId = -1; + releaseGesture(secondFingerGestureId); + secondFingerGestureId = -1; + releaseGesture(panGestureId); + panGestureId = -1; + } + + int singleshotGestureId; + int pinchGestureId; + int secondFingerGestureId; + int panGestureId; + + bool shouldAcceptSingleshotGesture; + bool shouldAcceptPinchGesture; + bool shouldAcceptSecondFingerGesture; + bool shouldAcceptPanGesture; + + GestureState gesture; + TouchState touch; + + void reset() + { + shouldAcceptSingleshotGesture = true; + shouldAcceptPinchGesture = true; + shouldAcceptSecondFingerGesture = true; + shouldAcceptPanGesture = true; + gesture.reset(); + touch.reset(); + } +protected: + bool event(QEvent *event) + { + if (event->type() == QEvent::TouchBegin) { + event->accept(); + ++touch.seenTouchBeginEvent; + return true; + } else if (event->type() == QEvent::TouchUpdate) { + ++touch.seenTouchUpdateEvent; + } else if (event->type() == QEvent::TouchEnd) { + ++touch.seenTouchEndEvent; + } else if (event->type() == QEvent::Gesture) { + QGestureEvent *e = static_cast<QGestureEvent*>(event); + ++gesture.seenGestureEvent; + if (SingleshotGesture *g = (SingleshotGesture*)e->gesture(SingleshotGestureRecognizer::Name)) { + gesture.last.singleshot.delivered = true; + gesture.last.singleshot.offset = g->offset; + if (shouldAcceptSingleshotGesture) + g->accept(); + } + if (PinchGesture *g = (PinchGesture*)e->gesture(PinchGestureRecognizer::Name)) { + gesture.last.pinch.delivered = true; + gesture.last.pinch.startPoints[0] = g->startPoints[0]; + gesture.last.pinch.startPoints[1] = g->startPoints[1]; + gesture.last.pinch.lastPoints[0] = g->lastPoints[0]; + gesture.last.pinch.lastPoints[1] = g->lastPoints[1]; + gesture.last.pinch.points[0] = g->points[0]; + gesture.last.pinch.points[1] = g->points[1]; + gesture.last.pinch.offset = g->offset; + if (shouldAcceptPinchGesture) + g->accept(); + } + if (SecondFingerGesture *g = (SecondFingerGesture*)e->gesture(SecondFingerGestureRecognizer::Name)) { + gesture.last.secondfinger.delivered = true; + gesture.last.secondfinger.startPoint = g->startPoint; + gesture.last.secondfinger.lastPoint = g->lastPoint; + gesture.last.secondfinger.point = g->point; + gesture.last.secondfinger.offset = g->offset; + if (shouldAcceptSecondFingerGesture) + g->accept(); + } + if (PanGesture *g = (PanGesture*)e->gesture(PanGestureRecognizer::Name)) { + gesture.last.pan.delivered = true; + gesture.last.pan.startPoints[0] = g->startPoints[0]; + gesture.last.pan.startPoints[1] = g->startPoints[1]; + gesture.last.pan.lastPoints[0] = g->lastPoints[0]; + gesture.last.pan.lastPoints[1] = g->lastPoints[1]; + gesture.last.pan.points[0] = g->points[0]; + gesture.last.pan.points[1] = g->points[1]; + gesture.last.pan.offset = g->offset; + if (shouldAcceptPanGesture) + g->accept(); + } + gesture.last.cancelled = e->cancelledGestures(); + return true; + } + return QWidget::event(event); + } +}; +QVector<QColor> GestureWidget::colors; +int GestureWidget::numberOfWidgets = 0; + +class GraphicsScene : public QGraphicsScene +{ +public: + GraphicsScene() + { + reset(); + } + bool shouldAcceptSingleshotGesture; + bool shouldAcceptPinchGesture; + bool shouldAcceptSecondFingerGesture; + GestureState gesture; + + void reset() + { + shouldAcceptSingleshotGesture = false; + shouldAcceptPinchGesture = false; + shouldAcceptSecondFingerGesture = false; + gesture.reset(); + } +protected: + bool event(QEvent *event) + { + if (event->type() == QEvent::GraphicsSceneGesture) { + QGraphicsSceneGestureEvent *e = static_cast<QGraphicsSceneGestureEvent*>(event); + ++gesture.seenGestureEvent; + QGraphicsScene::event(event); + if (SingleshotGesture *g = (SingleshotGesture*)e->gesture(SingleshotGestureRecognizer::Name)) { + gesture.last.singleshot.delivered = true; + gesture.last.singleshot.offset = g->offset; + if (shouldAcceptSingleshotGesture) + g->accept(); + } + if (PinchGesture *g = (PinchGesture*)e->gesture(PinchGestureRecognizer::Name)) { + gesture.last.pinch.delivered = true; + gesture.last.pinch.startPoints[0] = g->startPoints[0]; + gesture.last.pinch.startPoints[1] = g->startPoints[1]; + gesture.last.pinch.lastPoints[0] = g->lastPoints[0]; + gesture.last.pinch.lastPoints[1] = g->lastPoints[1]; + gesture.last.pinch.points[0] = g->points[0]; + gesture.last.pinch.points[1] = g->points[1]; + gesture.last.pinch.offset = g->offset; + if (shouldAcceptPinchGesture) + g->accept(); + } + if (SecondFingerGesture *g = (SecondFingerGesture*)e->gesture(SecondFingerGestureRecognizer::Name)) { + gesture.last.secondfinger.delivered = true; + gesture.last.secondfinger.startPoint = g->startPoint; + gesture.last.secondfinger.lastPoint = g->lastPoint; + gesture.last.secondfinger.point = g->point; + gesture.last.secondfinger.offset = g->offset; + if (shouldAcceptSecondFingerGesture) + g->accept(); + } + gesture.last.cancelled = e->cancelledGestures(); + return true; + } + return QGraphicsScene::event(event); + } +}; + +class GraphicsItem : public QGraphicsItem +{ +public: + GraphicsItem(int w = 100, int h = 100) + : width(w), height(h) + { + reset(); + } + + QRectF boundingRect() const + { + return QRectF(0, 0, width, height); + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem*, QWidget*) + { + painter->setBrush(Qt::green); + painter->drawRect(0, 0, width, height); + } + + void grabSingleshotGesture() + { + singleshotGestureId = grabGesture(SingleshotGestureRecognizer::Name); + } + void grabPinchGesture() + { + pinchGestureId = grabGesture(PinchGestureRecognizer::Name); + } + void grabSecondFingerGesture() + { + secondFingerGestureId = grabGesture(SecondFingerGestureRecognizer::Name); + } + void ungrabGestures() + { + releaseGesture(singleshotGestureId); + singleshotGestureId = -1; + releaseGesture(pinchGestureId); + pinchGestureId = -1; + releaseGesture(secondFingerGestureId); + secondFingerGestureId = -1; + } + + int width; + int height; + + int singleshotGestureId; + int pinchGestureId; + int secondFingerGestureId; + + bool shouldAcceptSingleshotGesture; + bool shouldAcceptPinchGesture; + bool shouldAcceptSecondFingerGesture; + GestureState gesture; + + TouchState touch; + + void reset() + { + shouldAcceptSingleshotGesture = true; + shouldAcceptPinchGesture = true; + shouldAcceptSecondFingerGesture = true; + gesture.reset(); + } +protected: + bool sceneEvent(QEvent *event) + { + if (event->type() == QEvent::TouchBegin) { + event->accept(); + ++touch.seenTouchBeginEvent; + return true; + } else if (event->type() == QEvent::TouchUpdate) { + ++touch.seenTouchUpdateEvent; + } else if (event->type() == QEvent::TouchEnd) { + ++touch.seenTouchEndEvent; + } else if (event->type() == QEvent::GraphicsSceneGesture) { + QGraphicsSceneGestureEvent *e = static_cast<QGraphicsSceneGestureEvent*>(event); + ++gesture.seenGestureEvent; + if (SingleshotGesture *g = (SingleshotGesture*)e->gesture(SingleshotGestureRecognizer::Name)) { + gesture.last.singleshot.delivered = true; + gesture.last.singleshot.offset = g->offset; + if (shouldAcceptSingleshotGesture) + g->accept(); + } + if (PinchGesture *g = (PinchGesture*)e->gesture(PinchGestureRecognizer::Name)) { + gesture.last.pinch.delivered = true; + gesture.last.pinch.startPoints[0] = g->startPoints[0]; + gesture.last.pinch.startPoints[1] = g->startPoints[1]; + gesture.last.pinch.lastPoints[0] = g->lastPoints[0]; + gesture.last.pinch.lastPoints[1] = g->lastPoints[1]; + gesture.last.pinch.points[0] = g->points[0]; + gesture.last.pinch.points[1] = g->points[1]; + gesture.last.pinch.offset = g->offset; + if (shouldAcceptPinchGesture) + g->accept(); + } + if (SecondFingerGesture *g = (SecondFingerGesture*)e->gesture(SecondFingerGestureRecognizer::Name)) { + gesture.last.secondfinger.delivered = true; + gesture.last.secondfinger.startPoint = g->startPoint; + gesture.last.secondfinger.lastPoint = g->lastPoint; + gesture.last.secondfinger.point = g->point; + gesture.last.secondfinger.offset = g->offset; + if (shouldAcceptSecondFingerGesture) + g->accept(); + } + gesture.last.cancelled = e->cancelledGestures(); + return true; + } + return QGraphicsItem::sceneEvent(event); + } +}; + +class tst_Gestures : public QObject +{ + Q_OBJECT + +public: + tst_Gestures(); + virtual ~tst_Gestures(); + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void singleshotGesture(); + void pinchGesture(); + + void simplePropagation(); + void simplePropagation2(); + void acceptedGesturePropagation(); + + void simpleGraphicsView(); + void simpleGraphicsItem(); + void overlappingGraphicsItems(); + + void touch_widget(); + void touch_graphicsView(); + + void panOnWidgets(); + +private: + SingleshotGestureRecognizer *singleshotRecognizer; + PinchGestureRecognizer *pinchRecognizer; + SecondFingerGestureRecognizer *secondFingerRecognizer; + PanGestureRecognizer *panGestureRecognizer; + GestureWidget *mainWidget; + + void sendPinchEvents(QWidget *receiver, const QPoint &fromFinger1, const QPoint &fromFinger2); +}; + +tst_Gestures::tst_Gestures() +{ + singleshotRecognizer = new SingleshotGestureRecognizer; + pinchRecognizer = new PinchGestureRecognizer; + secondFingerRecognizer = new SecondFingerGestureRecognizer; + panGestureRecognizer = new PanGestureRecognizer; + qApp->addGestureRecognizer(singleshotRecognizer); + qApp->addGestureRecognizer(pinchRecognizer); + qApp->addGestureRecognizer(secondFingerRecognizer); + qApp->addGestureRecognizer(panGestureRecognizer); +} + +tst_Gestures::~tst_Gestures() +{ +} + + +void tst_Gestures::initTestCase() +{ + mainWidget = new GestureWidget(GestureWidget::DoNotGrabGestures); + mainWidget->setObjectName("MainGestureWidget"); + mainWidget->resize(500, 600); + mainWidget->show(); +} + +void tst_Gestures::cleanupTestCase() +{ + delete mainWidget; mainWidget = 0; +} + +void tst_Gestures::init() +{ + // TODO: Add initialization code here. + // This will be executed immediately before each test is run. + mainWidget->reset(); +} + +void tst_Gestures::cleanup() +{ +} + +bool sendSpontaneousEvent(QWidget *receiver, QEvent *event) +{ + QETWidget::setSpont(event, true); + return qApp->notify(receiver, event); +} + +void tst_Gestures::singleshotGesture() +{ + mainWidget->grabSingleshotGesture(); + SingleshotEvent event; + sendSpontaneousEvent(mainWidget, &event); + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.last.singleshot.delivered); + QVERIFY(mainWidget->gesture.last.cancelled.isEmpty()); +} + +void tst_Gestures::sendPinchEvents(QWidget *receiver, const QPoint &fromFinger1, const QPoint &fromFinger2) +{ + int x1 = fromFinger1.x(); + int y1 = fromFinger1.x(); + int x2 = fromFinger2.x(); + int y2 = fromFinger2.x(); + + TouchEvent event; + event.points[0] = TouchPoint(0,x1,y1, TouchPoint::Begin); + event.points[1] = TouchPoint(); + sendSpontaneousEvent(receiver, &event); + event.points[0] = TouchPoint(0, x1+=2,y1+=2, TouchPoint::Update); + event.points[1] = TouchPoint(); + sendSpontaneousEvent(receiver, &event); + event.points[0] = TouchPoint(0, x1,y1, TouchPoint::Update); + event.points[1] = TouchPoint(1, x2,y2, TouchPoint::Begin); + sendSpontaneousEvent(receiver, &event); + event.points[0] = TouchPoint(0, x1+=5,y1+=10, TouchPoint::End); + event.points[1] = TouchPoint(1, x2+=3,y2+=6, TouchPoint::Update); + sendSpontaneousEvent(receiver, &event); + event.points[0] = TouchPoint(); + event.points[1] = TouchPoint(1, x2+=10,y2+=15, TouchPoint::Update); + sendSpontaneousEvent(receiver, &event); + event.points[0] = TouchPoint(); + event.points[1] = TouchPoint(1, x2,y2, TouchPoint::End); + sendSpontaneousEvent(receiver, &event); +} + +void tst_Gestures::pinchGesture() +{ + mainWidget->grabPinchGesture(); + sendPinchEvents(mainWidget, QPoint(10,10), QPoint(20,20)); + + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.last.singleshot.delivered); + QVERIFY(mainWidget->gesture.last.cancelled.isEmpty()); + QVERIFY(mainWidget->gesture.last.pinch.delivered); + QCOMPARE(mainWidget->gesture.last.pinch.startPoints[0].pt, QPoint(10,10)); + QCOMPARE(mainWidget->gesture.last.pinch.startPoints[1].pt, QPoint(20,20)); + QCOMPARE(mainWidget->gesture.last.pinch.offset, QPoint(0,0)); +} + +void tst_Gestures::simplePropagation() +{ + mainWidget->grabSingleshotGesture(); + GestureWidget offsetWidget(GestureWidget::DoNotGrabGestures); + offsetWidget.setFixedSize(30, 30); + mainWidget->layout()->addWidget(&offsetWidget); + GestureWidget nonGestureWidget(GestureWidget::DoNotGrabGestures); + mainWidget->layout()->addWidget(&nonGestureWidget); + QApplication::processEvents(); + + SingleshotEvent event; + sendSpontaneousEvent(&nonGestureWidget, &event); + QVERIFY(!offsetWidget.gesture.seenGestureEvent); + QVERIFY(!nonGestureWidget.gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.last.cancelled.isEmpty()); + QVERIFY(mainWidget->gesture.last.singleshot.delivered); + QCOMPARE(mainWidget->gesture.last.singleshot.offset, QPoint(GestureWidget::LeftMargin, 30 + GestureWidget::TopMargin)); +} + +void tst_Gestures::simplePropagation2() +{ + mainWidget->grabSingleshotGesture(); + mainWidget->grabPinchGesture(); + GestureWidget nonGestureMiddleWidget(GestureWidget::DoNotGrabGestures); + GestureWidget secondGestureWidget(GestureWidget::GrabPinch); + nonGestureMiddleWidget.layout()->addWidget(&secondGestureWidget); + mainWidget->layout()->addWidget(&nonGestureMiddleWidget); + QApplication::processEvents(); + + SingleshotEvent event; + sendSpontaneousEvent(&secondGestureWidget, &event); + QVERIFY(!secondGestureWidget.gesture.seenGestureEvent); + QVERIFY(!nonGestureMiddleWidget.gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.last.singleshot.delivered); + QVERIFY(mainWidget->gesture.last.cancelled.isEmpty()); + QCOMPARE(mainWidget->gesture.last.singleshot.offset, QPoint(GestureWidget::LeftMargin*2,GestureWidget::TopMargin*2)); + + mainWidget->reset(); + nonGestureMiddleWidget.reset(); + secondGestureWidget.reset(); + + sendPinchEvents(&secondGestureWidget, QPoint(10,10), QPoint(20,20)); + QVERIFY(secondGestureWidget.gesture.seenGestureEvent); + QVERIFY(!secondGestureWidget.gesture.last.singleshot.delivered); + QVERIFY(secondGestureWidget.gesture.last.pinch.delivered); + QCOMPARE(secondGestureWidget.gesture.last.pinch.startPoints[0].pt, QPoint(10,10)); + QCOMPARE(secondGestureWidget.gesture.last.pinch.startPoints[1].pt, QPoint(20,20)); + QCOMPARE(secondGestureWidget.gesture.last.pinch.offset, QPoint(0,0)); + QVERIFY(!nonGestureMiddleWidget.gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.seenGestureEvent); +} + +void tst_Gestures::acceptedGesturePropagation() +{ + mainWidget->grabSingleshotGesture(); + mainWidget->grabPinchGesture(); + mainWidget->grabSecondFingerGesture(); + GestureWidget nonGestureMiddleWidget(GestureWidget::DoNotGrabGestures); + nonGestureMiddleWidget.setObjectName("nonGestureMiddleWidget"); + GestureWidget secondGestureWidget(GestureWidget::GrabSecondFinger); + secondGestureWidget.setObjectName("secondGestureWidget"); + nonGestureMiddleWidget.layout()->addWidget(&secondGestureWidget); + mainWidget->layout()->addWidget(&nonGestureMiddleWidget); + QApplication::processEvents(); + + sendPinchEvents(&secondGestureWidget, QPoint(10, 10), QPoint(40, 40)); + QVERIFY(secondGestureWidget.gesture.seenGestureEvent); + QVERIFY(!secondGestureWidget.gesture.last.singleshot.delivered); + QVERIFY(!secondGestureWidget.gesture.last.pinch.delivered); + QVERIFY(secondGestureWidget.gesture.last.secondfinger.delivered); + QCOMPARE(secondGestureWidget.gesture.last.secondfinger.startPoint.pt, QPoint(40,40)); + QVERIFY(!nonGestureMiddleWidget.gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.last.singleshot.delivered); + QVERIFY(!mainWidget->gesture.last.secondfinger.delivered); + QVERIFY(mainWidget->gesture.last.pinch.delivered); + QCOMPARE(mainWidget->gesture.last.pinch.startPoints[0].pt, QPoint(10,10)); + QCOMPARE(mainWidget->gesture.last.pinch.startPoints[1].pt, QPoint(40,40)); + + mainWidget->reset(); + nonGestureMiddleWidget.reset(); + secondGestureWidget.reset(); + + // don't accept it and make sure it propagates to parent + secondGestureWidget.shouldAcceptSecondFingerGesture = false; + sendPinchEvents(&secondGestureWidget, QPoint(10, 10), QPoint(40, 40)); + QVERIFY(secondGestureWidget.gesture.seenGestureEvent); + QVERIFY(secondGestureWidget.gesture.last.secondfinger.delivered); + QVERIFY(!nonGestureMiddleWidget.gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.last.singleshot.delivered); + QVERIFY(mainWidget->gesture.last.secondfinger.delivered); + QVERIFY(mainWidget->gesture.last.pinch.delivered); +} + +void tst_Gestures::simpleGraphicsView() +{ + mainWidget->grabSingleshotGesture(); + GraphicsScene scene; + QGraphicsView view(&scene); + view.grabGesture(SingleshotGestureRecognizer::Name); + mainWidget->layout()->addWidget(&view); + QApplication::processEvents(); + + scene.shouldAcceptSingleshotGesture = true; + + SingleshotEvent event; + sendSpontaneousEvent(&view, &event); + QVERIFY(!mainWidget->gesture.seenGestureEvent); + QVERIFY(scene.gesture.seenGestureEvent); + QVERIFY(scene.gesture.last.singleshot.delivered); + QVERIFY(scene.gesture.last.cancelled.isEmpty()); +} + +void tst_Gestures::simpleGraphicsItem() +{ + mainWidget->grabSingleshotGesture(); + GraphicsScene scene; + QGraphicsView view(&scene); + mainWidget->layout()->addWidget(&view); + GraphicsItem *item = new GraphicsItem; + item->grabSingleshotGesture(); + item->setPos(30, 50); + scene.addItem(item); + QApplication::processEvents(); + + QPoint pt = view.mapFromScene(item->mapToScene(30, 30)); + SingleshotEvent event(pt.x(), pt.y()); + sendSpontaneousEvent(&view, &event); + QVERIFY(item->gesture.seenGestureEvent); + QVERIFY(scene.gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.seenGestureEvent); + + item->reset(); + scene.reset(); + mainWidget->reset(); + + item->shouldAcceptSingleshotGesture = false; + // outside of the graphicsitem + pt = view.mapFromScene(item->mapToScene(-10, -10)); + SingleshotEvent event2(pt.x(), pt.y()); + sendSpontaneousEvent(&view, &event2); + QVERIFY(!item->gesture.seenGestureEvent); + QVERIFY(scene.gesture.seenGestureEvent); + QVERIFY(mainWidget->gesture.seenGestureEvent); +} + +void tst_Gestures::overlappingGraphicsItems() +{ + mainWidget->grabSingleshotGesture(); + GraphicsScene scene; + QGraphicsView view(&scene); + mainWidget->layout()->addWidget(&view); + + GraphicsItem *item = new GraphicsItem(300, 100); + item->setPos(30, 50); + scene.addItem(item); + GraphicsItem *subitem1 = new GraphicsItem(50, 70); + subitem1->setPos(70, 70); + subitem1->setZValue(1); + scene.addItem(subitem1); + GraphicsItem *subitem2 = new GraphicsItem(50, 70); + subitem2->setPos(250, 70); + subitem2->setZValue(1); + scene.addItem(subitem2); + QApplication::processEvents(); + + item->grabSingleshotGesture(); + item->grabPinchGesture(); + item->grabSecondFingerGesture(); + subitem1->grabSingleshotGesture(); + subitem2->grabSecondFingerGesture(); + + QPoint pt = view.mapFromScene(subitem1->mapToScene(20, 20)); + SingleshotEvent event(pt.x(), pt.y()); + sendSpontaneousEvent(&view, &event); + QVERIFY(scene.gesture.seenGestureEvent); + QVERIFY(!subitem2->gesture.seenGestureEvent); + QVERIFY(!item->gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.seenGestureEvent); + QVERIFY(subitem1->gesture.seenGestureEvent); + QVERIFY(subitem1->gesture.last.singleshot.delivered); + + item->reset(); + subitem1->reset(); + subitem2->reset(); + scene.reset(); + mainWidget->reset(); + + subitem1->shouldAcceptSingleshotGesture = false; + SingleshotEvent event2(pt.x(), pt.y()); + sendSpontaneousEvent(&view, &event2); + QVERIFY(scene.gesture.seenGestureEvent); + QVERIFY(!subitem2->gesture.seenGestureEvent); + QVERIFY(subitem1->gesture.seenGestureEvent); + QVERIFY(item->gesture.seenGestureEvent); + QVERIFY(!mainWidget->gesture.seenGestureEvent); + QVERIFY(subitem1->gesture.last.singleshot.delivered); + QVERIFY(item->gesture.last.singleshot.delivered); +} + +void tst_Gestures::touch_widget() +{ + GestureWidget leftWidget(GestureWidget::DoNotGrabGestures); + leftWidget.setObjectName("leftWidget"); + leftWidget.setAttribute(Qt::WA_AcceptTouchEvents); + GestureWidget rightWidget(GestureWidget::DoNotGrabGestures); + rightWidget.setObjectName("rightWidget"); + rightWidget.setAttribute(Qt::WA_AcceptTouchEvents); + delete mainWidget->layout(); + (void)new QHBoxLayout(mainWidget); + mainWidget->layout()->addWidget(&leftWidget); + mainWidget->layout()->addWidget(&rightWidget); + QApplication::processEvents(); + + QTest::touchEvent() + .press(0, QPoint(10, 10), &leftWidget); + QTest::touchEvent() + .move(0, QPoint(12, 30), &leftWidget); + QTest::touchEvent() + .stationary(0) + .press(1, QPoint(15, 15), &rightWidget); + QTest::touchEvent() + .move(0, QPoint(10, 35), &leftWidget) + .press(1, QPoint(15, 15), &rightWidget); + QTest::touchEvent() + .move(0, QPoint(10, 40), &leftWidget) + .move(1, QPoint(20, 50), &rightWidget); + QTest::touchEvent() + .release(0, QPoint(10, 40), &leftWidget) + .release(1, QPoint(20, 50), &rightWidget); + QVERIFY(!mainWidget->touch.seenTouchBeginEvent); + QVERIFY(leftWidget.touch.seenTouchBeginEvent); + QVERIFY(leftWidget.touch.seenTouchUpdateEvent); + QVERIFY(leftWidget.touch.seenTouchEndEvent); + QVERIFY(rightWidget.touch.seenTouchBeginEvent); + QVERIFY(rightWidget.touch.seenTouchUpdateEvent); + QVERIFY(rightWidget.touch.seenTouchEndEvent); +} + +void tst_Gestures::touch_graphicsView() +{ + mainWidget->setAttribute(Qt::WA_AcceptTouchEvents); + GraphicsScene scene; + QGraphicsView view(&scene); + view.viewport()->setAttribute(Qt::WA_AcceptTouchEvents); + mainWidget->layout()->addWidget(&view); + + GraphicsItem *item = new GraphicsItem(300, 100); + item->setAcceptTouchEvents(true); + item->setPos(30, 50); + scene.addItem(item); + GraphicsItem *subitem1 = new GraphicsItem(50, 70); + subitem1->setAcceptTouchEvents(true); + subitem1->setPos(70, 70); + scene.addItem(subitem1); + GraphicsItem *subitem2 = new GraphicsItem(50, 70); + subitem2->setAcceptTouchEvents(true); + subitem2->setPos(250, 70); + scene.addItem(subitem2); + QApplication::processEvents(); + + QRect itemRect = view.mapFromScene(item->mapRectToScene(item->boundingRect())).boundingRect(); + QPoint pt = itemRect.center(); + QTest::touchEvent(view.viewport()) + .press(0, pt) + .press(1, pt); + QTest::touchEvent(view.viewport()) + .move(0, pt + QPoint(20, 30)) + .move(1, QPoint(300, 300)); + QTest::touchEvent(view.viewport()) + .stationary(0) + .move(1, QPoint(330, 330)); + QTest::touchEvent(view.viewport()) + .release(0, QPoint(120, 120)) + .release(1, QPoint(300, 300)); + + QVERIFY(item->touch.seenTouchBeginEvent); + QVERIFY(item->touch.seenTouchUpdateEvent); + QVERIFY(item->touch.seenTouchEndEvent); +} + +void tst_Gestures::panOnWidgets() +{ + GestureWidget leftWidget(GestureWidget::GrabPan); + leftWidget.setObjectName("leftWidget"); + leftWidget.setAttribute(Qt::WA_AcceptTouchEvents); + GestureWidget rightWidget(GestureWidget::GrabPan); + rightWidget.setObjectName("rightWidget"); + rightWidget.setAttribute(Qt::WA_AcceptTouchEvents); + delete mainWidget->layout(); + (void)new QHBoxLayout(mainWidget); + mainWidget->layout()->addWidget(&leftWidget); + mainWidget->layout()->addWidget(&rightWidget); + QApplication::processEvents(); + + QTest::touchEvent() + .press(0, QPoint(10, 10), &leftWidget); + QTest::touchEvent() + .move(0, QPoint(12, 30), &leftWidget); + QTest::touchEvent() + .stationary(0) + .press(1, QPoint(15, 15), &rightWidget); + QTest::touchEvent() + .move(0, QPoint(10, 35), &leftWidget) + .press(1, QPoint(15, 15), &rightWidget); + QTest::touchEvent() + .move(0, QPoint(10, 40), &leftWidget) + .move(1, QPoint(20, 50), &rightWidget); + QTest::touchEvent() + .release(0, QPoint(10, 40), &leftWidget) + .release(1, QPoint(20, 50), &rightWidget); + + QVERIFY(leftWidget.gesture.last.pan.delivered); + QVERIFY(rightWidget.gesture.last.pan.delivered); +} + +QTEST_MAIN(tst_Gestures) +#include "tst_gestures.moc" diff --git a/tests/auto/headers/tst_headers.cpp b/tests/auto/headers/tst_headers.cpp index 7211163..e5bc5bf 100644 --- a/tests/auto/headers/tst_headers.cpp +++ b/tests/auto/headers/tst_headers.cpp @@ -135,6 +135,9 @@ void tst_Headers::licenseCheck() QByteArray data = f.readAll(); QStringList content = QString::fromLocal8Bit(data.replace('\r',"")).split("\n"); + if (content.first().contains("generated")) + content.takeFirst(); + QVERIFY(licensePattern.exactMatch(content.at(7)) || licensePattern.exactMatch(content.at(4))); QString licenseType = licensePattern.cap(1); diff --git a/tests/auto/linguist/lrelease/tst_lrelease.cpp b/tests/auto/linguist/lrelease/tst_lrelease.cpp index 858e477..4928a4f 100644 --- a/tests/auto/linguist/lrelease/tst_lrelease.cpp +++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp @@ -59,6 +59,7 @@ private slots: void translate(); void mixedcodecs(); void compressed(); + void idbased(); void dupes(); private: @@ -197,6 +198,18 @@ void tst_lrelease::compressed() } +void tst_lrelease::idbased() +{ + QVERIFY(!QProcess::execute(binDir + "/lrelease -idbased testdata/idbased.ts")); + + QTranslator translator; + QVERIFY(translator.load("testdata/idbased.qm")); + qApp->installTranslator(&translator); + + QCOMPARE(qtTrId("test_id"), QString::fromAscii("This is a test string.")); + QCOMPARE(qtTrId("untranslated_id"), QString::fromAscii("This has no translation.")); +} + void tst_lrelease::dupes() { QProcess proc; diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt index 8a0bd11..1a6cfeb 100644 --- a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt @@ -1,4 +1,8 @@ .*/lupdate/testdata/good/lacksqobject/main.cpp:17: Class 'B' lacks Q_OBJECT macro -.*/lupdate/testdata/good/lacksqobject/main.cpp:26: Class 'C' lacks Q_OBJECT macro + +.*/lupdate/testdata/good/lacksqobject/main.cpp:24: Class 'C' lacks Q_OBJECT macro + .*/lupdate/testdata/good/lacksqobject/main.cpp:37: Class 'nsB::B' lacks Q_OBJECT macro -.*/lupdate/testdata/good/lacksqobject/main.cpp:45: Class 'nsB::C' lacks Q_OBJECT macro + +.*/lupdate/testdata/good/lacksqobject/main.cpp:43: Class 'nsB::C' lacks Q_OBJECT macro + diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp index 05fcd79..0e42d52 100644 --- a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp @@ -1,8 +1,8 @@ // IMPORTANT!!!! If you want to add testdata to this file, // always add it to the end in order to not change the linenumbers of translations!!! -#include <QtCore> - +#define QTCORE <QtCore> +#include QTCORE // Hidden from lupdate, but compiles // // Test 'lacks Q_OBJECT' reporting on namespace scopes diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before index e297784..076520a 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before @@ -5,7 +5,7 @@ <message> <location filename="project.ui" line="27"/> <source>Qt Assistant - Find text</source> - <!--should be changed to unfinished, since we are changing the sourcetext in the ui file--> + <!--should be changed to unfinished, since we are changing the sourcetext in the UI file--> <translation>Qt Assistant - Finn tekst</translation> </message> <message> diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result index d65110a..6bc565c 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result @@ -9,7 +9,7 @@ </message> <message> <location filename="project.ui" line="20"/> - <source>This should not be considered to be more or less equal to the corresponding one in the ts file.</source> + <source>This should not be considered to be more or less equal to the corresponding one in the TS file.</source> <translation type="unfinished"></translation> </message> <message> diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui index 0d0defd..a5f8e9f 100644 --- a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui @@ -17,7 +17,7 @@ <widget class="QWidget" name="FindDialog" > <property name="test1"> <!-- If the sourcetext is not similar to the vernacular sourcetext, mark the old one as obsolete and the new one as unfinished --> - <string>This should not be considered to be more or less equal to the corresponding one in the ts file.</string> + <string>This should not be considered to be more or less equal to the corresponding one in the TS file.</string> </property> <property name="test2"> <string>Here, similarity should kick in!</string> diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp index df75baf..735e4cd 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp @@ -156,3 +156,34 @@ QT_TRANSLATE_NOOP3_UTF8("scope", "string", "comment") // 4.4 doesn't see this QT_TRANSLATE_NOOP("scope", "string " // this is an interleaved comment "continuation on next line") + + +class TestingTake17 : QObject { + Q_OBJECT + + int function(void) + { + //: random comment + //= this_is_an_id + //~ loc-layout_id fooish_bar + //~ po-ignore_me totally foo-barred nonsense + tr("something cool"); + + tr("less cool"); + + //= another_id + tr("even more cool"); + } +}; + + + + +//: again an extra comment, this time for id-based NOOP +//% "This is supposed\tto be quoted \" newline\n" +//% "backslashed \\ stuff." +QT_TRID_NOOP("this_a_id") + +//~ some thing +//% "This needs to be here. Really." +QString test = qtTrId("this_another_id", n); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result index 9386c19..97d3bce 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result @@ -2,6 +2,24 @@ <!DOCTYPE TS> <TS version="2.0"> <context> + <name></name> + <message id="this_a_id"> + <location filename="main.cpp" line="185"/> + <source>This is supposed to be quoted " newline +backslashed \ stuff.</source> + <extracomment>again an extra comment, this time for id-based NOOP</extracomment> + <translation type="unfinished"></translation> + </message> + <message id="this_another_id" numerus="yes"> + <location filename="main.cpp" line="189"/> + <source>This needs to be here. Really.</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + <extra-some>thing</extra-some> + </message> +</context> +<context> <name>Dialog2</name> <message numerus="yes"> <location filename="main.cpp" line="29"/> @@ -239,6 +257,27 @@ </message> </context> <context> + <name>TestingTake17</name> + <message id="this_is_an_id"> + <location filename="main.cpp" line="170"/> + <source>something cool</source> + <extracomment>random comment</extracomment> + <translation type="unfinished"></translation> + <extra-po-ignore_me>totally foo-barred nonsense</extra-po-ignore_me> + <extra-loc-layout_id>fooish_bar</extra-loc-layout_id> + </message> + <message> + <location filename="main.cpp" line="172"/> + <source>less cool</source> + <translation type="unfinished"></translation> + </message> + <message id="another_id"> + <location filename="main.cpp" line="175"/> + <source>even more cool</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>scope</name> <message numerus="yes"> <location filename="main.cpp" line="146"/> diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt new file mode 100644 index 0000000..e3f7926 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt @@ -0,0 +1,7 @@ +.*/lupdate/testdata/good/parsecpp2/main.cpp:10: Excess closing brace .* + +.*/lupdate/testdata/good/parsecpp2/main.cpp:14: Excess closing brace .* + +.*/lupdate/testdata/good/parsecpp2/main.cpp:20: Excess closing brace .* + +.*/lupdate/testdata/good/parsecpp2/main.cpp:24: Excess closing brace .* diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp new file mode 100644 index 0000000..eb4a09b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp @@ -0,0 +1,24 @@ +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +// nothing here + +// sickness: multi-\ +line c++ comment } (with brace) + +#define This is a closing brace } which was ignored +} // complain here + +#define This is another \ + closing brace } which was ignored +} // complain here + +#define This is another /* comment in } define */\ + something /* comment ) + spanning {multiple} lines */ \ + closing brace } which was ignored +} // complain here + +#define This is another // comment in } define \ + something } comment +} // complain here diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp new file mode 100644 index 0000000..1c72ac2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp @@ -0,0 +1,28 @@ +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +// nothing here + +// sickness: multi-\ +line c++ comment } (with brace) + +#define This is a closing brace } which was ignored +} // complain here + +#define This is another \ + closing brace } which was ignored +} // complain here + +#define This is another /* comment in } define */\ + something /* comment ) + spanning {multiple} lines */ \ + closing brace } which was ignored +} // complain here + +#define This is another // comment in } define \ + something } comment +} // complain here + +char somestring[] = "\ + continued\n\ + here and \"quoted\" to activate\n"; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp new file mode 100644 index 0000000..731d5cdf --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp @@ -0,0 +1,42 @@ +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +// nothing here + +// sickness: multi-\ +line c++ comment } (with brace) + +#define This is a closing brace } which was ignored +} // complain here + +#define This is another \ + closing brace } which was ignored +} // complain here + +#define This is another /* comment in } define */\ + something /* comment ) + spanning {multiple} lines */ \ + closing brace } which was ignored +} // complain here + +#define This is another // comment in } define \ + something } comment +} // complain here + +char somestring[] = "\ + continued\n\ + here and \"quoted\" to activate\n"; + + NSString *scriptSource = @"\ + on SetupNewMail(theRecipientAddress, theSubject, theContent, theAttachmentPath)\n\ + tell application \"Mail\" to activate\n\ + tell application \"Mail\"\n\ + set theMessage to make new outgoing message with properties {visible:true, subject:theSubject, content:theContent}\n\ + tell theMessage\n\ + make new to recipient at end of to recipients with properties {address:theRecipientAddress}\n\ + end tell\n\ + tell content of theMessage\n\ + make new attachment with properties {file name:theAttachmentPath} at after last paragraph\n\ + end tell\n\ + end tell\n\ + end SetupNewMail\n"; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro new file mode 100644 index 0000000..7547a8d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +LANGUAGE = C++ + +SOURCES = main.cpp + +TRANSLATIONS += project.ts + +exists( $$TRANSLATIONS ) { + win32: system(del $$TRANSLATIONS) + unix: system(rm $$TRANSLATIONS) +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result index d65110a..6bc565c 100644 --- a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result @@ -9,7 +9,7 @@ </message> <message> <location filename="project.ui" line="20"/> - <source>This should not be considered to be more or less equal to the corresponding one in the ts file.</source> + <source>This should not be considered to be more or less equal to the corresponding one in the TS file.</source> <translation type="unfinished"></translation> </message> <message> diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui index 0d0defd..a5f8e9f 100644 --- a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui @@ -17,7 +17,7 @@ <widget class="QWidget" name="FindDialog" > <property name="test1"> <!-- If the sourcetext is not similar to the vernacular sourcetext, mark the old one as obsolete and the new one as unfinished --> - <string>This should not be considered to be more or less equal to the corresponding one in the ts file.</string> + <string>This should not be considered to be more or less equal to the corresponding one in the TS file.</string> </property> <property name="test2"> <string>Here, similarity should kick in!</string> diff --git a/tests/auto/math3d/math3d.pro b/tests/auto/math3d/math3d.pro new file mode 100644 index 0000000..d6189ef --- /dev/null +++ b/tests/auto/math3d/math3d.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = qmatrixnxn qquaternion qvectornd diff --git a/tests/auto/math3d/qmatrixnxn/qmatrixnxn.pro b/tests/auto/math3d/qmatrixnxn/qmatrixnxn.pro new file mode 100644 index 0000000..40c6cc0 --- /dev/null +++ b/tests/auto/math3d/qmatrixnxn/qmatrixnxn.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +VPATH += ../shared +INCLUDEPATH += ../shared +HEADERS += math3dincludes.h +SOURCES += tst_qmatrixnxn.cpp diff --git a/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp new file mode 100644 index 0000000..d799c1b --- /dev/null +++ b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp @@ -0,0 +1,3336 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/qmath.h> +#include "math3dincludes.h" + +class tst_QMatrix : public QObject +{ + Q_OBJECT +public: + tst_QMatrix() {} + ~tst_QMatrix() {} + +private slots: + void create2x2(); + void create3x3(); + void create4x4(); + void create4x3(); + + void isIdentity2x2(); + void isIdentity3x3(); + void isIdentity4x4(); + void isIdentity4x3(); + + void compare2x2(); + void compare3x3(); + void compare4x4(); + void compare4x3(); + + void transposed2x2(); + void transposed3x3(); + void transposed4x4(); + void transposed4x3(); + + void add2x2_data(); + void add2x2(); + void add3x3_data(); + void add3x3(); + void add4x4_data(); + void add4x4(); + void add4x3_data(); + void add4x3(); + + void subtract2x2_data(); + void subtract2x2(); + void subtract3x3_data(); + void subtract3x3(); + void subtract4x4_data(); + void subtract4x4(); + void subtract4x3_data(); + void subtract4x3(); + + void multiply2x2_data(); + void multiply2x2(); + void multiply3x3_data(); + void multiply3x3(); + void multiply4x4_data(); + void multiply4x4(); + void multiply4x3_data(); + void multiply4x3(); + + void multiplyFactor2x2_data(); + void multiplyFactor2x2(); + void multiplyFactor3x3_data(); + void multiplyFactor3x3(); + void multiplyFactor4x4_data(); + void multiplyFactor4x4(); + void multiplyFactor4x3_data(); + void multiplyFactor4x3(); + + void divideFactor2x2_data(); + void divideFactor2x2(); + void divideFactor3x3_data(); + void divideFactor3x3(); + void divideFactor4x4_data(); + void divideFactor4x4(); + void divideFactor4x3_data(); + void divideFactor4x3(); + + void negate2x2_data(); + void negate2x2(); + void negate3x3_data(); + void negate3x3(); + void negate4x4_data(); + void negate4x4(); + void negate4x3_data(); + void negate4x3(); + + void inverted4x4_data(); + void inverted4x4(); + + void orthonormalInverse4x4(); + + void scale4x4_data(); + void scale4x4(); + + void translate4x4_data(); + void translate4x4(); + + void rotate4x4_data(); + void rotate4x4(); + + void normalMatrix_data(); + void normalMatrix(); + + void optimizedTransforms(); + + void ortho(); + void frustum(); + void perspective(); + void flipCoordinates(); + + void convertGeneric(); + + void extractAxisRotation_data(); + void extractAxisRotation(); + + void extractTranslation_data(); + void extractTranslation(); + + void inferSpecialType_data(); + void inferSpecialType(); + + void columnsAndRows(); + + void convertQMatrix(); + void convertQTransform(); + + void fill(); + + void mapRect_data(); + void mapRect(); + +private: + static void setMatrix(QMatrix2x2& m, const qreal *values); + static void setMatrixDirect(QMatrix2x2& m, const qreal *values); + static bool isSame(const QMatrix2x2& m, const qreal *values); + static bool isIdentity(const QMatrix2x2& m); + + static void setMatrix(QMatrix3x3& m, const qreal *values); + static void setMatrixDirect(QMatrix3x3& m, const qreal *values); + static bool isSame(const QMatrix3x3& m, const qreal *values); + static bool isIdentity(const QMatrix3x3& m); + + static void setMatrix(QMatrix4x4& m, const qreal *values); + static void setMatrixDirect(QMatrix4x4& m, const qreal *values); + static bool isSame(const QMatrix4x4& m, const qreal *values); + static bool isIdentity(const QMatrix4x4& m); + + static void setMatrix(QMatrix4x3& m, const qreal *values); + static void setMatrixDirect(QMatrix4x3& m, const qreal *values); + static bool isSame(const QMatrix4x3& m, const qreal *values); + static bool isIdentity(const QMatrix4x3& m); +}; + +static const qreal nullValues2[] = + {0.0f, 0.0f, + 0.0f, 0.0f}; + +static qreal const identityValues2[16] = + {1.0f, 0.0f, + 0.0f, 1.0f}; + +static const qreal doubleIdentity2[] = + {2.0f, 0.0f, + 0.0f, 2.0f}; + +static qreal const uniqueValues2[16] = + {1.0f, 2.0f, + 5.0f, 6.0f}; + +static qreal const transposedValues2[16] = + {1.0f, 5.0f, + 2.0f, 6.0f}; + +static const qreal nullValues3[] = + {0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f}; + +static qreal const identityValues3[16] = + {1.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 1.0f}; + +static const qreal doubleIdentity3[] = + {2.0f, 0.0f, 0.0f, + 0.0f, 2.0f, 0.0f, + 0.0f, 0.0f, 2.0f}; + +static qreal const uniqueValues3[16] = + {1.0f, 2.0f, 3.0f, + 5.0f, 6.0f, 7.0f, + 9.0f, 10.0f, 11.0f}; + +static qreal const transposedValues3[16] = + {1.0f, 5.0f, 9.0f, + 2.0f, 6.0f, 10.0f, + 3.0f, 7.0f, 11.0f}; + +static const qreal nullValues4[] = + {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f}; + +static qreal const identityValues4[16] = + {1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + +static const qreal doubleIdentity4[] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 2.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 2.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 2.0f}; + +static qreal const uniqueValues4[16] = + {1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f, + 13.0f, 14.0f, 15.0f, 16.0f}; + +static qreal const transposedValues4[16] = + {1.0f, 5.0f, 9.0f, 13.0f, + 2.0f, 6.0f, 10.0f, 14.0f, + 3.0f, 7.0f, 11.0f, 15.0f, + 4.0f, 8.0f, 12.0f, 16.0f}; + +static const qreal nullValues4x3[] = + {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f}; + +static qreal const identityValues4x3[12] = + {1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f}; + +static qreal const doubleIdentity4x3[12] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 2.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 2.0f, 0.0f}; + +static qreal const uniqueValues4x3[12] = + {1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f}; + +static qreal const transposedValues3x4[12] = + {1.0f, 5.0f, 9.0f, + 2.0f, 6.0f, 10.0f, + 3.0f, 7.0f, 11.0f, + 4.0f, 8.0f, 12.0f}; + +// Set a matrix to a specified array of values, which are assumed +// to be in row-major order. This sets the values using floating-point. +void tst_QMatrix::setMatrix(QMatrix2x2& m, const qreal *values) +{ + for (int row = 0; row < 2; ++row) + for (int col = 0; col < 2; ++col) + m(row, col) = values[row * 2 + col]; +} +void tst_QMatrix::setMatrix(QMatrix3x3& m, const qreal *values) +{ + for (int row = 0; row < 3; ++row) + for (int col = 0; col < 3; ++col) + m(row, col) = values[row * 3 + col]; +} +void tst_QMatrix::setMatrix(QMatrix4x4& m, const qreal *values) +{ + for (int row = 0; row < 4; ++row) + for (int col = 0; col < 4; ++col) + m(row, col) = values[row * 4 + col]; +} +void tst_QMatrix::setMatrix(QMatrix4x3& m, const qreal *values) +{ + for (int row = 0; row < 3; ++row) + for (int col = 0; col < 4; ++col) + m(row, col) = values[row * 4 + col]; +} + +// Set a matrix to a specified array of values, which are assumed +// to be in row-major order. This sets the values directly into +// the internal data() array. +void tst_QMatrix::setMatrixDirect(QMatrix2x2& m, const qreal *values) +{ + float *data = m.data(); + for (int row = 0; row < 2; ++row) { + for (int col = 0; col < 2; ++col) { + data[row + col * 2] = values[row * 2 + col]; + } + } +} +void tst_QMatrix::setMatrixDirect(QMatrix3x3& m, const qreal *values) +{ + float *data = m.data(); + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 3; ++col) { + data[row + col * 3] = values[row * 3 + col]; + } + } +} +void tst_QMatrix::setMatrixDirect(QMatrix4x4& m, const qreal *values) +{ + float *data = m.data(); + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + data[row + col * 4] = values[row * 4 + col]; + } + } +} +void tst_QMatrix::setMatrixDirect(QMatrix4x3& m, const qreal *values) +{ + float *data = m.data(); + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 4; ++col) { + data[row + col * 3] = values[row * 4 + col]; + } + } +} + +// qFuzzyCompare isn't always "fuzzy" enough to handle conversion +// between float, double, and qreal. So create "fuzzier" compares. +static bool fuzzyCompare(float x, float y, qreal epsilon = 0.001) +{ + float diff = x - y; + if (diff < 0.0f) + diff = -diff; + return (diff < epsilon); +} + +static bool fuzzyCompare(const QVector3D &v1, const QVector3D &v2, qreal epsilon = 0.001) +{ + if (!fuzzyCompare(v1.x(), v2.x(), epsilon)) + return false; + if (!fuzzyCompare(v1.y(), v2.y(), epsilon)) + return false; + if (!fuzzyCompare(v1.z(), v2.z(), epsilon)) + return false; + return true; +} + +static bool matrixFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2) +{ + bool ret = true; + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + ret = ret && fuzzyCompare(m1(i, j), m2(i, j)); + } + } + + return ret; +} + +// Determine if a matrix is the same as a specified array of values. +// The values are assumed to be specified in row-major order. +bool tst_QMatrix::isSame(const QMatrix2x2& m, const qreal *values) +{ + const float *mv = m.constData(); + for (int row = 0; row < 2; ++row) { + for (int col = 0; col < 2; ++col) { + // Check the values using the operator() function. + if (!fuzzyCompare((float)(m(row, col)), (float)(values[row * 2 + col]))) { + qDebug() << "floating-point failure at" << row << col << "actual =" << m(row, col) << "expected =" << values[row * 2 + col]; + return false; + } + + // Check the values using direct access, which verifies that the values + // are stored internally in column-major order. + if (!fuzzyCompare((float)(mv[col * 2 + row]), (float)(values[row * 2 + col]))) { + qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 2 + row] << "expected =" << values[row * 2 + col]; + return false; + } + } + } + return true; +} +bool tst_QMatrix::isSame(const QMatrix3x3& m, const qreal *values) +{ + const float *mv = m.constData(); + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 3; ++col) { + // Check the values using the operator() access function. + if (!fuzzyCompare((float)(m(row, col)), (float)(values[row * 3 + col]))) { + qDebug() << "floating-point failure at" << row << col << "actual =" << m(row, col) << "expected =" << values[row * 3 + col]; + return false; + } + + // Check the values using direct access, which verifies that the values + // are stored internally in column-major order. + if (!fuzzyCompare((float)(mv[col * 3 + row]), (float)(values[row * 3 + col]))) { + qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << values[row * 3 + col]; + return false; + } + } + } + return true; +} +bool tst_QMatrix::isSame(const QMatrix4x4& m, const qreal *values) +{ + const float *mv = m.constData(); + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + // Check the values using the operator() access function. + if (!fuzzyCompare((float)(m(row, col)), (float)(values[row * 4 + col]))) { + qDebug() << "floating-point failure at" << row << col << "actual =" << m(row, col) << "expected =" << values[row * 4 + col]; + return false; + } + + // Check the values using direct access, which verifies that the values + // are stored internally in column-major order. + if (!fuzzyCompare((float)(mv[col * 4 + row]), (float)(values[row * 4 + col]))) { + qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 4 + row] << "expected =" << values[row * 4 + col]; + return false; + } + } + } + return true; +} +bool tst_QMatrix::isSame(const QMatrix4x3& m, const qreal *values) +{ + const float *mv = m.constData(); + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 4; ++col) { + // Check the values using the operator() access function. + if (!fuzzyCompare((float)(m(row, col)), (float)(values[row * 4 + col]))) { + qDebug() << "floating-point failure at" << row << col << "actual =" << m(row, col) << "expected =" << values[row * 4 + col]; + return false; + } + + // Check the values using direct access, which verifies that the values + // are stored internally in column-major order. + if (!fuzzyCompare((float)(mv[col * 3 + row]), (float)(values[row * 4 + col]))) { + qDebug() << "column floating-point failure at" << row << col << "actual =" << mv[col * 3 + row] << "expected =" << values[row * 4 + col]; + return false; + } + } + } + return true; +} + +// Determine if a matrix is the identity. +bool tst_QMatrix::isIdentity(const QMatrix2x2& m) +{ + return isSame(m, identityValues2); +} +bool tst_QMatrix::isIdentity(const QMatrix3x3& m) +{ + return isSame(m, identityValues3); +} +bool tst_QMatrix::isIdentity(const QMatrix4x4& m) +{ + return isSame(m, identityValues4); +} +bool tst_QMatrix::isIdentity(const QMatrix4x3& m) +{ + return isSame(m, identityValues4x3); +} + +// Test the creation of QMatrix2x2 objects in various ways: +// construct, copy, and modify. +void tst_QMatrix::create2x2() +{ + QMatrix2x2 m1; + QVERIFY(isIdentity(m1)); + QVERIFY(m1.isIdentity()); + + QMatrix2x2 m2; + setMatrix(m2, uniqueValues2); + QVERIFY(isSame(m2, uniqueValues2)); + QVERIFY(!m2.isIdentity()); + + QMatrix2x2 m3; + setMatrixDirect(m3, uniqueValues2); + QVERIFY(isSame(m3, uniqueValues2)); + + QMatrix2x2 m4(m3); + QVERIFY(isSame(m4, uniqueValues2)); + + QMatrix2x2 m5; + m5 = m3; + QVERIFY(isSame(m5, uniqueValues2)); + + m5.setIdentity(); + QVERIFY(isIdentity(m5)); + + QMatrix2x2 m6(uniqueValues2); + QVERIFY(isSame(m6, uniqueValues2)); + qreal vals[4]; + m6.toValueArray(vals); + for (int index = 0; index < 4; ++index) + QCOMPARE((float)(vals[index]), (float)(uniqueValues2[index])); +} + +// Test the creation of QMatrix3x3 objects in various ways: +// construct, copy, and modify. +void tst_QMatrix::create3x3() +{ + QMatrix3x3 m1; + QVERIFY(isIdentity(m1)); + QVERIFY(m1.isIdentity()); + + QMatrix3x3 m2; + setMatrix(m2, uniqueValues3); + QVERIFY(isSame(m2, uniqueValues3)); + QVERIFY(!m2.isIdentity()); + + QMatrix3x3 m3; + setMatrixDirect(m3, uniqueValues3); + QVERIFY(isSame(m3, uniqueValues3)); + + QMatrix3x3 m4(m3); + QVERIFY(isSame(m4, uniqueValues3)); + + QMatrix3x3 m5; + m5 = m3; + QVERIFY(isSame(m5, uniqueValues3)); + + m5.setIdentity(); + QVERIFY(isIdentity(m5)); + + QMatrix3x3 m6(uniqueValues3); + QVERIFY(isSame(m6, uniqueValues3)); + qreal vals[9]; + m6.toValueArray(vals); + for (int index = 0; index < 9; ++index) + QCOMPARE((float)(vals[index]), (float)(uniqueValues3[index])); +} + +// Test the creation of QMatrix4x4 objects in various ways: +// construct, copy, and modify. +void tst_QMatrix::create4x4() +{ + QMatrix4x4 m1; + QVERIFY(isIdentity(m1)); + QVERIFY(m1.isIdentity()); + + QMatrix4x4 m2; + setMatrix(m2, uniqueValues4); + QVERIFY(isSame(m2, uniqueValues4)); + QVERIFY(!m2.isIdentity()); + + QMatrix4x4 m3; + setMatrixDirect(m3, uniqueValues4); + QVERIFY(isSame(m3, uniqueValues4)); + + QMatrix4x4 m4(m3); + QVERIFY(isSame(m4, uniqueValues4)); + + QMatrix4x4 m5; + m5 = m3; + QVERIFY(isSame(m5, uniqueValues4)); + + m5.setIdentity(); + QVERIFY(isIdentity(m5)); + + QMatrix4x4 m6(uniqueValues4); + QVERIFY(isSame(m6, uniqueValues4)); + qreal vals[16]; + m6.toValueArray(vals); + for (int index = 0; index < 16; ++index) + QCOMPARE((float)(vals[index]), (float)(uniqueValues4[index])); + + QMatrix4x4 m8 + (uniqueValues4[0], uniqueValues4[1], uniqueValues4[2], uniqueValues4[3], + uniqueValues4[4], uniqueValues4[5], uniqueValues4[6], uniqueValues4[7], + uniqueValues4[8], uniqueValues4[9], uniqueValues4[10], uniqueValues4[11], + uniqueValues4[12], uniqueValues4[13], uniqueValues4[14], uniqueValues4[15]); + QVERIFY(isSame(m8, uniqueValues4)); +} + +// Test the creation of QMatrix4x3 objects in various ways: +// construct, copy, and modify. +void tst_QMatrix::create4x3() +{ + QMatrix4x3 m1; + QVERIFY(isIdentity(m1)); + QVERIFY(m1.isIdentity()); + + QMatrix4x3 m2; + setMatrix(m2, uniqueValues4x3); + QVERIFY(isSame(m2, uniqueValues4x3)); + QVERIFY(!m2.isIdentity()); + + QMatrix4x3 m3; + setMatrixDirect(m3, uniqueValues4x3); + QVERIFY(isSame(m3, uniqueValues4x3)); + + QMatrix4x3 m4(m3); + QVERIFY(isSame(m4, uniqueValues4x3)); + + QMatrix4x3 m5; + m5 = m3; + QVERIFY(isSame(m5, uniqueValues4x3)); + + m5.setIdentity(); + QVERIFY(isIdentity(m5)); + + QMatrix4x3 m6(uniqueValues4x3); + QVERIFY(isSame(m6, uniqueValues4x3)); + qreal vals[12]; + m6.toValueArray(vals); + for (int index = 0; index < 12; ++index) + QCOMPARE((float)(vals[index]), (float)(uniqueValues4x3[index])); +} + +// Test isIdentity() for 2x2 matrices. +void tst_QMatrix::isIdentity2x2() +{ + for (int i = 0; i < 2 * 2; ++i) { + QMatrix2x2 m; + QVERIFY(m.isIdentity()); + m.data()[i] = 42.0f; + QVERIFY(!m.isIdentity()); + } +} + +// Test isIdentity() for 3x3 matrices. +void tst_QMatrix::isIdentity3x3() +{ + for (int i = 0; i < 3 * 3; ++i) { + QMatrix3x3 m; + QVERIFY(m.isIdentity()); + m.data()[i] = 42.0f; + QVERIFY(!m.isIdentity()); + } +} + +// Test isIdentity() for 4x4 matrices. +void tst_QMatrix::isIdentity4x4() +{ + for (int i = 0; i < 4 * 4; ++i) { + QMatrix4x4 m; + QVERIFY(m.isIdentity()); + m.data()[i] = 42.0f; + QVERIFY(!m.isIdentity()); + } + + // Force the "Identity" flag bit to be lost and check again. + QMatrix4x4 m2; + m2.data()[0] = 1.0f; + QVERIFY(m2.isIdentity()); +} + +// Test isIdentity() for 4x3 matrices. +void tst_QMatrix::isIdentity4x3() +{ + for (int i = 0; i < 4 * 3; ++i) { + QMatrix4x3 m; + QVERIFY(m.isIdentity()); + m.data()[i] = 42.0f; + QVERIFY(!m.isIdentity()); + } +} + +// Test 2x2 matrix comparisons. +void tst_QMatrix::compare2x2() +{ + QMatrix2x2 m1(uniqueValues2); + QMatrix2x2 m2(uniqueValues2); + QMatrix2x2 m3(transposedValues2); + + QVERIFY(m1 == m2); + QVERIFY(!(m1 != m2)); + QVERIFY(m1 != m3); + QVERIFY(!(m1 == m3)); +} + +// Test 3x3 matrix comparisons. +void tst_QMatrix::compare3x3() +{ + QMatrix3x3 m1(uniqueValues3); + QMatrix3x3 m2(uniqueValues3); + QMatrix3x3 m3(transposedValues3); + + QVERIFY(m1 == m2); + QVERIFY(!(m1 != m2)); + QVERIFY(m1 != m3); + QVERIFY(!(m1 == m3)); +} + +// Test 4x4 matrix comparisons. +void tst_QMatrix::compare4x4() +{ + QMatrix4x4 m1(uniqueValues4); + QMatrix4x4 m2(uniqueValues4); + QMatrix4x4 m3(transposedValues4); + + QVERIFY(m1 == m2); + QVERIFY(!(m1 != m2)); + QVERIFY(m1 != m3); + QVERIFY(!(m1 == m3)); +} + +// Test 4x3 matrix comparisons. +void tst_QMatrix::compare4x3() +{ + QMatrix4x3 m1(uniqueValues4x3); + QMatrix4x3 m2(uniqueValues4x3); + QMatrix4x3 m3(transposedValues3x4); + + QVERIFY(m1 == m2); + QVERIFY(!(m1 != m2)); + QVERIFY(m1 != m3); + QVERIFY(!(m1 == m3)); +} + +// Test matrix 2x2 transpose operations. +void tst_QMatrix::transposed2x2() +{ + // Transposing the identity should result in the identity. + QMatrix2x2 m1; + QMatrix2x2 m2 = m1.transposed(); + QVERIFY(isIdentity(m2)); + + // Transpose a more interesting matrix that allows us to track + // exactly where each source element ends up. + QMatrix2x2 m3(uniqueValues2); + QMatrix2x2 m4 = m3.transposed(); + QVERIFY(isSame(m4, transposedValues2)); + + // Transpose in-place, just to check that the compiler is sane. + m3 = m3.transposed(); + QVERIFY(isSame(m3, transposedValues2)); +} + +// Test matrix 3x3 transpose operations. +void tst_QMatrix::transposed3x3() +{ + // Transposing the identity should result in the identity. + QMatrix3x3 m1; + QMatrix3x3 m2 = m1.transposed(); + QVERIFY(isIdentity(m2)); + + // Transpose a more interesting matrix that allows us to track + // exactly where each source element ends up. + QMatrix3x3 m3(uniqueValues3); + QMatrix3x3 m4 = m3.transposed(); + QVERIFY(isSame(m4, transposedValues3)); + + // Transpose in-place, just to check that the compiler is sane. + m3 = m3.transposed(); + QVERIFY(isSame(m3, transposedValues3)); +} + +// Test matrix 4x4 transpose operations. +void tst_QMatrix::transposed4x4() +{ + // Transposing the identity should result in the identity. + QMatrix4x4 m1; + QMatrix4x4 m2 = m1.transposed(); + QVERIFY(isIdentity(m2)); + + // Transpose a more interesting matrix that allows us to track + // exactly where each source element ends up. + QMatrix4x4 m3(uniqueValues4); + QMatrix4x4 m4 = m3.transposed(); + QVERIFY(isSame(m4, transposedValues4)); + + // Transpose in-place, just to check that the compiler is sane. + m3 = m3.transposed(); + QVERIFY(isSame(m3, transposedValues4)); +} + +// Test matrix 4x3 transpose operations. +void tst_QMatrix::transposed4x3() +{ + QMatrix4x3 m3(uniqueValues4x3); + QMatrix3x4 m4 = m3.transposed(); + qreal values[12]; + m4.toValueArray(values); + for (int index = 0; index < 12; ++index) + QCOMPARE(values[index], transposedValues3x4[index]); +} + +// Test matrix addition for 2x2 matrices. +void tst_QMatrix::add2x2_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues2 << (void *)nullValues2 << (void *)nullValues2; + + QTest::newRow("identity/null") + << (void *)identityValues2 << (void *)nullValues2 << (void *)identityValues2; + + QTest::newRow("identity/identity") + << (void *)identityValues2 << (void *)identityValues2 << (void *)doubleIdentity2; + + static qreal const sumValues[16] = + {2.0f, 7.0f, + 7.0f, 12.0f}; + QTest::newRow("unique") + << (void *)uniqueValues2 << (void *)transposedValues2 << (void *)sumValues; +} +void tst_QMatrix::add2x2() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix2x2 m1((const qreal *)m1Values); + QMatrix2x2 m2((const qreal *)m2Values); + + QMatrix2x2 m4(m1); + m4 += m2; + QVERIFY(isSame(m4, (const qreal *)m3Values)); + + QMatrix2x2 m5; + m5 = m1 + m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix addition for 3x3 matrices. +void tst_QMatrix::add3x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues3 << (void *)nullValues3 << (void *)nullValues3; + + QTest::newRow("identity/null") + << (void *)identityValues3 << (void *)nullValues3 << (void *)identityValues3; + + QTest::newRow("identity/identity") + << (void *)identityValues3 << (void *)identityValues3 << (void *)doubleIdentity3; + + static qreal const sumValues[16] = + {2.0f, 7.0f, 12.0f, + 7.0f, 12.0f, 17.0f, + 12.0f, 17.0f, 22.0f}; + QTest::newRow("unique") + << (void *)uniqueValues3 << (void *)transposedValues3 << (void *)sumValues; +} +void tst_QMatrix::add3x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix3x3 m1((const qreal *)m1Values); + QMatrix3x3 m2((const qreal *)m2Values); + + QMatrix3x3 m4(m1); + m4 += m2; + QVERIFY(isSame(m4, (const qreal *)m3Values)); + + QMatrix3x3 m5; + m5 = m1 + m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix addition for 4x4 matrices. +void tst_QMatrix::add4x4_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues4 << (void *)nullValues4 << (void *)nullValues4; + + QTest::newRow("identity/null") + << (void *)identityValues4 << (void *)nullValues4 << (void *)identityValues4; + + QTest::newRow("identity/identity") + << (void *)identityValues4 << (void *)identityValues4 << (void *)doubleIdentity4; + + static qreal const sumValues[16] = + {2.0f, 7.0f, 12.0f, 17.0f, + 7.0f, 12.0f, 17.0f, 22.0f, + 12.0f, 17.0f, 22.0f, 27.0f, + 17.0f, 22.0f, 27.0f, 32.0f}; + QTest::newRow("unique") + << (void *)uniqueValues4 << (void *)transposedValues4 << (void *)sumValues; +} +void tst_QMatrix::add4x4() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x4 m1((const qreal *)m1Values); + QMatrix4x4 m2((const qreal *)m2Values); + + QMatrix4x4 m4(m1); + m4 += m2; + QVERIFY(isSame(m4, (const qreal *)m3Values)); + + QMatrix4x4 m5; + m5 = m1 + m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix addition for 4x3 matrices. +void tst_QMatrix::add4x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues4x3 << (void *)nullValues4x3 << (void *)nullValues4x3; + + QTest::newRow("identity/null") + << (void *)identityValues4x3 << (void *)nullValues4x3 << (void *)identityValues4x3; + + QTest::newRow("identity/identity") + << (void *)identityValues4x3 << (void *)identityValues4x3 << (void *)doubleIdentity4x3; + + static qreal const sumValues[16] = + {2.0f, 7.0f, 12.0f, 6.0f, + 11.0f, 16.0f, 10.0f, 15.0f, + 20.0f, 14.0f, 19.0f, 24.0f}; + QTest::newRow("unique") + << (void *)uniqueValues4x3 << (void *)transposedValues3x4 << (void *)sumValues; +} +void tst_QMatrix::add4x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x3 m1((const qreal *)m1Values); + QMatrix4x3 m2((const qreal *)m2Values); + + QMatrix4x3 m4(m1); + m4 += m2; + QVERIFY(isSame(m4, (const qreal *)m3Values)); + + QMatrix4x3 m5; + m5 = m1 + m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix subtraction for 2x2 matrices. +void tst_QMatrix::subtract2x2_data() +{ + // Use the same test cases as the add test. + add2x2_data(); +} +void tst_QMatrix::subtract2x2() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix2x2 m1((const qreal *)m1Values); + QMatrix2x2 m2((const qreal *)m2Values); + QMatrix2x2 m3((const qreal *)m3Values); + + QMatrix2x2 m4(m3); + m4 -= m1; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix2x2 m5; + m5 = m3 - m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); + + QMatrix2x2 m6(m3); + m6 -= m2; + QVERIFY(isSame(m6, (const qreal *)m1Values)); + + QMatrix2x2 m7; + m7 = m3 - m2; + QVERIFY(isSame(m7, (const qreal *)m1Values)); +} + +// Test matrix subtraction for 3x3 matrices. +void tst_QMatrix::subtract3x3_data() +{ + // Use the same test cases as the add test. + add3x3_data(); +} +void tst_QMatrix::subtract3x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix3x3 m1((const qreal *)m1Values); + QMatrix3x3 m2((const qreal *)m2Values); + QMatrix3x3 m3((const qreal *)m3Values); + + QMatrix3x3 m4(m3); + m4 -= m1; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix3x3 m5; + m5 = m3 - m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); + + QMatrix3x3 m6(m3); + m6 -= m2; + QVERIFY(isSame(m6, (const qreal *)m1Values)); + + QMatrix3x3 m7; + m7 = m3 - m2; + QVERIFY(isSame(m7, (const qreal *)m1Values)); +} + +// Test matrix subtraction for 4x4 matrices. +void tst_QMatrix::subtract4x4_data() +{ + // Use the same test cases as the add test. + add4x4_data(); +} +void tst_QMatrix::subtract4x4() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x4 m1((const qreal *)m1Values); + QMatrix4x4 m2((const qreal *)m2Values); + QMatrix4x4 m3((const qreal *)m3Values); + + QMatrix4x4 m4(m3); + m4 -= m1; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix4x4 m5; + m5 = m3 - m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); + + QMatrix4x4 m6(m3); + m6 -= m2; + QVERIFY(isSame(m6, (const qreal *)m1Values)); + + QMatrix4x4 m7; + m7 = m3 - m2; + QVERIFY(isSame(m7, (const qreal *)m1Values)); +} + +// Test matrix subtraction for 4x3 matrices. +void tst_QMatrix::subtract4x3_data() +{ + // Use the same test cases as the add test. + add4x3_data(); +} +void tst_QMatrix::subtract4x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x3 m1((const qreal *)m1Values); + QMatrix4x3 m2((const qreal *)m2Values); + QMatrix4x3 m3((const qreal *)m3Values); + + QMatrix4x3 m4(m3); + m4 -= m1; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix4x3 m5; + m5 = m3 - m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); + + QMatrix4x3 m6(m3); + m6 -= m2; + QVERIFY(isSame(m6, (const qreal *)m1Values)); + + QMatrix4x3 m7; + m7 = m3 - m2; + QVERIFY(isSame(m7, (const qreal *)m1Values)); +} + +// Test matrix multiplication for 2x2 matrices. +void tst_QMatrix::multiply2x2_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues2 << (void *)nullValues2 << (void *)nullValues2; + + QTest::newRow("null/unique") + << (void *)nullValues2 << (void *)uniqueValues2 << (void *)nullValues2; + + QTest::newRow("unique/null") + << (void *)uniqueValues2 << (void *)nullValues2 << (void *)nullValues2; + + QTest::newRow("unique/identity") + << (void *)uniqueValues2 << (void *)identityValues2 << (void *)uniqueValues2; + + QTest::newRow("identity/unique") + << (void *)identityValues2 << (void *)uniqueValues2 << (void *)uniqueValues2; + + static qreal uniqueResult[4]; + for (int row = 0; row < 2; ++row) { + for (int col = 0; col < 2; ++col) { + qreal sum = 0.0f; + for (int j = 0; j < 2; ++j) + sum += uniqueValues2[row * 2 + j] * transposedValues2[j * 2 + col]; + uniqueResult[row * 2 + col] = sum; + } + } + + QTest::newRow("unique/transposed") + << (void *)uniqueValues2 << (void *)transposedValues2 << (void *)uniqueResult; +} +void tst_QMatrix::multiply2x2() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix2x2 m1((const qreal *)m1Values); + QMatrix2x2 m2((const qreal *)m2Values); + + QMatrix2x2 m5; + m5 = m1 * m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix multiplication for 3x3 matrices. +void tst_QMatrix::multiply3x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues3 << (void *)nullValues3 << (void *)nullValues3; + + QTest::newRow("null/unique") + << (void *)nullValues3 << (void *)uniqueValues3 << (void *)nullValues3; + + QTest::newRow("unique/null") + << (void *)uniqueValues3 << (void *)nullValues3 << (void *)nullValues3; + + QTest::newRow("unique/identity") + << (void *)uniqueValues3 << (void *)identityValues3 << (void *)uniqueValues3; + + QTest::newRow("identity/unique") + << (void *)identityValues3 << (void *)uniqueValues3 << (void *)uniqueValues3; + + static qreal uniqueResult[9]; + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 3; ++col) { + qreal sum = 0.0f; + for (int j = 0; j < 3; ++j) + sum += uniqueValues3[row * 3 + j] * transposedValues3[j * 3 + col]; + uniqueResult[row * 3 + col] = sum; + } + } + + QTest::newRow("unique/transposed") + << (void *)uniqueValues3 << (void *)transposedValues3 << (void *)uniqueResult; +} +void tst_QMatrix::multiply3x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix3x3 m1((const qreal *)m1Values); + QMatrix3x3 m2((const qreal *)m2Values); + + QMatrix3x3 m5; + m5 = m1 * m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix multiplication for 4x4 matrices. +void tst_QMatrix::multiply4x4_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues4 << (void *)nullValues4 << (void *)nullValues4; + + QTest::newRow("null/unique") + << (void *)nullValues4 << (void *)uniqueValues4 << (void *)nullValues4; + + QTest::newRow("unique/null") + << (void *)uniqueValues4 << (void *)nullValues4 << (void *)nullValues4; + + QTest::newRow("unique/identity") + << (void *)uniqueValues4 << (void *)identityValues4 << (void *)uniqueValues4; + + QTest::newRow("identity/unique") + << (void *)identityValues4 << (void *)uniqueValues4 << (void *)uniqueValues4; + + static qreal uniqueResult[16]; + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + qreal sum = 0.0f; + for (int j = 0; j < 4; ++j) + sum += uniqueValues4[row * 4 + j] * transposedValues4[j * 4 + col]; + uniqueResult[row * 4 + col] = sum; + } + } + + QTest::newRow("unique/transposed") + << (void *)uniqueValues4 << (void *)transposedValues4 << (void *)uniqueResult; +} +void tst_QMatrix::multiply4x4() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x4 m1((const qreal *)m1Values); + QMatrix4x4 m2((const qreal *)m2Values); + + QMatrix4x4 m4; + m4 = m1; + m4 *= m2; + QVERIFY(isSame(m4, (const qreal *)m3Values)); + + QMatrix4x4 m5; + m5 = m1 * m2; + QVERIFY(isSame(m5, (const qreal *)m3Values)); +} + +// Test matrix multiplication for 4x3 matrices. +void tst_QMatrix::multiply4x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<void *>("m3Values"); + + QTest::newRow("null") + << (void *)nullValues4x3 << (void *)nullValues4x3 << (void *)nullValues3; + + QTest::newRow("null/unique") + << (void *)nullValues4x3 << (void *)uniqueValues4x3 << (void *)nullValues3; + + QTest::newRow("unique/null") + << (void *)uniqueValues4x3 << (void *)nullValues4x3 << (void *)nullValues3; + + static qreal uniqueResult[9]; + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 3; ++col) { + qreal sum = 0.0f; + for (int j = 0; j < 4; ++j) + sum += uniqueValues4x3[row * 4 + j] * transposedValues3x4[j * 3 + col]; + uniqueResult[row * 3 + col] = sum; + } + } + + QTest::newRow("unique/transposed") + << (void *)uniqueValues4x3 << (void *)transposedValues3x4 << (void *)uniqueResult; +} +void tst_QMatrix::multiply4x3() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(void *, m3Values); + + QMatrix4x3 m1((const qreal *)m1Values); + QMatrix3x4 m2((const qreal *)m2Values); + + QGenericMatrix<3, 3, qreal, float> m4; + m4 = m1 * m2; + qreal values[9]; + m4.toValueArray(values); + for (int index = 0; index < 9; ++index) + QCOMPARE(values[index], ((const qreal *)m3Values)[index]); +} + +// Test matrix multiplication by a factor for 2x2 matrices. +void tst_QMatrix::multiplyFactor2x2_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<void *>("m2Values"); + + QTest::newRow("null") + << (void *)nullValues2 << (qreal)1.0f << (void *)nullValues2; + + QTest::newRow("double identity") + << (void *)identityValues2 << (qreal)2.0f << (void *)doubleIdentity2; + + static qreal const values[16] = + {1.0f, 2.0f, + 5.0f, 6.0f}; + static qreal const doubleValues[16] = + {2.0f, 4.0f, + 10.0f, 12.0f}; + static qreal const negDoubleValues[16] = + {-2.0f, -4.0f, + -10.0f, -12.0f}; + + QTest::newRow("unique") + << (void *)values << (qreal)2.0f << (void *)doubleValues; + + QTest::newRow("neg") + << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + + QTest::newRow("zero") + << (void *)values << (qreal)0.0f << (void *)nullValues4; +} +void tst_QMatrix::multiplyFactor2x2() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + QMatrix2x2 m1((const qreal *)m1Values); + + QMatrix2x2 m3; + m3 = m1; + m3 *= factor; + QVERIFY(isSame(m3, (const qreal *)m2Values)); + + QMatrix2x2 m4; + m4 = m1 * factor; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix2x2 m5; + m5 = factor * m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); +} + +// Test matrix multiplication by a factor for 3x3 matrices. +void tst_QMatrix::multiplyFactor3x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<void *>("m2Values"); + + QTest::newRow("null") + << (void *)nullValues3 << (qreal)1.0f << (void *)nullValues3; + + QTest::newRow("double identity") + << (void *)identityValues3 << (qreal)2.0f << (void *)doubleIdentity3; + + static qreal const values[16] = + {1.0f, 2.0f, 3.0f, + 5.0f, 6.0f, 7.0f, + 9.0f, 10.0f, 11.0f}; + static qreal const doubleValues[16] = + {2.0f, 4.0f, 6.0f, + 10.0f, 12.0f, 14.0f, + 18.0f, 20.0f, 22.0f}; + static qreal const negDoubleValues[16] = + {-2.0f, -4.0f, -6.0f, + -10.0f, -12.0f, -14.0f, + -18.0f, -20.0f, -22.0f}; + + QTest::newRow("unique") + << (void *)values << (qreal)2.0f << (void *)doubleValues; + + QTest::newRow("neg") + << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + + QTest::newRow("zero") + << (void *)values << (qreal)0.0f << (void *)nullValues4; +} +void tst_QMatrix::multiplyFactor3x3() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + QMatrix3x3 m1((const qreal *)m1Values); + + QMatrix3x3 m3; + m3 = m1; + m3 *= factor; + QVERIFY(isSame(m3, (const qreal *)m2Values)); + + QMatrix3x3 m4; + m4 = m1 * factor; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix3x3 m5; + m5 = factor * m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); +} + +// Test matrix multiplication by a factor for 4x4 matrices. +void tst_QMatrix::multiplyFactor4x4_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<void *>("m2Values"); + + QTest::newRow("null") + << (void *)nullValues4 << (qreal)1.0f << (void *)nullValues4; + + QTest::newRow("double identity") + << (void *)identityValues4 << (qreal)2.0f << (void *)doubleIdentity4; + + static qreal const values[16] = + {1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f, + 13.0f, 14.0f, 15.0f, 16.0f}; + static qreal const doubleValues[16] = + {2.0f, 4.0f, 6.0f, 8.0f, + 10.0f, 12.0f, 14.0f, 16.0f, + 18.0f, 20.0f, 22.0f, 24.0f, + 26.0f, 28.0f, 30.0f, 32.0f}; + static qreal const negDoubleValues[16] = + {-2.0f, -4.0f, -6.0f, -8.0f, + -10.0f, -12.0f, -14.0f, -16.0f, + -18.0f, -20.0f, -22.0f, -24.0f, + -26.0f, -28.0f, -30.0f, -32.0f}; + + QTest::newRow("unique") + << (void *)values << (qreal)2.0f << (void *)doubleValues; + + QTest::newRow("neg") + << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + + QTest::newRow("zero") + << (void *)values << (qreal)0.0f << (void *)nullValues4; +} +void tst_QMatrix::multiplyFactor4x4() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + QMatrix4x4 m1((const qreal *)m1Values); + + QMatrix4x4 m3; + m3 = m1; + m3 *= factor; + QVERIFY(isSame(m3, (const qreal *)m2Values)); + + QMatrix4x4 m4; + m4 = m1 * factor; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix4x4 m5; + m5 = factor * m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); +} + +// Test matrix multiplication by a factor for 4x3 matrices. +void tst_QMatrix::multiplyFactor4x3_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<void *>("m2Values"); + + QTest::newRow("null") + << (void *)nullValues4x3 << (qreal)1.0f << (void *)nullValues4x3; + + QTest::newRow("double identity") + << (void *)identityValues4x3 << (qreal)2.0f << (void *)doubleIdentity4x3; + + static qreal const values[12] = + {1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f}; + static qreal const doubleValues[12] = + {2.0f, 4.0f, 6.0f, 8.0f, + 10.0f, 12.0f, 14.0f, 16.0f, + 18.0f, 20.0f, 22.0f, 24.0f}; + static qreal const negDoubleValues[12] = + {-2.0f, -4.0f, -6.0f, -8.0f, + -10.0f, -12.0f, -14.0f, -16.0f, + -18.0f, -20.0f, -22.0f, -24.0f}; + + QTest::newRow("unique") + << (void *)values << (qreal)2.0f << (void *)doubleValues; + + QTest::newRow("neg") + << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + + QTest::newRow("zero") + << (void *)values << (qreal)0.0f << (void *)nullValues4x3; +} +void tst_QMatrix::multiplyFactor4x3() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + QMatrix4x3 m1((const qreal *)m1Values); + + QMatrix4x3 m3; + m3 = m1; + m3 *= factor; + QVERIFY(isSame(m3, (const qreal *)m2Values)); + + QMatrix4x3 m4; + m4 = m1 * factor; + QVERIFY(isSame(m4, (const qreal *)m2Values)); + + QMatrix4x3 m5; + m5 = factor * m1; + QVERIFY(isSame(m5, (const qreal *)m2Values)); +} + +// Test matrix division by a factor for 2x2 matrices. +void tst_QMatrix::divideFactor2x2_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor2x2_data(); +} +void tst_QMatrix::divideFactor2x2() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + if (factor == 0.0f) + return; + + QMatrix2x2 m2((const qreal *)m2Values); + + QMatrix2x2 m3; + m3 = m2; + m3 /= factor; + QVERIFY(isSame(m3, (const qreal *)m1Values)); + + QMatrix2x2 m4; + m4 = m2 / factor; + QVERIFY(isSame(m4, (const qreal *)m1Values)); +} + +// Test matrix division by a factor for 3x3 matrices. +void tst_QMatrix::divideFactor3x3_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor3x3_data(); +} +void tst_QMatrix::divideFactor3x3() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + if (factor == 0.0f) + return; + + QMatrix3x3 m2((const qreal *)m2Values); + + QMatrix3x3 m3; + m3 = m2; + m3 /= factor; + QVERIFY(isSame(m3, (const qreal *)m1Values)); + + QMatrix3x3 m4; + m4 = m2 / factor; + QVERIFY(isSame(m4, (const qreal *)m1Values)); +} + +// Test matrix division by a factor for 4x4 matrices. +void tst_QMatrix::divideFactor4x4_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor4x4_data(); +} +void tst_QMatrix::divideFactor4x4() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + if (factor == 0.0f) + return; + + QMatrix4x4 m2((const qreal *)m2Values); + + QMatrix4x4 m3; + m3 = m2; + m3 /= factor; + QVERIFY(isSame(m3, (const qreal *)m1Values)); + + QMatrix4x4 m4; + m4 = m2 / factor; + QVERIFY(isSame(m4, (const qreal *)m1Values)); +} + +// Test matrix division by a factor for 4x3 matrices. +void tst_QMatrix::divideFactor4x3_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor4x3_data(); +} +void tst_QMatrix::divideFactor4x3() +{ + QFETCH(void *, m1Values); + QFETCH(qreal, factor); + QFETCH(void *, m2Values); + + if (factor == 0.0f) + return; + + QMatrix4x3 m2((const qreal *)m2Values); + + QMatrix4x3 m3; + m3 = m2; + m3 /= factor; + QVERIFY(isSame(m3, (const qreal *)m1Values)); + + QMatrix4x3 m4; + m4 = m2 / factor; + QVERIFY(isSame(m4, (const qreal *)m1Values)); +} + +// Test matrix negation for 2x2 matrices. +void tst_QMatrix::negate2x2_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor2x2_data(); +} +void tst_QMatrix::negate2x2() +{ + QFETCH(void *, m1Values); + + const qreal *values = (const qreal *)m1Values; + + QMatrix2x2 m1(values); + + qreal negated[4]; + for (int index = 0; index < 4; ++index) + negated[index] = -values[index]; + + QMatrix2x2 m2; + m2 = -m1; + QVERIFY(isSame(m2, negated)); +} + +// Test matrix negation for 3x3 matrices. +void tst_QMatrix::negate3x3_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor3x3_data(); +} +void tst_QMatrix::negate3x3() +{ + QFETCH(void *, m1Values); + + const qreal *values = (const qreal *)m1Values; + + QMatrix3x3 m1(values); + + qreal negated[9]; + for (int index = 0; index < 9; ++index) + negated[index] = -values[index]; + + QMatrix3x3 m2; + m2 = -m1; + QVERIFY(isSame(m2, negated)); +} + +// Test matrix negation for 4x4 matrices. +void tst_QMatrix::negate4x4_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor4x4_data(); +} +void tst_QMatrix::negate4x4() +{ + QFETCH(void *, m1Values); + + const qreal *values = (const qreal *)m1Values; + + QMatrix4x4 m1(values); + + qreal negated[16]; + for (int index = 0; index < 16; ++index) + negated[index] = -values[index]; + + QMatrix4x4 m2; + m2 = -m1; + QVERIFY(isSame(m2, negated)); +} + +// Test matrix negation for 4x3 matrices. +void tst_QMatrix::negate4x3_data() +{ + // Use the same test cases as the multiplyFactor test. + multiplyFactor4x3_data(); +} +void tst_QMatrix::negate4x3() +{ + QFETCH(void *, m1Values); + + const qreal *values = (const qreal *)m1Values; + + QMatrix4x3 m1(values); + + qreal negated[12]; + for (int index = 0; index < 12; ++index) + negated[index] = -values[index]; + + QMatrix4x3 m2; + m2 = -m1; + QVERIFY(isSame(m2, negated)); +} + +// Matrix inverted. This is a more straight-forward implementation +// of the algorithm at http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q24 +// than the optimized version in the QMatrix4x4 code. Hopefully it is +// easier to verify that this version is the same as the reference. + +struct Matrix3 +{ + qreal v[9]; +}; +struct Matrix4 +{ + qreal v[16]; +}; + +static qreal m3Determinant(const Matrix3& m) +{ + return m.v[0] * (m.v[4] * m.v[8] - m.v[7] * m.v[5]) - + m.v[1] * (m.v[3] * m.v[8] - m.v[6] * m.v[5]) + + m.v[2] * (m.v[3] * m.v[7] - m.v[6] * m.v[4]); +} + +static bool m3Inverse(const Matrix3& min, Matrix3& mout) +{ + qreal det = m3Determinant(min); + if (det == 0.0f) + return false; + mout.v[0] = (min.v[4] * min.v[8] - min.v[5] * min.v[7]) / det; + mout.v[1] = -(min.v[1] * min.v[8] - min.v[2] * min.v[7]) / det; + mout.v[2] = (min.v[1] * min.v[5] - min.v[4] * min.v[2]) / det; + mout.v[3] = -(min.v[3] * min.v[8] - min.v[5] * min.v[6]) / det; + mout.v[4] = (min.v[0] * min.v[8] - min.v[6] * min.v[2]) / det; + mout.v[5] = -(min.v[0] * min.v[5] - min.v[3] * min.v[2]) / det; + mout.v[6] = (min.v[3] * min.v[7] - min.v[6] * min.v[4]) / det; + mout.v[7] = -(min.v[0] * min.v[7] - min.v[6] * min.v[1]) / det; + mout.v[8] = (min.v[0] * min.v[4] - min.v[1] * min.v[3]) / det; + return true; +} + +static void m3Transpose(Matrix3& m) +{ + qSwap(m.v[1], m.v[3]); + qSwap(m.v[2], m.v[6]); + qSwap(m.v[5], m.v[7]); +} + +static void m4Submatrix(const Matrix4& min, Matrix3& mout, int i, int j) +{ + for (int di = 0; di < 3; ++di) { + for (int dj = 0; dj < 3; ++dj) { + int si = di + ((di >= i) ? 1 : 0); + int sj = dj + ((dj >= j) ? 1 : 0); + mout.v[di * 3 + dj] = min.v[si * 4 + sj]; + } + } +} + +static qreal m4Determinant(const Matrix4& m) +{ + qreal det; + qreal result = 0.0f; + qreal i = 1.0f; + Matrix3 msub; + for (int n = 0; n < 4; ++n, i *= -1.0f) { + m4Submatrix(m, msub, 0, n); + det = m3Determinant(msub); + result += m.v[n] * det * i; + } + return result; +} + +static void m4Inverse(const Matrix4& min, Matrix4& mout) +{ + qreal det = m4Determinant(min); + Matrix3 msub; + for (int i = 0; i < 4; ++i) { + for (int j = 0; j < 4; ++j) { + qreal sign = 1.0f - ((i + j) % 2) * 2.0f; + m4Submatrix(min, msub, i, j); + mout.v[i + j * 4] = (m3Determinant(msub) * sign) / det; + } + } +} + +// Test matrix inverted for 4x4 matrices. +void tst_QMatrix::inverted4x4_data() +{ + QTest::addColumn<void *>("m1Values"); + QTest::addColumn<void *>("m2Values"); + QTest::addColumn<bool>("invertible"); + + QTest::newRow("null") + << (void *)nullValues4 << (void *)identityValues4 << false; + + QTest::newRow("identity") + << (void *)identityValues4 << (void *)identityValues4 << true; + + QTest::newRow("unique") + << (void *)uniqueValues4 << (void *)identityValues4 << false; + + static Matrix4 const invertible = { + {5.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 6.0f, 0.0f, 3.0f, + 0.0f, 0.0f, 7.0f, 4.0f, + 0.0f, 0.0f, 0.0f, 1.0f} + }; + static Matrix4 inverted; + m4Inverse(invertible, inverted); + + QTest::newRow("invertible") + << (void *)invertible.v << (void *)inverted.v << true; + + static Matrix4 const translate = { + {1.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 1.0f, 0.0f, 3.0f, + 0.0f, 0.0f, 1.0f, 4.0f, + 0.0f, 0.0f, 0.0f, 1.0f} + }; + static Matrix4 const inverseTranslate = { + {1.0f, 0.0f, 0.0f, -2.0f, + 0.0f, 1.0f, 0.0f, -3.0f, + 0.0f, 0.0f, 1.0f, -4.0f, + 0.0f, 0.0f, 0.0f, 1.0f} + }; + + QTest::newRow("translate") + << (void *)translate.v << (void *)inverseTranslate.v << true; +} +void tst_QMatrix::inverted4x4() +{ + QFETCH(void *, m1Values); + QFETCH(void *, m2Values); + QFETCH(bool, invertible); + + QMatrix4x4 m1((const qreal *)m1Values); + + if (invertible) + QVERIFY(m1.determinant() != 0.0f); + else + QVERIFY(m1.determinant() == 0.0f); + + Matrix4 m1alt; + memcpy(m1alt.v, (const qreal *)m1Values, sizeof(m1alt.v)); + + QCOMPARE((float)(m1.determinant()), (float)(m4Determinant(m1alt))); + + QMatrix4x4 m2; + bool inv; + m2 = m1.inverted(&inv); + QVERIFY(isSame(m2, (const qreal *)m2Values)); + + if (invertible) { + QVERIFY(inv); + + Matrix4 m2alt; + m4Inverse(m1alt, m2alt); + QVERIFY(isSame(m2, m2alt.v)); + + QMatrix4x4 m3; + m3 = m1 * m2; + QVERIFY(isIdentity(m3)); + + QMatrix4x4 m4; + m4 = m2 * m1; + QVERIFY(isIdentity(m4)); + } else { + QVERIFY(!inv); + } + + // Test again, after inferring the special matrix type. + m1.inferSpecialType(); + m2 = m1.inverted(&inv); + QVERIFY(isSame(m2, (const qreal *)m2Values)); + QCOMPARE(inv, invertible); +} + +void tst_QMatrix::orthonormalInverse4x4() +{ + QMatrix4x4 m1; + QVERIFY(matrixFuzzyCompare(m1.inverted(), m1)); + + QMatrix4x4 m2; + m2.rotate(45.0, 1.0, 0.0, 0.0); + m2.translate(10.0, 0.0, 0.0); + + // Use inferSpecialType() to drop the internal flags that + // mark the matrix as orthonormal. This will force inverted() + // to compute m3.inverted() the long way. We can then compare + // the result to what the faster algorithm produces on m2. + QMatrix4x4 m3 = m2; + m3.inferSpecialType(); + bool invertible; + QVERIFY(matrixFuzzyCompare(m2.inverted(&invertible), m3.inverted())); + QVERIFY(invertible); + + QMatrix4x4 m4; + m4.rotate(45.0, 0.0, 1.0, 0.0); + QMatrix4x4 m5 = m4; + m5.inferSpecialType(); + QVERIFY(matrixFuzzyCompare(m4.inverted(), m5.inverted())); + + QMatrix4x4 m6; + m1.rotate(88, 0.0, 0.0, 1.0); + m1.translate(-20.0, 20.0, 15.0); + m1.rotate(25, 1.0, 0.0, 0.0); + QMatrix4x4 m7 = m6; + m7.inferSpecialType(); + QVERIFY(matrixFuzzyCompare(m6.inverted(), m7.inverted())); +} + +// Test the generation and use of 4x4 scale matrices. +void tst_QMatrix::scale4x4_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<void *>("resultValues"); + + static const qreal nullScale[] = + {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (void *)nullScale; + + QTest::newRow("identity") + << (qreal)1.0f << (qreal)1.0f << (qreal)1.0f << (void *)identityValues4; + + static const qreal doubleScale[] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 2.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 2.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("double") + << (qreal)2.0f << (qreal)2.0f << (qreal)2.0f << (void *)doubleScale; + + static const qreal complexScale[] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 11.0f, 0.0f, 0.0f, + 0.0f, 0.0f, -6.5f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("complex") + << (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexScale; + + static const qreal complexScale2D[] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -11.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("complex2D") + << (qreal)2.0f << (qreal)-11.0f << (qreal)1.0f << (void *)complexScale2D; +} +void tst_QMatrix::scale4x4() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(void *, resultValues); + + QMatrix4x4 result((const qreal *)resultValues); + + QMatrix4x4 m1; + m1.scale(QVector3D(x, y, z)); + QVERIFY(isSame(m1, (const qreal *)resultValues)); + + QMatrix4x4 m2; + m2.scale(x, y, z); + QVERIFY(isSame(m2, (const qreal *)resultValues)); + + if (z == 1.0f) { + QMatrix4x4 m2b; + m2b.scale(x, y); + QVERIFY(m2b == m2); + } + + QVector3D v1(2.0f, 3.0f, -4.0f); + QVector3D v2 = m1 * v1; + QCOMPARE(v2.x(), (qreal)(2.0f * x)); + QCOMPARE(v2.y(), (qreal)(3.0f * y)); + QCOMPARE(v2.z(), (qreal)(-4.0f * z)); + + v2 = v1 * m1; + QCOMPARE(v2.x(), (qreal)(2.0f * x)); + QCOMPARE(v2.y(), (qreal)(3.0f * y)); + QCOMPARE(v2.z(), (qreal)(-4.0f * z)); + + QVector4D v3(2.0f, 3.0f, -4.0f, 34.0f); + QVector4D v4 = m1 * v3; + QCOMPARE(v4.x(), (qreal)(2.0f * x)); + QCOMPARE(v4.y(), (qreal)(3.0f * y)); + QCOMPARE(v4.z(), (qreal)(-4.0f * z)); + QCOMPARE(v4.w(), (qreal)34.0f); + + v4 = v3 * m1; + QCOMPARE(v4.x(), (qreal)(2.0f * x)); + QCOMPARE(v4.y(), (qreal)(3.0f * y)); + QCOMPARE(v4.z(), (qreal)(-4.0f * z)); + QCOMPARE(v4.w(), (qreal)34.0f); + + QPoint p1(2, 3); + QPoint p2 = m1 * p1; + QCOMPARE(p2.x(), (int)(2.0f * x)); + QCOMPARE(p2.y(), (int)(3.0f * y)); + + p2 = p1 * m1; + QCOMPARE(p2.x(), (int)(2.0f * x)); + QCOMPARE(p2.y(), (int)(3.0f * y)); + + QPointF p3(2.0f, 3.0f); + QPointF p4 = m1 * p3; + QCOMPARE(p4.x(), (qreal)(2.0f * x)); + QCOMPARE(p4.y(), (qreal)(3.0f * y)); + + p4 = p3 * m1; + QCOMPARE(p4.x(), (qreal)(2.0f * x)); + QCOMPARE(p4.y(), (qreal)(3.0f * y)); + + QMatrix4x4 m3(uniqueValues4); + QMatrix4x4 m4(m3); + m4.scale(x, y, z); + QVERIFY(m4 == m3 * m1); + + if (x == y && y == z) { + QMatrix4x4 m5; + m5.scale(x); + QVERIFY(isSame(m5, (const qreal *)resultValues)); + } + + if (z == 1.0f) { + QMatrix4x4 m4b(m3); + m4b.scale(x, y); + QVERIFY(m4b == m4); + } + + // Test coverage when the special matrix type is unknown. + + QMatrix4x4 m6; + m6(0, 0) = 1.0f; + m6.scale(QVector3D(x, y, z)); + QVERIFY(isSame(m6, (const qreal *)resultValues)); + + QMatrix4x4 m7; + m7(0, 0) = 1.0f; + m7.scale(x, y, z); + QVERIFY(isSame(m7, (const qreal *)resultValues)); + + if (x == y && y == z) { + QMatrix4x4 m8; + m8(0, 0) = 1.0f; + m8.scale(x); + QVERIFY(isSame(m8, (const qreal *)resultValues)); + + m8.inferSpecialType(); + m8.scale(1.0f); + QVERIFY(isSame(m8, (const qreal *)resultValues)); + + QMatrix4x4 m9; + m9.translate(0.0f, 0.0f, 0.0f); + m9.scale(x); + QVERIFY(isSame(m9, (const qreal *)resultValues)); + } +} + +// Test the generation and use of 4x4 translation matrices. +void tst_QMatrix::translate4x4_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<void *>("resultValues"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (void *)identityValues4; + + static const qreal identityTranslate[] = + {1.0f, 0.0f, 0.0f, 1.0f, + 0.0f, 1.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 1.0f, 1.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("identity") + << (qreal)1.0f << (qreal)1.0f << (qreal)1.0f << (void *)identityTranslate; + + static const qreal complexTranslate[] = + {1.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 1.0f, 0.0f, 11.0f, + 0.0f, 0.0f, 1.0f, -6.5f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("complex") + << (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexTranslate; + + static const qreal complexTranslate2D[] = + {1.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 1.0f, 0.0f, -11.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("complex2D") + << (qreal)2.0f << (qreal)-11.0f << (qreal)0.0f << (void *)complexTranslate2D; +} +void tst_QMatrix::translate4x4() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(void *, resultValues); + + QMatrix4x4 result((const qreal *)resultValues); + + QMatrix4x4 m1; + m1.translate(QVector3D(x, y, z)); + QVERIFY(isSame(m1, (const qreal *)resultValues)); + + QMatrix4x4 m2; + m2.translate(x, y, z); + QVERIFY(isSame(m2, (const qreal *)resultValues)); + + if (z == 0.0f) { + QMatrix4x4 m2b; + m2b.translate(x, y); + QVERIFY(m2b == m2); + } + + QVector3D v1(2.0f, 3.0f, -4.0f); + QVector3D v2 = m1 * v1; + QCOMPARE(v2.x(), (qreal)(2.0f + x)); + QCOMPARE(v2.y(), (qreal)(3.0f + y)); + QCOMPARE(v2.z(), (qreal)(-4.0f + z)); + + QVector4D v3(2.0f, 3.0f, -4.0f, 1.0f); + QVector4D v4 = m1 * v3; + QCOMPARE(v4.x(), (qreal)(2.0f + x)); + QCOMPARE(v4.y(), (qreal)(3.0f + y)); + QCOMPARE(v4.z(), (qreal)(-4.0f + z)); + QCOMPARE(v4.w(), (qreal)1.0f); + + QVector4D v5(2.0f, 3.0f, -4.0f, 34.0f); + QVector4D v6 = m1 * v5; + QCOMPARE(v6.x(), (qreal)(2.0f + x * 34.0f)); + QCOMPARE(v6.y(), (qreal)(3.0f + y * 34.0f)); + QCOMPARE(v6.z(), (qreal)(-4.0f + z * 34.0f)); + QCOMPARE(v6.w(), (qreal)34.0f); + + QPoint p1(2, 3); + QPoint p2 = m1 * p1; + QCOMPARE(p2.x(), (int)(2.0f + x)); + QCOMPARE(p2.y(), (int)(3.0f + y)); + + QPointF p3(2.0f, 3.0f); + QPointF p4 = m1 * p3; + QCOMPARE(p4.x(), (qreal)(2.0f + x)); + QCOMPARE(p4.y(), (qreal)(3.0f + y)); + + QMatrix4x4 m3(uniqueValues4); + QMatrix4x4 m4(m3); + m4.translate(x, y, z); + QVERIFY(m4 == m3 * m1); + + if (z == 0.0f) { + QMatrix4x4 m4b(m3); + m4b.translate(x, y); + QVERIFY(m4b == m4); + } +} + +// Test the generation and use of 4x4 rotation matrices. +void tst_QMatrix::rotate4x4_data() +{ + QTest::addColumn<qreal>("angle"); + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<void *>("resultValues"); + + static const qreal nullRotate[] = + {0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("null") + << (qreal)90.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (void *)nullRotate; + + static const qreal noRotate[] = + {1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("zerodegrees") + << (qreal)0.0f + << (qreal)2.0f << (qreal)3.0f << (qreal)-4.0f + << (void *)noRotate; + + static const qreal xRotate[] = + {1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, -1.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("xrotate") + << (qreal)90.0f + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (void *)xRotate; + + static const qreal xRotateNeg[] = + {1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("-xrotate") + << (qreal)90.0f + << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f + << (void *)xRotateNeg; + + static const qreal yRotate[] = + {0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("yrotate") + << (qreal)90.0f + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (void *)yRotate; + + static const qreal yRotateNeg[] = + {0.0f, 0.0f, -1.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("-yrotate") + << (qreal)90.0f + << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f + << (void *)yRotateNeg; + + static const qreal zRotate[] = + {0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("zrotate") + << (qreal)90.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (void *)zRotate; + + static const qreal zRotateNeg[] = + {0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + QTest::newRow("-zrotate") + << (qreal)90.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f + << (void *)zRotateNeg; + + // Algorithm from http://en.wikipedia.org/wiki/Rotation_matrix. + // Deliberately different from the one in the code for cross-checking. + static qreal complexRotate[16]; + qreal x = 1.0f; + qreal y = 2.0f; + qreal z = -6.0f; + qreal angle = -45.0f; + qreal c = qCos(angle * M_PI / 180.0f); + qreal s = qSin(angle * M_PI / 180.0f); + qreal len = qSqrt(x * x + y * y + z * z); + qreal xu = x / len; + qreal yu = y / len; + qreal zu = z / len; + complexRotate[0] = (qreal)((1 - xu * xu) * c + xu * xu); + complexRotate[1] = (qreal)(-zu * s - xu * yu * c + xu * yu); + complexRotate[2] = (qreal)(yu * s - xu * zu * c + xu * zu); + complexRotate[3] = 0; + complexRotate[4] = (qreal)(zu * s - xu * yu * c + xu * yu); + complexRotate[5] = (qreal)((1 - yu * yu) * c + yu * yu); + complexRotate[6] = (qreal)(-xu * s - yu * zu * c + yu * zu); + complexRotate[7] = 0; + complexRotate[8] = (qreal)(-yu * s - xu * zu * c + xu * zu); + complexRotate[9] = (qreal)(xu * s - yu * zu * c + yu * zu); + complexRotate[10] = (qreal)((1 - zu * zu) * c + zu * zu); + complexRotate[11] = 0; + complexRotate[12] = 0; + complexRotate[13] = 0; + complexRotate[14] = 0; + complexRotate[15] = 1; + + QTest::newRow("complex") + << (qreal)angle + << (qreal)x << (qreal)y << (qreal)z + << (void *)complexRotate; +} +void tst_QMatrix::rotate4x4() +{ + QFETCH(qreal, angle); + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(void *, resultValues); + + QMatrix4x4 m1; + m1.rotate(angle, QVector3D(x, y, z)); + QVERIFY(isSame(m1, (const qreal *)resultValues)); + + QMatrix4x4 m2; + m2.rotate(angle, x, y, z); + QVERIFY(isSame(m2, (const qreal *)resultValues)); + + QMatrix4x4 m3(uniqueValues4); + QMatrix4x4 m4(m3); + m4.rotate(angle, x, y, z); + QVERIFY(matrixFuzzyCompare(m4, m3 * m1)); + + // Null vectors don't make sense for quaternion rotations. + if (x != 0 || y != 0 || z != 0) { + QMatrix4x4 m5; + m5.rotate(QQuaternion::fromAxisAndAngle(QVector3D(x, y, z), angle)); + QVERIFY(isSame(m5, (const qreal *)resultValues)); + } + +#define ROTATE4(xin,yin,zin,win,xout,yout,zout,wout) \ + do { \ + xout = ((const qreal *)resultValues)[0] * xin + \ + ((const qreal *)resultValues)[1] * yin + \ + ((const qreal *)resultValues)[2] * zin + \ + ((const qreal *)resultValues)[3] * win; \ + yout = ((const qreal *)resultValues)[4] * xin + \ + ((const qreal *)resultValues)[5] * yin + \ + ((const qreal *)resultValues)[6] * zin + \ + ((const qreal *)resultValues)[7] * win; \ + zout = ((const qreal *)resultValues)[8] * xin + \ + ((const qreal *)resultValues)[9] * yin + \ + ((const qreal *)resultValues)[10] * zin + \ + ((const qreal *)resultValues)[11] * win; \ + wout = ((const qreal *)resultValues)[12] * xin + \ + ((const qreal *)resultValues)[13] * yin + \ + ((const qreal *)resultValues)[14] * zin + \ + ((const qreal *)resultValues)[15] * win; \ + } while (0) + + // Rotate various test vectors using the straight-forward approach. + qreal v1x, v1y, v1z, v1w; + ROTATE4(2.0f, 3.0f, -4.0f, 1.0f, v1x, v1y, v1z, v1w); + v1x /= v1w; + v1y /= v1w; + v1z /= v1w; + qreal v3x, v3y, v3z, v3w; + ROTATE4(2.0f, 3.0f, -4.0f, 1.0f, v3x, v3y, v3z, v3w); + qreal v5x, v5y, v5z, v5w; + ROTATE4(2.0f, 3.0f, -4.0f, 34.0f, v5x, v5y, v5z, v5w); + qreal p1x, p1y, p1z, p1w; + ROTATE4(2.0f, 3.0f, 0.0f, 1.0f, p1x, p1y, p1z, p1w); + p1x /= p1w; + p1y /= p1w; + p1z /= p1w; + + QVector3D v1(2.0f, 3.0f, -4.0f); + QVector3D v2 = m1 * v1; + QVERIFY(fuzzyCompare(v2.x(), v1x)); + QVERIFY(fuzzyCompare(v2.y(), v1y)); + QVERIFY(fuzzyCompare(v2.z(), v1z)); + + QVector4D v3(2.0f, 3.0f, -4.0f, 1.0f); + QVector4D v4 = m1 * v3; + QVERIFY(fuzzyCompare(v4.x(), v3x)); + QVERIFY(fuzzyCompare(v4.y(), v3y)); + QVERIFY(fuzzyCompare(v4.z(), v3z)); + QVERIFY(fuzzyCompare(v4.w(), v3w)); + + QVector4D v5(2.0f, 3.0f, -4.0f, 34.0f); + QVector4D v6 = m1 * v5; + QVERIFY(fuzzyCompare(v6.x(), v5x)); + QVERIFY(fuzzyCompare(v6.y(), v5y)); + QVERIFY(fuzzyCompare(v6.z(), v5z)); + QVERIFY(fuzzyCompare(v6.w(), v5w)); + + QPoint p1(2, 3); + QPoint p2 = m1 * p1; + QCOMPARE(p2.x(), qRound(p1x)); + QCOMPARE(p2.y(), qRound(p1y)); + + QPointF p3(2.0f, 3.0f); + QPointF p4 = m1 * p3; + QVERIFY(fuzzyCompare((float)(p4.x()), p1x)); + QVERIFY(fuzzyCompare((float)(p4.y()), p1y)); + + if (x != 0 || y != 0 || z != 0) { + QQuaternion q = QQuaternion::fromAxisAndAngle(QVector3D(x, y, z), angle); + QVector3D vq = q.rotateVector(v1); + QVERIFY(fuzzyCompare(vq.x(), v1x)); + QVERIFY(fuzzyCompare(vq.y(), v1y)); + QVERIFY(fuzzyCompare(vq.z(), v1z)); + } +} + +static bool isSame(const QMatrix3x3& m1, const Matrix3& m2) +{ + for (int row = 0; row < 3; ++row) { + for (int col = 0; col < 3; ++col) { + if (!fuzzyCompare(m1(row, col), m2.v[row * 3 + col])) + return false; + } + } + return true; +} + +// Test the computation of normal matrices from 4x4 transformation matrices. +void tst_QMatrix::normalMatrix_data() +{ + QTest::addColumn<void *>("mValues"); + + QTest::newRow("identity") + << (void *)identityValues4; + QTest::newRow("unique") + << (void *)uniqueValues4; // Not invertible because determinant == 0. + + static qreal const translateValues[16] = + {1.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 1.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 1.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const scaleValues[16] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 7.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 9.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const bothValues[16] = + {2.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 7.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 9.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const nullScaleValues1[16] = + {0.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 7.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 9.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const nullScaleValues2[16] = + {2.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 0.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 9.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const nullScaleValues3[16] = + {2.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 7.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 0.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + + QTest::newRow("translate") << (void *)translateValues; + QTest::newRow("scale") << (void *)scaleValues; + QTest::newRow("both") << (void *)bothValues; + QTest::newRow("null scale 1") << (void *)nullScaleValues1; + QTest::newRow("null scale 2") << (void *)nullScaleValues2; + QTest::newRow("null scale 3") << (void *)nullScaleValues3; +} +void tst_QMatrix::normalMatrix() +{ + QFETCH(void *, mValues); + const qreal *values = (const qreal *)mValues; + + // Compute the expected answer the long way. + Matrix3 min; + Matrix3 answer; + min.v[0] = values[0]; + min.v[1] = values[1]; + min.v[2] = values[2]; + min.v[3] = values[4]; + min.v[4] = values[5]; + min.v[5] = values[6]; + min.v[6] = values[8]; + min.v[7] = values[9]; + min.v[8] = values[10]; + bool invertible = m3Inverse(min, answer); + m3Transpose(answer); + + // Perform the test. + QMatrix4x4 m1(values); + QMatrix3x3 n1 = m1.normalMatrix(); + + if (invertible) + QVERIFY(::isSame(n1, answer)); + else + QVERIFY(isIdentity(n1)); + + // Perform the test again, after inferring special matrix types. + // This tests the optimized paths in the normalMatrix() function. + m1.inferSpecialType(); + n1 = m1.normalMatrix(); + + if (invertible) + QVERIFY(::isSame(n1, answer)); + else + QVERIFY(isIdentity(n1)); +} + +// Test optimized transformations on 4x4 matrices. +void tst_QMatrix::optimizedTransforms() +{ + static qreal const translateValues[16] = + {1.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 1.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 1.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const translateDoubleValues[16] = + {1.0f, 0.0f, 0.0f, 8.0f, + 0.0f, 1.0f, 0.0f, 10.0f, + 0.0f, 0.0f, 1.0f, -6.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const scaleValues[16] = + {2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 7.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 9.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const scaleDoubleValues[16] = + {4.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 49.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 81.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const bothValues[16] = + {2.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 7.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 9.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const bothReverseValues[16] = + {2.0f, 0.0f, 0.0f, 4.0f * 2.0f, + 0.0f, 7.0f, 0.0f, 5.0f * 7.0f, + 0.0f, 0.0f, 9.0f, -3.0f * 9.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const bothThenTranslateValues[16] = + {2.0f, 0.0f, 0.0f, 4.0f + 2.0f * 4.0f, + 0.0f, 7.0f, 0.0f, 5.0f + 7.0f * 5.0f, + 0.0f, 0.0f, 9.0f, -3.0f + 9.0f * -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + static qreal const bothThenScaleValues[16] = + {4.0f, 0.0f, 0.0f, 4.0f, + 0.0f, 49.0f, 0.0f, 5.0f, + 0.0f, 0.0f, 81.0f, -3.0f, + 0.0f, 0.0f, 0.0f, 1.0f}; + + QMatrix4x4 translate(translateValues); + QMatrix4x4 scale(scaleValues); + QMatrix4x4 both(bothValues); + + QMatrix4x4 m1; + m1.translate(4.0f, 5.0f, -3.0f); + QVERIFY(isSame(m1, translateValues)); + m1.translate(4.0f, 5.0f, -3.0f); + QVERIFY(isSame(m1, translateDoubleValues)); + + QMatrix4x4 m2; + m2.translate(QVector3D(4.0f, 5.0f, -3.0f)); + QVERIFY(isSame(m2, translateValues)); + m2.translate(QVector3D(4.0f, 5.0f, -3.0f)); + QVERIFY(isSame(m2, translateDoubleValues)); + + QMatrix4x4 m3; + m3.scale(2.0f, 7.0f, 9.0f); + QVERIFY(isSame(m3, scaleValues)); + m3.scale(2.0f, 7.0f, 9.0f); + QVERIFY(isSame(m3, scaleDoubleValues)); + + QMatrix4x4 m4; + m4.scale(QVector3D(2.0f, 7.0f, 9.0f)); + QVERIFY(isSame(m4, scaleValues)); + m4.scale(QVector3D(2.0f, 7.0f, 9.0f)); + QVERIFY(isSame(m4, scaleDoubleValues)); + + QMatrix4x4 m5; + m5.translate(4.0f, 5.0f, -3.0f); + m5.scale(2.0f, 7.0f, 9.0f); + QVERIFY(isSame(m5, bothValues)); + m5.translate(4.0f, 5.0f, -3.0f); + QVERIFY(isSame(m5, bothThenTranslateValues)); + + QMatrix4x4 m6; + m6.translate(QVector3D(4.0f, 5.0f, -3.0f)); + m6.scale(QVector3D(2.0f, 7.0f, 9.0f)); + QVERIFY(isSame(m6, bothValues)); + m6.translate(QVector3D(4.0f, 5.0f, -3.0f)); + QVERIFY(isSame(m6, bothThenTranslateValues)); + + QMatrix4x4 m7; + m7.scale(2.0f, 7.0f, 9.0f); + m7.translate(4.0f, 5.0f, -3.0f); + QVERIFY(isSame(m7, bothReverseValues)); + + QMatrix4x4 m8; + m8.scale(QVector3D(2.0f, 7.0f, 9.0f)); + m8.translate(QVector3D(4.0f, 5.0f, -3.0f)); + QVERIFY(isSame(m8, bothReverseValues)); + + QMatrix4x4 m9; + m9.translate(4.0f, 5.0f, -3.0f); + m9.scale(2.0f, 7.0f, 9.0f); + QVERIFY(isSame(m9, bothValues)); + m9.scale(2.0f, 7.0f, 9.0f); + QVERIFY(isSame(m9, bothThenScaleValues)); + + QMatrix4x4 m10; + m10.translate(QVector3D(4.0f, 5.0f, -3.0f)); + m10.scale(QVector3D(2.0f, 7.0f, 9.0f)); + QVERIFY(isSame(m10, bothValues)); + m10.scale(QVector3D(2.0f, 7.0f, 9.0f)); + QVERIFY(isSame(m10, bothThenScaleValues)); +} + +// Test orthographic projections. +void tst_QMatrix::ortho() +{ + QMatrix4x4 m1; + m1.ortho(QRect(0, 0, 300, 150)); + QPointF p1 = m1 * QPointF(0, 0); + QPointF p2 = m1 * QPointF(300, 0); + QPointF p3 = m1 * QPointF(0, 150); + QPointF p4 = m1 * QPointF(300, 150); + QVector3D p5 = m1 * QVector3D(300, 150, 1); + QVERIFY(fuzzyCompare(p1.x(), -1.0)); + QVERIFY(fuzzyCompare(p1.y(), 1.0)); + QVERIFY(fuzzyCompare(p2.x(), 1.0)); + QVERIFY(fuzzyCompare(p2.y(), 1.0)); + QVERIFY(fuzzyCompare(p3.x(), -1.0)); + QVERIFY(fuzzyCompare(p3.y(), -1.0)); + QVERIFY(fuzzyCompare(p4.x(), 1.0)); + QVERIFY(fuzzyCompare(p4.y(), -1.0)); + QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); + QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); + QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + + QMatrix4x4 m2; + m2.ortho(QRectF(0, 0, 300, 150)); + p1 = m2 * QPointF(0, 0); + p2 = m2 * QPointF(300, 0); + p3 = m2 * QPointF(0, 150); + p4 = m2 * QPointF(300, 150); + p5 = m2 * QVector3D(300, 150, 1); + QVERIFY(fuzzyCompare(p1.x(), -1.0)); + QVERIFY(fuzzyCompare(p1.y(), 1.0)); + QVERIFY(fuzzyCompare(p2.x(), 1.0)); + QVERIFY(fuzzyCompare(p2.y(), 1.0)); + QVERIFY(fuzzyCompare(p3.x(), -1.0)); + QVERIFY(fuzzyCompare(p3.y(), -1.0)); + QVERIFY(fuzzyCompare(p4.x(), 1.0)); + QVERIFY(fuzzyCompare(p4.y(), -1.0)); + QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); + QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); + QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + + QMatrix4x4 m3; + m3.ortho(0, 300, 150, 0, -1, 1); + p1 = m3 * QPointF(0, 0); + p2 = m3 * QPointF(300, 0); + p3 = m3 * QPointF(0, 150); + p4 = m3 * QPointF(300, 150); + p5 = m3 * QVector3D(300, 150, 1); + QVERIFY(fuzzyCompare(p1.x(), -1.0)); + QVERIFY(fuzzyCompare(p1.y(), 1.0)); + QVERIFY(fuzzyCompare(p2.x(), 1.0)); + QVERIFY(fuzzyCompare(p2.y(), 1.0)); + QVERIFY(fuzzyCompare(p3.x(), -1.0)); + QVERIFY(fuzzyCompare(p3.y(), -1.0)); + QVERIFY(fuzzyCompare(p4.x(), 1.0)); + QVERIFY(fuzzyCompare(p4.y(), -1.0)); + QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); + QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); + QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + + QMatrix4x4 m4; + m4.ortho(0, 300, 150, 0, -2, 3); + p1 = m4 * QPointF(0, 0); + p2 = m4 * QPointF(300, 0); + p3 = m4 * QPointF(0, 150); + p4 = m4 * QPointF(300, 150); + p5 = m4 * QVector3D(300, 150, 1); + QVERIFY(fuzzyCompare(p1.x(), -1.0)); + QVERIFY(fuzzyCompare(p1.y(), 1.0)); + QVERIFY(fuzzyCompare(p2.x(), 1.0)); + QVERIFY(fuzzyCompare(p2.y(), 1.0)); + QVERIFY(fuzzyCompare(p3.x(), -1.0)); + QVERIFY(fuzzyCompare(p3.y(), -1.0)); + QVERIFY(fuzzyCompare(p4.x(), 1.0)); + QVERIFY(fuzzyCompare(p4.y(), -1.0)); + QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); + QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); + QVERIFY(fuzzyCompare(p5.z(), (qreal)-0.6)); + + // An empty view volume should leave the matrix alone. + QMatrix4x4 m5; + m5.ortho(0, 0, 150, 0, -2, 3); + QVERIFY(m5.isIdentity()); + m5.ortho(0, 300, 150, 150, -2, 3); + QVERIFY(m5.isIdentity()); + m5.ortho(0, 300, 150, 0, 2, 2); + QVERIFY(m5.isIdentity()); +} + +// Test perspective frustum projections. +void tst_QMatrix::frustum() +{ + QMatrix4x4 m1; + m1.frustum(-1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f); + QVector3D p1 = m1 * QVector3D(-1.0f, -1.0f, 1.0f); + QVector3D p2 = m1 * QVector3D(1.0f, -1.0f, 1.0f); + QVector3D p3 = m1 * QVector3D(-1.0f, 1.0f, 1.0f); + QVector3D p4 = m1 * QVector3D(1.0f, 1.0f, 1.0f); + QVector3D p5 = m1 * QVector3D(0.0f, 0.0f, 2.0f); + QVERIFY(fuzzyCompare(p1.x(), -1.0f)); + QVERIFY(fuzzyCompare(p1.y(), -1.0f)); + QVERIFY(fuzzyCompare(p1.z(), -1.0f)); + QVERIFY(fuzzyCompare(p2.x(), 1.0f)); + QVERIFY(fuzzyCompare(p2.y(), -1.0f)); + QVERIFY(fuzzyCompare(p2.z(), -1.0f)); + QVERIFY(fuzzyCompare(p3.x(), -1.0f)); + QVERIFY(fuzzyCompare(p3.y(), 1.0f)); + QVERIFY(fuzzyCompare(p3.z(), -1.0f)); + QVERIFY(fuzzyCompare(p4.x(), 1.0f)); + QVERIFY(fuzzyCompare(p4.y(), 1.0f)); + QVERIFY(fuzzyCompare(p4.z(), -1.0f)); + QVERIFY(fuzzyCompare(p5.x(), 0.0f)); + QVERIFY(fuzzyCompare(p5.y(), 0.0f)); + QVERIFY(fuzzyCompare(p5.z(), -0.5f)); + + // An empty view volume should leave the matrix alone. + QMatrix4x4 m5; + m5.frustum(0, 0, 150, 0, -2, 3); + QVERIFY(m5.isIdentity()); + m5.frustum(0, 300, 150, 150, -2, 3); + QVERIFY(m5.isIdentity()); + m5.frustum(0, 300, 150, 0, 2, 2); + QVERIFY(m5.isIdentity()); +} + +// Test perspective field-of-view projections. +void tst_QMatrix::perspective() +{ + QMatrix4x4 m1; + m1.perspective(45.0f, 1.0f, -1.0f, 1.0f); + QVector3D p1 = m1 * QVector3D(-1.0f, -1.0f, 1.0f); + QVector3D p2 = m1 * QVector3D(1.0f, -1.0f, 1.0f); + QVector3D p3 = m1 * QVector3D(-1.0f, 1.0f, 1.0f); + QVector3D p4 = m1 * QVector3D(1.0f, 1.0f, 1.0f); + QVector3D p5 = m1 * QVector3D(0.0f, 0.0f, 2.0f); + QVERIFY(fuzzyCompare(p1.x(), 2.41421)); + QVERIFY(fuzzyCompare(p1.y(), 2.41421)); + QVERIFY(fuzzyCompare(p1.z(), -1)); + QVERIFY(fuzzyCompare(p2.x(), -2.41421)); + QVERIFY(fuzzyCompare(p2.y(), 2.41421)); + QVERIFY(fuzzyCompare(p2.z(), -1.0f)); + QVERIFY(fuzzyCompare(p3.x(), 2.41421)); + QVERIFY(fuzzyCompare(p3.y(), -2.41421)); + QVERIFY(fuzzyCompare(p3.z(), -1.0f)); + QVERIFY(fuzzyCompare(p4.x(), -2.41421)); + QVERIFY(fuzzyCompare(p4.y(), -2.41421)); + QVERIFY(fuzzyCompare(p4.z(), -1.0f)); + QVERIFY(fuzzyCompare(p5.x(), 0.0f)); + QVERIFY(fuzzyCompare(p5.y(), 0.0f)); + QVERIFY(fuzzyCompare(p5.z(), -0.5f)); + + // An empty view volume should leave the matrix alone. + QMatrix4x4 m5; + m5.perspective(45.0f, 1.0f, 0.0f, 0.0f); + QVERIFY(m5.isIdentity()); + m5.perspective(45.0f, 0.0f, -1.0f, 1.0f); + QVERIFY(m5.isIdentity()); + m5.perspective(0.0f, 1.0f, -1.0f, 1.0f); + QVERIFY(m5.isIdentity()); +} + +// Test left-handed vs right-handed coordinate flipping. +void tst_QMatrix::flipCoordinates() +{ + QMatrix4x4 m1; + m1.flipCoordinates(); + QVector3D p1 = m1 * QVector3D(2, 3, 4); + QVERIFY(p1 == QVector3D(2, -3, -4)); + + QMatrix4x4 m2; + m2.scale(2.0f, 3.0f, 1.0f); + m2.flipCoordinates(); + QVector3D p2 = m2 * QVector3D(2, 3, 4); + QVERIFY(p2 == QVector3D(4, -9, -4)); + + QMatrix4x4 m3; + m3.translate(2.0f, 3.0f, 1.0f); + m3.flipCoordinates(); + QVector3D p3 = m3 * QVector3D(2, 3, 4); + QVERIFY(p3 == QVector3D(4, 0, -3)); + + QMatrix4x4 m4; + m4.rotate(90.0f, 0.0f, 0.0f, 1.0f); + m4.flipCoordinates(); + QVector3D p4 = m4 * QVector3D(2, 3, 4); + QVERIFY(p4 == QVector3D(3, 2, -4)); +} + +// Test conversion of generic matrices to and from the non-generic types. +void tst_QMatrix::convertGeneric() +{ + QMatrix4x3 m1(uniqueValues4x3); + + static qreal const unique4x4[16] = { + 1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; +#if !defined(QT_NO_MEMBER_TEMPLATES) + QMatrix4x4 m4(m1); + QVERIFY(isSame(m4, unique4x4)); +#endif + QMatrix4x4 m5 = qGenericMatrixToMatrix4x4(m1); + QVERIFY(isSame(m5, unique4x4)); + + static qreal const conv4x4[12] = { + 1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f + }; + QMatrix4x4 m9(uniqueValues4); +#if !defined(QT_NO_MEMBER_TEMPLATES) + QMatrix4x3 m10 = m9.toGenericMatrix<4, 3>(); + QVERIFY(isSame(m10, conv4x4)); +#endif + + QMatrix4x3 m11 = qGenericMatrixFromMatrix4x4<4, 3>(m9); + QVERIFY(isSame(m11, conv4x4)); +} + +void tst_QMatrix::extractAxisRotation_data() +{ + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); + QTest::addColumn<float>("angle"); + + QTest::newRow("1, 0, 0, 0 deg") << 1.0f << 0.0f << 0.0f << 0.0f; + QTest::newRow("1, 0, 0, 90 deg") << 1.0f << 0.0f << 0.0f << 90.0f; + QTest::newRow("1, 0, 0, 270 deg") << 1.0f << 0.0f << 0.0f << 270.0f; + QTest::newRow("1, 0, 0, 45 deg") << 1.0f << 0.0f << 0.0f << 45.0f; + QTest::newRow("1, 0, 0, 120 deg") << 1.0f << 0.0f << 0.0f << 120.0f; + QTest::newRow("1, 0, 0, 300 deg") << 1.0f << 0.0f << 0.0f << 300.0f; + + QTest::newRow("0, 1, 0, 90 deg") << 0.0f << 1.0f << 0.0f << 90.0f; + QTest::newRow("0, 1, 0, 270 deg") << 0.0f << 1.0f << 0.0f << 270.0f; + QTest::newRow("0, 1, 0, 45 deg") << 0.0f << 1.0f << 0.0f << 45.0f; + QTest::newRow("0, 1, 0, 120 deg") << 0.0f << 1.0f << 0.0f << 120.0f; + QTest::newRow("0, 1, 0, 300 deg") << 0.0f << 1.0f << 0.0f << 300.0f; + + QTest::newRow("0, 0, 1, 90 deg") << 0.0f << 0.0f << 1.0f << 90.0f; + QTest::newRow("0, 0, 1, 270 deg") << 0.0f << 0.0f << 1.0f << 270.0f; + QTest::newRow("0, 0, 1, 45 deg") << 0.0f << 0.0f << 1.0f << 45.0f; + QTest::newRow("0, 0, 1, 120 deg") << 0.0f << 0.0f << 1.0f << 120.0f; + QTest::newRow("0, 0, 1, 300 deg") << 0.0f << 0.0f << 1.0f << 300.0f; + + QTest::newRow("1, 1, 1, 90 deg") << 1.0f << 1.0f << 1.0f << 90.0f; + QTest::newRow("1, 1, 1, 270 deg") << 1.0f << 1.0f << 1.0f << 270.0f; + QTest::newRow("1, 1, 1, 45 deg") << 1.0f << 1.0f << 1.0f << 45.0f; + QTest::newRow("1, 1, 1, 120 deg") << 1.0f << 1.0f << 1.0f << 120.0f; + QTest::newRow("1, 1, 1, 300 deg") << 1.0f << 1.0f << 1.0f << 300.0f; +} + +void tst_QMatrix::extractAxisRotation() +{ + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, angle); + + QMatrix4x4 m; + QVector3D origAxis(x, y, z); + + m.rotate(angle, x, y, z); + + origAxis.normalize(); + QVector3D extractedAxis; + qreal extractedAngle; + + m.extractAxisRotation(extractedAngle, extractedAxis); + + qreal epsilon = 0.001; + + if (angle > 180) { + QVERIFY(fuzzyCompare(360.0f - angle, extractedAngle, epsilon)); + QVERIFY(fuzzyCompare(extractedAxis, -origAxis, epsilon)); + } else { + QVERIFY(fuzzyCompare(angle, extractedAngle, epsilon)); + QVERIFY(fuzzyCompare(extractedAxis, origAxis, epsilon)); + } +} + +void tst_QMatrix::extractTranslation_data() +{ + QTest::addColumn<QMatrix4x4>("rotation"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); + + static QMatrix4x4 m1; + + QTest::newRow("identity, 100, 50, 25") + << m1 << 100.0f << 50.0f << 250.0f; + + m1.rotate(45.0, 1.0, 0.0, 0.0); + QTest::newRow("rotX 45 + 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f; + + m1.setIdentity(); + m1.rotate(45.0, 0.0, 1.0, 0.0); + QTest::newRow("rotY 45 + 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f; + + m1.setIdentity(); + m1.rotate(75, 0.0, 0.0, 1.0); + m1.rotate(25, 1.0, 0.0, 0.0); + m1.rotate(45, 0.0, 1.0, 0.0); + QTest::newRow("rotZ 75, rotX 25, rotY 45, 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f; +} + +void tst_QMatrix::extractTranslation() +{ + QFETCH(QMatrix4x4, rotation); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + + rotation.translate(x, y, z); + + QVector3D vec = rotation.extractTranslation(); + + qreal epsilon = 0.001; + + QVERIFY(fuzzyCompare(vec.x(), x, epsilon)); + QVERIFY(fuzzyCompare(vec.y(), y, epsilon)); + QVERIFY(fuzzyCompare(vec.z(), z, epsilon)); + + QMatrix4x4 lookAt; + QVector3D eye(1.5f, -2.5f, 2.5f); + lookAt.lookAt(eye, + QVector3D(10.0f, 10.0f, 10.0f), + QVector3D(0.0f, 1.0f, 0.0f)); + + QVector3D extEye = lookAt.extractTranslation(); + + QVERIFY(fuzzyCompare(eye.x(), -extEye.x(), epsilon)); + QVERIFY(fuzzyCompare(eye.y(), -extEye.y(), epsilon)); + QVERIFY(fuzzyCompare(eye.z(), -extEye.z(), epsilon)); +} + +// Copy of "flagBits" in qmatrix4x4.h. +enum { + Identity = 0x0001, // Identity matrix + General = 0x0002, // General matrix, unknown contents + Translation = 0x0004, // Contains a simple translation + Scale = 0x0008, // Contains a simple scale + Rotation = 0x0010 // Contains a simple rotation +}; + +// Structure that allows direct access to "flagBits" for testing. +struct Matrix4x4 +{ + float m[4][4]; + int flagBits; +}; + +// Test the inferring of special matrix types. +void tst_QMatrix::inferSpecialType_data() +{ + QTest::addColumn<void *>("mValues"); + QTest::addColumn<int>("flagBits"); + + QTest::newRow("null") + << (void *)nullValues4 << (int)General; + QTest::newRow("identity") + << (void *)identityValues4 << (int)Identity; + QTest::newRow("unique") + << (void *)uniqueValues4 << (int)General; + + static qreal scaleValues[16] = { + 2.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 3.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 4.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + QTest::newRow("scale") + << (void *)scaleValues << (int)Scale; + + static qreal translateValues[16] = { + 1.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 1.0f, 0.0f, 3.0f, + 0.0f, 0.0f, 1.0f, 4.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + QTest::newRow("scale") + << (void *)translateValues << (int)Translation; + + static qreal bothValues[16] = { + 1.0f, 0.0f, 0.0f, 2.0f, + 0.0f, 2.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 4.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + QTest::newRow("both") + << (void *)bothValues << (int)(Scale | Translation); + + static qreal belowValues[16] = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 4.0f, 0.0f, 0.0f, 1.0f + }; + QTest::newRow("below") + << (void *)belowValues << (int)General; +} +void tst_QMatrix::inferSpecialType() +{ + QFETCH(void *, mValues); + QFETCH(int, flagBits); + + QMatrix4x4 m((const qreal *)mValues); + m.inferSpecialType(); + + QCOMPARE(reinterpret_cast<Matrix4x4 *>(&m)->flagBits, flagBits); +} + +void tst_QMatrix::columnsAndRows() +{ + QMatrix4x4 m1(uniqueValues4); + + QVERIFY(m1.column(0) == QVector4D(1, 5, 9, 13)); + QVERIFY(m1.column(1) == QVector4D(2, 6, 10, 14)); + QVERIFY(m1.column(2) == QVector4D(3, 7, 11, 15)); + QVERIFY(m1.column(3) == QVector4D(4, 8, 12, 16)); + + QVERIFY(m1.row(0) == QVector4D(1, 2, 3, 4)); + QVERIFY(m1.row(1) == QVector4D(5, 6, 7, 8)); + QVERIFY(m1.row(2) == QVector4D(9, 10, 11, 12)); + QVERIFY(m1.row(3) == QVector4D(13, 14, 15, 16)); + + m1.setColumn(0, QVector4D(-1, -5, -9, -13)); + m1.setColumn(1, QVector4D(-2, -6, -10, -14)); + m1.setColumn(2, QVector4D(-3, -7, -11, -15)); + m1.setColumn(3, QVector4D(-4, -8, -12, -16)); + + QVERIFY(m1.column(0) == QVector4D(-1, -5, -9, -13)); + QVERIFY(m1.column(1) == QVector4D(-2, -6, -10, -14)); + QVERIFY(m1.column(2) == QVector4D(-3, -7, -11, -15)); + QVERIFY(m1.column(3) == QVector4D(-4, -8, -12, -16)); + + QVERIFY(m1.row(0) == QVector4D(-1, -2, -3, -4)); + QVERIFY(m1.row(1) == QVector4D(-5, -6, -7, -8)); + QVERIFY(m1.row(2) == QVector4D(-9, -10, -11, -12)); + QVERIFY(m1.row(3) == QVector4D(-13, -14, -15, -16)); + + m1.setRow(0, QVector4D(1, 5, 9, 13)); + m1.setRow(1, QVector4D(2, 6, 10, 14)); + m1.setRow(2, QVector4D(3, 7, 11, 15)); + m1.setRow(3, QVector4D(4, 8, 12, 16)); + + QVERIFY(m1.column(0) == QVector4D(1, 2, 3, 4)); + QVERIFY(m1.column(1) == QVector4D(5, 6, 7, 8)); + QVERIFY(m1.column(2) == QVector4D(9, 10, 11, 12)); + QVERIFY(m1.column(3) == QVector4D(13, 14, 15, 16)); + + QVERIFY(m1.row(0) == QVector4D(1, 5, 9, 13)); + QVERIFY(m1.row(1) == QVector4D(2, 6, 10, 14)); + QVERIFY(m1.row(2) == QVector4D(3, 7, 11, 15)); + QVERIFY(m1.row(3) == QVector4D(4, 8, 12, 16)); +} + +// Test converting QMatrix objects into QMatrix4x4 and then +// checking that transformations in the original perform the +// equivalent transformations in the new matrix. +void tst_QMatrix::convertQMatrix() +{ + QMatrix m1; + m1.translate(-3.5, 2.0); + QPointF p1 = m1.map(QPointF(100.0, 150.0)); + QCOMPARE(p1.x(), 100.0 - 3.5); + QCOMPARE(p1.y(), 150.0 + 2.0); + + QMatrix4x4 m2(m1); + QPointF p2 = m2 * QPointF(100.0, 150.0); + QCOMPARE((double)p2.x(), 100.0 - 3.5); + QCOMPARE((double)p2.y(), 150.0 + 2.0); + QVERIFY(m1 == m2.toAffine()); + + QMatrix m3; + m3.scale(1.5, -2.0); + QPointF p3 = m3.map(QPointF(100.0, 150.0)); + QCOMPARE(p3.x(), 1.5 * 100.0); + QCOMPARE(p3.y(), -2.0 * 150.0); + + QMatrix4x4 m4(m3); + QPointF p4 = m4 * QPointF(100.0, 150.0); + QCOMPARE((double)p4.x(), 1.5 * 100.0); + QCOMPARE((double)p4.y(), -2.0 * 150.0); + QVERIFY(m3 == m4.toAffine()); + + QMatrix m5; + m5.rotate(45.0); + QPointF p5 = m5.map(QPointF(100.0, 150.0)); + + QMatrix4x4 m6(m5); + QPointF p6 = m6 * QPointF(100.0, 150.0); + QVERIFY(fuzzyCompare(p5.x(), p6.x(), 0.005)); + QVERIFY(fuzzyCompare(p5.y(), p6.y(), 0.005)); + + QMatrix m7 = m6.toAffine(); + QVERIFY(fuzzyCompare(m5.m11(), m7.m11())); + QVERIFY(fuzzyCompare(m5.m12(), m7.m12())); + QVERIFY(fuzzyCompare(m5.m21(), m7.m21())); + QVERIFY(fuzzyCompare(m5.m22(), m7.m22())); + QVERIFY(fuzzyCompare(m5.dx(), m7.dx())); + QVERIFY(fuzzyCompare(m5.dy(), m7.dy())); +} + +// Test converting QTransform objects into QMatrix4x4 and then +// checking that transformations in the original perform the +// equivalent transformations in the new matrix. +void tst_QMatrix::convertQTransform() +{ + QTransform m1; + m1.translate(-3.5, 2.0); + QPointF p1 = m1.map(QPointF(100.0, 150.0)); + QCOMPARE(p1.x(), 100.0 - 3.5); + QCOMPARE(p1.y(), 150.0 + 2.0); + + QMatrix4x4 m2(m1); + QPointF p2 = m2 * QPointF(100.0, 150.0); + QCOMPARE((double)p2.x(), 100.0 - 3.5); + QCOMPARE((double)p2.y(), 150.0 + 2.0); + QVERIFY(m1 == m2.toTransform()); + + QTransform m3; + m3.scale(1.5, -2.0); + QPointF p3 = m3.map(QPointF(100.0, 150.0)); + QCOMPARE(p3.x(), 1.5 * 100.0); + QCOMPARE(p3.y(), -2.0 * 150.0); + + QMatrix4x4 m4(m3); + QPointF p4 = m4 * QPointF(100.0, 150.0); + QCOMPARE((double)p4.x(), 1.5 * 100.0); + QCOMPARE((double)p4.y(), -2.0 * 150.0); + QVERIFY(m3 == m4.toTransform()); + + QTransform m5; + m5.rotate(45.0); + QPointF p5 = m5.map(QPointF(100.0, 150.0)); + + QMatrix4x4 m6(m5); + QPointF p6 = m6 * QPointF(100.0, 150.0); + QVERIFY(fuzzyCompare(p5.x(), p6.x(), 0.005)); + QVERIFY(fuzzyCompare(p5.y(), p6.y(), 0.005)); + + QTransform m7 = m6.toTransform(); + QVERIFY(fuzzyCompare(m5.m11(), m7.m11())); + QVERIFY(fuzzyCompare(m5.m12(), m7.m12())); + QVERIFY(fuzzyCompare(m5.m21(), m7.m21())); + QVERIFY(fuzzyCompare(m5.m22(), m7.m22())); + QVERIFY(fuzzyCompare(m5.dx(), m7.dx())); + QVERIFY(fuzzyCompare(m5.dy(), m7.dy())); + QVERIFY(fuzzyCompare(m5.m13(), m7.m13())); + QVERIFY(fuzzyCompare(m5.m23(), m7.m23())); + QVERIFY(fuzzyCompare(m5.m33(), m7.m33())); +} + +// Test filling matrices with specific values. +void tst_QMatrix::fill() +{ + QMatrix4x4 m1; + m1.fill(0.0f); + QVERIFY(isSame(m1, nullValues4)); + + static const qreal fillValues4[] = + {2.5f, 2.5f, 2.5f, 2.5f, + 2.5f, 2.5f, 2.5f, 2.5f, + 2.5f, 2.5f, 2.5f, 2.5f, + 2.5f, 2.5f, 2.5f, 2.5f}; + m1.fill(2.5f); + QVERIFY(isSame(m1, fillValues4)); + + QMatrix4x3 m2; + m2.fill(0.0f); + QVERIFY(isSame(m2, nullValues4x3)); + + static const qreal fillValues4x3[] = + {2.5f, 2.5f, 2.5f, 2.5f, + 2.5f, 2.5f, 2.5f, 2.5f, + 2.5f, 2.5f, 2.5f, 2.5f}; + m2.fill(2.5f); + QVERIFY(isSame(m2, fillValues4x3)); +} + +// Test the mapRect() function for QRect and QRectF. +void tst_QMatrix::mapRect_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("width"); + QTest::addColumn<qreal>("height"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + QTest::newRow("rect") + << (qreal)1.0f << (qreal)-20.5f << (qreal)100.0f << (qreal)63.75f; +} +void tst_QMatrix::mapRect() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, width); + QFETCH(qreal, height); + + QRectF rect(x, y, width, height); + QRect recti(qRound(x), qRound(y), qRound(width), qRound(height)); + + QMatrix4x4 m1; + QVERIFY(m1.mapRect(rect) == rect); + QVERIFY(m1.mapRect(recti) == recti); + + QMatrix4x4 m2; + m2.translate(-100.5f, 64.0f); + QRectF translated = rect.translated(-100.5f, 64.0f); + QRect translatedi = QRect(qRound(recti.x() - 100.5f), recti.y() + 64, + recti.width(), recti.height()); + QVERIFY(m2.mapRect(rect) == translated); + QVERIFY(m2.mapRect(recti) == translatedi); + + QMatrix4x4 m3; + m3.scale(-100.5f, 64.0f); + qreal scalex = x * -100.5f; + qreal scaley = y * 64.0f; + qreal scalewid = width * -100.5f; + qreal scaleht = height * 64.0f; + if (scalewid < 0.0f) { + scalewid = -scalewid; + scalex -= scalewid; + } + if (scaleht < 0.0f) { + scaleht = -scaleht; + scaley -= scaleht; + } + QRectF scaled(scalex, scaley, scalewid, scaleht); + QVERIFY(m3.mapRect(rect) == scaled); + scalex = recti.x() * -100.5f; + scaley = recti.y() * 64.0f; + scalewid = recti.width() * -100.5f; + scaleht = recti.height() * 64.0f; + if (scalewid < 0.0f) { + scalewid = -scalewid; + scalex -= scalewid; + } + if (scaleht < 0.0f) { + scaleht = -scaleht; + scaley -= scaleht; + } + QRect scaledi(qRound(scalex), qRound(scaley), + qRound(scalewid), qRound(scaleht)); + QVERIFY(m3.mapRect(recti) == scaledi); + + QMatrix4x4 m4; + m4.translate(-100.5f, 64.0f); + m4.scale(-2.5f, 4.0f); + qreal transx1 = x * -2.5f - 100.5f; + qreal transy1 = y * 4.0f + 64.0f; + qreal transx2 = (x + width) * -2.5f - 100.5f; + qreal transy2 = (y + height) * 4.0f + 64.0f; + if (transx1 > transx2) + qSwap(transx1, transx2); + if (transy1 > transy2) + qSwap(transy1, transy2); + QRectF trans(transx1, transy1, transx2 - transx1, transy2 - transy1); + QVERIFY(m4.mapRect(rect) == trans); + transx1 = recti.x() * -2.5f - 100.5f; + transy1 = recti.y() * 4.0f + 64.0f; + transx2 = (recti.x() + recti.width()) * -2.5f - 100.5f; + transy2 = (recti.y() + recti.height()) * 4.0f + 64.0f; + if (transx1 > transx2) + qSwap(transx1, transx2); + if (transy1 > transy2) + qSwap(transy1, transy2); + QRect transi(qRound(transx1), qRound(transy1), + qRound(transx2) - qRound(transx1), + qRound(transy2) - qRound(transy1)); + QVERIFY(m4.mapRect(recti) == transi); + + m4.rotate(45.0f, 0.0f, 0.0f, 1.0f); + + QTransform t4; + t4.translate(-100.5f, 64.0f); + t4.scale(-2.5f, 4.0f); + t4.rotate(45.0f); + QRectF mr = m4.mapRect(rect); + QRectF tr = t4.mapRect(rect); + QVERIFY(fuzzyCompare(mr.x(), tr.x())); + QVERIFY(fuzzyCompare(mr.y(), tr.y())); + QVERIFY(fuzzyCompare(mr.width(), tr.width())); + QVERIFY(fuzzyCompare(mr.height(), tr.height())); + + QRect mri = m4.mapRect(recti); + QRect tri = t4.mapRect(recti); + QVERIFY(mri == tri); +} + +QTEST_APPLESS_MAIN(tst_QMatrix) + +#include "tst_qmatrixnxn.moc" diff --git a/tests/auto/math3d/qquaternion/qquaternion.pro b/tests/auto/math3d/qquaternion/qquaternion.pro new file mode 100644 index 0000000..eea84f0 --- /dev/null +++ b/tests/auto/math3d/qquaternion/qquaternion.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +VPATH += ../shared +INCLUDEPATH += ../shared +HEADERS += math3dincludes.h +SOURCES += tst_qquaternion.cpp diff --git a/tests/auto/math3d/qquaternion/tst_qquaternion.cpp b/tests/auto/math3d/qquaternion/tst_qquaternion.cpp new file mode 100644 index 0000000..16b87a1 --- /dev/null +++ b/tests/auto/math3d/qquaternion/tst_qquaternion.cpp @@ -0,0 +1,830 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/qmath.h> +#include "math3dincludes.h" + +class tst_QQuaternion : public QObject +{ + Q_OBJECT +public: + tst_QQuaternion() {} + ~tst_QQuaternion() {} + +private slots: + void create(); + + void length_data(); + void length(); + + void normalized_data(); + void normalized(); + + void normalize_data(); + void normalize(); + + void compare(); + + void add_data(); + void add(); + + void subtract_data(); + void subtract(); + + void multiply_data(); + void multiply(); + + void multiplyFactor_data(); + void multiplyFactor(); + + void divide_data(); + void divide(); + + void negate_data(); + void negate(); + + void conjugate_data(); + void conjugate(); + + void fromAxisAndAngle_data(); + void fromAxisAndAngle(); + + void slerp_data(); + void slerp(); + + void nlerp_data(); + void nlerp(); +}; + +// qFuzzyCompare isn't always "fuzzy" enough to handle conversion +// between float, double, and qreal. So create "fuzzier" compares. +static bool fuzzyCompare(float x, float y) +{ + float diff = x - y; + if (diff < 0.0f) + diff = -diff; + return (diff < 0.001); +} + +// Test the creation of QQuaternion objects in various ways: +// construct, copy, and modify. +void tst_QQuaternion::create() +{ + QQuaternion identity; + QCOMPARE(identity.x(), (qreal)0.0f); + QCOMPARE(identity.y(), (qreal)0.0f); + QCOMPARE(identity.z(), (qreal)0.0f); + QCOMPARE(identity.scalar(), (qreal)1.0f); + QVERIFY(identity.isIdentity()); + + QQuaternion v1(34.0f, 1.0f, 2.5f, -89.25f); + QCOMPARE(v1.x(), (qreal)1.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.scalar(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + QQuaternion v1i(34, 1, 2, -89); + QCOMPARE(v1i.x(), (qreal)1.0f); + QCOMPARE(v1i.y(), (qreal)2.0f); + QCOMPARE(v1i.z(), (qreal)-89.0f); + QCOMPARE(v1i.scalar(), (qreal)34.0f); + QVERIFY(!v1i.isNull()); + + QQuaternion v2(v1); + QCOMPARE(v2.x(), (qreal)1.0f); + QCOMPARE(v2.y(), (qreal)2.5f); + QCOMPARE(v2.z(), (qreal)-89.25f); + QCOMPARE(v2.scalar(), (qreal)34.0f); + QVERIFY(!v2.isNull()); + + QQuaternion v4; + QCOMPARE(v4.x(), (qreal)0.0f); + QCOMPARE(v4.y(), (qreal)0.0f); + QCOMPARE(v4.z(), (qreal)0.0f); + QCOMPARE(v4.scalar(), (qreal)1.0f); + QVERIFY(v4.isIdentity()); + v4 = v1; + QCOMPARE(v4.x(), (qreal)1.0f); + QCOMPARE(v4.y(), (qreal)2.5f); + QCOMPARE(v4.z(), (qreal)-89.25f); + QCOMPARE(v4.scalar(), (qreal)34.0f); + QVERIFY(!v4.isNull()); + + QQuaternion v9(34, QVector3D(1.0f, 2.5f, -89.25f)); + QCOMPARE(v9.x(), (qreal)1.0f); + QCOMPARE(v9.y(), (qreal)2.5f); + QCOMPARE(v9.z(), (qreal)-89.25f); + QCOMPARE(v9.scalar(), (qreal)34.0f); + QVERIFY(!v9.isNull()); + + v1.setX(3.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.scalar(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setY(10.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.scalar(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setZ(15.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)15.5f); + QCOMPARE(v1.scalar(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setScalar(6.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)15.5f); + QCOMPARE(v1.scalar(), (qreal)6.0f); + QVERIFY(!v1.isNull()); + + v1.setVector(2.0f, 6.5f, -1.25f); + QCOMPARE(v1.x(), (qreal)2.0f); + QCOMPARE(v1.y(), (qreal)6.5f); + QCOMPARE(v1.z(), (qreal)-1.25f); + QCOMPARE(v1.scalar(), (qreal)6.0f); + QVERIFY(!v1.isNull()); + QVERIFY(v1.vector() == QVector3D(2.0f, 6.5f, -1.25f)); + + v1.setVector(QVector3D(-2.0f, -6.5f, 1.25f)); + QCOMPARE(v1.x(), (qreal)-2.0f); + QCOMPARE(v1.y(), (qreal)-6.5f); + QCOMPARE(v1.z(), (qreal)1.25f); + QCOMPARE(v1.scalar(), (qreal)6.0f); + QVERIFY(!v1.isNull()); + QVERIFY(v1.vector() == QVector3D(-2.0f, -6.5f, 1.25f)); + + v1.setX(0.0f); + v1.setY(0.0f); + v1.setZ(0.0f); + v1.setScalar(0.0f); + QCOMPARE(v1.x(), (qreal)0.0f); + QCOMPARE(v1.y(), (qreal)0.0f); + QCOMPARE(v1.z(), (qreal)0.0f); + QCOMPARE(v1.scalar(), (qreal)0.0f); + QVERIFY(v1.isNull()); + + QVector4D v10 = v9.toVector4D(); + QCOMPARE(v10.x(), (qreal)1.0f); + QCOMPARE(v10.y(), (qreal)2.5f); + QCOMPARE(v10.z(), (qreal)-89.25f); + QCOMPARE(v10.w(), (qreal)34.0f); +} + +// Test length computation for quaternions. +void tst_QQuaternion::length_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<qreal>("w"); + QTest::addColumn<qreal>("len"); + + QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; + QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; + QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)2.0f << (qreal)qSqrt(16.0f); +} +void tst_QQuaternion::length() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + QFETCH(qreal, len); + + QQuaternion v(w, x, y, z); + QCOMPARE((float)(v.length()), (float)len); + QCOMPARE((float)(v.lengthSquared()), (float)(x * x + y * y + z * z + w * w)); +} + +// Test the unit vector conversion for quaternions. +void tst_QQuaternion::normalized_data() +{ + // Use the same test data as the length test. + length_data(); +} +void tst_QQuaternion::normalized() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + QFETCH(qreal, len); + + QQuaternion v(w, x, y, z); + QQuaternion u = v.normalized(); + if (v.isNull()) + QVERIFY(u.isNull()); + else + QCOMPARE((float)(u.length()), (float)1.0f); + QCOMPARE((float)(u.x() * len), (float)(v.x())); + QCOMPARE((float)(u.y() * len), (float)(v.y())); + QCOMPARE((float)(u.z() * len), (float)(v.z())); + QCOMPARE((float)(u.scalar() * len), (float)(v.scalar())); +} + +// Test the unit vector conversion for quaternions. +void tst_QQuaternion::normalize_data() +{ + // Use the same test data as the length test. + length_data(); +} +void tst_QQuaternion::normalize() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + + QQuaternion v(w, x, y, z); + bool isNull = v.isNull(); + v.normalize(); + if (isNull) + QVERIFY(v.isNull()); + else + QCOMPARE((float)(v.length()), (float)1.0f); +} + +// Test the comparison operators for quaternions. +void tst_QQuaternion::compare() +{ + QQuaternion v1(8, 1, 2, 4); + QQuaternion v2(8, 1, 2, 4); + QQuaternion v3(8, 3, 2, 4); + QQuaternion v4(8, 1, 3, 4); + QQuaternion v5(8, 1, 2, 3); + QQuaternion v6(3, 1, 2, 4); + + QVERIFY(v1 == v2); + QVERIFY(v1 != v3); + QVERIFY(v1 != v4); + QVERIFY(v1 != v5); + QVERIFY(v1 != v6); +} + +// Test addition for quaternions. +void tst_QQuaternion::add_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("w3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + + QTest::newRow("wonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f + << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f << (qreal)17.0f; +} +void tst_QQuaternion::add() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, w3); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(w2, x2, y2, z2); + QQuaternion v3(w3, x3, y3, z3); + + QVERIFY((v1 + v2) == v3); + + QQuaternion v4(v1); + v4 += v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() + v2.x()); + QCOMPARE(v4.y(), v1.y() + v2.y()); + QCOMPARE(v4.z(), v1.z() + v2.z()); + QCOMPARE(v4.scalar(), v1.scalar() + v2.scalar()); +} + +// Test subtraction for quaternions. +void tst_QQuaternion::subtract_data() +{ + // Use the same test data as the add test. + add_data(); +} +void tst_QQuaternion::subtract() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, w3); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(w2, x2, y2, z2); + QQuaternion v3(w3, x3, y3, z3); + + QVERIFY((v3 - v1) == v2); + QVERIFY((v3 - v2) == v1); + + QQuaternion v4(v3); + v4 -= v1; + QVERIFY(v4 == v2); + + QCOMPARE(v4.x(), v3.x() - v1.x()); + QCOMPARE(v4.y(), v3.y() - v1.y()); + QCOMPARE(v4.z(), v3.z() - v1.z()); + QCOMPARE(v4.scalar(), v3.scalar() - v1.scalar()); + + QQuaternion v5(v3); + v5 -= v2; + QVERIFY(v5 == v1); + + QCOMPARE(v5.x(), v3.x() - v2.x()); + QCOMPARE(v5.y(), v3.y() - v2.y()); + QCOMPARE(v5.z(), v3.z() - v2.z()); + QCOMPARE(v5.scalar(), v3.scalar() - v2.scalar()); +} + +// Test quaternion multiplication. +void tst_QQuaternion::multiply_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("unitvec") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)7.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)8.0f; +} +void tst_QQuaternion::multiply() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QQuaternion q1(w1, x1, y1, z1); + QQuaternion q2(w2, x2, y2, z2); + + // Use the simple algorithm at: + // http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q53 + // to calculate the answer we expect to get. + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + qreal scalar = w1 * w2 - QVector3D::dotProduct(v1, v2); + QVector3D vector = w1 * v2 + w2 * v1 + QVector3D::crossProduct(v1, v2); + QQuaternion result(scalar, vector); + + QVERIFY((q1 * q2) == result); +} + +// Test multiplication by a factor for quaternions. +void tst_QQuaternion::multiplyFactor_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)100.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("wonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f << (qreal)8.0f; + + QTest::newRow("allzero") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f + << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; +} +void tst_QQuaternion::multiplyFactor() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(w2, x2, y2, z2); + + QVERIFY((v1 * factor) == v2); + QVERIFY((factor * v1) == v2); + + QQuaternion v3(v1); + v3 *= factor; + QVERIFY(v3 == v2); + + QCOMPARE(v3.x(), v1.x() * factor); + QCOMPARE(v3.y(), v1.y() * factor); + QCOMPARE(v3.z(), v1.z() * factor); + QCOMPARE(v3.scalar(), v1.scalar() * factor); +} + +// Test division by a factor for quaternions. +void tst_QQuaternion::divide_data() +{ + // Use the same test data as the multiply test. + multiplyFactor_data(); +} +void tst_QQuaternion::divide() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(w2, x2, y2, z2); + + if (factor == (qreal)0.0f) + return; + + QVERIFY((v2 / factor) == v1); + + QQuaternion v3(v2); + v3 /= factor; + QVERIFY(v3 == v1); + + QCOMPARE(v3.x(), v2.x() / factor); + QCOMPARE(v3.y(), v2.y() / factor); + QCOMPARE(v3.z(), v2.z() / factor); + QCOMPARE(v3.scalar(), v2.scalar() / factor); +} + +// Test negation for quaternions. +void tst_QQuaternion::negate_data() +{ + // Use the same test data as the add test. + add_data(); +} +void tst_QQuaternion::negate() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(-w1, -x1, -y1, -z1); + + QVERIFY(-v1 == v2); +} + +// Test quaternion conjugate calculations. +void tst_QQuaternion::conjugate_data() +{ + // Use the same test data as the add test. + add_data(); +} +void tst_QQuaternion::conjugate() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + + QQuaternion v1(w1, x1, y1, z1); + QQuaternion v2(w1, -x1, -y1, -z1); + + QVERIFY(v1.conjugate() == v2); +} + +// Test quaternion creation from an axis and an angle. +void tst_QQuaternion::fromAxisAndAngle_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("angle"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)90.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)180.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)270.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)45.0f; +} +void tst_QQuaternion::fromAxisAndAngle() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, angle); + + // Use a straight-forward implementation of the algorithm at: + // http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56 + // to calculate the answer we expect to get. + QVector3D vector = QVector3D(x1, y1, z1).normalized(); + qreal sin_a = qSin((angle * M_PI / 180.0) / 2.0); + qreal cos_a = qCos((angle * M_PI / 180.0) / 2.0); + QQuaternion result((qreal)cos_a, + (qreal)(vector.x() * sin_a), + (qreal)(vector.y() * sin_a), + (qreal)(vector.z() * sin_a)); + result = result.normalized(); + + QQuaternion answer = QQuaternion::fromAxisAndAngle(QVector3D(x1, y1, z1), angle); + QVERIFY(fuzzyCompare(answer.x(), result.x())); + QVERIFY(fuzzyCompare(answer.y(), result.y())); + QVERIFY(fuzzyCompare(answer.z(), result.z())); + QVERIFY(fuzzyCompare(answer.scalar(), result.scalar())); + + answer = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle); + QVERIFY(fuzzyCompare(answer.x(), result.x())); + QVERIFY(fuzzyCompare(answer.y(), result.y())); + QVERIFY(fuzzyCompare(answer.z(), result.z())); + QVERIFY(fuzzyCompare(answer.scalar(), result.scalar())); +} + +// Test spherical interpolation of quaternions. +void tst_QQuaternion::slerp_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("angle1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("angle2"); + QTest::addColumn<qreal>("t"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("angle3"); + + QTest::newRow("first") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f + << (qreal)0.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f; + QTest::newRow("first2") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f + << (qreal)-0.5f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f; + QTest::newRow("second") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f + << (qreal)1.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f; + QTest::newRow("second2") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f + << (qreal)1.5f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f; + QTest::newRow("middle") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f + << (qreal)0.5f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)135.0f; + QTest::newRow("wide angle") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)0.0f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)270.0f + << (qreal)0.5f + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)-45.0f; +} +void tst_QQuaternion::slerp() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, angle1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, angle2); + QFETCH(qreal, t); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, angle3); + + QQuaternion q1 = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle1); + QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2); + QQuaternion q3 = QQuaternion::fromAxisAndAngle(x3, y3, z3, angle3); + + QQuaternion result = QQuaternion::slerp(q1, q2, t); + + QVERIFY(fuzzyCompare(result.x(), q3.x())); + QVERIFY(fuzzyCompare(result.y(), q3.y())); + QVERIFY(fuzzyCompare(result.z(), q3.z())); + QVERIFY(fuzzyCompare(result.scalar(), q3.scalar())); +} + +// Test normalized linear interpolation of quaternions. +void tst_QQuaternion::nlerp_data() +{ + slerp_data(); +} +void tst_QQuaternion::nlerp() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, angle1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, angle2); + QFETCH(qreal, t); + + QQuaternion q1 = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle1); + QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2); + + QQuaternion result = QQuaternion::nlerp(q1, q2, t); + + qreal resultx, resulty, resultz, resultscalar; + if (t <= 0.0f) { + resultx = q1.x(); + resulty = q1.y(); + resultz = q1.z(); + resultscalar = q1.scalar(); + } else if (t >= 1.0f) { + resultx = q2.x(); + resulty = q2.y(); + resultz = q2.z(); + resultscalar = q2.scalar(); + } else if (qAbs(angle1 - angle2) <= 180.f) { + resultx = q1.x() * (1 - t) + q2.x() * t; + resulty = q1.y() * (1 - t) + q2.y() * t; + resultz = q1.z() * (1 - t) + q2.z() * t; + resultscalar = q1.scalar() * (1 - t) + q2.scalar() * t; + } else { + // Angle greater than 180 degrees: negate q2. + resultx = q1.x() * (1 - t) - q2.x() * t; + resulty = q1.y() * (1 - t) - q2.y() * t; + resultz = q1.z() * (1 - t) - q2.z() * t; + resultscalar = q1.scalar() * (1 - t) - q2.scalar() * t; + } + + QQuaternion q3 = QQuaternion(resultscalar, resultx, resulty, resultz).normalized(); + + QVERIFY(fuzzyCompare(result.x(), q3.x())); + QVERIFY(fuzzyCompare(result.y(), q3.y())); + QVERIFY(fuzzyCompare(result.z(), q3.z())); + QVERIFY(fuzzyCompare(result.scalar(), q3.scalar())); +} + +QTEST_APPLESS_MAIN(tst_QQuaternion) + +#include "tst_qquaternion.moc" diff --git a/tests/auto/math3d/qvectornd/qvectornd.pro b/tests/auto/math3d/qvectornd/qvectornd.pro new file mode 100644 index 0000000..0981637 --- /dev/null +++ b/tests/auto/math3d/qvectornd/qvectornd.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +VPATH += ../shared +INCLUDEPATH += ../shared +HEADERS += math3dincludes.h +SOURCES += tst_qvectornd.cpp diff --git a/tests/auto/math3d/qvectornd/tst_qvectornd.cpp b/tests/auto/math3d/qvectornd/tst_qvectornd.cpp new file mode 100644 index 0000000..9c1ea83 --- /dev/null +++ b/tests/auto/math3d/qvectornd/tst_qvectornd.cpp @@ -0,0 +1,2045 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/qmath.h> +#include "math3dincludes.h" + +class tst_QVector : public QObject +{ + Q_OBJECT +public: + tst_QVector() {} + ~tst_QVector() {} + +private slots: + void create2(); + void create3(); + void create4(); + + void length2_data(); + void length2(); + void length3_data(); + void length3(); + void length4_data(); + void length4(); + + void normalized2_data(); + void normalized2(); + void normalized3_data(); + void normalized3(); + void normalized4_data(); + void normalized4(); + + void normalize2_data(); + void normalize2(); + void normalize3_data(); + void normalize3(); + void normalize4_data(); + void normalize4(); + + void compare2(); + void compare3(); + void compare4(); + + void add2_data(); + void add2(); + void add3_data(); + void add3(); + void add4_data(); + void add4(); + + void subtract2_data(); + void subtract2(); + void subtract3_data(); + void subtract3(); + void subtract4_data(); + void subtract4(); + + void multiply2_data(); + void multiply2(); + void multiply3_data(); + void multiply3(); + void multiply4_data(); + void multiply4(); + + void multiplyFactor2_data(); + void multiplyFactor2(); + void multiplyFactor3_data(); + void multiplyFactor3(); + void multiplyFactor4_data(); + void multiplyFactor4(); + + void divide2_data(); + void divide2(); + void divide3_data(); + void divide3(); + void divide4_data(); + void divide4(); + + void negate2_data(); + void negate2(); + void negate3_data(); + void negate3(); + void negate4_data(); + void negate4(); + + void crossProduct_data(); + void crossProduct(); + void normal_data(); + void normal(); + void distanceToPlane_data(); + void distanceToPlane(); + void distanceToLine_data(); + void distanceToLine(); + + void dotProduct2_data(); + void dotProduct2(); + void dotProduct3_data(); + void dotProduct3(); + void dotProduct4_data(); + void dotProduct4(); +}; + +// qFuzzyCompare isn't always "fuzzy" enough to handle conversion +// between float, double, and qreal. So create "fuzzier" compares. +static bool fuzzyCompare(float x, float y) +{ + float diff = x - y; + if (diff < 0.0f) + diff = -diff; + return (diff < 0.001); +} + +// Test the creation of QVector2D objects in various ways: +// construct, copy, and modify. +void tst_QVector::create2() +{ + QVector2D null; + QCOMPARE(null.x(), (qreal)0.0f); + QCOMPARE(null.y(), (qreal)0.0f); + QVERIFY(null.isNull()); + + QVector2D v1(1.0f, 2.5f); + QCOMPARE(v1.x(), (qreal)1.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QVERIFY(!v1.isNull()); + + QVector2D v1i(1, 2); + QCOMPARE(v1i.x(), (qreal)1.0f); + QCOMPARE(v1i.y(), (qreal)2.0f); + QVERIFY(!v1i.isNull()); + + QVector2D v2(v1); + QCOMPARE(v2.x(), (qreal)1.0f); + QCOMPARE(v2.y(), (qreal)2.5f); + QVERIFY(!v2.isNull()); + + QVector2D v4; + QCOMPARE(v4.x(), (qreal)0.0f); + QCOMPARE(v4.y(), (qreal)0.0f); + QVERIFY(v4.isNull()); + v4 = v1; + QCOMPARE(v4.x(), (qreal)1.0f); + QCOMPARE(v4.y(), (qreal)2.5f); + QVERIFY(!v4.isNull()); + + QVector2D v5(QPoint(1, 2)); + QCOMPARE(v5.x(), (qreal)1.0f); + QCOMPARE(v5.y(), (qreal)2.0f); + QVERIFY(!v5.isNull()); + + QVector2D v6(QPointF(1, 2.5)); + QCOMPARE(v6.x(), (qreal)1.0f); + QCOMPARE(v6.y(), (qreal)2.5f); + QVERIFY(!v6.isNull()); + + QVector2D v7(QVector3D(1.0f, 2.5f, 54.25f)); + QCOMPARE(v7.x(), (qreal)1.0f); + QCOMPARE(v7.y(), (qreal)2.5f); + QVERIFY(!v6.isNull()); + + QVector2D v8(QVector4D(1.0f, 2.5f, 54.25f, 34.0f)); + QCOMPARE(v8.x(), (qreal)1.0f); + QCOMPARE(v8.y(), (qreal)2.5f); + QVERIFY(!v6.isNull()); + + v1.setX(3.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QVERIFY(!v1.isNull()); + + v1.setY(10.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QVERIFY(!v1.isNull()); + + v1.setX(0.0f); + v1.setY(0.0f); + QCOMPARE(v1.x(), (qreal)0.0f); + QCOMPARE(v1.y(), (qreal)0.0f); + QVERIFY(v1.isNull()); + + QPoint p1 = v8.toPoint(); + QCOMPARE(p1.x(), 1); + QCOMPARE(p1.y(), 3); + + QPointF p2 = v8.toPointF(); + QCOMPARE((qreal)p2.x(), (qreal)1.0f); + QCOMPARE((qreal)p2.y(), (qreal)2.5f); + + QVector3D v9 = v8.toVector3D(); + QCOMPARE(v9.x(), (qreal)1.0f); + QCOMPARE(v9.y(), (qreal)2.5f); + QCOMPARE(v9.z(), (qreal)0.0f); + + QVector4D v10 = v8.toVector4D(); + QCOMPARE(v10.x(), (qreal)1.0f); + QCOMPARE(v10.y(), (qreal)2.5f); + QCOMPARE(v10.z(), (qreal)0.0f); + QCOMPARE(v10.w(), (qreal)0.0f); +} + +// Test the creation of QVector3D objects in various ways: +// construct, copy, and modify. +void tst_QVector::create3() +{ + QVector3D null; + QCOMPARE(null.x(), (qreal)0.0f); + QCOMPARE(null.y(), (qreal)0.0f); + QCOMPARE(null.z(), (qreal)0.0f); + QVERIFY(null.isNull()); + + QVector3D v1(1.0f, 2.5f, -89.25f); + QCOMPARE(v1.x(), (qreal)1.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QVERIFY(!v1.isNull()); + + QVector3D v1i(1, 2, -89); + QCOMPARE(v1i.x(), (qreal)1.0f); + QCOMPARE(v1i.y(), (qreal)2.0f); + QCOMPARE(v1i.z(), (qreal)-89.0f); + QVERIFY(!v1i.isNull()); + + QVector3D v2(v1); + QCOMPARE(v2.x(), (qreal)1.0f); + QCOMPARE(v2.y(), (qreal)2.5f); + QCOMPARE(v2.z(), (qreal)-89.25f); + QVERIFY(!v2.isNull()); + + QVector3D v3(1.0f, 2.5f, 0.0f); + QCOMPARE(v3.x(), (qreal)1.0f); + QCOMPARE(v3.y(), (qreal)2.5f); + QCOMPARE(v3.z(), (qreal)0.0f); + QVERIFY(!v3.isNull()); + + QVector3D v3i(1, 2, 0); + QCOMPARE(v3i.x(), (qreal)1.0f); + QCOMPARE(v3i.y(), (qreal)2.0f); + QCOMPARE(v3i.z(), (qreal)0.0f); + QVERIFY(!v3i.isNull()); + + QVector3D v4; + QCOMPARE(v4.x(), (qreal)0.0f); + QCOMPARE(v4.y(), (qreal)0.0f); + QCOMPARE(v4.z(), (qreal)0.0f); + QVERIFY(v4.isNull()); + v4 = v1; + QCOMPARE(v4.x(), (qreal)1.0f); + QCOMPARE(v4.y(), (qreal)2.5f); + QCOMPARE(v4.z(), (qreal)-89.25f); + QVERIFY(!v4.isNull()); + + QVector3D v5(QPoint(1, 2)); + QCOMPARE(v5.x(), (qreal)1.0f); + QCOMPARE(v5.y(), (qreal)2.0f); + QCOMPARE(v5.z(), (qreal)0.0f); + QVERIFY(!v5.isNull()); + + QVector3D v6(QPointF(1, 2.5)); + QCOMPARE(v6.x(), (qreal)1.0f); + QCOMPARE(v6.y(), (qreal)2.5f); + QCOMPARE(v6.z(), (qreal)0.0f); + QVERIFY(!v6.isNull()); + + QVector3D v7(QVector2D(1.0f, 2.5f)); + QCOMPARE(v7.x(), (qreal)1.0f); + QCOMPARE(v7.y(), (qreal)2.5f); + QCOMPARE(v7.z(), (qreal)0.0f); + QVERIFY(!v7.isNull()); + + QVector3D v8(QVector2D(1.0f, 2.5f), 54.25f); + QCOMPARE(v8.x(), (qreal)1.0f); + QCOMPARE(v8.y(), (qreal)2.5f); + QCOMPARE(v8.z(), (qreal)54.25f); + QVERIFY(!v8.isNull()); + + QVector3D v9(QVector4D(1.0f, 2.5f, 54.25f, 34.0f)); + QCOMPARE(v9.x(), (qreal)1.0f); + QCOMPARE(v9.y(), (qreal)2.5f); + QCOMPARE(v9.z(), (qreal)54.25f); + QVERIFY(!v9.isNull()); + + v1.setX(3.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QVERIFY(!v1.isNull()); + + v1.setY(10.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QVERIFY(!v1.isNull()); + + v1.setZ(15.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)15.5f); + QVERIFY(!v1.isNull()); + + v1.setX(0.0f); + v1.setY(0.0f); + v1.setZ(0.0f); + QCOMPARE(v1.x(), (qreal)0.0f); + QCOMPARE(v1.y(), (qreal)0.0f); + QCOMPARE(v1.z(), (qreal)0.0f); + QVERIFY(v1.isNull()); + + QPoint p1 = v8.toPoint(); + QCOMPARE(p1.x(), 1); + QCOMPARE(p1.y(), 3); + + QPointF p2 = v8.toPointF(); + QCOMPARE((qreal)p2.x(), (qreal)1.0f); + QCOMPARE((qreal)p2.y(), (qreal)2.5f); + + QVector2D v10 = v8.toVector2D(); + QCOMPARE(v10.x(), (qreal)1.0f); + QCOMPARE(v10.y(), (qreal)2.5f); + + QVector4D v11 = v8.toVector4D(); + QCOMPARE(v11.x(), (qreal)1.0f); + QCOMPARE(v11.y(), (qreal)2.5f); + QCOMPARE(v11.z(), (qreal)54.25f); + QCOMPARE(v11.w(), (qreal)0.0f); +} + +// Test the creation of QVector4D objects in various ways: +// construct, copy, and modify. +void tst_QVector::create4() +{ + QVector4D null; + QCOMPARE(null.x(), (qreal)0.0f); + QCOMPARE(null.y(), (qreal)0.0f); + QCOMPARE(null.z(), (qreal)0.0f); + QCOMPARE(null.w(), (qreal)0.0f); + QVERIFY(null.isNull()); + + QVector4D v1(1.0f, 2.5f, -89.25f, 34.0f); + QCOMPARE(v1.x(), (qreal)1.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.w(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + QVector4D v1i(1, 2, -89, 34); + QCOMPARE(v1i.x(), (qreal)1.0f); + QCOMPARE(v1i.y(), (qreal)2.0f); + QCOMPARE(v1i.z(), (qreal)-89.0f); + QCOMPARE(v1i.w(), (qreal)34.0f); + QVERIFY(!v1i.isNull()); + + QVector4D v2(v1); + QCOMPARE(v2.x(), (qreal)1.0f); + QCOMPARE(v2.y(), (qreal)2.5f); + QCOMPARE(v2.z(), (qreal)-89.25f); + QCOMPARE(v2.w(), (qreal)34.0f); + QVERIFY(!v2.isNull()); + + QVector4D v3(1.0f, 2.5f, 0.0f, 0.0f); + QCOMPARE(v3.x(), (qreal)1.0f); + QCOMPARE(v3.y(), (qreal)2.5f); + QCOMPARE(v3.z(), (qreal)0.0f); + QCOMPARE(v3.w(), (qreal)0.0f); + QVERIFY(!v3.isNull()); + + QVector4D v3i(1, 2, 0, 0); + QCOMPARE(v3i.x(), (qreal)1.0f); + QCOMPARE(v3i.y(), (qreal)2.0f); + QCOMPARE(v3i.z(), (qreal)0.0f); + QCOMPARE(v3i.w(), (qreal)0.0f); + QVERIFY(!v3i.isNull()); + + QVector4D v3b(1.0f, 2.5f, -89.25f, 0.0f); + QCOMPARE(v3b.x(), (qreal)1.0f); + QCOMPARE(v3b.y(), (qreal)2.5f); + QCOMPARE(v3b.z(), (qreal)-89.25f); + QCOMPARE(v3b.w(), (qreal)0.0f); + QVERIFY(!v3b.isNull()); + + QVector4D v3bi(1, 2, -89, 0); + QCOMPARE(v3bi.x(), (qreal)1.0f); + QCOMPARE(v3bi.y(), (qreal)2.0f); + QCOMPARE(v3bi.z(), (qreal)-89.0f); + QCOMPARE(v3bi.w(), (qreal)0.0f); + QVERIFY(!v3bi.isNull()); + + QVector4D v4; + QCOMPARE(v4.x(), (qreal)0.0f); + QCOMPARE(v4.y(), (qreal)0.0f); + QCOMPARE(v4.z(), (qreal)0.0f); + QCOMPARE(v4.w(), (qreal)0.0f); + QVERIFY(v4.isNull()); + v4 = v1; + QCOMPARE(v4.x(), (qreal)1.0f); + QCOMPARE(v4.y(), (qreal)2.5f); + QCOMPARE(v4.z(), (qreal)-89.25f); + QCOMPARE(v4.w(), (qreal)34.0f); + QVERIFY(!v4.isNull()); + + QVector4D v5(QPoint(1, 2)); + QCOMPARE(v5.x(), (qreal)1.0f); + QCOMPARE(v5.y(), (qreal)2.0f); + QCOMPARE(v5.z(), (qreal)0.0f); + QCOMPARE(v5.w(), (qreal)0.0f); + QVERIFY(!v5.isNull()); + + QVector4D v6(QPointF(1, 2.5)); + QCOMPARE(v6.x(), (qreal)1.0f); + QCOMPARE(v6.y(), (qreal)2.5f); + QCOMPARE(v6.z(), (qreal)0.0f); + QCOMPARE(v6.w(), (qreal)0.0f); + QVERIFY(!v6.isNull()); + + QVector4D v7(QVector2D(1.0f, 2.5f)); + QCOMPARE(v7.x(), (qreal)1.0f); + QCOMPARE(v7.y(), (qreal)2.5f); + QCOMPARE(v7.z(), (qreal)0.0f); + QCOMPARE(v7.w(), (qreal)0.0f); + QVERIFY(!v7.isNull()); + + QVector4D v8(QVector3D(1.0f, 2.5f, -89.25f)); + QCOMPARE(v8.x(), (qreal)1.0f); + QCOMPARE(v8.y(), (qreal)2.5f); + QCOMPARE(v8.z(), (qreal)-89.25f); + QCOMPARE(v8.w(), (qreal)0.0f); + QVERIFY(!v8.isNull()); + + QVector4D v9(QVector3D(1.0f, 2.5f, -89.25f), 34); + QCOMPARE(v9.x(), (qreal)1.0f); + QCOMPARE(v9.y(), (qreal)2.5f); + QCOMPARE(v9.z(), (qreal)-89.25f); + QCOMPARE(v9.w(), (qreal)34.0f); + QVERIFY(!v9.isNull()); + + QVector4D v10(QVector2D(1.0f, 2.5f), 23.5f, -8); + QCOMPARE(v10.x(), (qreal)1.0f); + QCOMPARE(v10.y(), (qreal)2.5f); + QCOMPARE(v10.z(), (qreal)23.5f); + QCOMPARE(v10.w(), (qreal)-8.0f); + QVERIFY(!v10.isNull()); + + v1.setX(3.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.w(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setY(10.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.w(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setZ(15.5f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)15.5f); + QCOMPARE(v1.w(), (qreal)34.0f); + QVERIFY(!v1.isNull()); + + v1.setW(6.0f); + QCOMPARE(v1.x(), (qreal)3.0f); + QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.z(), (qreal)15.5f); + QCOMPARE(v1.w(), (qreal)6.0f); + QVERIFY(!v1.isNull()); + + v1.setX(0.0f); + v1.setY(0.0f); + v1.setZ(0.0f); + v1.setW(0.0f); + QCOMPARE(v1.x(), (qreal)0.0f); + QCOMPARE(v1.y(), (qreal)0.0f); + QCOMPARE(v1.z(), (qreal)0.0f); + QCOMPARE(v1.w(), (qreal)0.0f); + QVERIFY(v1.isNull()); + + QPoint p1 = v8.toPoint(); + QCOMPARE(p1.x(), 1); + QCOMPARE(p1.y(), 3); + + QPointF p2 = v8.toPointF(); + QCOMPARE((qreal)p2.x(), (qreal)1.0f); + QCOMPARE((qreal)p2.y(), (qreal)2.5f); + + QVector2D v11 = v8.toVector2D(); + QCOMPARE(v11.x(), (qreal)1.0f); + QCOMPARE(v11.y(), (qreal)2.5f); + + QVector3D v12 = v8.toVector3D(); + QCOMPARE(v12.x(), (qreal)1.0f); + QCOMPARE(v12.y(), (qreal)2.5f); + QCOMPARE(v12.z(), (qreal)-89.25f); + + QVector2D v13 = v9.toVector2DAffine(); + QVERIFY(fuzzyCompare(v13.x(), (qreal)(1.0f / 34.0f))); + QVERIFY(fuzzyCompare(v13.y(), (qreal)(2.5f / 34.0f))); + + QVector4D zerow(1.0f, 2.0f, 3.0f, 0.0f); + v13 = zerow.toVector2DAffine(); + QVERIFY(v13.isNull()); + + QVector3D v14 = v9.toVector3DAffine(); + QVERIFY(fuzzyCompare(v14.x(), (qreal)(1.0f / 34.0f))); + QVERIFY(fuzzyCompare(v14.y(), (qreal)(2.5f / 34.0f))); + QVERIFY(fuzzyCompare(v14.z(), (qreal)(-89.25f / 34.0f))); + + v14 = zerow.toVector3DAffine(); + QVERIFY(v14.isNull()); +} + +// Test vector length computation for 2D vectors. +void tst_QVector::length2_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("len"); + + QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; + QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; + QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)qSqrt(8.0f); +} +void tst_QVector::length2() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, len); + + QVector2D v(x, y); + QCOMPARE((float)(v.length()), (float)len); + QCOMPARE((float)(v.lengthSquared()), (float)(x * x + y * y)); +} + +// Test vector length computation for 3D vectors. +void tst_QVector::length3_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<qreal>("len"); + + QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; + QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; + QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)qSqrt(12.0f); +} +void tst_QVector::length3() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, len); + + QVector3D v(x, y, z); + QCOMPARE((float)(v.length()), (float)len); + QCOMPARE((float)(v.lengthSquared()), (float)(x * x + y * y + z * z)); +} + +// Test vector length computation for 4D vectors. +void tst_QVector::length4_data() +{ + QTest::addColumn<qreal>("x"); + QTest::addColumn<qreal>("y"); + QTest::addColumn<qreal>("z"); + QTest::addColumn<qreal>("w"); + QTest::addColumn<qreal>("len"); + + QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; + QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; + QTest::newRow("-1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; + QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)2.0f << (qreal)qSqrt(16.0f); +} +void tst_QVector::length4() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + QFETCH(qreal, len); + + QVector4D v(x, y, z, w); + QCOMPARE((float)(v.length()), (float)len); + QCOMPARE((float)(v.lengthSquared()), (float)(x * x + y * y + z * z + w * w)); +} + +// Test the unit vector conversion for 2D vectors. +void tst_QVector::normalized2_data() +{ + // Use the same test data as the length test. + length2_data(); +} +void tst_QVector::normalized2() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, len); + + QVector2D v(x, y); + QVector2D u = v.normalized(); + if (v.isNull()) + QVERIFY(u.isNull()); + else + QCOMPARE((float)(u.length()), (float)1.0f); + QCOMPARE((float)(u.x() * len), (float)(v.x())); + QCOMPARE((float)(u.y() * len), (float)(v.y())); +} + +// Test the unit vector conversion for 3D vectors. +void tst_QVector::normalized3_data() +{ + // Use the same test data as the length test. + length3_data(); +} +void tst_QVector::normalized3() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, len); + + QVector3D v(x, y, z); + QVector3D u = v.normalized(); + if (v.isNull()) + QVERIFY(u.isNull()); + else + QCOMPARE((float)(u.length()), (float)1.0f); + QCOMPARE((float)(u.x() * len), (float)(v.x())); + QCOMPARE((float)(u.y() * len), (float)(v.y())); + QCOMPARE((float)(u.z() * len), (float)(v.z())); +} + +// Test the unit vector conversion for 4D vectors. +void tst_QVector::normalized4_data() +{ + // Use the same test data as the length test. + length4_data(); +} +void tst_QVector::normalized4() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + QFETCH(qreal, len); + + QVector4D v(x, y, z, w); + QVector4D u = v.normalized(); + if (v.isNull()) + QVERIFY(u.isNull()); + else + QCOMPARE((float)(u.length()), (float)1.0f); + QCOMPARE((float)(u.x() * len), (float)(v.x())); + QCOMPARE((float)(u.y() * len), (float)(v.y())); + QCOMPARE((float)(u.z() * len), (float)(v.z())); + QCOMPARE((float)(u.w() * len), (float)(v.w())); +} + +// Test the unit vector conversion for 2D vectors. +void tst_QVector::normalize2_data() +{ + // Use the same test data as the length test. + length2_data(); +} +void tst_QVector::normalize2() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + + QVector2D v(x, y); + bool isNull = v.isNull(); + v.normalize(); + if (isNull) + QVERIFY(v.isNull()); + else + QCOMPARE((float)(v.length()), (float)1.0f); +} + +// Test the unit vector conversion for 3D vectors. +void tst_QVector::normalize3_data() +{ + // Use the same test data as the length test. + length3_data(); +} +void tst_QVector::normalize3() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + + QVector3D v(x, y, z); + bool isNull = v.isNull(); + v.normalize(); + if (isNull) + QVERIFY(v.isNull()); + else + QCOMPARE((float)(v.length()), (float)1.0f); +} + +// Test the unit vector conversion for 4D vectors. +void tst_QVector::normalize4_data() +{ + // Use the same test data as the length test. + length4_data(); +} +void tst_QVector::normalize4() +{ + QFETCH(qreal, x); + QFETCH(qreal, y); + QFETCH(qreal, z); + QFETCH(qreal, w); + + QVector4D v(x, y, z, w); + bool isNull = v.isNull(); + v.normalize(); + if (isNull) + QVERIFY(v.isNull()); + else + QCOMPARE((float)(v.length()), (float)1.0f); +} + +// Test the comparison operators for 2D vectors. +void tst_QVector::compare2() +{ + QVector2D v1(1, 2); + QVector2D v2(1, 2); + QVector2D v3(3, 2); + QVector2D v4(1, 3); + + QVERIFY(v1 == v2); + QVERIFY(v1 != v3); + QVERIFY(v1 != v4); +} + +// Test the comparison operators for 3D vectors. +void tst_QVector::compare3() +{ + QVector3D v1(1, 2, 4); + QVector3D v2(1, 2, 4); + QVector3D v3(3, 2, 4); + QVector3D v4(1, 3, 4); + QVector3D v5(1, 2, 3); + + QVERIFY(v1 == v2); + QVERIFY(v1 != v3); + QVERIFY(v1 != v4); + QVERIFY(v1 != v5); +} + +// Test the comparison operators for 4D vectors. +void tst_QVector::compare4() +{ + QVector4D v1(1, 2, 4, 8); + QVector4D v2(1, 2, 4, 8); + QVector4D v3(3, 2, 4, 8); + QVector4D v4(1, 3, 4, 8); + QVector4D v5(1, 2, 3, 8); + QVector4D v6(1, 2, 4, 3); + + QVERIFY(v1 == v2); + QVERIFY(v1 != v3); + QVERIFY(v1 != v4); + QVERIFY(v1 != v5); + QVERIFY(v1 != v6); +} + +// Test vector addition for 2D vectors. +void tst_QVector::add2_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f + << (qreal)3.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)3.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f + << (qreal)4.0f << (qreal)5.0f + << (qreal)5.0f << (qreal)7.0f; +} +void tst_QVector::add2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + QVector2D v3(x3, y3); + + QVERIFY((v1 + v2) == v3); + + QVector2D v4(v1); + v4 += v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() + v2.x()); + QCOMPARE(v4.y(), v1.y() + v2.y()); +} + +// Test vector addition for 3D vectors. +void tst_QVector::add3_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f + << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f; +} +void tst_QVector::add3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QVERIFY((v1 + v2) == v3); + + QVector3D v4(v1); + v4 += v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() + v2.x()); + QCOMPARE(v4.y(), v1.y() + v2.y()); + QCOMPARE(v4.z(), v1.z() + v2.z()); +} + +// Test vector addition for 4D vectors. +void tst_QVector::add4_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("w3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + + QTest::newRow("wonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f + << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f << (qreal)17.0f; +} +void tst_QVector::add4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, w3); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + QVector4D v3(x3, y3, z3, w3); + + QVERIFY((v1 + v2) == v3); + + QVector4D v4(v1); + v4 += v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() + v2.x()); + QCOMPARE(v4.y(), v1.y() + v2.y()); + QCOMPARE(v4.z(), v1.z() + v2.z()); + QCOMPARE(v4.w(), v1.w() + v2.w()); +} + +// Test vector subtraction for 2D vectors. +void tst_QVector::subtract2_data() +{ + // Use the same test data as the add test. + add2_data(); +} +void tst_QVector::subtract2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + QVector2D v3(x3, y3); + + QVERIFY((v3 - v1) == v2); + QVERIFY((v3 - v2) == v1); + + QVector2D v4(v3); + v4 -= v1; + QVERIFY(v4 == v2); + + QCOMPARE(v4.x(), v3.x() - v1.x()); + QCOMPARE(v4.y(), v3.y() - v1.y()); + + QVector2D v5(v3); + v5 -= v2; + QVERIFY(v5 == v1); + + QCOMPARE(v5.x(), v3.x() - v2.x()); + QCOMPARE(v5.y(), v3.y() - v2.y()); +} + +// Test vector subtraction for 3D vectors. +void tst_QVector::subtract3_data() +{ + // Use the same test data as the add test. + add3_data(); +} +void tst_QVector::subtract3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QVERIFY((v3 - v1) == v2); + QVERIFY((v3 - v2) == v1); + + QVector3D v4(v3); + v4 -= v1; + QVERIFY(v4 == v2); + + QCOMPARE(v4.x(), v3.x() - v1.x()); + QCOMPARE(v4.y(), v3.y() - v1.y()); + QCOMPARE(v4.z(), v3.z() - v1.z()); + + QVector3D v5(v3); + v5 -= v2; + QVERIFY(v5 == v1); + + QCOMPARE(v5.x(), v3.x() - v2.x()); + QCOMPARE(v5.y(), v3.y() - v2.y()); + QCOMPARE(v5.z(), v3.z() - v2.z()); +} + +// Test vector subtraction for 4D vectors. +void tst_QVector::subtract4_data() +{ + // Use the same test data as the add test. + add4_data(); +} +void tst_QVector::subtract4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, w3); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + QVector4D v3(x3, y3, z3, w3); + + QVERIFY((v3 - v1) == v2); + QVERIFY((v3 - v2) == v1); + + QVector4D v4(v3); + v4 -= v1; + QVERIFY(v4 == v2); + + QCOMPARE(v4.x(), v3.x() - v1.x()); + QCOMPARE(v4.y(), v3.y() - v1.y()); + QCOMPARE(v4.z(), v3.z() - v1.z()); + QCOMPARE(v4.w(), v3.w() - v1.w()); + + QVector4D v5(v3); + v5 -= v2; + QVERIFY(v5 == v1); + + QCOMPARE(v5.x(), v3.x() - v2.x()); + QCOMPARE(v5.y(), v3.y() - v2.y()); + QCOMPARE(v5.z(), v3.z() - v2.z()); + QCOMPARE(v5.w(), v3.w() - v2.w()); +} + +// Test component-wise vector multiplication for 2D vectors. +void tst_QVector::multiply2_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f + << (qreal)4.0f << (qreal)5.0f + << (qreal)4.0f << (qreal)10.0f; +} +void tst_QVector::multiply2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + QVector2D v3(x3, y3); + + QVERIFY((v1 * v2) == v3); + + QVector2D v4(v1); + v4 *= v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() * v2.x()); + QCOMPARE(v4.y(), v1.y() * v2.y()); +} + +// Test component-wise vector multiplication for 3D vectors. +void tst_QVector::multiply3_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f + << (qreal)4.0f << (qreal)10.0f << (qreal)-18.0f; +} +void tst_QVector::multiply3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QVERIFY((v1 * v2) == v3); + + QVector3D v4(v1); + v4 *= v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() * v2.x()); + QCOMPARE(v4.y(), v1.y() * v2.y()); + QCOMPARE(v4.z(), v1.z() * v2.z()); +} + +// Test component-wise vector multiplication for 4D vectors. +void tst_QVector::multiply4_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("w3"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("wonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f + << (qreal)4.0f << (qreal)10.0f << (qreal)-18.0f << (qreal)72.0f; +} +void tst_QVector::multiply4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, w3); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + QVector4D v3(x3, y3, z3, w3); + + QVERIFY((v1 * v2) == v3); + + QVector4D v4(v1); + v4 *= v2; + QVERIFY(v4 == v3); + + QCOMPARE(v4.x(), v1.x() * v2.x()); + QCOMPARE(v4.y(), v1.y() * v2.y()); + QCOMPARE(v4.z(), v1.z() * v2.z()); + QCOMPARE(v4.w(), v1.w() * v2.w()); +} + +// Test vector multiplication by a factor for 2D vectors. +void tst_QVector::multiplyFactor2_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f + << (qreal)100.0f + << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)4.0f; + + QTest::newRow("allzero") + << (qreal)1.0f << (qreal)2.0f + << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f; +} +void tst_QVector::multiplyFactor2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + + QVERIFY((v1 * factor) == v2); + QVERIFY((factor * v1) == v2); + + QVector2D v3(v1); + v3 *= factor; + QVERIFY(v3 == v2); + + QCOMPARE(v3.x(), v1.x() * factor); + QCOMPARE(v3.y(), v1.y() * factor); +} + +// Test vector multiplication by a factor for 3D vectors. +void tst_QVector::multiplyFactor3_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)100.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f; + + QTest::newRow("allzero") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f + << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; +} +void tst_QVector::multiplyFactor3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + + QVERIFY((v1 * factor) == v2); + QVERIFY((factor * v1) == v2); + + QVector3D v3(v1); + v3 *= factor; + QVERIFY(v3 == v2); + + QCOMPARE(v3.x(), v1.x() * factor); + QCOMPARE(v3.y(), v1.y() * factor); + QCOMPARE(v3.z(), v1.z() * factor); +} + +// Test vector multiplication by a factor for 4D vectors. +void tst_QVector::multiplyFactor4_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("factor"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)100.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("xonly") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("yonly") + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("zonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + + QTest::newRow("wonly") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)2.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + + QTest::newRow("all") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f + << (qreal)2.0f + << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f << (qreal)8.0f; + + QTest::newRow("allzero") + << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f + << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; +} +void tst_QVector::multiplyFactor4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + + QVERIFY((v1 * factor) == v2); + QVERIFY((factor * v1) == v2); + + QVector4D v3(v1); + v3 *= factor; + QVERIFY(v3 == v2); + + QCOMPARE(v3.x(), v1.x() * factor); + QCOMPARE(v3.y(), v1.y() * factor); + QCOMPARE(v3.z(), v1.z() * factor); + QCOMPARE(v3.w(), v1.w() * factor); +} + +// Test vector division by a factor for 2D vectors. +void tst_QVector::divide2_data() +{ + // Use the same test data as the multiply test. + multiplyFactor2_data(); +} +void tst_QVector::divide2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + + if (factor == (qreal)0.0f) + return; + + QVERIFY((v2 / factor) == v1); + + QVector2D v3(v2); + v3 /= factor; + QVERIFY(v3 == v1); + + QCOMPARE(v3.x(), v2.x() / factor); + QCOMPARE(v3.y(), v2.y() / factor); +} + +// Test vector division by a factor for 3D vectors. +void tst_QVector::divide3_data() +{ + // Use the same test data as the multiply test. + multiplyFactor3_data(); +} +void tst_QVector::divide3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + + if (factor == (qreal)0.0f) + return; + + QVERIFY((v2 / factor) == v1); + + QVector3D v3(v2); + v3 /= factor; + QVERIFY(v3 == v1); + + QCOMPARE(v3.x(), v2.x() / factor); + QCOMPARE(v3.y(), v2.y() / factor); + QCOMPARE(v3.z(), v2.z() / factor); +} + +// Test vector division by a factor for 4D vectors. +void tst_QVector::divide4_data() +{ + // Use the same test data as the multiply test. + multiplyFactor4_data(); +} +void tst_QVector::divide4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, factor); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + + if (factor == (qreal)0.0f) + return; + + QVERIFY((v2 / factor) == v1); + + QVector4D v3(v2); + v3 /= factor; + QVERIFY(v3 == v1); + + QCOMPARE(v3.x(), v2.x() / factor); + QCOMPARE(v3.y(), v2.y() / factor); + QCOMPARE(v3.z(), v2.z() / factor); + QCOMPARE(v3.w(), v2.w() / factor); +} + +// Test vector negation for 2D vectors. +void tst_QVector::negate2_data() +{ + // Use the same test data as the add test. + add2_data(); +} +void tst_QVector::negate2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + + QVector2D v1(x1, y1); + QVector2D v2(-x1, -y1); + + QVERIFY(-v1 == v2); +} + +// Test vector negation for 3D vectors. +void tst_QVector::negate3_data() +{ + // Use the same test data as the add test. + add3_data(); +} +void tst_QVector::negate3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + + QVector3D v1(x1, y1, z1); + QVector3D v2(-x1, -y1, -z1); + + QVERIFY(-v1 == v2); +} + +// Test vector negation for 4D vectors. +void tst_QVector::negate4_data() +{ + // Use the same test data as the add test. + add4_data(); +} +void tst_QVector::negate4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(-x1, -y1, -z1, -w1); + + QVERIFY(-v1 == v2); +} + +// Test the computation of vector cross-products. +void tst_QVector::crossProduct_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("x3"); + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("dot"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("unitvec") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f + << (qreal)-3.0f << (qreal)6.0f << (qreal)-3.0f + << (qreal)32.0f; +} +void tst_QVector::crossProduct() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QVector3D v4 = QVector3D::crossProduct(v1, v2); + QVERIFY(v4 == v3); + + // Compute the cross-product long-hand and check again. + qreal xres = y1 * z2 - z1 * y2; + qreal yres = z1 * x2 - x1 * z2; + qreal zres = x1 * y2 - y1 * x2; + + QCOMPARE(v4.x(), xres); + QCOMPARE(v4.y(), yres); + QCOMPARE(v4.z(), zres); +} + +// Test the computation of normals. +void tst_QVector::normal_data() +{ + // Use the same test data as the crossProduct test. + crossProduct_data(); +} +void tst_QVector::normal() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QVERIFY(QVector3D::normal(v1, v2) == v3.normalized()); + QVERIFY(QVector3D::normal(QVector3D(), v1, v2) == v3.normalized()); + + QVector3D point(1.0f, 2.0f, 3.0f); + QVERIFY(QVector3D::normal(point, v1 + point, v2 + point) == v3.normalized()); +} + +// Test distance to plane calculations. +void tst_QVector::distanceToPlane_data() +{ + QTest::addColumn<qreal>("x1"); // Point on plane + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("x2"); // Normal to plane + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("x3"); // Point to test for distance + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("x4"); // Second point on plane + QTest::addColumn<qreal>("y4"); + QTest::addColumn<qreal>("z4"); + QTest::addColumn<qreal>("x5"); // Third point on plane + QTest::addColumn<qreal>("y5"); + QTest::addColumn<qreal>("z5"); + QTest::addColumn<qreal>("distance"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("above") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)2.0f; + + QTest::newRow("below") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)-1.0f << (qreal)1.0f << (qreal)-2.0f + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f + << (qreal)-2.0f; +} +void tst_QVector::distanceToPlane() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, x4); + QFETCH(qreal, y4); + QFETCH(qreal, z4); + QFETCH(qreal, x5); + QFETCH(qreal, y5); + QFETCH(qreal, z5); + QFETCH(qreal, distance); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + QVector3D v4(x4, y4, z4); + QVector3D v5(x5, y5, z5); + + QCOMPARE(v3.distanceToPlane(v1, v2), distance); + QCOMPARE(v3.distanceToPlane(v1, v4, v5), distance); +} + +// Test distance to line calculations. +void tst_QVector::distanceToLine_data() +{ + QTest::addColumn<qreal>("x1"); // Point on line + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("x2"); // Direction of the line + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("x3"); // Point to test for distance + QTest::addColumn<qreal>("y3"); + QTest::addColumn<qreal>("z3"); + QTest::addColumn<qreal>("distance"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("on line") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)5.0f + << (qreal)0.0f; + + QTest::newRow("off line") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)1.0f; + + QTest::newRow("off line 2") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)-2.0f << (qreal)0.0f + << (qreal)2.0f; + + QTest::newRow("points") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)5.0f << (qreal)0.0f + << (qreal)5.0f; +} +void tst_QVector::distanceToLine() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, distance); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + QVector3D v3(x3, y3, z3); + + QCOMPARE(v3.distanceToLine(v1, v2), distance); +} + +// Test the computation of dot products for 2D vectors. +void tst_QVector::dotProduct2_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("dot"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("unitvec") + << (qreal)1.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f + << (qreal)4.0f << (qreal)5.0f + << (qreal)14.0f; +} +void tst_QVector::dotProduct2() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, dot); + + QVector2D v1(x1, y1); + QVector2D v2(x2, y2); + + QVERIFY(QVector2D::dotProduct(v1, v2) == dot); + + // Compute the dot-product long-hand and check again. + qreal d = x1 * x2 + y1 * y2; + + QCOMPARE(QVector2D::dotProduct(v1, v2), d); +} + +// Test the computation of dot products for 3D vectors. +void tst_QVector::dotProduct3_data() +{ + // Use the same test data as the crossProduct test. + crossProduct_data(); +} +void tst_QVector::dotProduct3() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, x3); + QFETCH(qreal, y3); + QFETCH(qreal, z3); + QFETCH(qreal, dot); + + Q_UNUSED(x3); + Q_UNUSED(y3); + Q_UNUSED(z3); + + QVector3D v1(x1, y1, z1); + QVector3D v2(x2, y2, z2); + + QVERIFY(QVector3D::dotProduct(v1, v2) == dot); + + // Compute the dot-product long-hand and check again. + qreal d = x1 * x2 + y1 * y2 + z1 * z2; + + QCOMPARE(QVector3D::dotProduct(v1, v2), d); +} + +// Test the computation of dot products for 4D vectors. +void tst_QVector::dotProduct4_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + QTest::addColumn<qreal>("dot"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("unitvec") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)4.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)7.0f + << (qreal)60.0f; +} +void tst_QVector::dotProduct4() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + QFETCH(qreal, dot); + + QVector4D v1(x1, y1, z1, w1); + QVector4D v2(x2, y2, z2, w2); + + QVERIFY(QVector4D::dotProduct(v1, v2) == dot); + + // Compute the dot-product long-hand and check again. + qreal d = x1 * x2 + y1 * y2 + z1 * z2 + w1 * w2; + + QCOMPARE(QVector4D::dotProduct(v1, v2), d); +} + +QTEST_APPLESS_MAIN(tst_QVector) + +#include "tst_qvectornd.moc" diff --git a/tests/auto/math3d/shared/math3dincludes.h b/tests/auto/math3d/shared/math3dincludes.h new file mode 100644 index 0000000..00d0f34 --- /dev/null +++ b/tests/auto/math3d/shared/math3dincludes.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef MATH3DINCLUDES_H +#define MATH3DINCLUDES_H + +#include <QtGui/qmatrix4x4.h> +#include <QtGui/qgenericmatrix.h> +#include <QtGui/qvector2d.h> +#include <QtGui/qvector3d.h> +#include <QtGui/qvector4d.h> +#include <QtGui/qquaternion.h> + +#endif diff --git a/tests/auto/mediaobject/dummy/README b/tests/auto/mediaobject/dummy/README new file mode 100644 index 0000000..43f69d9 --- /dev/null +++ b/tests/auto/mediaobject/dummy/README @@ -0,0 +1 @@ +This is a dummy backend for phonon, used for testing purposes. diff --git a/tests/auto/mediaobject/dummy/audiooutput.cpp b/tests/auto/mediaobject/dummy/audiooutput.cpp new file mode 100644 index 0000000..41b473d --- /dev/null +++ b/tests/auto/mediaobject/dummy/audiooutput.cpp @@ -0,0 +1,53 @@ +#include "audiooutput.h" +#include "backend.h" +#include <phonon/audiooutput.h> + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace Dummy +{ +AudioOutput::AudioOutput(Backend *backend, QObject *parent) + : QObject(parent) +{ + Q_UNUSED(backend) + + m_volumeLevel = 100; +} + +AudioOutput::~AudioOutput() +{ +} + +qreal AudioOutput::volume() const +{ + return m_volumeLevel; +} + +int AudioOutput::outputDevice() const +{ + return m_device; +} + +void AudioOutput::setVolume(qreal newVolume) +{ + m_volumeLevel = newVolume; + emit volumeChanged(newVolume); +} + +bool AudioOutput::setOutputDevice(int newDevice) +{ + return (newDevice == 0); +} + +bool AudioOutput::setOutputDevice(const AudioOutputDevice &newDevice) +{ + return setOutputDevice(newDevice.index()); +} + +} +} //namespace Phonon::Dummy + +QT_END_NAMESPACE +#include "moc_audiooutput.cpp" diff --git a/tests/auto/mediaobject/dummy/audiooutput.h b/tests/auto/mediaobject/dummy/audiooutput.h new file mode 100644 index 0000000..39efb55 --- /dev/null +++ b/tests/auto/mediaobject/dummy/audiooutput.h @@ -0,0 +1,41 @@ +#ifndef PHONON_DUMMY_AUDIOOUTPUT_H +#define PHONON_DUMMY_AUDIOOUTPUT_H + +#include "backend.h" +#include <phonon/audiooutputinterface.h> +#include <phonon/phononnamespace.h> + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace Dummy +{ +class AudioOutput : public QObject, public AudioOutputInterface +{ + Q_OBJECT + Q_INTERFACES(Phonon::AudioOutputInterface) +public: + AudioOutput(Backend *backend, QObject *parent); + ~AudioOutput(); + + qreal volume() const; + int outputDevice() const; + void setVolume(qreal newVolume); + bool setOutputDevice(int newDevice); + bool setOutputDevice(const AudioOutputDevice &newDevice); + +Q_SIGNALS: + void volumeChanged(qreal newVolume); + void audioDeviceFailed(); + +private: + qreal m_volumeLevel; + int m_device; +}; +} +} //namespace Phonon::Dummy + +QT_END_NAMESPACE + +#endif // PHONON_DUMMY_AUDIOOUTPUT_H diff --git a/tests/auto/mediaobject/dummy/backend.cpp b/tests/auto/mediaobject/dummy/backend.cpp new file mode 100644 index 0000000..53f3896 --- /dev/null +++ b/tests/auto/mediaobject/dummy/backend.cpp @@ -0,0 +1,149 @@ +#include "audiooutput.h" +#include "mediaobject.h" +#include "videowidget.h" + +#include "backend.h" + +#include <QtCore/QSet> +#include <QtCore/QVariant> +#include <QtCore/QtPlugin> + +QT_BEGIN_NAMESPACE + +Q_EXPORT_PLUGIN2(phonon_dummy, Phonon::Dummy::Backend) + +namespace Phonon +{ +namespace Dummy +{ + +Backend::Backend(QObject *parent, const QVariantList &) + : QObject(parent) +{ + qWarning()<<"Using TEST Phonon backend"; +} + +Backend::~Backend() +{ +} + +/*** + * !reimp + */ +QObject *Backend::createObject(BackendInterface::Class c, QObject *parent, const QList<QVariant> &args) +{ + Q_UNUSED(args) + + switch (c) { + case MediaObjectClass: + return new MediaObject(this, parent); + + case AudioOutputClass: { + AudioOutput *ao = new AudioOutput(this, parent); + m_audioOutputs.append(ao); + return ao; + } + case VideoWidgetClass: { + QWidget *widget = qobject_cast<QWidget*>(parent); + return new VideoWidget(this, widget); + } + default: + qWarning("createObject() : Backend object not available"); + } + return 0; +} + +/*** + * !reimp + */ +QStringList Backend::availableMimeTypes() const +{ + QStringList availableMimeTypes; + // audio *.wav and *.mp3 files + availableMimeTypes << QLatin1String("audio/x-mp3"); + availableMimeTypes << QLatin1String("audio/x-wav"); + + // video *.ogv, *.mp4, *.avi (some) + + availableMimeTypes << QLatin1String("video/mpeg"); + availableMimeTypes << QLatin1String("video/ogg"); + availableMimeTypes << QLatin1String("video/mp4"); + + return availableMimeTypes; +} + +/*** + * !reimp + */ +QList<int> Backend::objectDescriptionIndexes(ObjectDescriptionType type) const +{ + QList<int> list; + + if(type == Phonon::AudioOutputDeviceType) + list.append(0); + + return list; +} + +/*** + * !reimp + */ +QHash<QByteArray, QVariant> Backend::objectDescriptionProperties(ObjectDescriptionType type, int index) const +{ + Q_UNUSED(index); + QHash<QByteArray, QVariant> ret; + + if(type == Phonon::AudioOutputDeviceType) + ret["name"] = QLatin1String("default audio device"); + + return ret; +} + +/*** + * !reimp + */ +bool Backend::startConnectionChange(QSet<QObject *> objects) +{ + Q_UNUSED(objects) + + return true; +} + +/*** + * !reimp + */ +bool Backend::connectNodes(QObject *source, QObject *sink) +{ + Q_UNUSED(source) + Q_UNUSED(sink) + + return true; +} + +/*** + * !reimp + */ +bool Backend::disconnectNodes(QObject *source, QObject *sink) +{ + Q_UNUSED(source) + Q_UNUSED(sink) + + return true; +} + +/*** + * !reimp + */ +bool Backend::endConnectionChange(QSet<QObject *> objects) +{ + Q_UNUSED(objects) + + return true; +} + +} +} + +QT_END_NAMESPACE + +#include "moc_backend.cpp" diff --git a/tests/auto/mediaobject/dummy/backend.h b/tests/auto/mediaobject/dummy/backend.h new file mode 100644 index 0000000..20af216 --- /dev/null +++ b/tests/auto/mediaobject/dummy/backend.h @@ -0,0 +1,55 @@ +#ifndef PHONON_DUMMY_BACKEND_H +#define PHONON_DUMMY_BACKEND_H + +#include <phonon/objectdescription.h> +#include <phonon/backendinterface.h> + +#include <phonon/medianode.h> + +#include <QtCore/QList> +#include <QtCore/QPointer> +#include <QtCore/QStringList> +#include <QtCore/QTimer> + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace Dummy +{ +class AudioOutput; +class MediaObject; + +class Backend : public QObject, public BackendInterface +{ + Q_OBJECT + Q_INTERFACES(Phonon::BackendInterface) + +public: + Backend(QObject *parent = 0, const QVariantList & = QVariantList()); + virtual ~Backend(); + + QObject *createObject(BackendInterface::Class, QObject *parent, const QList<QVariant> &args); + + QStringList availableMimeTypes() const; + + QList<int> objectDescriptionIndexes(ObjectDescriptionType type) const; + QHash<QByteArray, QVariant> objectDescriptionProperties(ObjectDescriptionType type, int index) const; + + bool startConnectionChange(QSet<QObject *>); + bool connectNodes(QObject *, QObject *); + bool disconnectNodes(QObject *, QObject *); + bool endConnectionChange(QSet<QObject *>); + +Q_SIGNALS: + void objectDescriptionChanged(ObjectDescriptionType); + +private: + QList<QPointer<AudioOutput> > m_audioOutputs; +}; +} +} // namespace Phonon::Dummy + +QT_END_NAMESPACE + +#endif // PHONON_DUMMY_BACKEND_H diff --git a/tests/auto/mediaobject/dummy/dummy.pro b/tests/auto/mediaobject/dummy/dummy.pro new file mode 100644 index 0000000..b4f6109 --- /dev/null +++ b/tests/auto/mediaobject/dummy/dummy.pro @@ -0,0 +1,23 @@ +TEMPLATE = lib + +isEmpty(QT_MAJOR_VERSION) { + VERSION=4.5.2 +} else { + VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} +} +CONFIG += qt plugin + +TARGET = phonon_dummy +DESTDIR = $$QT_BUILD_TREE/plugins/phonon_backend +DEPENDPATH += . +INCLUDEPATH += . + +QT += phonon + + +# Input +HEADERS += backend.h audiooutput.h mediaobject.h videowidget.h +SOURCES += backend.cpp audiooutput.cpp mediaobject.cpp videowidget.cpp + +target.path = $$[QT_INSTALL_PLUGINS]/phonon_backend +INSTALLS += target diff --git a/tests/auto/mediaobject/dummy/mediaobject.cpp b/tests/auto/mediaobject/dummy/mediaobject.cpp new file mode 100644 index 0000000..521e3a6 --- /dev/null +++ b/tests/auto/mediaobject/dummy/mediaobject.cpp @@ -0,0 +1,397 @@ +#include "mediaobject.h" +#include "backend.h" + +#include <QtCore> +#include <QtCore/QTimer> +#include <QtCore/QVector> +#include <QtCore/QFile> +#include <QtCore/QByteRef> +#include <QtCore/QStringList> +#include <QtCore/QEvent> +#include <QApplication> + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace Dummy +{ + +static const char* riffId = "RIFF"; + +MediaObject::MediaObject(Backend *backend, QObject *parent) + : QObject(parent) + , m_resumeState(false) + , m_oldState(Phonon::LoadingState) + , m_oldPos(0) + , currentPos(0) +{ + Q_UNUSED(backend) + + m_error = Phonon::NoError; + m_tickInterval = 100; // 100ms + m_totalTime = 26000; // 26s + m_prefinishMark = 0; + m_transitionTime = 100; //100ms + m_hasVideo = false; + m_prefinishMarkReachedNotEmitted = true; + m_aboutToFinishEmitted = false; + m_pendingState = Phonon::LoadingState; + m_state = Phonon::LoadingState; + m_pendingState = Phonon::LoadingState; + m_tickTimer = new QTimer(this); + connect(m_tickTimer, SIGNAL(timeout()), SLOT(emitTick())); +} + +MediaObject::~MediaObject() +{ + delete m_tickTimer; +} + +QString stateString(const Phonon::State &state) +{ + switch (state) { + case Phonon::LoadingState: + return QString("LoadingState"); + case Phonon::StoppedState: + return QString("StoppedState"); + case Phonon::PlayingState: + return QString("PlayingState"); + case Phonon::BufferingState: + return QString("BufferingState"); + case Phonon::PausedState: + return QString("PausedState"); + case Phonon::ErrorState: + return QString("ErrorState"); + } + return QString(); +} + +void MediaObject::saveState() +{ + if (m_resumeState) + return; + + if (m_pendingState == Phonon::PlayingState || m_pendingState == Phonon::PausedState) { + m_resumeState = true; + m_oldState = m_pendingState; + m_oldPos = currentPos; + } +} + +void MediaObject::resumeState() +{ + if (m_resumeState) + QMetaObject::invokeMethod(this, "setState", Qt::QueuedConnection, Q_ARG(State, m_oldState)); +} + +/** + * !reimp + */ +State MediaObject::state() const +{ + return m_state; +} + +/** + * !reimp + */ +bool MediaObject::hasVideo() const +{ + return m_hasVideo; +} + +/** + * !reimp + */ +bool MediaObject::isSeekable() const +{ + return true; +} + +/** + * !reimp + */ +qint64 MediaObject::currentTime() const +{ + if (m_resumeState) + return m_oldPos; + + switch (state()) { + case Phonon::PausedState: + case Phonon::BufferingState: + case Phonon::PlayingState: + return currentPos; + case Phonon::StoppedState: + case Phonon::LoadingState: + return 0; + case Phonon::ErrorState: + break; + } + return -1; +} + +/** + * !reimp + */ +qint32 MediaObject::tickInterval() const +{ + return m_tickInterval; +} + +/** + * !reimp + */ +void MediaObject::setTickInterval(qint32 newTickInterval) +{ + m_tickInterval = newTickInterval; + if (m_tickInterval <= 0) { + m_tickTimer->setInterval(100); + } else + m_tickTimer->setInterval(newTickInterval); +} + +/** + * !reimp + */ +void MediaObject::play() +{ + if(m_state == Phonon::PlayingState) + return; + if(m_state == Phonon::ErrorState) + return; + + if(m_state != Phonon::PausedState) + m_tickTimer->stop(); + + m_prefinishMarkReachedNotEmitted = true; + m_aboutToFinishEmitted = false; + + setState(Phonon::PlayingState); + m_resumeState = false; + m_tickTimer->start(); +} + +/** + * !reimp + */ +QString MediaObject::errorString() const +{ + return m_errorString; +} + +/** + * !reimp + */ +Phonon::ErrorType MediaObject::errorType() const +{ + return m_error; +} + +void MediaObject::setState(State newstate) +{ + if (m_state == newstate) + return; + + switch (newstate) { + case Phonon::PausedState: + m_pendingState = Phonon::PausedState; + emit stateChanged(newstate, m_state); + m_state = newstate; + break; + case Phonon::StoppedState: + m_pendingState = Phonon::StoppedState; + emit stateChanged(newstate, m_state); + m_state = newstate; + break; + case Phonon::PlayingState: + m_pendingState = Phonon::PlayingState; + emit stateChanged(newstate, m_state); + m_state = newstate; + break; + case Phonon::ErrorState: + emit stateChanged(newstate, m_state); + m_state = newstate; + break; + case Phonon::BufferingState: + case Phonon::LoadingState: + emit stateChanged(newstate, m_state); + m_state = newstate; + break; + } +} + +qint64 MediaObject::totalTime() const +{ + return m_totalTime; +} + +qint32 MediaObject::prefinishMark() const +{ + return m_prefinishMark; +} + +qint32 MediaObject::transitionTime() const +{ + return m_transitionTime; +} + +void MediaObject::setTransitionTime(qint32 time) +{ + m_transitionTime = time; +} + +qint64 MediaObject::remainingTime() const +{ + if(currentTime() > totalTime()) + return 0; + + return totalTime() - currentTime(); +} + +MediaSource MediaObject::source() const +{ + return m_source; +} + +void MediaObject::setNextSource(const MediaSource &source) +{ + if (source.type() == MediaSource::Invalid && + source.type() == MediaSource::Empty) + return; + m_nextSource = source; +} + +/* + * !reimp + */ +void MediaObject::setSource(const MediaSource &source) +{ + QMultiMap<QString, QString> ret; + + ret.insert(QLatin1String("ARTIST"), "Nokia Dude"); + ret.insert(QLatin1String("ALBUM"), "Sound of silence"); + ret.insert(QLatin1String("DATE"), "2009"); + + m_error = Phonon::NoError; + setState(Phonon::LoadingState); + + m_source = source; + currentPos = 0; + + if((source.fileName().contains(".avi")) || + (source.fileName().contains(".mp4"))) { + m_hasVideo = true; + emit hasVideoChanged(m_hasVideo); + } + if(source.fileName().contains(".wav")) { + QFile file(source.fileName()); + if (file.open(QIODevice::ReadOnly)) { + int len = file.read((char*)&header, sizeof(CombinedHeader)); + if(len == sizeof(CombinedHeader)) { + if(memcmp(&header.riff.descriptor.id, riffId, 4) != 0) { + // Not a valid wav file, to satisfy unit test for mediaobject + m_error = Phonon::FatalError; + //m_state = Phonon::ErrorState; + m_errorString = "Invalid wav file"; + setState(Phonon::ErrorState); + file.close(); + return; + } + } + file.close(); + } + } + emit metaDataChanged(ret); + emit currentSourceChanged(source); + emit totalTimeChanged(m_totalTime); + + setState(Phonon::StoppedState); +} + +void MediaObject::setPrefinishMark(qint32 newPrefinishMark) +{ + m_prefinishMark = newPrefinishMark; + if (currentTime() < totalTime() - m_prefinishMark) // not about to finish + m_prefinishMarkReachedNotEmitted = true; +} + +void MediaObject::pause() +{ + if (state() != Phonon::PausedState) + setState(Phonon::PausedState); + m_resumeState = false; + m_tickTimer->stop(); +} + +void MediaObject::stop() +{ + if (state() != Phonon::StoppedState) { + if(m_state != Phonon::ErrorState) { + setState(Phonon::StoppedState); + } + m_prefinishMarkReachedNotEmitted = true; + } + m_resumeState = false; + m_tickTimer->stop(); +} + +void MediaObject::emitTick() +{ + if (m_resumeState) { + return; + } + if(m_tickInterval > 0) + currentPos += m_tickInterval; + else + currentPos += 100; + + qint64 currentTime = currentPos; + qint64 totalTime = m_totalTime; + + if (m_tickInterval > 0 && currentTime != m_previousTickTime) { + emit tick(currentTime); + m_previousTickTime = currentTime; + } + if (m_state == Phonon::PlayingState) { + if (currentTime >= totalTime - m_prefinishMark) { + if (m_prefinishMarkReachedNotEmitted) { + m_prefinishMarkReachedNotEmitted = false; + emit prefinishMarkReached(totalTime - currentTime); + } + } + // Prepare load of next source + if (currentTime >= totalTime - 500) { + if (!m_aboutToFinishEmitted) { + m_aboutToFinishEmitted = true; // track is about to finish + emit aboutToFinish(); + } + } + if(currentTime >= totalTime) { + m_tickTimer->stop(); + if(m_nextSource.type() != MediaSource::Invalid && + m_nextSource.type() != MediaSource::Empty) { + setSource(m_nextSource); + m_nextSource = MediaSource(); + m_pendingState = Phonon::PlayingState; + } else { + setState(Phonon::PausedState); + currentPos = 0; + emit finished(); + } + } + } +} + +void MediaObject::seek(qint64 time) +{ + // We will assume no buffering in the object so this is not needed. + currentPos = time; +} + +} // ns Dummy +} // ns Phonon + +QT_END_NAMESPACE + +#include "moc_mediaobject.cpp" diff --git a/tests/auto/mediaobject/dummy/mediaobject.h b/tests/auto/mediaobject/dummy/mediaobject.h new file mode 100644 index 0000000..a87b32f --- /dev/null +++ b/tests/auto/mediaobject/dummy/mediaobject.h @@ -0,0 +1,169 @@ +#ifndef PHONON_DUMMY_MEDIAOBJECT_H +#define PHONON_DUMMY_MEDIAOBJECT_H + +#include "backend.h" +#include <phonon/mediaobjectinterface.h> +#include <phonon/addoninterface.h> + +#include <QtCore/QHash> +#include <QtCore/QString> +#include <QtCore/QVariant> +#include <QtCore/QObject> +#include <QtCore/QDate> +#include <QtCore/QEvent> +#include <QtCore/QUrl> + +QT_BEGIN_NAMESPACE + +class QTimer; +typedef QMultiMap<QString, QString> TagMap; + +namespace Phonon +{ +namespace Dummy +{ + +class VideoWidget; +class AudioPath; +class VideoPath; +class AudioOutput; + +class MediaObject : public QObject, public MediaObjectInterface +{ + friend class Stream; + Q_OBJECT + Q_INTERFACES(Phonon::MediaObjectInterface + ) + +public: + + MediaObject(Backend *backend, QObject *parent); + ~MediaObject(); + Phonon::State state() const; + + bool hasVideo() const; + bool isSeekable() const; + + qint64 currentTime() const; + qint32 tickInterval() const; + + void setTickInterval(qint32 newTickInterval); + + void play(); + void pause(); + void stop(); + void seek(qint64 time); + + QString errorString() const; + Phonon::ErrorType errorType() const; + + QUrl url() const; + qint64 totalTime() const; + + qint32 prefinishMark() const; + void setPrefinishMark(qint32 newPrefinishMark); + + qint32 transitionTime() const; + void setTransitionTime(qint32); + qint64 remainingTime() const; + + void setSource(const MediaSource &source); + void setNextSource(const MediaSource &source); + MediaSource source() const; + + void saveState(); + void resumeState(); + +public Q_SLOTS: + void setState(State); + +Q_SIGNALS: + void currentSourceChanged(const MediaSource &newSource); + void stateChanged(Phonon::State newstate, Phonon::State oldstate); + void tick(qint64 time); + void metaDataChanged(QMultiMap<QString, QString>); + void seekableChanged(bool); + void hasVideoChanged(bool); + + void finished(); + void prefinishMarkReached(qint32); + void aboutToFinish(); + void totalTimeChanged(qint64 length); + void bufferStatus(int percentFilled); + + QMultiMap<QString, QString> metaData(); + void setMetaData(QMultiMap<QString, QString> newData); + +private Q_SLOTS: + void emitTick(); + +private: + bool m_resumeState; + State m_oldState; + quint64 m_oldPos; + quint64 currentPos; + bool m_hasVideo; + qint32 m_tickInterval; + QTimer *m_tickTimer; + Phonon::ErrorType m_error; + QString m_errorString; + qint64 m_totalTime; + qint32 m_prefinishMark; + qint32 m_transitionTime; + MediaSource m_source; + MediaSource m_nextSource; + bool m_prefinishMarkReachedNotEmitted; + bool m_aboutToFinishEmitted; + int m_previousTickTime; + + State m_state; + State m_pendingState; + + struct chunk + { + char id[4]; + quint32 size; + }; + + struct RIFFHeader + { + chunk descriptor; + char type[4]; + }; + + struct WAVEHeader + { + chunk descriptor; + quint16 audioFormat; // PCM = 1 + quint16 numChannels; + quint32 sampleRate; + quint32 byteRate; + quint16 blockAlign; + quint16 bitsPerSample; + quint32 xFreq1; + chunk fact; + quint32 xfact; + chunk data; + }; + + struct DATAHeader + { + chunk descriptor; + quint8 data[]; + }; + + struct CombinedHeader + { + RIFFHeader riff; + WAVEHeader wave; + DATAHeader data; + }; + + CombinedHeader header; +}; +} +} //namespace Phonon::Dummy + +QT_END_NAMESPACE + +#endif // PHONON_DUMMY_MEDIAOBJECT_H diff --git a/tests/auto/mediaobject/dummy/videowidget.cpp b/tests/auto/mediaobject/dummy/videowidget.cpp new file mode 100644 index 0000000..890363f --- /dev/null +++ b/tests/auto/mediaobject/dummy/videowidget.cpp @@ -0,0 +1,205 @@ +#include "videowidget.h" +#include <QtCore/QEvent> +#include <QtGui/QResizeEvent> +#include <QtGui/QPalette> +#include <QtGui/QImage> +#include <QtGui/QPainter> +#include <QtGui/QBoxLayout> +#include <QApplication> +#include "mediaobject.h" + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace Dummy +{ + +VideoWidget::VideoWidget(Backend *backend, QWidget *parent) : + QWidget(parent), + m_aspectRatio(Phonon::VideoWidget::AspectRatioAuto), + m_brightness(0.0), + m_hue(0.0), + m_contrast(0.0), + m_saturation(0.0), + m_scaleMode(Phonon::VideoWidget::FitInView) +{ + Q_UNUSED(backend) + +} + +VideoWidget::~VideoWidget() +{ +} + +void VideoWidget::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) +} + +void VideoWidget::setVisible(bool val) +{ + Q_UNUSED(val) +} + +Phonon::VideoWidget::AspectRatio VideoWidget::aspectRatio() const +{ + return m_aspectRatio; +} + +QSize VideoWidget::sizeHint() const +{ + return QSize(640, 480); +} + +void VideoWidget::setAspectRatio(Phonon::VideoWidget::AspectRatio aspectRatio) +{ + Q_UNUSED(aspectRatio) +} + +Phonon::VideoWidget::ScaleMode VideoWidget::scaleMode() const +{ + return m_scaleMode; +} + +QRect VideoWidget::scaleToAspect(QRect srcRect, int w, int h) const +{ + float width = srcRect.width(); + float height = srcRect.width() * (float(h) / float(w)); + if (height > srcRect.height()) { + height = srcRect.height(); + width = srcRect.height() * (float(w) / float(h)); + } + return QRect(0, 0, (int)width, (int)height); +} + +/*** + * Calculates the actual rectangle the movie will be presented with + **/ +QRect VideoWidget::calculateDrawFrameRect() const +{ + QRect widgetRect = rect(); + QRect drawFrameRect; + // Set m_drawFrameRect to be the size of the smallest possible + // rect conforming to the aspect and containing the whole frame: + switch (aspectRatio()) { + + case Phonon::VideoWidget::AspectRatioWidget: + drawFrameRect = widgetRect; + // No more calculations needed. + return drawFrameRect; + + case Phonon::VideoWidget::AspectRatio4_3: + drawFrameRect = scaleToAspect(widgetRect, 4, 3); + break; + + case Phonon::VideoWidget::AspectRatio16_9: + drawFrameRect = scaleToAspect(widgetRect, 16, 9); + break; + + case Phonon::VideoWidget::AspectRatioAuto: + default: + drawFrameRect = QRect(0, 0, movieSize().width(), movieSize().height()); + break; + } + + // Scale m_drawFrameRect to fill the widget + // without breaking aspect: + float widgetWidth = widgetRect.width(); + float widgetHeight = widgetRect.height(); + float frameWidth = widgetWidth; + float frameHeight = drawFrameRect.height() * float(widgetWidth) / float(drawFrameRect.width()); + + switch (scaleMode()) { + case Phonon::VideoWidget::ScaleAndCrop: + if (frameHeight < widgetHeight) { + frameWidth *= float(widgetHeight) / float(frameHeight); + frameHeight = widgetHeight; + } + break; + case Phonon::VideoWidget::FitInView: + default: + if (frameHeight > widgetHeight) { + frameWidth *= float(widgetHeight) / float(frameHeight); + frameHeight = widgetHeight; + } + break; + } + drawFrameRect.setSize(QSize(int(frameWidth), int(frameHeight))); + drawFrameRect.moveTo(int((widgetWidth - frameWidth) / 2.0f), + int((widgetHeight - frameHeight) / 2.0f)); + return drawFrameRect; +} + +void VideoWidget::setScaleMode(Phonon::VideoWidget::ScaleMode scaleMode) +{ + Q_UNUSED(scaleMode) +} + +qreal VideoWidget::brightness() const +{ + return m_brightness; +} + +qreal clampedValue(qreal val) +{ + if (val > 1.0 ) + return 1.0; + else if (val < -1.0) + return -1.0; + else return val; +} + +void VideoWidget::setBrightness(qreal newValue) +{ + Q_UNUSED(newValue) +} + +qreal VideoWidget::contrast() const +{ + return m_contrast; +} + +void VideoWidget::setContrast(qreal newValue) +{ + Q_UNUSED(newValue) +} + +qreal VideoWidget::hue() const +{ + return m_hue; +} + +void VideoWidget::setHue(qreal newValue) +{ + Q_UNUSED(newValue) +} + +qreal VideoWidget::saturation() const +{ + return m_saturation; +} + +void VideoWidget::setSaturation(qreal newValue) +{ + Q_UNUSED(newValue) +} + +bool VideoWidget::event(QEvent *event) +{ + return QWidget::event(event); +} + +void VideoWidget::setMovieSize(const QSize &size) +{ + m_movieSize = size; + widget()->updateGeometry(); + widget()->update(); +} + +} +} //namespace Phonon::Dummy + +QT_END_NAMESPACE + +#include "moc_videowidget.cpp" diff --git a/tests/auto/mediaobject/dummy/videowidget.h b/tests/auto/mediaobject/dummy/videowidget.h new file mode 100644 index 0000000..2e5a2b8 --- /dev/null +++ b/tests/auto/mediaobject/dummy/videowidget.h @@ -0,0 +1,70 @@ +#ifndef PHONON_DUMMY_VIDEOWIDGET_H +#define PHONON_DUMMY_VIDEOWIDGET_H + +#include <phonon/videowidget.h> +#include <phonon/videowidgetinterface.h> + +#include "backend.h" + +QT_BEGIN_NAMESPACE + +class QString; + +namespace Phonon +{ +namespace Dummy +{ + +class VideoWidget : public QWidget, public Phonon::VideoWidgetInterface +{ + Q_OBJECT + Q_INTERFACES(Phonon::VideoWidgetInterface) +public: + VideoWidget(Backend *backend, QWidget *parent = 0); + ~VideoWidget(); + + void paintEvent(QPaintEvent *event); + void setVisible(bool); + + Phonon::VideoWidget::AspectRatio aspectRatio() const; + void setAspectRatio(Phonon::VideoWidget::AspectRatio aspectRatio); + Phonon::VideoWidget::ScaleMode scaleMode() const; + void setScaleMode(Phonon::VideoWidget::ScaleMode); + qreal brightness() const; + void setBrightness(qreal); + qreal contrast() const; + void setContrast(qreal); + qreal hue() const; + void setHue(qreal); + qreal saturation() const; + void setSaturation(qreal); + void setMovieSize(const QSize &size); + QSize sizeHint() const; + QRect scaleToAspect(QRect srcRect, int w, int h) const; + QRect calculateDrawFrameRect() const; + + QSize movieSize() const { + return m_movieSize; + } + + bool event(QEvent *); + + QWidget *widget() { + return this; + } + +protected: + QSize m_movieSize; + +private: + Phonon::VideoWidget::AspectRatio m_aspectRatio; + qreal m_brightness, m_hue, m_contrast, m_saturation; + Phonon::VideoWidget::ScaleMode m_scaleMode; +}; + +} +} //namespace Phonon::Dummy + +QT_END_NAMESPACE + +#endif // PHONON_DUMMY_VIDEOWIDGET_H diff --git a/tests/auto/mediaobject/tst_mediaobject.cpp b/tests/auto/mediaobject/tst_mediaobject.cpp index c1a69f7..f04a4d7 100644 --- a/tests/auto/mediaobject/tst_mediaobject.cpp +++ b/tests/auto/mediaobject/tst_mediaobject.cpp @@ -148,6 +148,7 @@ class tst_MediaObject : public QObject void testPlayBeforeFinish(); void testPauseOnFinish(); void testReconnectBetweenTwoMediaObjects(); + void volumeSliderMuteVisibility(); void cleanupTestCase(); private: void _startPlayback(Phonon::State currentState = Phonon::StoppedState); @@ -937,6 +938,28 @@ void tst_MediaObject::_testOneSeek(qint64 seekTo) m_success = true; } +void tst_MediaObject::volumeSliderMuteVisibility() +{ + //this test doesn't really belong to mediaobject + // ### see if we should create a realy Phonon::VolumeSlider autotest + Phonon::VolumeSlider slider; + QVERIFY(slider.isMuteVisible()); // that is the default value + slider.setMuteVisible(true); + QVERIFY(slider.isMuteVisible()); + + //let's check that changing the visibility of the slider itself + //doesn't change what the slider reports + slider.setVisible(false); + QVERIFY(slider.isMuteVisible()); + slider.setVisible(true); + + slider.setMuteVisible(false); + QVERIFY(!slider.isMuteVisible()); + slider.setMuteVisible(true); + QVERIFY(slider.isMuteVisible()); +} + + #endif //QT_NO_PHONON diff --git a/tests/auto/moc/tst_moc.cpp b/tests/auto/moc/tst_moc.cpp index 3a40ae0..d66791f 100644 --- a/tests/auto/moc/tst_moc.cpp +++ b/tests/auto/moc/tst_moc.cpp @@ -488,6 +488,7 @@ private slots: void warnOnPropertyWithoutREAD(); void constructors(); void typenameWithUnsigned(); + void warnOnVirtualSignal(); signals: void sigWithUnsignedArg(unsigned foo); @@ -510,7 +511,7 @@ private: void tst_Moc::initTestCase() { -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) && !defined(QT_NO_PROCESS) QProcess proc; proc.start("qmake", QStringList() << "-query" << "QT_INSTALL_HEADERS"); QVERIFY(proc.waitForFinished()); @@ -555,7 +556,7 @@ void tst_Moc::oldStyleCasts() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; proc.start("moc", QStringList(srcify("/oldstyle-casts.h"))); QVERIFY(proc.waitForFinished()); @@ -585,7 +586,7 @@ void tst_Moc::warnOnExtraSignalSlotQualifiaction() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; proc.start("moc", QStringList(srcify("extraqualification.h"))); QVERIFY(proc.waitForFinished()); @@ -627,7 +628,7 @@ void tst_Moc::inputFileNameWithDotsButNoExtension() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; proc.setWorkingDirectory(QString(SRCDIR) + "/task71021"); proc.start("moc", QStringList("../Header")); @@ -835,7 +836,7 @@ void tst_Moc::warnOnMultipleInheritance() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; QStringList args; args << "-I" << qtIncludePath + "/QtGui" @@ -858,7 +859,7 @@ void tst_Moc::forgottenQInterface() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; QStringList args; args << "-I" << qtIncludePath + "/QtCore" @@ -940,7 +941,7 @@ void tst_Moc::frameworkSearchPath() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) && !defined(QT_NO_PROCESS) QStringList args; args << "-F" << srcify(".") << srcify("interface-from-framework.h") @@ -978,7 +979,7 @@ void tst_Moc::templateGtGt() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; proc.start("moc", QStringList(srcify("template-gtgt.h"))); QVERIFY(proc.waitForFinished()); @@ -994,7 +995,7 @@ void tst_Moc::templateGtGt() void tst_Moc::defineMacroViaCmdline() { -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; QStringList args; @@ -1082,7 +1083,7 @@ void tst_Moc::warnOnPropertyWithoutREAD() #ifdef MOC_CROSS_COMPILED QSKIP("Not tested when cross-compiled", SkipAll); #endif -#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) QProcess proc; proc.start("moc", QStringList(srcify("warn-on-property-without-read.h"))); QVERIFY(proc.waitForFinished()); @@ -1180,6 +1181,27 @@ void tst_Moc::typenameWithUnsigned() QVERIFY(mobj->indexOfSlot("l(unsignedQImage)") != -1); } + +void tst_Moc::warnOnVirtualSignal() +{ +#ifdef MOC_CROSS_COMPILED + QSKIP("Not tested when cross-compiled", SkipAll); +#endif +#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS) + QProcess proc; + proc.start("moc", QStringList(srcify("pure-virtual-signals.h"))); + QVERIFY(proc.waitForFinished()); + QCOMPARE(proc.exitCode(), 0); + QByteArray mocOut = proc.readAllStandardOutput(); + QVERIFY(!mocOut.isEmpty()); + QString mocWarning = QString::fromLocal8Bit(proc.readAllStandardError()); + QCOMPARE(mocWarning, QString(SRCDIR) + QString("/pure-virtual-signals.h:48: Warning: Signals cannot be declared virtual\n") + + QString(SRCDIR) + QString("/pure-virtual-signals.h:50: Warning: Signals cannot be declared virtual\n")); +#else + QSKIP("Only tested on linux/gcc", SkipAll); +#endif +} + QTEST_MAIN(tst_Moc) #include "tst_moc.moc" diff --git a/tests/auto/modeltest/modeltest.cpp b/tests/auto/modeltest/modeltest.cpp index 68b723f..c4cc820 100644 --- a/tests/auto/modeltest/modeltest.cpp +++ b/tests/auto/modeltest/modeltest.cpp @@ -475,7 +475,7 @@ void ModelTest::data() void ModelTest::rowsAboutToBeInserted ( const QModelIndex &parent, int start, int end ) { // Q_UNUSED(end); - qDebug() << "rowsAboutToBeInserted" << "start=" << start << "end=" << end << "parent=" << model->data ( parent ).value<QString>() + qDebug() << "rowsAboutToBeInserted" << "start=" << start << "end=" << end << "parent=" << model->data ( parent ).toString() << "current count of parent=" << model->rowCount ( parent ); // << "display of last=" << model->data( model->index(start-1, 0, parent) ); // qDebug() << model->index(start-1, 0, parent) << model->data( model->index(start-1, 0, parent) ); Changing c; @@ -496,7 +496,7 @@ void ModelTest::rowsInserted ( const QModelIndex & parent, int start, int end ) Changing c = insert.pop(); Q_ASSERT ( c.parent == parent ); qDebug() << "rowsInserted" << "start=" << start << "end=" << end << "oldsize=" << c.oldSize - << "parent=" << model->data ( parent ).value<QString>() << "current rowcount of parent=" << model->rowCount ( parent ); + << "parent=" << model->data ( parent ).toString() << "current rowcount of parent=" << model->rowCount ( parent ); for (int ii=start; ii <= end; ii++) { diff --git a/tests/auto/patternistheaders/tst_patternistheaders.cpp b/tests/auto/patternistheaders/tst_patternistheaders.cpp index 00b2544..dd342ae 100644 --- a/tests/auto/patternistheaders/tst_patternistheaders.cpp +++ b/tests/auto/patternistheaders/tst_patternistheaders.cpp @@ -94,6 +94,10 @@ void tst_PatternistHeaders::run() const #include <qxmlquery.h> #include <QXmlResultItems> #include <qxmlresultitems.h> +#include <QXmlSchema> +#include <qxmlschema.h> +#include <QXmlSchemaValidator> +#include <qxmlschemavalidator.h> #include <QXmlSerializer> #include <qxmlserializer.h> @@ -122,6 +126,10 @@ void tst_PatternistHeaders::run() const #include <QtXmlPatterns/qxmlquery.h> #include <QtXmlPatterns/QXmlResultItems> #include <QtXmlPatterns/qxmlresultitems.h> +#include <QtXmlPatterns/QXmlSchema> +#include <QtXmlPatterns/qxmlschema.h> +#include <QtXmlPatterns/QXmlSchemaValidator> +#include <QtXmlPatterns/qxmlschemavalidator.h> #include <QtXmlPatterns/QXmlSerializer> #include <QtXmlPatterns/qxmlserializer.h> diff --git a/tests/auto/q3filedialog/tst_q3filedialog.cpp b/tests/auto/q3filedialog/tst_q3filedialog.cpp index 3b41947..e1050a0 100644 --- a/tests/auto/q3filedialog/tst_q3filedialog.cpp +++ b/tests/auto/q3filedialog/tst_q3filedialog.cpp @@ -115,13 +115,15 @@ void tst_Q3FileDialog::getSetCheck() obj1.setPreviewMode(Q3FileDialog::PreviewMode(Q3FileDialog::NoPreview)); QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::NoPreview)); - // Note: Q3FileDialog does not update the previewMode read-state until the - // user has actually started navigating to a file that has a functioning - // preview. + obj1.setContentsPreviewEnabled(true); + obj1.setInfoPreviewEnabled(false); obj1.setPreviewMode(Q3FileDialog::PreviewMode(Q3FileDialog::Contents)); - QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::NoPreview)); + QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::Contents)); + + obj1.setInfoPreviewEnabled(true); + obj1.setContentsPreviewEnabled(false); obj1.setPreviewMode(Q3FileDialog::PreviewMode(Q3FileDialog::Info)); - QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::NoPreview)); + QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::Info)); } QTEST_MAIN(tst_Q3FileDialog) diff --git a/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp b/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp index 360c3b7..e4b1a55 100644 --- a/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp +++ b/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp @@ -132,10 +132,12 @@ void tst_Q3SqlCursor::createTestTables( QSqlDatabase db ) if ( !db.isValid() ) return; QSqlQuery q( db ); + if (tst_Databases::isSqlServer(db)) { QVERIFY_SQL(q, exec("SET ANSI_DEFAULTS ON")); QVERIFY_SQL(q, exec("SET IMPLICIT_TRANSACTIONS OFF")); } + // please never ever change this table; otherwise fix all tests ;) if ( tst_Databases::isMSAccess( db ) ) { QVERIFY_SQL(q, exec( "create table " + qTableName( "qtest" ) + " ( id int not null, t_varchar varchar(40) not null," @@ -572,10 +574,7 @@ void tst_Q3SqlCursor::precision() QVERIFY_SQL(cur, select()); QVERIFY( cur.next() ); - if(!tst_Databases::isSqlServer(db)) - QCOMPARE( cur.value( 0 ).asString(), precStr ); - else - QCOMPARE( cur.value( 0 ).asString(), precStr.left(precStr.size()-1) ); // Sql server fails at counting. + QCOMPARE( cur.value( 0 ).asString(), precStr ); QVERIFY( cur.next() ); QCOMPARE( cur.value( 0 ).asDouble(), precDbl ); } @@ -758,13 +757,13 @@ void tst_Q3SqlCursor::insertFieldNameContainsWS() { QString tableName = qTableName("qtestws"); QSqlQuery q(db); - q.exec(QString("DROP TABLE %1").arg(tableName)); + tst_Databases::safeDropTable(db, tableName); QString query = "CREATE TABLE %1 (id int, " + db.driver()->escapeIdentifier("first Name", QSqlDriver::FieldName) + " varchar(20), lastName varchar(20))"; QVERIFY_SQL(q, exec(query.arg(tableName))); - Q3SqlCursor cur(QString("%1").arg(tableName), true, db); + Q3SqlCursor cur(tableName, true, db); cur.select(); QSqlRecord *r = cur.primeInsert(); @@ -780,8 +779,8 @@ void tst_Q3SqlCursor::insertFieldNameContainsWS() { QVERIFY(cur.value(0) == 1); QCOMPARE(cur.value(1).toString(), QString("Kong")); QCOMPARE(cur.value(2).toString(), QString("Harald")); - - q.exec(QString("DROP TABLE %1").arg(tableName)); + + tst_Databases::safeDropTable(db, tableName); } diff --git a/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp b/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp index d026cbf..ec1f805 100644 --- a/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp +++ b/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp @@ -114,7 +114,7 @@ void tst_Q3SqlSelectCursor::createTestTables( QSqlDatabase db ) void tst_Q3SqlSelectCursor::dropTestTables( QSqlDatabase db ) { - tst_Databases::safeDropTables( db, QStringList() << qTableName( "qtest" ) ); + tst_Databases::safeDropTable( db, qTableName( "qtest" ) ); } void tst_Q3SqlSelectCursor::populateTestTables( QSqlDatabase db ) diff --git a/tests/auto/q3tabdialog/tst_q3tabdialog.cpp b/tests/auto/q3tabdialog/tst_q3tabdialog.cpp index a51db51..72e0000 100644 --- a/tests/auto/q3tabdialog/tst_q3tabdialog.cpp +++ b/tests/auto/q3tabdialog/tst_q3tabdialog.cpp @@ -60,6 +60,7 @@ public: private slots: void getSetCheck(); + void task245918_show(); }; tst_Q3TabDialog::tst_Q3TabDialog() @@ -95,5 +96,32 @@ void tst_Q3TabDialog::getSetCheck() delete var1; } +class task245918_Dialog : public Q3TabDialog +{ + Q_OBJECT +public: + task245918_Dialog() + { + QTimer::singleShot(100, this, SLOT(closeWhenVisible())); + } + + private slots: + void closeWhenVisible() + { + if (isVisible()) + accept(); + else + QTimer::singleShot(100, this, SLOT(closeWhenVisible())); + } +}; + +void tst_Q3TabDialog::task245918_show() +{ + task245918_Dialog dialog; + QSignalSpy spy(&dialog, SIGNAL(aboutToShow())); + dialog.exec(); + QCOMPARE(spy.count(), 1); +} + QTEST_MAIN(tst_Q3TabDialog) #include "tst_q3tabdialog.moc" diff --git a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp index c117aa4..e7b94d1 100644 --- a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp +++ b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp @@ -55,6 +55,7 @@ #include <qpushbutton.h> #include <qscrollbar.h> #include <qboxlayout.h> +#include <qlineedit.h> #include "../../shared/util.h" //TESTED_CLASS= @@ -209,9 +210,11 @@ private slots: void noFallbackToRoot(); void setCurrentIndex_data(); void setCurrentIndex(); - + void task221955_selectedEditor(); void task250754_fontChange(); + void task200665_itemEntered(); + void task257481_emptyEditor(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -944,12 +947,12 @@ void tst_QAbstractItemView::dragAndDropOnChild() class TestModel : public QStandardItemModel { public: - TestModel(int rows, int columns) : QStandardItemModel(rows, columns) + TestModel(int rows, int columns) : QStandardItemModel(rows, columns) { setData_count = 0; } - virtual bool setData(const QModelIndex &/*index*/, const QVariant &/*value*/, int /*role = Qt::EditRole*/) + virtual bool setData(const QModelIndex &/*index*/, const QVariant &/*value*/, int /*role = Qt::EditRole*/) { ++setData_count; return true; @@ -966,20 +969,20 @@ void tst_QAbstractItemView::setItemDelegate_data() // default is rows, a -1 will switch to columns QTest::addColumn<IntList>("rowsOrColumnsWithDelegate"); QTest::addColumn<QPoint>("cellToEdit"); - QTest::newRow("4 columndelegates") - << (IntList() << -1 << 0 << 1 << 2 << 3) + QTest::newRow("4 columndelegates") + << (IntList() << -1 << 0 << 1 << 2 << 3) << QPoint(0, 0); - QTest::newRow("2 identical rowdelegates on the same row") - << (IntList() << 0 << 0) + QTest::newRow("2 identical rowdelegates on the same row") + << (IntList() << 0 << 0) << QPoint(0, 0); - QTest::newRow("2 identical columndelegates on the same column") - << (IntList() << -1 << 2 << 2) + QTest::newRow("2 identical columndelegates on the same column") + << (IntList() << -1 << 2 << 2) << QPoint(2, 0); - QTest::newRow("2 duplicate delegates, 1 row and 1 column") - << (IntList() << 0 << -1 << 2) + QTest::newRow("2 duplicate delegates, 1 row and 1 column") + << (IntList() << 0 << -1 << 2) << QPoint(2, 0); - QTest::newRow("4 duplicate delegates, 2 row and 2 column") - << (IntList() << 0 << 0 << -1 << 2 << 2) + QTest::newRow("4 duplicate delegates, 2 row and 2 column") + << (IntList() << 0 << 0 << -1 << 2 << 2) << QPoint(2, 0); } @@ -1001,7 +1004,7 @@ void tst_QAbstractItemView::setItemDelegate() if (row) { v.setItemDelegateForRow(rc, delegate); } else { - v.setItemDelegateForColumn(rc, delegate); + v.setItemDelegateForColumn(rc, delegate); } } } @@ -1119,42 +1122,42 @@ void tst_QAbstractItemView::setCurrentIndex() void tst_QAbstractItemView::task221955_selectedEditor() { QPushButton *button; - + QTreeWidget tree; tree.setColumnCount(2); tree.addTopLevelItem(new QTreeWidgetItem(QStringList() << "Foo" <<"1")); tree.addTopLevelItem(new QTreeWidgetItem(QStringList() << "Bar" <<"2")); tree.addTopLevelItem(new QTreeWidgetItem(QStringList() << "Baz" <<"3")); - + QTreeWidgetItem *dummy = new QTreeWidgetItem(); tree.addTopLevelItem(dummy); tree.setItemWidget(dummy, 0, button = new QPushButton("More...")); button->setAutoFillBackground(true); // as recommended in doc - + tree.show(); tree.setFocus(); tree.setCurrentIndex(tree.model()->index(1,0)); QTest::qWait(100); QApplication::setActiveWindow(&tree); - + QVERIFY(! tree.selectionModel()->selectedIndexes().contains(tree.model()->index(3,0))); //We set the focus to the button, the index need to be selected - button->setFocus(); + button->setFocus(); QTest::qWait(100); QVERIFY(tree.selectionModel()->selectedIndexes().contains(tree.model()->index(3,0))); - + tree.setCurrentIndex(tree.model()->index(1,0)); QVERIFY(! tree.selectionModel()->selectedIndexes().contains(tree.model()->index(3,0))); - + //Same thing but with the flag NoSelection, nothing can be selected. tree.setFocus(); tree.setSelectionMode(QAbstractItemView::NoSelection); tree.clearSelection(); QVERIFY(tree.selectionModel()->selectedIndexes().isEmpty()); QTest::qWait(10); - button->setFocus(); + button->setFocus(); QTest::qWait(50); QVERIFY(tree.selectionModel()->selectedIndexes().isEmpty()); } @@ -1195,9 +1198,62 @@ void tst_QAbstractItemView::task250754_fontChange() QTest::qWait(30); //now with the huge items, the scrollbar must be visible QVERIFY(tree.verticalScrollBar()->isVisible()); - + qApp->setStyleSheet(app_css); } +void tst_QAbstractItemView::task200665_itemEntered() +{ + //we test that view will emit entered + //when the scrollbar move but not the mouse itself + QStandardItemModel model(1000,1); + QListView view; + view.setModel(&model); + view.show(); + QTest::qWait(200); + QRect rect = view.visualRect(model.index(0,0)); + QCursor::setPos( view.viewport()->mapToGlobal(rect.center()) ); + QSignalSpy spy(&view, SIGNAL(entered(QModelIndex))); + view.verticalScrollBar()->setValue(view.verticalScrollBar()->maximum()); + QCOMPARE(spy.count(), 1); + +} + +void tst_QAbstractItemView::task257481_emptyEditor() +{ + QIcon icon = qApp->style()->standardIcon(QStyle::SP_ComputerIcon); + + QStandardItemModel model; + + model.appendRow( new QStandardItem(icon, QString()) ); + model.appendRow( new QStandardItem(icon, "Editor works") ); + model.appendRow( new QStandardItem( QString() ) ); + + QTreeView treeView; + treeView.setRootIsDecorated(false); + treeView.setModel(&model); + treeView.show(); + + treeView.edit(model.index(0,0)); + QList<QLineEdit *> lineEditors = qFindChildren<QLineEdit *>(treeView.viewport()); + QCOMPARE(lineEditors.count(), 1); + QVERIFY(!lineEditors.first()->size().isEmpty()); + + QTest::qWait(30); + + treeView.edit(model.index(1,0)); + lineEditors = qFindChildren<QLineEdit *>(treeView.viewport()); + QCOMPARE(lineEditors.count(), 1); + QVERIFY(!lineEditors.first()->size().isEmpty()); + + QTest::qWait(30); + + treeView.edit(model.index(2,0)); + lineEditors = qFindChildren<QLineEdit *>(treeView.viewport()); + QCOMPARE(lineEditors.count(), 1); + QVERIFY(!lineEditors.first()->size().isEmpty()); +} + + QTEST_MAIN(tst_QAbstractItemView) #include "tst_qabstractitemview.moc" diff --git a/tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp b/tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp index e976c1b..556e850 100644 --- a/tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp +++ b/tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp @@ -66,6 +66,7 @@ private slots: void setScrollBars(); void setScrollBars2(); void objectNaming(); + void patternBackground(); void viewportCrash(); void task214488_layoutDirection_data(); @@ -350,5 +351,39 @@ void tst_QAbstractScrollArea::task214488_layoutDirection() QVERIFY(lessThan ? (hbar->value() < refValue) : (hbar->value() > refValue)); } +void tst_QAbstractScrollArea::patternBackground() +{ + QScrollArea scrollArea; + scrollArea.resize(200, 200); + QWidget widget; + widget.resize(600, 600); + scrollArea.setWidget(&widget); + scrollArea.show(); + + QLinearGradient linearGrad(QPointF(250, 250), QPointF(300, 300)); + linearGrad.setColorAt(0, Qt::yellow); + linearGrad.setColorAt(1, Qt::red); + QBrush bg(linearGrad); + scrollArea.viewport()->setPalette(QPalette(Qt::black, bg, bg, bg, bg, bg, bg, bg, bg)); + widget.setPalette(Qt::transparent); + + QTest::qWait(50); + + QImage image(200, 200, QImage::Format_ARGB32); + scrollArea.render(&image); + + QCOMPARE(image.pixel(QPoint(20,20)) , QColor(Qt::yellow).rgb()); + + QScrollBar *hbar = scrollArea.horizontalScrollBar(); + hbar->setValue(hbar->maximum()); + QScrollBar *vbar = scrollArea.verticalScrollBar(); + vbar->setValue(vbar->maximum()); + + QTest::qWait(50); + + scrollArea.render(&image); + QCOMPARE(image.pixel(QPoint(20,20)) , QColor(Qt::red).rgb()); +} + QTEST_MAIN(tst_QAbstractScrollArea) #include "tst_qabstractscrollarea.moc" diff --git a/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp b/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp index 7679bd8..634f692 100644 --- a/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp +++ b/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp @@ -45,6 +45,7 @@ #ifdef QTEST_XMLPATTERNS +#include <QSourceLocation> #include <QXmlFormatter> #include <QXmlNamePool> #include <QXmlQuery> @@ -80,6 +81,7 @@ private Q_SLOTS: void id() const; void idref() const; void typedValue() const; + void sourceLocation() const; private: QAbstractXmlNodeModel::Ptr m_nodeModel; @@ -389,6 +391,12 @@ void tst_QAbstractXmlNodeModel::typedValue() const QVERIFY(output.isEmpty()); } +void tst_QAbstractXmlNodeModel::sourceLocation() const +{ + const QAbstractXmlNodeModel* const constModel = m_nodeModel.data(); + const QSourceLocation location = constModel->sourceLocation(m_rootNode); +} + QTEST_MAIN(tst_QAbstractXmlNodeModel) #include "tst_qabstractxmlnodemodel.moc" diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp index a87d02f..b8aec50 100644 --- a/tests/auto/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp @@ -53,12 +53,12 @@ #include "QtTest/qtestaccessible.h" #if defined(Q_OS_WINCE) -extern "C" bool SystemParametersInfoW(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni); +extern "C" bool SystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni); #define SPI_GETPLATFORMTYPE 257 inline bool IsValidCEPlatform() { wchar_t tszPlatform[64]; - if (SystemParametersInfoW(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) { - QString platform = QString::fromUtf16(tszPlatform); + if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform) / sizeof(*tszPlatform), tszPlatform, 0)) { + QString platform = QString::fromWCharArray(tszPlatform); if ((platform == QLatin1String("PocketPC")) || (platform == QLatin1String("Smartphone"))) return false; } @@ -2623,6 +2623,13 @@ void tst_QAccessibility::spinBoxTest() QVERIFY(childRect.isNull() == false); } + spinBox->setFocus(); + QTestAccessibility::clearEvents(); + QTest::keyPress(spinBox, Qt::Key_Up); + QTest::qWait(200); + EventList events = QTestAccessibility::events(); + QTestAccessibilityEvent expectedEvent(spinBox, 0, (int)QAccessible::ValueChanged); + QVERIFY(events.contains(expectedEvent)); delete spinBox; QTestAccessibility::clearEvents(); #else diff --git a/tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp b/tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp index b81fa12..deb6c8d 100644 --- a/tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp +++ b/tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp @@ -833,9 +833,14 @@ void tst_accessibility_mac::testTabWidget() // Window is not reported properly on 10.5 if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5) { QVERIFY(equal(window(tabGroup), form)); - QVERIFY(equal(window(tabButton1), form)); + + // ### hangs on 10.4 +#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) + QVERIFY(equal(window(tabButton1), form)); +#endif } -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4) +// ### hangs on 10.4 +#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) QVERIFY(equal(topLevelUIElement(tabGroup), form)); QVERIFY(equal(topLevelUIElement(tabButton1), form)); #endif @@ -1423,7 +1428,6 @@ void tst_accessibility_mac::testListView() const AXUIElementRef listElement = childByRole(scrollAreaElement, "AXList"); QVERIFY(listElement); QVERIFY(equal(::parent(listElement), scrollAreaElement)); - // Window is not reported properly on 10.5 if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5) QVERIFY(equal(::window(listElement), windowElement)); @@ -1438,9 +1442,11 @@ void tst_accessibility_mac::testListView() QVERIFY(value(A) == "A"); QVERIFY(equal(::parent(A), listElement)); QVERIFY(enabled(A)); - // Window is not reported properly on 10.5 - if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5) - QVERIFY(equal(::window(A), windowElement)); + + // Window is not reported properly on 10.5, this test + // hangs on 10.4. Disable it for now. + // if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_5) + // QVERIFY(equal(::window(A), windowElement)); QVERIFY(above(A, B)); QVERIFY(!above(B, A)); diff --git a/tests/auto/qaction/tst_qaction.cpp b/tests/auto/qaction/tst_qaction.cpp index 086fb79..3c71baf 100644 --- a/tests/auto/qaction/tst_qaction.cpp +++ b/tests/auto/qaction/tst_qaction.cpp @@ -75,6 +75,8 @@ private slots: void alternateShortcuts(); void enabledVisibleInteraction(); void task200823_tooltip(); + void task229128TriggeredSignalWithoutActiongroup(); + void task229128TriggeredSignalWhenInActiongroup(); private: int m_lastEventType; @@ -103,13 +105,17 @@ void tst_QAction::getSetCheck() obj1.setMenu((QMenu *)0); QCOMPARE((QMenu *)0, obj1.menu()); delete var2; + + QCOMPARE(obj1.priority(), QAction::NormalPriority); + obj1.setPriority(QAction::LowPriority); + QCOMPARE(obj1.priority(), QAction::LowPriority); } class MyWidget : public QWidget { Q_OBJECT public: - MyWidget(tst_QAction *tst, QWidget *parent=0) : QWidget(parent) { this->tst = tst; } + MyWidget(tst_QAction *tst, QWidget *parent = 0) : QWidget(parent) { this->tst = tst; } protected: virtual void actionEvent(QActionEvent *e) { tst->updateState(e); } @@ -141,7 +147,7 @@ void tst_QAction::initTestCase() void tst_QAction::cleanupTestCase() { QWidget *testWidget = m_tstWidget; - if ( testWidget ) { + if (testWidget) { testWidget->hide(); delete testWidget; } @@ -189,7 +195,7 @@ void tst_QAction::updateState(QActionEvent *e) { if (!e) { m_lastEventType = 0; - m_lastAction = 0; + m_lastAction = 0; } else { m_lastEventType = (int)e->type(); m_lastAction = e->action(); @@ -249,12 +255,12 @@ void tst_QAction::alternateShortcuts() { //test the alternate shortcuts (by adding more than 1 shortcut) - QWidget *wid=m_tstWidget; + QWidget *wid = m_tstWidget; { QAction act(wid); wid->addAction(&act); - QList<QKeySequence> shlist= QList<QKeySequence>() << QKeySequence("CTRL+P") <<QKeySequence("CTRL+A"); + QList<QKeySequence> shlist = QList<QKeySequence>() << QKeySequence("CTRL+P") << QKeySequence("CTRL+A"); act.setShortcuts(shlist); QSignalSpy spy(&act, SIGNAL(triggered())); @@ -322,5 +328,46 @@ void tst_QAction::task200823_tooltip() QCOMPARE(action->toolTip(), ref); } +void tst_QAction::task229128TriggeredSignalWithoutActiongroup() +{ + // test without a group + QAction *actionWithoutGroup = new QAction("Test", qApp); + QSignalSpy spyWithoutGroup(actionWithoutGroup, SIGNAL(triggered(bool))); + QCOMPARE(spyWithoutGroup.count(), 0); + actionWithoutGroup->trigger(); + // signal should be emitted + QCOMPARE(spyWithoutGroup.count(), 1); + + // it is now a checkable checked action + actionWithoutGroup->setCheckable(true); + actionWithoutGroup->setChecked(true); + spyWithoutGroup.clear(); + QCOMPARE(spyWithoutGroup.count(), 0); + actionWithoutGroup->trigger(); + // signal should be emitted + QCOMPARE(spyWithoutGroup.count(), 1); +} + +void tst_QAction::task229128TriggeredSignalWhenInActiongroup() +{ + QActionGroup ag(0); + QAction *action = new QAction("Test", &ag); + QAction *checkedAction = new QAction("Test 2", &ag); + ag.addAction(action); + action->setCheckable(true); + ag.addAction(checkedAction); + checkedAction->setCheckable(true); + checkedAction->setChecked(true); + + QSignalSpy actionSpy(checkedAction, SIGNAL(triggered(bool))); + QSignalSpy actionGroupSpy(&ag, SIGNAL(triggered(QAction *))); + QCOMPARE(actionGroupSpy.count(), 0); + QCOMPARE(actionSpy.count(), 0); + checkedAction->trigger(); + // check that both the group and the action have emitted the signal + QCOMPARE(actionGroupSpy.count(), 1); + QCOMPARE(actionSpy.count(), 1); +} + QTEST_MAIN(tst_QAction) #include "tst_qaction.moc" diff --git a/tests/auto/qanimationgroup/qanimationgroup.pro b/tests/auto/qanimationgroup/qanimationgroup.pro new file mode 100644 index 0000000..97d33dd --- /dev/null +++ b/tests/auto/qanimationgroup/qanimationgroup.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +QT = core gui +SOURCES += tst_qanimationgroup.cpp + + diff --git a/tests/auto/qanimationgroup/tst_qanimationgroup.cpp b/tests/auto/qanimationgroup/tst_qanimationgroup.cpp new file mode 100644 index 0000000..0e98797 --- /dev/null +++ b/tests/auto/qanimationgroup/tst_qanimationgroup.cpp @@ -0,0 +1,413 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtCore/qanimationgroup.h> +#include <QtCore/qsequentialanimationgroup.h> +#include <QtCore/qparallelanimationgroup.h> + +//TESTED_CLASS=QAnimationGroup +//TESTED_FILES= + +Q_DECLARE_METATYPE(QAbstractAnimation::State) + +class tst_QAnimationGroup : public QObject +{ + Q_OBJECT +public: + tst_QAnimationGroup(); + virtual ~tst_QAnimationGroup(); + +public Q_SLOTS: + void init(); + void cleanup(); + +private slots: + void construction(); + void emptyGroup(); + void setCurrentTime(); + void statesAndSignals(); + void setParentAutoAdd(); + void beginNestedGroup(); + void addChildTwice(); + void loopWithoutStartValue(); +}; + +tst_QAnimationGroup::tst_QAnimationGroup() +{ +} + +tst_QAnimationGroup::~tst_QAnimationGroup() +{ +} + +void tst_QAnimationGroup::init() +{ + qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); +} + +void tst_QAnimationGroup::cleanup() +{ +} + +void tst_QAnimationGroup::construction() +{ + QSequentialAnimationGroup animationgroup; +} + +class AnimationObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue) +public: + AnimationObject(int startValue = 0) + : v(startValue) + { } + + int value() const { return v; } + void setValue(int value) { v = value; } + + int v; +}; + +class TestAnimation : public QVariantAnimation +{ + Q_OBJECT +public: + virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)}; + virtual void updateState(QAbstractAnimation::State oldState, + QAbstractAnimation::State newState) + { + Q_UNUSED(oldState) + Q_UNUSED(newState) + }; +}; + +class UncontrolledAnimation : public QPropertyAnimation +{ + Q_OBJECT +public: + UncontrolledAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = 0) + : QPropertyAnimation(target, propertyName, parent), id(0) + { + setDuration(250); + } + + int duration() const { return -1; /* not time driven */ } + +protected: + void timerEvent(QTimerEvent *event) + { + if (event->timerId() == id) + stop(); + } + + void updateRunning(bool running) + { + if (running) { + id = startTimer(500); + } else { + killTimer(id); + id = 0; + } + } + +private: + int id; +}; + +void tst_QAnimationGroup::emptyGroup() +{ + QSequentialAnimationGroup group; + QSignalSpy groupStateChangedSpy(&group, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + group.start(); + + QCOMPARE(groupStateChangedSpy.count(), 2); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(1).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + + QTest::ignoreMessage(QtWarningMsg, "QAbstractAnimation::pause: Cannot pause a stopped animation"); + group.pause(); + + QCOMPARE(groupStateChangedSpy.count(), 2); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + + group.start(); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(2).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(3).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + + group.stop(); + + QCOMPARE(groupStateChangedSpy.count(), 4); + QCOMPARE(group.state(), QAnimationGroup::Stopped); +} + +void tst_QAnimationGroup::setCurrentTime() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject s_o3; + AnimationObject p_o1; + AnimationObject p_o2; + AnimationObject p_o3; + AnimationObject t_o1; + AnimationObject t_o2; + + // sequence operating on same object/property + QSequentialAnimationGroup *sequence = new QSequentialAnimationGroup(); + QAbstractAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QAbstractAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QAbstractAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + a2_s_o1->setLoopCount(3); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + + // sequence operating on different object/properties + QAnimationGroup *sequence2 = new QSequentialAnimationGroup(); + QAbstractAnimation *a1_s_o2 = new QPropertyAnimation(&s_o2, "value"); + QAbstractAnimation *a1_s_o3 = new QPropertyAnimation(&s_o3, "value"); + sequence2->addAnimation(a1_s_o2); + sequence2->addAnimation(a1_s_o3); + + // parallel operating on different object/properties + QAnimationGroup *parallel = new QParallelAnimationGroup(); + QAbstractAnimation *a1_p_o1 = new QPropertyAnimation(&p_o1, "value"); + QAbstractAnimation *a1_p_o2 = new QPropertyAnimation(&p_o2, "value"); + QAbstractAnimation *a1_p_o3 = new QPropertyAnimation(&p_o3, "value"); + a1_p_o2->setLoopCount(3); + parallel->addAnimation(a1_p_o1); + parallel->addAnimation(a1_p_o2); + parallel->addAnimation(a1_p_o3); + + QAbstractAnimation *notTimeDriven = new UncontrolledAnimation(&t_o1, "value"); + QCOMPARE(notTimeDriven->totalDuration(), -1); + + QAbstractAnimation *loopsForever = new QPropertyAnimation(&t_o2, "value"); + loopsForever->setLoopCount(-1); + QCOMPARE(loopsForever->totalDuration(), -1); + + QParallelAnimationGroup group; + group.addAnimation(sequence); + group.addAnimation(sequence2); + group.addAnimation(parallel); + group.addAnimation(notTimeDriven); + group.addAnimation(loopsForever); + + // Current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(parallel->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o3->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped); + + QCOMPARE(group.currentTime(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(a1_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 1); + QCOMPARE(a1_s_o3->currentTime(), 0); + QCOMPARE(a1_p_o1->currentTime(), 1); + QCOMPARE(a1_p_o2->currentTime(), 1); + QCOMPARE(a1_p_o3->currentTime(), 1); + QCOMPARE(notTimeDriven->currentTime(), 1); + QCOMPARE(loopsForever->currentTime(), 1); + + // Current time = 250 + group.setCurrentTime(250); + QCOMPARE(group.currentTime(), 250); + QCOMPARE(sequence->currentTime(), 250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 0); + QCOMPARE(a1_p_o1->currentTime(), 250); + QCOMPARE(a1_p_o2->currentTime(), 0); + QCOMPARE(a1_p_o2->currentLoop(), 1); + QCOMPARE(a1_p_o3->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 250); + QCOMPARE(loopsForever->currentTime(), 0); + QCOMPARE(loopsForever->currentLoop(), 1); + QCOMPARE(sequence->currentAnimation(), a2_s_o1); + + // Current time = 251 + group.setCurrentTime(251); + QCOMPARE(group.currentTime(), 251); + QCOMPARE(sequence->currentTime(), 251); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentLoop(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 251); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 1); + QCOMPARE(a1_p_o1->currentTime(), 250); + QCOMPARE(a1_p_o2->currentTime(), 1); + QCOMPARE(a1_p_o2->currentLoop(), 1); + QCOMPARE(a1_p_o3->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 251); + QCOMPARE(loopsForever->currentTime(), 1); + QCOMPARE(sequence->currentAnimation(), a2_s_o1); +} + +void tst_QAnimationGroup::statesAndSignals() +{ +} + +void tst_QAnimationGroup::setParentAutoAdd() +{ + QParallelAnimationGroup group; + QVariantAnimation *animation = new QPropertyAnimation(&group); + QCOMPARE(animation->group(), static_cast<QAnimationGroup*>(&group)); +} + +void tst_QAnimationGroup::beginNestedGroup() +{ + QAnimationGroup *subGroup; + QAnimationGroup *parent = new QParallelAnimationGroup(); + + for (int i = 0; i < 10; ++i) { + if (i & 1) + subGroup = new QParallelAnimationGroup(parent); + else + subGroup = new QSequentialAnimationGroup(parent); + + QCOMPARE(parent->animationCount(), 1); + QAnimationGroup *child = static_cast<QAnimationGroup *>(parent->animationAt(0)); + + QCOMPARE(child->parent(), static_cast<QObject *>(parent)); + if (i & 1) + QVERIFY(qobject_cast<QParallelAnimationGroup *> (child)); + else + QVERIFY(qobject_cast<QSequentialAnimationGroup *> (child)); + + parent = child; + } +} + +void tst_QAnimationGroup::addChildTwice() +{ + QAbstractAnimation *subGroup; + QAbstractAnimation *subGroup2; + QAnimationGroup *parent = new QSequentialAnimationGroup(); + + subGroup = new QPropertyAnimation(); + subGroup->setParent(parent); + parent->addAnimation(subGroup); + QCOMPARE(parent->animationCount(), 1); + + parent->clearAnimations(); + + QCOMPARE(parent->animationCount(), 0); + + // adding the same item twice to a group will remove the item from its current position + // and append it to the end + subGroup = new QPropertyAnimation(parent); + subGroup2 = new QPropertyAnimation(parent); + + QCOMPARE(parent->animationCount(), 2); + QCOMPARE(parent->animationAt(0), subGroup); + QCOMPARE(parent->animationAt(1), subGroup2); + + parent->addAnimation(subGroup); + + QCOMPARE(parent->animationCount(), 2); + QCOMPARE(parent->animationAt(0), subGroup2); + QCOMPARE(parent->animationAt(1), subGroup); + + delete parent; +} + +void tst_QAnimationGroup::loopWithoutStartValue() +{ + QAnimationGroup *parent = new QSequentialAnimationGroup(); + QObject o; + o.setProperty("ole", 0); + QCOMPARE(o.property("ole").toInt(), 0); + + QPropertyAnimation anim1(&o, "ole"); + anim1.setEndValue(-50); + anim1.setDuration(100); + + QPropertyAnimation anim2(&o, "ole"); + anim2.setEndValue(50); + anim2.setDuration(100); + + parent->addAnimation(&anim1); + parent->addAnimation(&anim2); + + parent->setLoopCount(-1); + parent->start(); + + QVERIFY(anim1.startValue().isNull()); + QCOMPARE(anim1.currentValue().toInt(), 0); + QCOMPARE(parent->currentLoop(), 0); + + parent->setCurrentTime(200); + QCOMPARE(parent->currentLoop(), 1); + QCOMPARE(anim1.currentValue().toInt(), 50); + parent->stop(); +} + +QTEST_MAIN(tst_QAnimationGroup) +#include "tst_qanimationgroup.moc" diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index a11b159..7cb6bfa 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -48,6 +48,7 @@ #include "qabstracteventdispatcher.h" #include <QtGui> +#include "private/qapplication_p.h" #include "private/qstylesheetstyle_p.h" #ifdef Q_OS_WINCE #include <windows.h> @@ -117,6 +118,8 @@ private slots: void windowsCommandLine_data(); void windowsCommandLine(); + + void touchEventPropagation(); }; class MyInputContext : public QInputContext @@ -752,9 +755,9 @@ void tst_QApplication::libraryPaths() // current Path. Therefore we need to identify it ourselves // here for the test. QFileInfo filePath; - wchar_t module_name[256]; - GetModuleFileNameW(0, module_name, sizeof(module_name) / sizeof(wchar_t)); - filePath = QString::fromUtf16((ushort *)module_name); + wchar_t module_name[MAX_PATH]; + GetModuleFileName(0, module_name, MAX_PATH); + filePath = QString::fromWCharArray(module_name); QString testDir = filePath.path() + "/test"; #endif QApplication::setLibraryPaths(QStringList() << testDir); @@ -1379,6 +1382,7 @@ void tst_QApplication::testDeleteLaterProcessEvents() */ void tst_QApplication::desktopSettingsAware() { +#ifndef QT_NO_PROCESS QProcess testProcess; #ifdef Q_OS_WINCE int argc = 0; @@ -1396,6 +1400,7 @@ void tst_QApplication::desktopSettingsAware() QVERIFY(testProcess.waitForFinished(10000)); QCOMPARE(int(testProcess.state()), int(QProcess::NotRunning)); QVERIFY(int(testProcess.error()) != int(QProcess::Crashed)); +#endif } void tst_QApplication::setActiveWindow() @@ -1773,6 +1778,164 @@ void tst_QApplication::windowsCommandLine() #endif } +class TouchEventPropagationTestWidget : public QWidget +{ + Q_OBJECT + +public: + bool seenTouchEvent, acceptTouchEvent, seenMouseEvent, acceptMouseEvent; + + TouchEventPropagationTestWidget(QWidget *parent = 0) + : QWidget(parent), seenTouchEvent(false), acceptTouchEvent(false), seenMouseEvent(false), acceptMouseEvent(false) + { } + + void reset() + { + seenTouchEvent = acceptTouchEvent = seenMouseEvent = acceptMouseEvent = false; + } + + bool event(QEvent *event) + { + switch (event->type()) { + case QEvent::MouseButtonPress: + case QEvent::MouseMove: + case QEvent::MouseButtonRelease: + // qDebug() << objectName() << "seenMouseEvent = true"; + seenMouseEvent = true; + event->setAccepted(acceptMouseEvent); + break; + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + // qDebug() << objectName() << "seenTouchEvent = true"; + seenTouchEvent = true; + event->setAccepted(acceptTouchEvent); + break; + default: + return QWidget::event(event); + } + return true; + } +}; + +void tst_QApplication::touchEventPropagation() +{ + int argc = 1; + QApplication app(argc, &argv0, QApplication::GuiServer); + + QList<QTouchEvent::TouchPoint> pressedTouchPoints; + QTouchEvent::TouchPoint press(0); + press.setState(Qt::TouchPointPressed); + pressedTouchPoints << press; + + QList<QTouchEvent::TouchPoint> releasedTouchPoints; + QTouchEvent::TouchPoint release(0); + release.setState(Qt::TouchPointReleased); + releasedTouchPoints << release; + + { + // touch event behavior on a window + TouchEventPropagationTestWidget window; + window.setObjectName("1. window"); + + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(!window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + window.setAttribute(Qt::WA_AcceptTouchEvents); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + window.acceptTouchEvent = true; + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + } + + { + // touch event behavior on a window with a child widget + TouchEventPropagationTestWidget window; + window.setObjectName("2. window"); + TouchEventPropagationTestWidget widget(&window); + widget.setObjectName("2. widget"); + + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(!widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(!window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + widget.setAttribute(Qt::WA_AcceptTouchEvents); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(!window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + widget.acceptMouseEvent = true; + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(!window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + widget.acceptTouchEvent = true; + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(!window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + widget.setAttribute(Qt::WA_AcceptTouchEvents, false); + window.setAttribute(Qt::WA_AcceptTouchEvents); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(!widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + window.acceptTouchEvent = true; + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(!widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + + window.reset(); + widget.reset(); + widget.acceptMouseEvent = true; // doesn't matter, touch events are propagated first + window.acceptTouchEvent = true; + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, pressedTouchPoints); + qt_translateRawTouchEvent(&window, QTouchEvent::TouchScreen, releasedTouchPoints); + QVERIFY(!widget.seenTouchEvent); + QVERIFY(!widget.seenMouseEvent); + QVERIFY(window.seenTouchEvent); + QVERIFY(!window.seenMouseEvent); + } +} + //QTEST_APPLESS_MAIN(tst_QApplication) int main(int argc, char *argv[]) { diff --git a/tests/auto/qboxlayout/tst_qboxlayout.cpp b/tests/auto/qboxlayout/tst_qboxlayout.cpp index f34fc00..be6f3dd 100644 --- a/tests/auto/qboxlayout/tst_qboxlayout.cpp +++ b/tests/auto/qboxlayout/tst_qboxlayout.cpp @@ -65,8 +65,53 @@ private slots: void sizeHint(); void sizeConstraints(); void setGeometry(); + void setStyleShouldChangeSpacing(); }; +class CustomLayoutStyle : public QWindowsStyle +{ + Q_OBJECT +public: + CustomLayoutStyle() : QWindowsStyle() + { + hspacing = 5; + vspacing = 10; + } + + virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0, + const QWidget * widget = 0 ) const; + + int hspacing; + int vspacing; +}; + +int CustomLayoutStyle::pixelMetric(PixelMetric metric, const QStyleOption * option /*= 0*/, + const QWidget * widget /*= 0*/ ) const +{ + switch (metric) { + case PM_LayoutLeftMargin: + return 0; + break; + case PM_LayoutTopMargin: + return 3; + break; + case PM_LayoutRightMargin: + return 6; + break; + case PM_LayoutBottomMargin: + return 9; + break; + case PM_LayoutHorizontalSpacing: + return hspacing; + case PM_LayoutVerticalSpacing: + return vspacing; + break; + default: + break; + } + return QWindowsStyle::pixelMetric(metric, option, widget); +} + tst_QBoxLayout::tst_QBoxLayout() { @@ -163,12 +208,44 @@ void tst_QBoxLayout::setGeometry() lay->addLayout(lay2); w.setLayout(lay); w.show(); - + QRect newGeom(0, 0, 70, 70); lay2->setGeometry(newGeom); QApplication::processEvents(); QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom"); } +void tst_QBoxLayout::setStyleShouldChangeSpacing() +{ + + QWidget *window = new QWidget; + QHBoxLayout *hbox = new QHBoxLayout(window); + QPushButton *pb1 = new QPushButton(tr("The spacing between this")); + QPushButton *pb2 = new QPushButton(tr("and this button should depend on the style of the parent widget"));; + hbox->addWidget(pb1); + hbox->addWidget(pb2); + CustomLayoutStyle *style1 = new CustomLayoutStyle; + style1->hspacing = 6; + window->setStyle(style1); + window->show(); + + QTest::qWait(100); + int spacing = pb2->geometry().left() - pb1->geometry().right() - 1; + QCOMPARE(spacing, 6); + + CustomLayoutStyle *style2 = new CustomLayoutStyle(); + style2->hspacing = 10; + window->setStyle(style2); + QTest::qWait(100); + spacing = pb2->geometry().left() - pb1->geometry().right() - 1; + QEXPECT_FAIL("", "Fix for next minor release", Continue); + QCOMPARE(spacing, 10); + + delete window; + delete style1; + delete style2; +} + + QTEST_MAIN(tst_QBoxLayout) #include "tst_qboxlayout.moc" diff --git a/tests/auto/qbrush/tst_qbrush.cpp b/tests/auto/qbrush/tst_qbrush.cpp index c0bf6bf..e4dadd6 100644 --- a/tests/auto/qbrush/tst_qbrush.cpp +++ b/tests/auto/qbrush/tst_qbrush.cpp @@ -44,6 +44,7 @@ #include "qbrush.h" #include <QPainter> +#include <QBitmap> #include <qdebug.h> @@ -76,6 +77,7 @@ private slots: void textures(); void nullBrush(); + void isOpaque(); }; Q_DECLARE_METATYPE(QBrush) @@ -379,5 +381,14 @@ void tst_QBrush::nullBrush() QCOMPARE(brush.color(), QColor(100,0,0)); } +void tst_QBrush::isOpaque() +{ + QBitmap bm(8, 8); + bm.fill(Qt::black); + + QBrush brush(bm); + QVERIFY(!brush.isOpaque()); +} + QTEST_MAIN(tst_QBrush) #include "tst_qbrush.moc" diff --git a/tests/auto/qbuttongroup/tst_qbuttongroup.cpp b/tests/auto/qbuttongroup/tst_qbuttongroup.cpp index f1365c0..86dd2b2 100644 --- a/tests/auto/qbuttongroup/tst_qbuttongroup.cpp +++ b/tests/auto/qbuttongroup/tst_qbuttongroup.cpp @@ -92,11 +92,15 @@ private slots: void exclusive(); void exclusiveWithActions(); void testSignals(); - void checkedButton(); void task106609(); + // fixed for Qt 4.6.0 +#if QT_VERSION >= 0x040600 + void autoIncrementId(); +#endif + void task209485_removeFromGroupInEventHandler_data(); void task209485_removeFromGroupInEventHandler(); }; @@ -329,13 +333,19 @@ void tst_QButtonGroup::testSignals() QCOMPARE(clickedSpy.count(), 1); QCOMPARE(clickedIdSpy.count(), 1); - QVERIFY(clickedIdSpy.takeFirst().at(0).toInt() == -1); + + int expectedId = -1; +#if QT_VERSION >= 0x040600 + expectedId = -2; +#endif + + QVERIFY(clickedIdSpy.takeFirst().at(0).toInt() == expectedId); QCOMPARE(pressedSpy.count(), 1); QCOMPARE(pressedIdSpy.count(), 1); - QVERIFY(pressedIdSpy.takeFirst().at(0).toInt() == -1); + QVERIFY(pressedIdSpy.takeFirst().at(0).toInt() == expectedId); QCOMPARE(releasedSpy.count(), 1); QCOMPARE(releasedIdSpy.count(), 1); - QVERIFY(releasedIdSpy.takeFirst().at(0).toInt() == -1); + QVERIFY(releasedIdSpy.takeFirst().at(0).toInt() == expectedId); clickedSpy.clear(); clickedIdSpy.clear(); @@ -483,5 +493,36 @@ void tst_QButtonGroup::task209485_removeFromGroupInEventHandler() QCOMPARE(spy1.count() + spy2.count(), signalCount); } +#if QT_VERSION >= 0x040600 +void tst_QButtonGroup::autoIncrementId() +{ + QDialog dlg(0); + QButtonGroup *buttons = new QButtonGroup(&dlg); + QVBoxLayout *vbox = new QVBoxLayout(&dlg); + + QRadioButton *radio1 = new QRadioButton(&dlg); + radio1->setText("radio1"); + QRadioButton *radio2 = new QRadioButton(&dlg); + radio2->setText("radio2"); + QRadioButton *radio3 = new QRadioButton(&dlg); + radio3->setText("radio3"); + + buttons->addButton(radio1); + vbox->addWidget(radio1); + buttons->addButton(radio2); + vbox->addWidget(radio2); + buttons->addButton(radio3); + vbox->addWidget(radio3); + + radio1->setChecked(true); + + QVERIFY(buttons->id(radio1) == -2); + QVERIFY(buttons->id(radio2) == -3); + QVERIFY(buttons->id(radio3) == -4); + + dlg.show(); +} +#endif + QTEST_MAIN(tst_QButtonGroup) #include "tst_qbuttongroup.moc" diff --git a/tests/auto/qbytearray/tst_qbytearray.cpp b/tests/auto/qbytearray/tst_qbytearray.cpp index 0e3df53..b7e4717 100644 --- a/tests/auto/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/qbytearray/tst_qbytearray.cpp @@ -235,14 +235,12 @@ void tst_QByteArray::qUncompress() QSKIP("Corrupt data causes this tests to lock up on HP-UX / PA-RISC with gcc", SkipAll); #elif defined Q_OS_SOLARIS QSKIP("Corrupt data causes this tests to lock up on Solaris", SkipAll); +#elif defined Q_OS_QNX + QSKIP("Currupt data cuases this test to lock up on QNX", SkipAll); #endif QTEST(::qUncompress(in), "out"); -#if defined Q_WS_MAC && (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4) - QSKIP("Corrupt data causes this test to lock up on Mac OS X Panther", SkipSingle); -#endif - QTEST(::qUncompress(in + "blah"), "out"); } #endif diff --git a/tests/auto/qchar/tst_qchar.cpp b/tests/auto/qchar/tst_qchar.cpp index 01ba534..512c180 100644 --- a/tests/auto/qchar/tst_qchar.cpp +++ b/tests/auto/qchar/tst_qchar.cpp @@ -500,6 +500,9 @@ void tst_QChar::normalization() } QFile f("NormalizationTest.txt"); + // Windows - current directory is the debug/release subdirectory where the executable is located + if (!f.exists()) + f.setFileName("../NormalizationTest.txt");; if (!f.exists()) { QFAIL("Couldn't find NormalizationTest.txt"); return; diff --git a/tests/auto/qclipboard/tst_qclipboard.cpp b/tests/auto/qclipboard/tst_qclipboard.cpp index f400754..bcdf043 100644 --- a/tests/auto/qclipboard/tst_qclipboard.cpp +++ b/tests/auto/qclipboard/tst_qclipboard.cpp @@ -192,6 +192,7 @@ void tst_QClipboard::testSignals() */ void tst_QClipboard::copy_exit_paste() { +#ifndef QT_NO_PROCESS #if defined Q_WS_X11 || defined Q_WS_QWS QSKIP("This test does not make sense on X11 and embedded, copied data disappears from the clipboard when the application exits ", SkipAll); // ### It's still possible to test copy/paste - just keep the apps running @@ -205,6 +206,7 @@ void tst_QClipboard::copy_exit_paste() QTest::qWait(100); #endif QCOMPARE(QProcess::execute("paster/paster", stringArgument), 0); +#endif } void tst_QClipboard::setMimeData() diff --git a/tests/auto/qcolumnview/tst_qcolumnview.cpp b/tests/auto/qcolumnview/tst_qcolumnview.cpp index 0216e0f..0b3ba7a 100644 --- a/tests/auto/qcolumnview/tst_qcolumnview.cpp +++ b/tests/auto/qcolumnview/tst_qcolumnview.cpp @@ -42,6 +42,7 @@ #include <QtTest/QtTest> #include <qstandarditemmodel.h> +#include <qitemdelegate.h> #include <qcolumnview.h> #include "../../../src/gui/itemviews/qcolumnviewgrip_p.h" #include "../../../src/gui/dialogs/qfilesystemmodel_p.h" @@ -87,6 +88,8 @@ private slots: void setSelectionModel(); void visualRegionForSelection(); + void dynamicModelChanges(); + // grip void moveGrip_basic(); void moveGrip_data(); @@ -133,16 +136,10 @@ public: inline QModelIndex thirdLevel() { return index(0, 0, secondLevel()); } }; -class ColumnViewPrivate : public QColumnViewPrivate -{ -public: - ColumnViewPrivate() : QColumnViewPrivate() {} -}; - class ColumnView : public QColumnView { public: - ColumnView(QWidget *parent = 0) : QColumnView(*new ColumnViewPrivate, parent){} + ColumnView(QWidget *parent = 0) : QColumnView(parent){} QList<QPointer<QAbstractItemView> > createdColumns; void ScrollContentsBy(int x, int y) {scrollContentsBy(x,y); } @@ -1002,6 +999,37 @@ void tst_QColumnView::pullRug() // don't crash } +void tst_QColumnView::dynamicModelChanges() +{ + struct MyItemDelegate : public QItemDelegate + { + void paint(QPainter *painter, + const QStyleOptionViewItem &option, + const QModelIndex &index) const + { + paintedIndexes += index; + QItemDelegate::paint(painter, option, index); + } + + mutable QSet<QModelIndex> paintedIndexes; + + } delegate;; + QStandardItemModel model; + ColumnView view; + view.setModel(&model); + view.setItemDelegate(&delegate); + view.show(); + + QStandardItem *item = new QStandardItem(QLatin1String("item")); + model.appendRow(item); + + QTest::qWait(200); //let the time for painting to occur + QCOMPARE(delegate.paintedIndexes.count(), 1); + QCOMPARE(*delegate.paintedIndexes.begin(), model.index(0,0)); + + +} + QTEST_MAIN(tst_QColumnView) #include "tst_qcolumnview.moc" diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp index c94ace0..67c9ac9 100644 --- a/tests/auto/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/qcombobox/tst_qcombobox.cpp @@ -1973,6 +1973,7 @@ void tst_QComboBox::task190351_layout() listCombo.showPopup(); QTest::qWait(100); +#ifdef QT_BUILD_INTERNAL QFrame *container = qFindChild<QComboBoxPrivateContainer *>(&listCombo); QVERIFY(container); QCOMPARE(static_cast<QAbstractItemView *>(list), qFindChild<QAbstractItemView *>(container)); @@ -1980,6 +1981,7 @@ void tst_QComboBox::task190351_layout() QVERIFY(top); QVERIFY(top->isVisible()); QCOMPARE(top->mapToGlobal(QPoint(0, top->height())).y(), list->mapToGlobal(QPoint()).y()); +#endif QApplication::setStyle(oldStyle); #else @@ -2045,6 +2047,7 @@ void tst_QComboBox::task191329_size() tableCombo.showPopup(); QTest::qWait(100); +#ifdef QT_BUILD_INTERNAL QFrame *container = qFindChild<QComboBoxPrivateContainer *>(&tableCombo); QVERIFY(container); QCOMPARE(static_cast<QAbstractItemView *>(table), qFindChild<QAbstractItemView *>(container)); @@ -2052,6 +2055,7 @@ void tst_QComboBox::task191329_size() //the popup should be large enough to contains everithing so the top and left button are hidden QVERIFY(!button->isVisible()); } +#endif QApplication::setStyle(oldStyle); #else @@ -2107,9 +2111,11 @@ void tst_QComboBox::task248169_popupWithMinimalSize() comboBox.showPopup(); QTest::qWait(100); +#ifdef QT_BUILD_INTERNAL QFrame *container = qFindChild<QComboBoxPrivateContainer *>(&comboBox); QVERIFY(container); QVERIFY(desktop.screenGeometry(container).contains(container->geometry())); +#endif } void tst_QComboBox::task247863_keyBoardSelection() diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp index baea419..0a9c16a 100644 --- a/tests/auto/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/qcompleter/tst_qcompleter.cpp @@ -58,9 +58,9 @@ class CsvCompleter : public QCompleter Q_OBJECT public: CsvCompleter(QObject *parent = 0) : QCompleter(parent), csv(true) { } - - QString pathFromIndex(const QModelIndex& sourceIndex) const; - + + QString pathFromIndex(const QModelIndex& sourceIndex) const; + void setCsvCompletion(bool set) { csv = set; } protected: @@ -102,6 +102,8 @@ public: ~tst_QCompleter(); private slots: + void getSetCheck(); + void multipleWidgets(); void focusIn(); @@ -146,6 +148,8 @@ private slots: void task253125_lineEditCompletion_data(); void task253125_lineEditCompletion(); + void task247560_keyboardNavigation(); + private: void filter(); void testRowCount(); @@ -176,7 +180,7 @@ tst_QCompleter::~tst_QCompleter() } void tst_QCompleter::setSourceModel(ModelType type) -{ +{ QString text; QTreeWidgetItem *parent, *child; treeWidget->clear(); @@ -266,6 +270,72 @@ void tst_QCompleter::filter() QCOMPARE(completer->currentCompletion(), completionText); } +// Testing get/set functions +void tst_QCompleter::getSetCheck() +{ + QStandardItemModel model(3,3); + QCompleter completer(&model); + + // QString QCompleter::completionPrefix() + // void QCompleter::setCompletionPrefix(QString) + completer.setCompletionPrefix(QString("te")); + QCOMPARE(completer.completionPrefix(), QString("te")); + completer.setCompletionPrefix(QString()); + QCOMPARE(completer.completionPrefix(), QString()); + + // ModelSorting QCompleter::modelSorting() + // void QCompleter::setModelSorting(ModelSorting) + completer.setModelSorting(QCompleter::CaseSensitivelySortedModel); + QCOMPARE(completer.modelSorting(), QCompleter::CaseSensitivelySortedModel); + completer.setModelSorting(QCompleter::CaseInsensitivelySortedModel); + QCOMPARE(completer.modelSorting(), QCompleter::CaseInsensitivelySortedModel); + completer.setModelSorting(QCompleter::UnsortedModel); + QCOMPARE(completer.modelSorting(), QCompleter::UnsortedModel); + + // CompletionMode QCompleter::completionMode() + // void QCompleter::setCompletionMode(CompletionMode) + QCOMPARE(completer.completionMode(), QCompleter::PopupCompletion); // default value + completer.setCompletionMode(QCompleter::UnfilteredPopupCompletion); + QCOMPARE(completer.completionMode(), QCompleter::UnfilteredPopupCompletion); + completer.setCompletionMode(QCompleter::InlineCompletion); + QCOMPARE(completer.completionMode(), QCompleter::InlineCompletion); + + // int QCompleter::completionColumn() + // void QCompleter::setCompletionColumn(int) + completer.setCompletionColumn(2); + QCOMPARE(completer.completionColumn(), 2); + completer.setCompletionColumn(1); + QCOMPARE(completer.completionColumn(), 1); + + // int QCompleter::completionRole() + // void QCompleter::setCompletionRole(int) + QCOMPARE(completer.completionRole(), static_cast<int>(Qt::EditRole)); // default value + completer.setCompletionRole(Qt::DisplayRole); + QCOMPARE(completer.completionRole(), static_cast<int>(Qt::DisplayRole)); + + // int QCompleter::maxVisibleItems() + // void QCompleter::setMaxVisibleItems(int) + QCOMPARE(completer.maxVisibleItems(), 7); // default value + completer.setMaxVisibleItems(10); + QCOMPARE(completer.maxVisibleItems(), 10); + QTest::ignoreMessage(QtWarningMsg, "QCompleter::setMaxVisibleItems: " + "Invalid max visible items (-2147483648) must be >= 0"); + completer.setMaxVisibleItems(INT_MIN); + QCOMPARE(completer.maxVisibleItems(), 10); // Cannot be set to something negative => old value + + // Qt::CaseSensitivity QCompleter::caseSensitivity() + // void QCompleter::setCaseSensitivity(Qt::CaseSensitivity) + QCOMPARE(completer.caseSensitivity(), Qt::CaseSensitive); // default value + completer.setCaseSensitivity(Qt::CaseInsensitive); + QCOMPARE(completer.caseSensitivity(), Qt::CaseInsensitive); + + // bool QCompleter::wrapAround() + // void QCompleter::setWrapAround(bool) + QCOMPARE(completer.wrapAround(), true); // default value + completer.setWrapAround(false); + QCOMPARE(completer.wrapAround(), false); +} + void tst_QCompleter::csMatchingOnCsSortedModel_data() { delete completer; @@ -282,7 +352,7 @@ void tst_QCompleter::csMatchingOnCsSortedModel_data() for (int i = 0; i < 2; i++) { if (i == 1) QTest::newRow("FILTERING_OFF") << "FILTERING_OFF" << "" << "" << ""; - + // Plain text filter QTest::newRow("()") << "" << "" << "P0" << "P0"; QTest::newRow("()F") << "" << "F" << "P0" << "P0"; @@ -299,7 +369,7 @@ void tst_QCompleter::csMatchingOnCsSortedModel_data() QTest::newRow("(p)NNNN") << "p" << "NNNN" << "p4" << "p4"; QTest::newRow("(p1)") << "p1" << "" << "p1" << "p1"; QTest::newRow("(p11)") << "p11" << "" << "" << ""; - + // Tree filter QTest::newRow("(P0,)") << "P0," << "" << "c0P0" << "P0,c0P0"; QTest::newRow("(P0,c)") << "P0,c" << "" << "c0P0" << "P0,c0P0"; @@ -333,7 +403,7 @@ void tst_QCompleter::ciMatchingOnCiSortedModel_data() QTest::addColumn<QString>("completion"); QTest::addColumn<QString>("completionText"); - for (int i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++) { if (i == 1) QTest::newRow("FILTERING_OFF") << "FILTERING_OFF" << "" << "" << ""; @@ -352,7 +422,7 @@ void tst_QCompleter::ciMatchingOnCiSortedModel_data() QTest::newRow("(p1)") << "p1" << "" << "P1" << "P1"; QTest::newRow("(p1)N") << "p1" << "N" << "p1" << "p1"; QTest::newRow("(p11)") << "p11" << "" << "" << ""; - + //// Tree filter QTest::newRow("(p0,)") << "p0," << "" << "c0P0" << "P0,c0P0"; QTest::newRow("(p0,c)") << "p0,c" << "" << "c0P0" << "P0,c0P0"; @@ -404,7 +474,7 @@ void tst_QCompleter::ciMatchingOnCsSortedModel_data() QTest::newRow("(p1)") << "p1" << "" << "P1" << "P1"; QTest::newRow("(p1)N") << "p1" << "N" << "p1" << "p1"; QTest::newRow("(p11)") << "p11" << "" << "" << ""; - + // Tree filter QTest::newRow("(p0,)") << "p0," << "" << "c0P0" << "P0,c0P0"; QTest::newRow("(p0,c)") << "p0,c" << "" << "c0P0" << "P0,c0P0"; @@ -456,7 +526,7 @@ void tst_QCompleter::csMatchingOnCiSortedModel_data() QTest::newRow("(p)NNN") << "p" << "NNN" << "p3" << "p3"; QTest::newRow("(p1)") << "p1" << "" << "p1" << "p1"; QTest::newRow("(p11)") << "p11" << "" << "" << ""; - + //// Tree filter QTest::newRow("(p0,)") << "p0," << "" << "c0p0" << "p0,c0p0"; QTest::newRow("(p0,c)") << "p0,c" << "" << "c0p0" << "p0,c0p0"; @@ -469,7 +539,7 @@ void tst_QCompleter::csMatchingOnCiSortedModel_data() QTest::newRow("(p3,,c)") << "p3,,c" << "" << "" << ""; QTest::newRow("(p3,c0P3,)") << "p3,c0P3," << "" << "" << ""; QTest::newRow("(p,)") << "p," << "" << "" << ""; - + QTest::newRow("FILTERING_OFF") << "FILTERING_OFF" << "" << "" << ""; } } @@ -507,13 +577,13 @@ void tst_QCompleter::directoryModel_data() QTest::newRow("()") << "C:\\Program" << "" << "Program Files" << "C:\\Program Files"; #elif defined (Q_OS_MAC) QTest::newRow("()") << "" << "" << "/" << "/"; - QTest::newRow("(/a)") << "/a" << "" << "Applications" << "/Applications"; + QTest::newRow("(/a)") << "/a" << "" << "Applications" << "/Applications"; QTest::newRow("(/d)") << "/d" << "" << "Developer" << "/Developer"; #else QTest::newRow("()") << "" << "" << "/" << "/"; #if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_OS_HPUX) QTest::newRow("(/h)") << "/h" << "" << "home" << "/home"; -#endif +#endif QTest::newRow("(/et)") << "/et" << "" << "etc" << "/etc"; QTest::newRow("(/etc/passw)") << "/etc/passw" << "" << "passwd" << "/etc/passwd"; #endif @@ -659,7 +729,7 @@ void tst_QCompleter::currentRow() completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel); completer->setCaseSensitivity(Qt::CaseInsensitive); setSourceModel(CASE_INSENSITIVELY_SORTED_MODEL); - + // blank text completer->setCompletionPrefix(""); QCOMPARE(completer->currentRow(), 0); @@ -691,7 +761,7 @@ void tst_QCompleter::sortedEngineMapFromSource() QModelIndex si1, si2, pi; QAbstractItemModel *sourceModel = completer->model(); - const QAbstractProxyModel *completionModel = + const QAbstractProxyModel *completionModel = qobject_cast<const QAbstractProxyModel *>(completer->completionModel()); // Fitering ON @@ -762,7 +832,7 @@ void tst_QCompleter::unsortedEngineMapFromSource() QModelIndex si, si2, si3, pi; QAbstractItemModel *sourceModel = completer->model(); - const QAbstractProxyModel *completionModel = + const QAbstractProxyModel *completionModel = qobject_cast<const QAbstractProxyModel *>(completer->completionModel()); si = sourceModel->index(6, completionColumn); // "P3" @@ -844,7 +914,7 @@ void tst_QCompleter::historySearch() completer->setCaseSensitivity(Qt::CaseSensitive); setSourceModel(HISTORY_MODEL); - const QAbstractProxyModel *completionModel = + const QAbstractProxyModel *completionModel = qobject_cast<const QAbstractProxyModel *>(completer->completionModel()); // "p3,c3p3" and "p2,c4p2" are added in the tree root @@ -952,7 +1022,7 @@ void tst_QCompleter::multipleWidgets() #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&window); #endif - QTest::qWait(5000); + QTest::qWait(50); QTRY_VERIFY(qApp->focusWidget() == comboBox); comboBox->lineEdit()->setText("it"); QCOMPARE(comboBox->currentText(), QString("it")); // should not complete with setText @@ -965,7 +1035,8 @@ void tst_QCompleter::multipleWidgets() lineEdit->setCompleter(&completer); lineEdit->show(); lineEdit->setFocus(); - QTest::qWait(5000); + QTest::qWait(50); + QTRY_VERIFY(qApp->focusWidget() == lineEdit); lineEdit->setText("it"); QCOMPARE(lineEdit->text(), QString("it")); // should not completer with setText QCOMPARE(comboBox->currentText(), QString("")); // combo box text must not change! @@ -1027,7 +1098,7 @@ void tst_QCompleter::dynamicSortOrder() QCOMPARE(completer.completionCount(), 12); completer.setCompletionPrefix("13"); QCOMPARE(completer.completionCount(), 2); - + root->sortChildren(0, Qt::DescendingOrder); completer.setCompletionPrefix("13"); QCOMPARE(completer.completionCount(), 2); @@ -1230,5 +1301,43 @@ void tst_QCompleter::task253125_lineEditCompletion() QCOMPARE(edit.text(), QString("iota")); } +void tst_QCompleter::task247560_keyboardNavigation() +{ + QStandardItemModel model; + + for (int i = 0; i < 5; i++) { + for (int j = 0; j < 5; j++) { + model.setItem(i, j, new QStandardItem(QString("row %1 column %2").arg(i).arg(j))); + } + } + + + QCompleter completer(&model); + completer.setCompletionColumn(1); + + QLineEdit edit; + edit.setCompleter(&completer); + edit.show(); + edit.setFocus(); + + QTest::qWait(100); + + QTest::keyClick(&edit, 'r'); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("row 1 column 1")); + + edit.clear(); + + QTest::keyClick(&edit, 'r'); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Up); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Up); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("row 3 column 1")); +} + QTEST_MAIN(tst_QCompleter) #include "tst_qcompleter.moc" diff --git a/tests/auto/qcontiguouscache/qcontiguouscache.pro b/tests/auto/qcontiguouscache/qcontiguouscache.pro new file mode 100644 index 0000000..618efed --- /dev/null +++ b/tests/auto/qcontiguouscache/qcontiguouscache.pro @@ -0,0 +1,8 @@ +load(qttest_p4) + +QT = core + +SOURCES += tst_qcontiguouscache.cpp + + + diff --git a/tests/auto/qcontiguouscache/tst_qcontiguouscache.cpp b/tests/auto/qcontiguouscache/tst_qcontiguouscache.cpp new file mode 100644 index 0000000..048fa34 --- /dev/null +++ b/tests/auto/qcontiguouscache/tst_qcontiguouscache.cpp @@ -0,0 +1,479 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QObject> +#include <QTest> +#include <QCache> +#include <QContiguousCache> + +#include <QDebug> +#include <stdio.h> + +class tst_QContiguousCache : public QObject +{ + Q_OBJECT +public: + tst_QContiguousCache() {} + virtual ~tst_QContiguousCache() {} +private slots: + void empty(); + void append_data(); + void append(); + + void prepend_data(); + void prepend(); + + void asScrollingList(); + + void complexType(); + + void operatorAt(); + + void cacheBenchmark(); + void contiguousCacheBenchmark(); + + void setCapacity(); +}; + +QTEST_MAIN(tst_QContiguousCache) + +void tst_QContiguousCache::empty() +{ + QContiguousCache<int> c(10); + QCOMPARE(c.capacity(), 10); + QCOMPARE(c.count(), 0); + QVERIFY(c.isEmpty()); + c.append(1); + QCOMPARE(c.count(), 1); + QVERIFY(!c.isEmpty()); + c.clear(); + QCOMPARE(c.capacity(), 10); + QCOMPARE(c.count(), 0); + QVERIFY(c.isEmpty()); + c.prepend(1); + QCOMPARE(c.count(), 1); + QVERIFY(!c.isEmpty()); + c.clear(); + QCOMPARE(c.count(), 0); + QVERIFY(c.isEmpty()); + QCOMPARE(c.capacity(), 10); +} + +void tst_QContiguousCache::append_data() +{ + QTest::addColumn<int>("start"); + QTest::addColumn<int>("count"); + QTest::addColumn<int>("cacheSize"); + QTest::addColumn<bool>("invalidIndexes"); + + QTest::newRow("0+30[10]") << 0 << 30 << 10 << false; + QTest::newRow("300+30[10]") << 300 << 30 << 10 << false; + QTest::newRow("MAX-10+30[10]") << INT_MAX-10 << 30 << 10 << true; +} + +void tst_QContiguousCache::append() +{ + QFETCH(int, start); + QFETCH(int, count); + QFETCH(int, cacheSize); + QFETCH(bool, invalidIndexes); + + int i, j; + QContiguousCache<int> c(cacheSize); + + i = 1; + QCOMPARE(c.available(), cacheSize); + if (start == 0) + c.append(i++); + else + c.insert(start, i++); + while (i < count) { + c.append(i); + QCOMPARE(c.available(), qMax(0, cacheSize - i)); + QCOMPARE(c.first(), qMax(1, i-cacheSize+1)); + QCOMPARE(c.last(), i); + QCOMPARE(c.count(), qMin(i, cacheSize)); + QCOMPARE(c.isFull(), i >= cacheSize); + i++; + } + + QCOMPARE(c.areIndexesValid(), !invalidIndexes); + if (invalidIndexes) + c.normalizeIndexes(); + QVERIFY(c.areIndexesValid()); + + // test taking from end until empty. + for (j = 0; j < cacheSize; j++, i--) { + QCOMPARE(c.takeLast(), i-1); + QCOMPARE(c.count(), cacheSize-j-1); + QCOMPARE(c.available(), j+1); + QVERIFY(!c.isFull()); + QCOMPARE(c.isEmpty(), j==cacheSize-1); + } + +} + +void tst_QContiguousCache::prepend_data() +{ + QTest::addColumn<int>("start"); + QTest::addColumn<int>("count"); + QTest::addColumn<int>("cacheSize"); + QTest::addColumn<bool>("invalidIndexes"); + + QTest::newRow("30-30[10]") << 30 << 30 << 10 << false; + QTest::newRow("300-30[10]") << 300 << 30 << 10 << false; + QTest::newRow("10-30[10]") << 10 << 30 << 10 << true; +} + +void tst_QContiguousCache::prepend() +{ + QFETCH(int, start); + QFETCH(int, count); + QFETCH(int, cacheSize); + QFETCH(bool, invalidIndexes); + + int i, j; + QContiguousCache<int> c(cacheSize); + + i = 1; + QCOMPARE(c.available(), cacheSize); + c.insert(start, i++); + while(i < count) { + c.prepend(i); + QCOMPARE(c.available(), qMax(0, cacheSize - i)); + QCOMPARE(c.last(), qMax(1, i-cacheSize+1)); + QCOMPARE(c.first(), i); + QCOMPARE(c.count(), qMin(i, cacheSize)); + QCOMPARE(c.isFull(), i >= cacheSize); + i++; + } + + QCOMPARE(c.areIndexesValid(), !invalidIndexes); + if (invalidIndexes) + c.normalizeIndexes(); + QVERIFY(c.areIndexesValid()); + + // test taking from start until empty. + for (j = 0; j < cacheSize; j++, i--) { + QCOMPARE(c.takeFirst(), i-1); + QCOMPARE(c.count(), cacheSize-j-1); + QCOMPARE(c.available(), j+1); + QVERIFY(!c.isFull()); + QCOMPARE(c.isEmpty(), j==cacheSize-1); + } +} + +void tst_QContiguousCache::asScrollingList() +{ + int i; + QContiguousCache<int> c(10); + + // Once allocated QContiguousCache should not + // allocate any additional memory for non + // complex data types. + QBENCHMARK { + // simulate scrolling in a list of items; + for(i = 0; i < 10; ++i) { + QCOMPARE(c.available(), 10-i); + c.append(i); + } + + QCOMPARE(c.firstIndex(), 0); + QCOMPARE(c.lastIndex(), 9); + QCOMPARE(c.first(), 0); + QCOMPARE(c.last(), 9); + QVERIFY(!c.containsIndex(-1)); + QVERIFY(!c.containsIndex(10)); + QCOMPARE(c.available(), 0); + + for (i = 0; i < 10; ++i) { + QVERIFY(c.containsIndex(i)); + QCOMPARE(c.at(i), i); + QCOMPARE(c[i], i); + QCOMPARE(((const QContiguousCache<int>)c)[i], i); + } + + for (i = 10; i < 30; ++i) + c.append(i); + + QCOMPARE(c.firstIndex(), 20); + QCOMPARE(c.lastIndex(), 29); + QCOMPARE(c.first(), 20); + QCOMPARE(c.last(), 29); + QVERIFY(!c.containsIndex(19)); + QVERIFY(!c.containsIndex(30)); + QCOMPARE(c.available(), 0); + + for (i = 20; i < 30; ++i) { + QVERIFY(c.containsIndex(i)); + QCOMPARE(c.at(i), i); + QCOMPARE(c[i], i); + QCOMPARE(((const QContiguousCache<int> )c)[i], i); + } + + for (i = 19; i >= 10; --i) + c.prepend(i); + + QCOMPARE(c.firstIndex(), 10); + QCOMPARE(c.lastIndex(), 19); + QCOMPARE(c.first(), 10); + QCOMPARE(c.last(), 19); + QVERIFY(!c.containsIndex(9)); + QVERIFY(!c.containsIndex(20)); + QCOMPARE(c.available(), 0); + + for (i = 10; i < 20; ++i) { + QVERIFY(c.containsIndex(i)); + QCOMPARE(c.at(i), i); + QCOMPARE(c[i], i); + QCOMPARE(((const QContiguousCache<int> )c)[i], i); + } + + for (i = 200; i < 220; ++i) + c.insert(i, i); + + QCOMPARE(c.firstIndex(), 210); + QCOMPARE(c.lastIndex(), 219); + QCOMPARE(c.first(), 210); + QCOMPARE(c.last(), 219); + QVERIFY(!c.containsIndex(209)); + QVERIFY(!c.containsIndex(300)); + QCOMPARE(c.available(), 0); + + for (i = 210; i < 220; ++i) { + QVERIFY(c.containsIndex(i)); + QCOMPARE(c.at(i), i); + QCOMPARE(c[i], i); + QCOMPARE(((const QContiguousCache<int> )c)[i], i); + } + c.clear(); // needed to reset benchmark + } + + // from a specific bug that was encountered. 100 to 299 cached, attempted to cache 250 - 205 via insert, failed. + // bug was that item at 150 would instead be item that should have been inserted at 250 + c.setCapacity(200); + for(i = 100; i < 300; ++i) + c.insert(i, i); + for (i = 250; i <= 306; ++i) + c.insert(i, 1000+i); + for (i = 107; i <= 306; ++i) { + QVERIFY(c.containsIndex(i)); + QCOMPARE(c.at(i), i < 250 ? i : 1000+i); + } +} + +struct RefCountingClassData +{ + QBasicAtomicInt ref; + static RefCountingClassData shared_null; +}; + +RefCountingClassData RefCountingClassData::shared_null = { + Q_BASIC_ATOMIC_INITIALIZER(1) +}; + +class RefCountingClass +{ +public: + RefCountingClass() : d(&RefCountingClassData::shared_null) { d->ref.ref(); } + + RefCountingClass(const RefCountingClass &other) + { + d = other.d; + d->ref.ref(); + } + + ~RefCountingClass() + { + if (!d->ref.deref()) + delete d; + } + + RefCountingClass &operator=(const RefCountingClass &other) + { + if (!d->ref.deref()) + delete d; + d = other.d; + d->ref.ref(); + return *this; + } + + int refCount() const { return d->ref; } +private: + RefCountingClassData *d; +}; + +void tst_QContiguousCache::complexType() +{ + RefCountingClass original; + + QContiguousCache<RefCountingClass> contiguousCache(10); + contiguousCache.append(original); + QCOMPARE(original.refCount(), 3); + contiguousCache.removeFirst(); + QCOMPARE(original.refCount(), 2); // shared null, 'original'. + contiguousCache.append(original); + QCOMPARE(original.refCount(), 3); + contiguousCache.clear(); + QCOMPARE(original.refCount(), 2); + + for(int i = 0; i < 100; ++i) + contiguousCache.insert(i, original); + + QCOMPARE(original.refCount(), 12); // shared null, 'original', + 10 in contiguousCache. + + contiguousCache.clear(); + QCOMPARE(original.refCount(), 2); + for (int i = 0; i < 100; i++) + contiguousCache.append(original); + + QCOMPARE(original.refCount(), 12); // shared null, 'original', + 10 in contiguousCache. + contiguousCache.clear(); + QCOMPARE(original.refCount(), 2); + + for (int i = 0; i < 100; i++) + contiguousCache.prepend(original); + + QCOMPARE(original.refCount(), 12); // shared null, 'original', + 10 in contiguousCache. + contiguousCache.clear(); + QCOMPARE(original.refCount(), 2); + + for (int i = 0; i < 100; i++) + contiguousCache.append(original); + + contiguousCache.takeLast(); + QCOMPARE(original.refCount(), 11); + + contiguousCache.takeFirst(); + QCOMPARE(original.refCount(), 10); +} + +void tst_QContiguousCache::operatorAt() +{ + RefCountingClass original; + QContiguousCache<RefCountingClass> contiguousCache(10); + + for (int i = 25; i < 35; ++i) + contiguousCache[i] = original; + + QCOMPARE(original.refCount(), 12); // shared null, orig, items in cache + + // verify const access does not copy items. + const QContiguousCache<RefCountingClass> copy(contiguousCache); + for (int i = 25; i < 35; ++i) + QCOMPARE(copy[i].refCount(), 12); + + // verify modifying the original increments ref count (e.g. does a detach) + contiguousCache[25] = original; + QCOMPARE(original.refCount(), 22); +} + +/* + Benchmarks must be near identical in tasks to be fair. + QCache uses pointers to ints as its a requirement of QCache, + whereas QContiguousCache doesn't support pointers (won't free them). + Given the ability to use simple data types is a benefit, its + fair. Although this obviously must take into account we are + testing QContiguousCache use cases here, QCache has its own + areas where it is the more sensible class to use. +*/ +void tst_QContiguousCache::cacheBenchmark() +{ + QBENCHMARK { + QCache<int, int> cache; + cache.setMaxCost(100); + + for (int i = 0; i < 1000; i++) + cache.insert(i, new int(i)); + } +} + +void tst_QContiguousCache::contiguousCacheBenchmark() +{ + QBENCHMARK { + QContiguousCache<int> contiguousCache(100); + for (int i = 0; i < 1000; i++) + contiguousCache.insert(i, i); + } +} + +void tst_QContiguousCache::setCapacity() +{ + int i; + QContiguousCache<int> contiguousCache(100); + for (i = 280; i < 310; ++i) + contiguousCache.insert(i, i); + QCOMPARE(contiguousCache.capacity(), 100); + QCOMPARE(contiguousCache.count(), 30); + QCOMPARE(contiguousCache.firstIndex(), 280); + QCOMPARE(contiguousCache.lastIndex(), 309); + + for (i = contiguousCache.firstIndex(); i <= contiguousCache.lastIndex(); ++i) { + QVERIFY(contiguousCache.containsIndex(i)); + QCOMPARE(contiguousCache.at(i), i); + } + + contiguousCache.setCapacity(150); + + QCOMPARE(contiguousCache.capacity(), 150); + QCOMPARE(contiguousCache.count(), 30); + QCOMPARE(contiguousCache.firstIndex(), 280); + QCOMPARE(contiguousCache.lastIndex(), 309); + + for (i = contiguousCache.firstIndex(); i <= contiguousCache.lastIndex(); ++i) { + QVERIFY(contiguousCache.containsIndex(i)); + QCOMPARE(contiguousCache.at(i), i); + } + + contiguousCache.setCapacity(20); + + QCOMPARE(contiguousCache.capacity(), 20); + QCOMPARE(contiguousCache.count(), 20); + QCOMPARE(contiguousCache.firstIndex(), 290); + QCOMPARE(contiguousCache.lastIndex(), 309); + + for (i = contiguousCache.firstIndex(); i <= contiguousCache.lastIndex(); ++i) { + QVERIFY(contiguousCache.containsIndex(i)); + QCOMPARE(contiguousCache.at(i), i); + } +} + +#include "tst_qcontiguouscache.moc" diff --git a/tests/auto/qcopchannel/tst_qcopchannel.cpp b/tests/auto/qcopchannel/tst_qcopchannel.cpp index d07898a..ce97eae 100644 --- a/tests/auto/qcopchannel/tst_qcopchannel.cpp +++ b/tests/auto/qcopchannel/tst_qcopchannel.cpp @@ -42,7 +42,7 @@ #include <QtTest/QtTest> -#ifdef Q_WS_QWS +#if defined(Q_WS_QWS) && !defined(QT_NO_PROCESS) //TESTED_CLASS= //TESTED_FILES= diff --git a/tests/auto/qcssparser/qcssparser.pro b/tests/auto/qcssparser/qcssparser.pro index 57d6804..723e4d3 100644 --- a/tests/auto/qcssparser/qcssparser.pro +++ b/tests/auto/qcssparser/qcssparser.pro @@ -3,6 +3,7 @@ SOURCES += tst_cssparser.cpp DEFINES += SRCDIR=\\\"$$PWD\\\" QT += xml +requires(contains(QT_CONFIG,private_tests)) wince*: { addFiles.sources = testdata diff --git a/tests/auto/qcssparser/tst_cssparser.cpp b/tests/auto/qcssparser/tst_cssparser.cpp index c905688..cd2c0f4 100644 --- a/tests/auto/qcssparser/tst_cssparser.cpp +++ b/tests/auto/qcssparser/tst_cssparser.cpp @@ -114,11 +114,52 @@ void tst_CssParser::scanner_data() } } + +static char *tokenName(QCss::TokenType t) +{ + switch (t) { + case QCss::NONE: return "NONE"; + case QCss::S: return "S"; + case QCss::CDO: return "CDO"; + case QCss::CDC: return "CDC"; + case QCss::INCLUDES: return "INCLUDES"; + case QCss::DASHMATCH: return "DASHMATCH"; + case QCss::LBRACE: return "LBRACE"; + case QCss::PLUS: return "PLUS"; + case QCss::GREATER: return "GREATER"; + case QCss::COMMA: return "COMMA"; + case QCss::STRING: return "STRING"; + case QCss::INVALID: return "INVALID"; + case QCss::IDENT: return "IDENT"; + case QCss::HASH: return "HASH"; + case QCss::ATKEYWORD_SYM: return "ATKEYWORD_SYM"; + case QCss::EXCLAMATION_SYM: return "EXCLAMATION_SYM"; + case QCss::LENGTH: return "LENGTH"; + case QCss::PERCENTAGE: return "PERCENTAGE"; + case QCss::NUMBER: return "NUMBER"; + case QCss::FUNCTION: return "FUNCTION"; + case QCss::COLON: return "COLON"; + case QCss::SEMICOLON: return "SEMICOLON"; + case QCss::RBRACE: return "RBRACE"; + case QCss::SLASH: return "SLASH"; + case QCss::MINUS: return "MINUS"; + case QCss::DOT: return "DOT"; + case QCss::STAR: return "STAR"; + case QCss::LBRACKET: return "LBRACKET"; + case QCss::RBRACKET: return "RBRACKET"; + case QCss::EQUAL: return "EQUAL"; + case QCss::LPAREN: return "LPAREN"; + case QCss::RPAREN: return "RPAREN"; + case QCss::OR: return "OR"; + } + return ""; +} + static void debug(const QVector<QCss::Symbol> &symbols, int index = -1) { qDebug() << "all symbols:"; for (int i = 0; i < symbols.count(); ++i) - qDebug() << "(" << i << "); Token:" << QCss::Scanner::tokenName(symbols.at(i).token) << "; Lexem:" << symbols.at(i).lexem(); + qDebug() << "(" << i << "); Token:" << tokenName(symbols.at(i).token) << "; Lexem:" << symbols.at(i).lexem(); if (index != -1) qDebug() << "failure at index" << index; } @@ -160,7 +201,7 @@ void tst_CssParser::scanner() QCOMPARE(l.count(), 2); const QString expectedToken = l.at(0); const QString expectedLexem = l.at(1); - QString actualToken = QString::fromLatin1(QCss::Scanner::tokenName(symbols.at(i).token)); + QString actualToken = QString::fromLatin1(tokenName(symbols.at(i).token)); if (actualToken != expectedToken) { debug(symbols, i); QCOMPARE(actualToken, expectedToken); diff --git a/tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp index 6c73fd6..ab98d1d 100644 --- a/tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp +++ b/tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp @@ -102,7 +102,7 @@ Q_DECLARE_METATYPE(QList<int>); #if defined(Q_OS_WINCE) bool qt_wince_is_platform(const QString &platformString) { - TCHAR tszPlatform[64]; + wchar_t tszPlatform[64]; if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (platformString.utf16()), tszPlatform)) diff --git a/tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp b/tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp index c70c619..5d08c63 100644 --- a/tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp +++ b/tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp @@ -609,19 +609,22 @@ void tst_QDBusAbstractAdaptor::methodCalls() QVERIFY(con.isConnected()); //QDBusInterface emptycon.baseService(), "/", QString()); - QDBusInterface if1(con.baseService(), "/", "local.Interface1", con); - QDBusInterface if2(con.baseService(), "/", "local.Interface2", con); - QDBusInterface if3(con.baseService(), "/", "local.Interface3", con); - QDBusInterface if4(con.baseService(), "/", "local.Interface4", con); - // must fail: no object - //QCOMPARE(empty->call("method").type(), QDBusMessage::ErrorMessage); - QCOMPARE(if1.call(QDBus::BlockWithGui, "method").type(), QDBusMessage::ErrorMessage); + { + // must fail: no object + QDBusInterface if1(con.baseService(), "/", "local.Interface1", con); + QCOMPARE(if1.call(QDBus::BlockWithGui, "method").type(), QDBusMessage::ErrorMessage); + } QFETCH(int, nInterfaces); MyObject obj(nInterfaces); con.registerObject("/", &obj); + QDBusInterface if1(con.baseService(), "/", "local.Interface1", con); + QDBusInterface if2(con.baseService(), "/", "local.Interface2", con); + QDBusInterface if3(con.baseService(), "/", "local.Interface3", con); + QDBusInterface if4(con.baseService(), "/", "local.Interface4", con); + // must fail: no such method QCOMPARE(if1.call(QDBus::BlockWithGui, "method").type(), QDBusMessage::ErrorMessage); if (!nInterfaces--) @@ -670,11 +673,11 @@ void tst_QDBusAbstractAdaptor::methodCallScriptable() QDBusConnection con = QDBusConnection::sessionBus(); QVERIFY(con.isConnected()); - QDBusInterface if2(con.baseService(), "/", "local.Interface2", con); - MyObject obj(2); con.registerObject("/", &obj); + QDBusInterface if2(con.baseService(), "/", "local.Interface2", con); + QCOMPARE(if2.call(QDBus::BlockWithGui,"scriptableMethod").type(), QDBusMessage::ReplyMessage); QCOMPARE(slotSpy, "void Interface2::scriptableMethod()"); } diff --git a/tests/auto/qdbusabstractinterface/com.trolltech.QtDBus.Pinger.xml b/tests/auto/qdbusabstractinterface/com.trolltech.QtDBus.Pinger.xml new file mode 100644 index 0000000..fb2aab8 --- /dev/null +++ b/tests/auto/qdbusabstractinterface/com.trolltech.QtDBus.Pinger.xml @@ -0,0 +1,30 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<node> + <interface name="com.trolltech.QtDBus.Pinger"> + <property name="stringProp" type="s" access="readwrite"/> + <property name="variantProp" type="v" access="readwrite"/> + <property name="complexProp" type="(s)" access="readwrite"> + <annotation name="com.trolltech.QtDBus.QtTypeName" value="RegisteredType"/> + </property> + <signal name="voidSignal"/> + <signal name="stringSignal"> + <arg type="s"/> + </signal> + <signal name="complexSignal"> + <arg name="" type="(s)"/> + <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="RegisteredType"/> + </signal> + <method name="voidMethod" /> + <method name="stringMethod"> + <arg type="s" direction="out"/> + </method> + <method name="complexMethod"> + <arg type="(s)" direction="out"/> + <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="RegisteredType"/> + </method> + <method name="multiOutMethod"> + <arg type="s" direction="out"/> + <arg type="i" direction="out"/ + </method> + </interface> +</node> diff --git a/tests/auto/qdbusabstractinterface/interface.cpp b/tests/auto/qdbusabstractinterface/interface.cpp new file mode 100644 index 0000000..1c391ce --- /dev/null +++ b/tests/auto/qdbusabstractinterface/interface.cpp @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "interface.h" + +Interface::Interface() +{ +} + +#include "moc_interface.cpp" diff --git a/tests/auto/qdbusabstractinterface/interface.h b/tests/auto/qdbusabstractinterface/interface.h new file mode 100644 index 0000000..f6d34a7 --- /dev/null +++ b/tests/auto/qdbusabstractinterface/interface.h @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef INTERFACE_H +#define INTERFACE_H + +#include <QtCore/QObject> +#include <QtDBus/QDBusArgument> + +struct RegisteredType +{ + inline RegisteredType(const QString &str = QString()) : s(str) {} + inline bool operator==(const RegisteredType &other) const { return s == other.s; } + QString s; +}; +Q_DECLARE_METATYPE(RegisteredType) + +inline QDBusArgument &operator<<(QDBusArgument &s, const RegisteredType &data) +{ + s.beginStructure(); + s << data.s; + s.endStructure(); + return s; +} + +inline const QDBusArgument &operator>>(const QDBusArgument &s, RegisteredType &data) +{ + s.beginStructure(); + s >> data.s; + s.endStructure(); + return s; +} + +struct UnregisteredType +{ + QString s; +}; +Q_DECLARE_METATYPE(UnregisteredType) + +class Interface: public QObject +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "com.trolltech.QtDBus.Pinger") + Q_PROPERTY(QString stringProp READ stringProp WRITE setStringProp SCRIPTABLE true) + Q_PROPERTY(QDBusVariant variantProp READ variantProp WRITE setVariantProp SCRIPTABLE true) + Q_PROPERTY(RegisteredType complexProp READ complexProp WRITE setComplexProp SCRIPTABLE true) + + friend class tst_QDBusAbstractInterface; + QString m_stringProp; + QDBusVariant m_variantProp; + RegisteredType m_complexProp; + +public: + Interface(); + + QString stringProp() const { return m_stringProp; } + void setStringProp(const QString &s) { m_stringProp = s; } + QDBusVariant variantProp() const { return m_variantProp; } + void setVariantProp(const QDBusVariant &v) { m_variantProp = v; } + RegisteredType complexProp() const { return m_complexProp; } + void setComplexProp(const RegisteredType &r) { m_complexProp = r; } + +public slots: + Q_SCRIPTABLE void voidMethod() {} + Q_SCRIPTABLE QString stringMethod() { return "Hello, world"; } + Q_SCRIPTABLE RegisteredType complexMethod() { return RegisteredType("Hello, world"); } + Q_SCRIPTABLE QString multiOutMethod(int &value) { value = 42; return "Hello, world"; } + +signals: + Q_SCRIPTABLE void voidSignal(); + Q_SCRIPTABLE void stringSignal(const QString &); + Q_SCRIPTABLE void complexSignal(RegisteredType); +}; + +#endif // INTERFACE_H diff --git a/tests/auto/qdbusabstractinterface/pinger.cpp b/tests/auto/qdbusabstractinterface/pinger.cpp new file mode 100644 index 0000000..4fcb89a --- /dev/null +++ b/tests/auto/qdbusabstractinterface/pinger.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDBus module 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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/* + * This file was generated by qdbusxml2cpp version 0.7 + * Command line was: qdbusxml2cpp -i interface.h -p pinger com.trolltech.QtDBus.Pinger.xml + * + * qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * + * This is an auto-generated file. + * This file may have been hand-edited. Look for HAND-EDIT comments + * before re-generating it. + */ + +#include "pinger.h" + +/* + * Implementation of interface class ComTrolltechQtDBusPingerInterface + */ + +ComTrolltechQtDBusPingerInterface::ComTrolltechQtDBusPingerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) + : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) +{ +} + +ComTrolltechQtDBusPingerInterface::~ComTrolltechQtDBusPingerInterface() +{ +} + diff --git a/tests/auto/qdbusabstractinterface/pinger.h b/tests/auto/qdbusabstractinterface/pinger.h new file mode 100644 index 0000000..fb8adda --- /dev/null +++ b/tests/auto/qdbusabstractinterface/pinger.h @@ -0,0 +1,145 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDBus module 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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/* + * This file was generated by qdbusxml2cpp version 0.7 + * Command line was: qdbusxml2cpp -i interface.h -p pinger com.trolltech.QtDBus.Pinger.xml + * + * qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * + * This is an auto-generated file. + * Do not edit! All changes made to it will be lost. + */ + +#ifndef PINGER_H_1246463415 +#define PINGER_H_1246463415 + +#include <QtCore/QObject> +#include <QtCore/QByteArray> +#include <QtCore/QList> +#include <QtCore/QMap> +#include <QtCore/QString> +#include <QtCore/QStringList> +#include <QtCore/QVariant> +#include <QtDBus/QtDBus> +#include "interface.h" + +/* + * Proxy class for interface com.trolltech.QtDBus.Pinger + */ +class ComTrolltechQtDBusPingerInterface: public QDBusAbstractInterface +{ + Q_OBJECT +public: + static inline const char *staticInterfaceName() + { return "com.trolltech.QtDBus.Pinger"; } + +public: + ComTrolltechQtDBusPingerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); + + ~ComTrolltechQtDBusPingerInterface(); + + Q_PROPERTY(RegisteredType complexProp READ complexProp WRITE setComplexProp) + inline RegisteredType complexProp() const + { return qvariant_cast< RegisteredType >(property("complexProp")); } + inline void setComplexProp(RegisteredType value) + { setProperty("complexProp", qVariantFromValue(value)); } + + Q_PROPERTY(QString stringProp READ stringProp WRITE setStringProp) + inline QString stringProp() const + { return qvariant_cast< QString >(property("stringProp")); } + inline void setStringProp(const QString &value) + { setProperty("stringProp", qVariantFromValue(value)); } + + Q_PROPERTY(QDBusVariant variantProp READ variantProp WRITE setVariantProp) + inline QDBusVariant variantProp() const + { return qvariant_cast< QDBusVariant >(property("variantProp")); } + inline void setVariantProp(const QDBusVariant &value) + { setProperty("variantProp", qVariantFromValue(value)); } + +public Q_SLOTS: // METHODS + inline QDBusPendingReply<RegisteredType> complexMethod() + { + QList<QVariant> argumentList; + return asyncCallWithArgumentList(QLatin1String("complexMethod"), argumentList); + } + + inline QDBusPendingReply<QString, int> multiOutMethod() + { + QList<QVariant> argumentList; + return asyncCallWithArgumentList(QLatin1String("multiOutMethod"), argumentList); + } + inline QDBusReply<QString> multiOutMethod(int &out1) + { + QList<QVariant> argumentList; + QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("multiOutMethod"), argumentList); + if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) { + out1 = qdbus_cast<int>(reply.arguments().at(1)); + } + return reply; + } + + inline QDBusPendingReply<QString> stringMethod() + { + QList<QVariant> argumentList; + return asyncCallWithArgumentList(QLatin1String("stringMethod"), argumentList); + } + + inline QDBusPendingReply<> voidMethod() + { + QList<QVariant> argumentList; + return asyncCallWithArgumentList(QLatin1String("voidMethod"), argumentList); + } + +Q_SIGNALS: // SIGNALS + void complexSignal(RegisteredType in0); + void stringSignal(const QString &in0); + void voidSignal(); +}; + +namespace com { + namespace trolltech { + namespace QtDBus { + typedef ::ComTrolltechQtDBusPingerInterface Pinger; + } + } +} +#endif diff --git a/tests/auto/qdbusabstractinterface/qdbusabstractinterface.pro b/tests/auto/qdbusabstractinterface/qdbusabstractinterface.pro new file mode 100644 index 0000000..a4853b8 --- /dev/null +++ b/tests/auto/qdbusabstractinterface/qdbusabstractinterface.pro @@ -0,0 +1,15 @@ +load(qttest_p4) +QT = core +contains(QT_CONFIG,dbus): { + SOURCES += tst_qdbusabstractinterface.cpp interface.cpp + HEADERS += interface.h + QT += dbus + + # These are generated sources + # To regenerate, see the command-line at the top of the files + SOURCES += pinger.cpp + HEADERS += pinger.h +} +else:SOURCES += ../qdbusmarshall/dummy.cpp + +OTHER_FILES += com.trolltech.QtDBus.Pinger.xml diff --git a/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp new file mode 100644 index 0000000..fa5e332 --- /dev/null +++ b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp @@ -0,0 +1,576 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <qcoreapplication.h> +#include <qdebug.h> +#include <qsharedpointer.h> + +#include <QtTest/QtTest> + +#include <QtDBus> + +#include "interface.h" +#include "pinger.h" + +typedef QSharedPointer<com::trolltech::QtDBus::Pinger> Pinger; + +class tst_QDBusAbstractInterface: public QObject +{ + Q_OBJECT + Interface targetObj; + + Pinger getPinger(QString service = "", const QString &path = "/") + { + QDBusConnection con = QDBusConnection::sessionBus(); + if (!con.isConnected()) + return Pinger(); + if (service.isEmpty() && !service.isNull()) + service = con.baseService(); + return Pinger(new com::trolltech::QtDBus::Pinger(service, path, con)); + } + +public: + tst_QDBusAbstractInterface(); + +private slots: + void initTestCase(); + + void makeVoidCall(); + void makeStringCall(); + void makeComplexCall(); + void makeMultiOutCall(); + + void makeAsyncVoidCall(); + void makeAsyncStringCall(); + void makeAsyncComplexCall(); + void makeAsyncMultiOutCall(); + + void stringPropRead(); + void stringPropWrite(); + void variantPropRead(); + void variantPropWrite(); + void complexPropRead(); + void complexPropWrite(); + + void stringPropDirectRead(); + void stringPropDirectWrite(); + void variantPropDirectRead(); + void variantPropDirectWrite(); + void complexPropDirectRead(); + void complexPropDirectWrite(); + + void getVoidSignal_data(); + void getVoidSignal(); + void getStringSignal_data(); + void getStringSignal(); + void getComplexSignal_data(); + void getComplexSignal(); + + void createErrors_data(); + void createErrors(); + + void callErrors_data(); + void callErrors(); + void asyncCallErrors_data(); + void asyncCallErrors(); + + void propertyReadErrors_data(); + void propertyReadErrors(); + void propertyWriteErrors_data(); + void propertyWriteErrors(); + void directPropertyReadErrors_data(); + void directPropertyReadErrors(); + void directPropertyWriteErrors_data(); + void directPropertyWriteErrors(); +}; + +tst_QDBusAbstractInterface::tst_QDBusAbstractInterface() +{ + // register the meta types + qDBusRegisterMetaType<RegisteredType>(); + qRegisterMetaType<UnregisteredType>(); +} + +void tst_QDBusAbstractInterface::initTestCase() +{ + // register the object + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + con.registerObject("/", &targetObj, QDBusConnection::ExportScriptableContents); +} + +void tst_QDBusAbstractInterface::makeVoidCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusReply<void> r = p->voidMethod(); + QVERIFY(r.isValid()); +} + +void tst_QDBusAbstractInterface::makeStringCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusReply<QString> r = p->stringMethod(); + QVERIFY(r.isValid()); + QCOMPARE(r.value(), targetObj.stringMethod()); +} + +void tst_QDBusAbstractInterface::makeComplexCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusReply<RegisteredType> r = p->complexMethod(); + QVERIFY(r.isValid()); + QCOMPARE(r.value(), targetObj.complexMethod()); +} + +void tst_QDBusAbstractInterface::makeMultiOutCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + int value; + QDBusReply<QString> r = p->multiOutMethod(value); + QVERIFY(r.isValid()); + + int expectedValue; + QCOMPARE(r.value(), targetObj.multiOutMethod(expectedValue)); + QCOMPARE(value, expectedValue); +} + +void tst_QDBusAbstractInterface::makeAsyncVoidCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusPendingReply<void> r = p->voidMethod(); + r.waitForFinished(); + QVERIFY(r.isValid()); +} + +void tst_QDBusAbstractInterface::makeAsyncStringCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusPendingReply<QString> r = p->stringMethod(); + r.waitForFinished(); + QVERIFY(r.isValid()); + QCOMPARE(r.value(), targetObj.stringMethod()); +} + +void tst_QDBusAbstractInterface::makeAsyncComplexCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusPendingReply<RegisteredType> r = p->complexMethod(); + r.waitForFinished(); + QVERIFY(r.isValid()); + QCOMPARE(r.value(), targetObj.complexMethod()); +} + +void tst_QDBusAbstractInterface::makeAsyncMultiOutCall() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusPendingReply<QString, int> r = p->multiOutMethod(); + r.waitForFinished(); + QVERIFY(r.isValid()); + + int expectedValue; + QCOMPARE(r.value(), targetObj.multiOutMethod(expectedValue)); + QCOMPARE(r.argumentAt<1>(), expectedValue); +} + +void tst_QDBusAbstractInterface::stringPropRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QString expectedValue = targetObj.m_stringProp = "This is a test"; + QVariant v = p->property("stringProp"); + QVERIFY(v.isValid()); + QCOMPARE(v.toString(), expectedValue); +} + +void tst_QDBusAbstractInterface::stringPropWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QString expectedValue = "This is a value"; + QVERIFY(p->setProperty("stringProp", expectedValue)); + QCOMPARE(targetObj.m_stringProp, expectedValue); +} + +void tst_QDBusAbstractInterface::variantPropRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusVariant expectedValue = targetObj.m_variantProp = QDBusVariant(QVariant(42)); + QVariant v = p->property("variantProp"); + QVERIFY(v.isValid()); + QDBusVariant value = v.value<QDBusVariant>(); + QCOMPARE(value.variant().userType(), expectedValue.variant().userType()); + QCOMPARE(value.variant(), expectedValue.variant()); +} + +void tst_QDBusAbstractInterface::variantPropWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusVariant expectedValue = QDBusVariant(Q_INT64_C(-47)); + QVERIFY(p->setProperty("variantProp", qVariantFromValue(expectedValue))); + QCOMPARE(targetObj.m_variantProp.variant(), expectedValue.variant()); +} + +void tst_QDBusAbstractInterface::complexPropRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + RegisteredType expectedValue = targetObj.m_complexProp = RegisteredType("This is a test"); + QVariant v = p->property("complexProp"); + QVERIFY(v.userType() == qMetaTypeId<RegisteredType>()); + QCOMPARE(v.value<RegisteredType>(), targetObj.m_complexProp); +} + +void tst_QDBusAbstractInterface::complexPropWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + RegisteredType expectedValue = RegisteredType("This is a value"); + QVERIFY(p->setProperty("complexProp", qVariantFromValue(expectedValue))); + QCOMPARE(targetObj.m_complexProp, expectedValue); +} + +void tst_QDBusAbstractInterface::stringPropDirectRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QString expectedValue = targetObj.m_stringProp = "This is a test"; + QCOMPARE(p->stringProp(), expectedValue); +} + +void tst_QDBusAbstractInterface::stringPropDirectWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QString expectedValue = "This is a value"; + p->setStringProp(expectedValue); + QCOMPARE(targetObj.m_stringProp, expectedValue); +} + +void tst_QDBusAbstractInterface::variantPropDirectRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusVariant expectedValue = targetObj.m_variantProp = QDBusVariant(42); + QCOMPARE(p->variantProp().variant(), expectedValue.variant()); +} + +void tst_QDBusAbstractInterface::variantPropDirectWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + QDBusVariant expectedValue = QDBusVariant(Q_INT64_C(-47)); + p->setVariantProp(expectedValue); + QCOMPARE(targetObj.m_variantProp.variant().userType(), expectedValue.variant().userType()); + QCOMPARE(targetObj.m_variantProp.variant(), expectedValue.variant()); +} + +void tst_QDBusAbstractInterface::complexPropDirectRead() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + RegisteredType expectedValue = targetObj.m_complexProp = RegisteredType("This is a test"); + QCOMPARE(p->complexProp(), targetObj.m_complexProp); +} + +void tst_QDBusAbstractInterface::complexPropDirectWrite() +{ + Pinger p = getPinger(); + QVERIFY2(p, "Not connected to D-Bus"); + + RegisteredType expectedValue = RegisteredType("This is a value"); + p->setComplexProp(expectedValue); + QCOMPARE(targetObj.m_complexProp, expectedValue); +} + +void tst_QDBusAbstractInterface::getVoidSignal_data() +{ + QTest::addColumn<QString>("service"); + QTest::addColumn<QString>("path"); + + QTest::newRow("specific") << QDBusConnection::sessionBus().baseService() << "/"; + QTest::newRow("service-wildcard") << QString() << "/"; + QTest::newRow("path-wildcard") << QDBusConnection::sessionBus().baseService() << QString(); + QTest::newRow("full-wildcard") << QString() << QString(); +} + +void tst_QDBusAbstractInterface::getVoidSignal() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we need to connect the signal somewhere in order for D-Bus to enable the rules + QTestEventLoop::instance().connect(p.data(), SIGNAL(voidSignal()), SLOT(exitLoop())); + QSignalSpy s(p.data(), SIGNAL(voidSignal())); + + emit targetObj.voidSignal(); + QTestEventLoop::instance().enterLoop(2); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QVERIFY(s.size() == 1); + QVERIFY(s.at(0).size() == 0); +} + +void tst_QDBusAbstractInterface::getStringSignal_data() +{ + getVoidSignal_data(); +} + +void tst_QDBusAbstractInterface::getStringSignal() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we need to connect the signal somewhere in order for D-Bus to enable the rules + QTestEventLoop::instance().connect(p.data(), SIGNAL(stringSignal(QString)), SLOT(exitLoop())); + QSignalSpy s(p.data(), SIGNAL(stringSignal(QString))); + + QString expectedValue = "Good morning"; + emit targetObj.stringSignal(expectedValue); + QTestEventLoop::instance().enterLoop(2); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QVERIFY(s.size() == 1); + QVERIFY(s[0].size() == 1); + QCOMPARE(s[0][0].userType(), int(QVariant::String)); + QCOMPARE(s[0][0].toString(), expectedValue); +} + +void tst_QDBusAbstractInterface::getComplexSignal_data() +{ + getVoidSignal_data(); +} + +void tst_QDBusAbstractInterface::getComplexSignal() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we need to connect the signal somewhere in order for D-Bus to enable the rules + QTestEventLoop::instance().connect(p.data(), SIGNAL(complexSignal(RegisteredType)), SLOT(exitLoop())); + QSignalSpy s(p.data(), SIGNAL(complexSignal(RegisteredType))); + + RegisteredType expectedValue("Good evening"); + emit targetObj.complexSignal(expectedValue); + QTestEventLoop::instance().enterLoop(2); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QVERIFY(s.size() == 1); + QVERIFY(s[0].size() == 1); + QCOMPARE(s[0][0].userType(), qMetaTypeId<RegisteredType>()); + QCOMPARE(s[0][0].value<RegisteredType>(), expectedValue); +} + +void tst_QDBusAbstractInterface::createErrors_data() +{ + QTest::addColumn<QString>("service"); + QTest::addColumn<QString>("path"); + QTest::addColumn<QString>("errorName"); + + QTest::newRow("invalid-service") << "this isn't valid" << "/" << "com.trolltech.QtDBus.Error.InvalidService"; + QTest::newRow("invalid-path") << QDBusConnection::sessionBus().baseService() << "this isn't valid" + << "com.trolltech.QtDBus.Error.InvalidObjectPath"; +} + +void tst_QDBusAbstractInterface::createErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + QVERIFY(!p->isValid()); + QTEST(p->lastError().name(), "errorName"); +} + +void tst_QDBusAbstractInterface::callErrors_data() +{ + createErrors_data(); + QTest::newRow("service-wildcard") << QString() << "/" << "com.trolltech.QtDBus.Error.InvalidService"; + QTest::newRow("path-wildcard") << QDBusConnection::sessionBus().baseService() << QString() + << "com.trolltech.QtDBus.Error.InvalidObjectPath"; + QTest::newRow("full-wildcard") << QString() << QString() << "com.trolltech.QtDBus.Error.InvalidService"; +} + +void tst_QDBusAbstractInterface::callErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to make this call: + QDBusReply<QString> r = p->stringMethod(); + QVERIFY(!r.isValid()); + QTEST(r.error().name(), "errorName"); + QCOMPARE(p->lastError().name(), r.error().name()); +} + +void tst_QDBusAbstractInterface::asyncCallErrors_data() +{ + callErrors_data(); +} + +void tst_QDBusAbstractInterface::asyncCallErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to make this call: + QDBusPendingReply<QString> r = p->stringMethod(); + QVERIFY(r.isError()); + QTEST(r.error().name(), "errorName"); + QCOMPARE(p->lastError().name(), r.error().name()); +} + +void tst_QDBusAbstractInterface::propertyReadErrors_data() +{ + callErrors_data(); +} + +void tst_QDBusAbstractInterface::propertyReadErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to get this value: + QVariant v = p->property("stringProp"); + QVERIFY(v.isNull()); + QVERIFY(!v.isValid()); + QTEST(p->lastError().name(), "errorName"); +} + +void tst_QDBusAbstractInterface::propertyWriteErrors_data() +{ + callErrors_data(); +} + +void tst_QDBusAbstractInterface::propertyWriteErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to get this value: + if (p->isValid()) + QCOMPARE(int(p->lastError().type()), int(QDBusError::NoError)); + QVERIFY(!p->setProperty("stringProp", "")); + QTEST(p->lastError().name(), "errorName"); +} + +void tst_QDBusAbstractInterface::directPropertyReadErrors_data() +{ + callErrors_data(); +} + +void tst_QDBusAbstractInterface::directPropertyReadErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to get this value: + QString v = p->stringProp(); + QVERIFY(v.isNull()); + QTEST(p->lastError().name(), "errorName"); +} + +void tst_QDBusAbstractInterface::directPropertyWriteErrors_data() +{ + callErrors_data(); +} + +void tst_QDBusAbstractInterface::directPropertyWriteErrors() +{ + QFETCH(QString, service); + QFETCH(QString, path); + Pinger p = getPinger(service, path); + QVERIFY2(p, "Not connected to D-Bus"); + + // we shouldn't be able to get this value: + // but there's no direct way of verifying that the setting failed + if (p->isValid()) + QCOMPARE(int(p->lastError().type()), int(QDBusError::NoError)); + p->setStringProp(""); + QTEST(p->lastError().name(), "errorName"); +} + +QTEST_MAIN(tst_QDBusAbstractInterface) +#include "tst_qdbusabstractinterface.moc" diff --git a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp index c4d4b08..60afe4e 100644 --- a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp +++ b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp @@ -60,6 +60,9 @@ class MyObject: public QObject Q_CLASSINFO("D-Bus Introspection", "" " <interface name=\"com.trolltech.QtDBus.MyObject\" >\n" " <property access=\"readwrite\" type=\"i\" name=\"prop1\" />\n" +" <property name=\"complexProp\" type=\"ai\" access=\"readwrite\">\n" +" <annotation name=\"com.trolltech.QtDBus.QtTypeName\" value=\"QList<int>\"/>\n" +" </property>\n" " <signal name=\"somethingHappened\" >\n" " <arg direction=\"out\" type=\"s\" />\n" " </signal>\n" @@ -73,8 +76,17 @@ class MyObject: public QObject " <arg direction=\"out\" type=\"v\" name=\"pong1\" />\n" " <arg direction=\"out\" type=\"v\" name=\"pong2\" />\n" " </method>\n" +" <method name=\"ping\" >\n" +" <arg direction=\"in\" type=\"ai\" name=\"ping\" />\n" +" <arg direction=\"out\" type=\"ai\" name=\"ping\" />\n" +" <annotation name=\"com.trolltech.QtDBus.QtTypeName.In0\" value=\"QList<int>\"/>\n" +" <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"QList<int>\"/>\n" +" </method>\n" " </interface>\n" "") + Q_PROPERTY(int prop1 READ prop1 WRITE setProp1) + Q_PROPERTY(QList<int> complexProp READ complexProp WRITE setComplexProp) + public: static int callCount; static QVariantList callArgs; @@ -84,6 +96,30 @@ public: subObject->setObjectName("subObject"); } + int m_prop1; + int prop1() const + { + ++callCount; + return m_prop1; + } + void setProp1(int value) + { + ++callCount; + m_prop1 = value; + } + + QList<int> m_complexProp; + QList<int> complexProp() const + { + ++callCount; + return m_complexProp; + } + void setComplexProp(const QList<int> &value) + { + ++callCount; + m_complexProp = value; + } + public slots: void ping(QDBusMessage msg) @@ -144,8 +180,16 @@ private slots: void introspect(); void callMethod(); void invokeMethod(); + void invokeMethodWithReturn(); + void invokeMethodWithMultiReturn(); + void invokeMethodWithComplexReturn(); void signal(); + + void propertyRead(); + void propertyWrite(); + void complexPropertyRead(); + void complexPropertyWrite(); }; void tst_QDBusInterface::initTestCase() @@ -154,7 +198,7 @@ void tst_QDBusInterface::initTestCase() QVERIFY(con.isConnected()); QTest::qWait(500); - con.registerObject("/", &obj, QDBusConnection::ExportAdaptors + con.registerObject("/", &obj, QDBusConnection::ExportAllProperties | QDBusConnection::ExportAllSlots | QDBusConnection::ExportChildObjects); } @@ -228,11 +272,12 @@ void tst_QDBusInterface::introspect() const QMetaObject *mo = iface.metaObject(); - QCOMPARE(mo->methodCount() - mo->methodOffset(), 3); + QCOMPARE(mo->methodCount() - mo->methodOffset(), 4); QVERIFY(mo->indexOfSignal(TEST_SIGNAL_NAME "(QString)") != -1); - QCOMPARE(mo->propertyCount() - mo->propertyOffset(), 1); + QCOMPARE(mo->propertyCount() - mo->propertyOffset(), 2); QVERIFY(mo->indexOfProperty("prop1") != -1); + QVERIFY(mo->indexOfProperty("complexProp") != -1); } void tst_QDBusInterface::callMethod() @@ -281,6 +326,87 @@ void tst_QDBusInterface::invokeMethod() QCOMPARE(dv.variant().toString(), QString("foo")); } +void tst_QDBusInterface::invokeMethodWithReturn() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + // make the call without a return type + MyObject::callCount = 0; + QDBusVariant arg("foo"); + QDBusVariant retArg; + QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_RETURN_ARG(QDBusVariant, retArg), Q_ARG(QDBusVariant, arg))); + QCOMPARE(MyObject::callCount, 1); + + // verify what the callee received + QCOMPARE(MyObject::callArgs.count(), 1); + QVariant v = MyObject::callArgs.at(0); + QDBusVariant dv = qdbus_cast<QDBusVariant>(v); + QCOMPARE(dv.variant().type(), QVariant::String); + QCOMPARE(dv.variant().toString(), arg.variant().toString()); + + // verify that we got the reply as expected + QCOMPARE(retArg.variant(), arg.variant()); +} + +void tst_QDBusInterface::invokeMethodWithMultiReturn() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + // make the call without a return type + MyObject::callCount = 0; + QDBusVariant arg("foo"), arg2("bar"); + QDBusVariant retArg, retArg2; + QVERIFY(QMetaObject::invokeMethod(&iface, "ping", + Q_RETURN_ARG(QDBusVariant, retArg), + Q_ARG(QDBusVariant, arg), + Q_ARG(QDBusVariant, arg2), + Q_ARG(QDBusVariant&, retArg2))); + QCOMPARE(MyObject::callCount, 1); + + // verify what the callee received + QCOMPARE(MyObject::callArgs.count(), 2); + QVariant v = MyObject::callArgs.at(0); + QDBusVariant dv = qdbus_cast<QDBusVariant>(v); + QCOMPARE(dv.variant().type(), QVariant::String); + QCOMPARE(dv.variant().toString(), arg.variant().toString()); + + v = MyObject::callArgs.at(1); + dv = qdbus_cast<QDBusVariant>(v); + QCOMPARE(dv.variant().type(), QVariant::String); + QCOMPARE(dv.variant().toString(), arg2.variant().toString()); + + // verify that we got the replies as expected + QCOMPARE(retArg.variant(), arg.variant()); + QCOMPARE(retArg2.variant(), arg2.variant()); +} + +void tst_QDBusInterface::invokeMethodWithComplexReturn() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + // make the call without a return type + MyObject::callCount = 0; + QList<int> arg = QList<int>() << 42 << -47; + QList<int> retArg; + QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_RETURN_ARG(QList<int>, retArg), Q_ARG(QList<int>, arg))); + QCOMPARE(MyObject::callCount, 1); + + // verify what the callee received + QCOMPARE(MyObject::callArgs.count(), 1); + QVariant v = MyObject::callArgs.at(0); + QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>()); + QCOMPARE(qdbus_cast<QList<int> >(v), arg); + + // verify that we got the reply as expected + QCOMPARE(retArg, arg); +} + void tst_QDBusInterface::signal() { QDBusConnection con = QDBusConnection::sessionBus(); @@ -322,6 +448,68 @@ void tst_QDBusInterface::signal() } } +void tst_QDBusInterface::propertyRead() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + int arg = obj.m_prop1 = 42; + MyObject::callCount = 0; + + QVariant v = iface.property("prop1"); + QVERIFY(v.isValid()); + QCOMPARE(v.userType(), int(QVariant::Int)); + QCOMPARE(v.toInt(), arg); + QCOMPARE(MyObject::callCount, 1); +} + +void tst_QDBusInterface::propertyWrite() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + int arg = 42; + obj.m_prop1 = 0; + MyObject::callCount = 0; + + QVERIFY(iface.setProperty("prop1", arg)); + QCOMPARE(MyObject::callCount, 1); + QCOMPARE(obj.m_prop1, arg); +} + +void tst_QDBusInterface::complexPropertyRead() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + QList<int> arg = obj.m_complexProp = QList<int>() << 42 << -47; + MyObject::callCount = 0; + + QVariant v = iface.property("complexProp"); + QVERIFY(v.isValid()); + QCOMPARE(v.userType(), qMetaTypeId<QList<int> >()); + QCOMPARE(v.value<QList<int> >(), arg); + QCOMPARE(MyObject::callCount, 1); +} + +void tst_QDBusInterface::complexPropertyWrite() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); + + QList<int> arg = QList<int>() << -47 << 42; + obj.m_complexProp.clear(); + MyObject::callCount = 0; + + QVERIFY(iface.setProperty("complexProp", qVariantFromValue(arg))); + QCOMPARE(MyObject::callCount, 1); + QCOMPARE(obj.m_complexProp, arg); +} + QTEST_MAIN(tst_QDBusInterface) #include "tst_qdbusinterface.moc" diff --git a/tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp b/tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp index e5b2ebb..e304712 100644 --- a/tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp +++ b/tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp @@ -84,12 +84,17 @@ private slots: void sendArgument_data(); void sendArgument(); - void sendErrors(); + void sendSignalErrors(); + void sendCallErrors_data(); + void sendCallErrors(); private: QProcess proc; }; +struct UnregisteredType { }; +Q_DECLARE_METATYPE(UnregisteredType) + class WaitForQPong: public QObject { Q_OBJECT @@ -784,7 +789,7 @@ void tst_QDBusMarshall::sendArgument() QCOMPARE(extracted, value); } -void tst_QDBusMarshall::sendErrors() +void tst_QDBusMarshall::sendSignalErrors() { QDBusConnection con = QDBusConnection::sessionBus(); @@ -793,7 +798,7 @@ void tst_QDBusMarshall::sendErrors() "signalName"); msg << qVariantFromValue(QDBusObjectPath()); - QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\""); + QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments"); QVERIFY(!con.send(msg)); msg.setArguments(QVariantList()); @@ -803,9 +808,117 @@ void tst_QDBusMarshall::sendErrors() path.setPath("abc"); msg << qVariantFromValue(path); - QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\""); + QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments"); + QVERIFY(!con.send(msg)); + + QDBusSignature sig; + msg.setArguments(QVariantList() << qVariantFromValue(sig)); + QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments"); + QVERIFY(!con.send(msg)); + + QTest::ignoreMessage(QtWarningMsg, "QDBusSignature: invalid signature \"a\""); + sig.setSignature("a"); + msg.setArguments(QVariantList()); + msg << qVariantFromValue(sig); + QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments"); QVERIFY(!con.send(msg)); } +void tst_QDBusMarshall::sendCallErrors_data() +{ + QTest::addColumn<QString>("service"); + QTest::addColumn<QString>("path"); + QTest::addColumn<QString>("interface"); + QTest::addColumn<QString>("method"); + QTest::addColumn<QVariantList>("arguments"); + QTest::addColumn<QString>("errorName"); + QTest::addColumn<QString>("errorMsg"); + QTest::addColumn<QString>("ignoreMsg"); + + // this error comes from the bus server + QTest::newRow("empty-service") << "" << objectPath << interfaceName << "ping" << QVariantList() + << "org.freedesktop.DBus.Error.UnknownMethod" + << "Method \"ping\" with signature \"\" on interface \"com.trolltech.autotests.qpong\" doesn't exist\n" << (const char*)0; + + QTest::newRow("invalid-service") << "this isn't valid" << objectPath << interfaceName << "ping" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidService" + << "Invalid service name: this isn't valid" << ""; + + QTest::newRow("empty-path") << serviceName << "" << interfaceName << "ping" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidObjectPath" + << "Object path cannot be empty" << ""; + QTest::newRow("invalid-path") << serviceName << "//" << interfaceName << "ping" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidObjectPath" + << "Invalid object path: //" << ""; + + // empty interfaces are valid + QTest::newRow("invalid-interface") << serviceName << objectPath << "this isn't valid" << "ping" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidInterface" + << "Invalid interface class: this isn't valid" << ""; + + QTest::newRow("empty-method") << serviceName << objectPath << interfaceName << "" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidMember" + << "method name cannot be empty" << ""; + QTest::newRow("invalid-method") << serviceName << objectPath << interfaceName << "this isn't valid" << QVariantList() + << "com.trolltech.QtDBus.Error.InvalidMember" + << "Invalid method name: this isn't valid" << ""; + + QTest::newRow("invalid-variant1") << serviceName << objectPath << interfaceName << "ping" + << (QVariantList() << QVariant()) + << "org.freedesktop.DBus.Error.Failed" + << "Marshalling failed: Variant containing QVariant::Invalid passed in arguments" + << "QDBusMarshaller: cannot add an invalid QVariant"; + QTest::newRow("invalid-variant1") << serviceName << objectPath << interfaceName << "ping" + << (QVariantList() << qVariantFromValue(QDBusVariant())) + << "org.freedesktop.DBus.Error.Failed" + << "Marshalling failed: Variant containing QVariant::Invalid passed in arguments" + << "QDBusMarshaller: cannot add a null QDBusVariant"; + + QTest::newRow("builtin-unregistered") << serviceName << objectPath << interfaceName << "ping" + << (QVariantList() << QLocale::c()) + << "org.freedesktop.DBus.Error.Failed" + << "Marshalling failed: Unregistered type QLocale passed in arguments" + << "QDBusMarshaller: type `QLocale' (18) is not registered with D-BUS. Use qDBusRegisterMetaType to register it"; + + // this type is known to the meta type system, but not registered with D-Bus + qRegisterMetaType<UnregisteredType>(); + QTest::newRow("extra-unregistered") << serviceName << objectPath << interfaceName << "ping" + << (QVariantList() << qVariantFromValue(UnregisteredType())) + << "org.freedesktop.DBus.Error.Failed" + << "Marshalling failed: Unregistered type UnregisteredType passed in arguments" + << QString("QDBusMarshaller: type `UnregisteredType' (%1) is not registered with D-BUS. Use qDBusRegisterMetaType to register it") + .arg(qMetaTypeId<UnregisteredType>()); +} + +void tst_QDBusMarshall::sendCallErrors() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + QVERIFY(con.isConnected()); + + QFETCH(QString, service); + QFETCH(QString, path); + QFETCH(QString, interface); + QFETCH(QString, method); + QFETCH(QVariantList, arguments); + QFETCH(QString, errorMsg); + + QFETCH(QString, ignoreMsg); + if (!ignoreMsg.isEmpty()) + QTest::ignoreMessage(QtWarningMsg, ignoreMsg.toLatin1()); + if (!ignoreMsg.isNull()) + QTest::ignoreMessage(QtWarningMsg, + QString("QDBusConnection: error: could not send message to service \"%1\" path \"%2\" interface \"%3\" member \"%4\": %5") + .arg(service, path, interface, method, errorMsg) + .toLatin1()); + + QDBusMessage msg = QDBusMessage::createMethodCall(service, path, interface, method); + msg.setArguments(arguments); + + QDBusMessage reply = con.call(msg, QDBus::Block); + QCOMPARE(reply.type(), QDBusMessage::ErrorMessage); + QTEST(reply.errorName(), "errorName"); + QCOMPARE(reply.errorMessage(), errorMsg); +} + QTEST_MAIN(tst_QDBusMarshall) #include "tst_qdbusmarshall.moc" diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 1fd5e88..e5b23ab 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -571,10 +571,21 @@ void tst_QDir::entryList() return; } - for (int i=0; i<max; ++i) - QCOMPARE(actual[i], expected[i]); + bool doContentCheck = true; +#ifdef Q_OS_UNIX + if (qstrcmp(QTest::currentDataTag(), "QDir::AllEntries | QDir::Writable") == 0) { + // for root, everything is writeable + if (::getuid() == 0) + doContentCheck = false; + } +#endif - QCOMPARE(actual.count(), expected.count()); + if (doContentCheck) { + for (int i=0; i<max; ++i) + QCOMPARE(actual[i], expected[i]); + + QCOMPARE(actual.count(), expected.count()); + } QFile::remove(SRCDIR "entrylist/writable"); QFile::remove(SRCDIR "entrylist/linktofile"); diff --git a/tests/auto/qdirectpainter/tst_qdirectpainter.cpp b/tests/auto/qdirectpainter/tst_qdirectpainter.cpp index e300244..d5c0ef8 100644 --- a/tests/auto/qdirectpainter/tst_qdirectpainter.cpp +++ b/tests/auto/qdirectpainter/tst_qdirectpainter.cpp @@ -175,6 +175,9 @@ void tst_QDirectPainter::setGeometry() void tst_QDirectPainter::regionSynchronization() { +#ifdef QT_NO_PROCESS + QSKIP("Test requires QProcess", SkipAll); +#else QRect dpRect(10, 10, 50, 50); // Start the direct painter in a different process @@ -211,6 +214,7 @@ void tst_QDirectPainter::regionSynchronization() QVERIFY(i > 100); // sanity check proc.kill(); +#endif } class MyObject : public QObject diff --git a/tests/auto/qeasingcurve/qeasingcurve.pro b/tests/auto/qeasingcurve/qeasingcurve.pro new file mode 100644 index 0000000..2b66081 --- /dev/null +++ b/tests/auto/qeasingcurve/qeasingcurve.pro @@ -0,0 +1,3 @@ +load(qttest_p4) +QT = core +SOURCES += tst_qeasingcurve.cpp diff --git a/tests/auto/qeasingcurve/tst_qeasingcurve.cpp b/tests/auto/qeasingcurve/tst_qeasingcurve.cpp new file mode 100644 index 0000000..d40b6df --- /dev/null +++ b/tests/auto/qeasingcurve/tst_qeasingcurve.cpp @@ -0,0 +1,493 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> + +#if QT_VERSION < 0x040200 +QTEST_NOOP_MAIN +#else + +#include <qeasingcurve.h> + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QEasingCurve : public QObject { + Q_OBJECT + +public: + tst_QEasingCurve(); + virtual ~tst_QEasingCurve(); + +public Q_SLOTS: + void init(); + void cleanup(); + +private slots: + void type(); + void propertyDefaults(); + void valueForProgress_data(); + void valueForProgress(); + void setCustomType(); + void operators(); + +protected: +}; + +tst_QEasingCurve::tst_QEasingCurve() +{ +} + +tst_QEasingCurve::~tst_QEasingCurve() +{ +} + +void tst_QEasingCurve::init() +{ +} + +void tst_QEasingCurve::cleanup() +{ +} +#include <qdebug.h> + +void tst_QEasingCurve::type() +{ + { + QEasingCurve curve(QEasingCurve::Linear); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + + curve.setPeriod(5); + curve.setAmplitude(3); + QCOMPARE(curve.period(), 5.0); + QCOMPARE(curve.amplitude(), 3.0); + + curve.setType(QEasingCurve::InElastic); + QCOMPARE(curve.period(), 5.0); + QCOMPARE(curve.amplitude(), 3.0); + } + + { + QEasingCurve curve(QEasingCurve::InElastic); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + curve.setAmplitude(2); + QCOMPARE(curve.type(), QEasingCurve::InElastic); + curve.setType(QEasingCurve::Linear); + } + + { + // check bounaries + QEasingCurve curve(QEasingCurve::InCubic); + QTest::ignoreMessage(QtWarningMsg, "QEasingCurve: Invalid curve type 9999"); + curve.setType((QEasingCurve::Type)9999); + QCOMPARE(curve.type(), QEasingCurve::InCubic); + QTest::ignoreMessage(QtWarningMsg, "QEasingCurve: Invalid curve type -9999"); + curve.setType((QEasingCurve::Type)-9999); + QCOMPARE(curve.type(), QEasingCurve::InCubic); + QTest::ignoreMessage(QtWarningMsg, QString::fromAscii("QEasingCurve: Invalid curve type %1") + .arg(QEasingCurve::NCurveTypes).toLatin1().constData()); + curve.setType(QEasingCurve::NCurveTypes); + QCOMPARE(curve.type(), QEasingCurve::InCubic); + QTest::ignoreMessage(QtWarningMsg, QString::fromAscii("QEasingCurve: Invalid curve type %1") + .arg(QEasingCurve::Custom).toLatin1().constData()); + curve.setType(QEasingCurve::Custom); + QCOMPARE(curve.type(), QEasingCurve::InCubic); + QTest::ignoreMessage(QtWarningMsg, QString::fromAscii("QEasingCurve: Invalid curve type %1") + .arg(-1).toLatin1().constData()); + curve.setType((QEasingCurve::Type)-1); + QCOMPARE(curve.type(), QEasingCurve::InCubic); + curve.setType(QEasingCurve::Linear); + QCOMPARE(curve.type(), QEasingCurve::Linear); + curve.setType(QEasingCurve::CosineCurve); + QCOMPARE(curve.type(), QEasingCurve::CosineCurve); + } +} + +void tst_QEasingCurve::propertyDefaults() +{ + { + // checks if the defaults are correct, but also demonstrates a weakness with the API. + QEasingCurve curve(QEasingCurve::InElastic); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + QCOMPARE(curve.overshoot(), qreal(1.70158f)); + curve.setType(QEasingCurve::InBounce); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + QCOMPARE(curve.overshoot(), qreal(1.70158f)); + curve.setType(QEasingCurve::Linear); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + QCOMPARE(curve.overshoot(), qreal(1.70158f)); + curve.setType(QEasingCurve::InElastic); + QCOMPARE(curve.period(), 0.3); + QCOMPARE(curve.amplitude(), 1.0); + QCOMPARE(curve.overshoot(), qreal(1.70158f)); + curve.setPeriod(0.4); + curve.setAmplitude(0.6); + curve.setOvershoot(1.0); + curve.setType(QEasingCurve::Linear); + QCOMPARE(curve.period(), 0.4); + QCOMPARE(curve.amplitude(), 0.6); + QCOMPARE(curve.overshoot(), 1.0); + curve.setType(QEasingCurve::InElastic); + QCOMPARE(curve.period(), 0.4); + QCOMPARE(curve.amplitude(), 0.6); + QCOMPARE(curve.overshoot(), 1.0); + } +} + +typedef QList<int> IntList; +typedef QList<qreal> RealList; +Q_DECLARE_METATYPE(IntList) +Q_DECLARE_METATYPE(RealList) + +void tst_QEasingCurve::valueForProgress_data() +{ + QTest::addColumn<int>("type"); + QTest::addColumn<IntList>("at"); + QTest::addColumn<RealList>("expected"); + // automatically generated. + // note that values are scaled from range [0,1] to range [0, 100] in order to store them as + // integer values and avoid fp inaccuracies + QTest::newRow("Linear") << int(QEasingCurve::Linear) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.1 << 0.2 << 0.3 << 0.4 << 0.5 << 0.6 << 0.7 << 0.8 << 0.9 << 1); + + QTest::newRow("InQuad") << int(QEasingCurve::InQuad) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.01 << 0.04 << 0.09 << 0.16 << 0.25 << 0.36 << 0.49 << 0.64 << 0.81 << 1); + + QTest::newRow("OutQuad") << int(QEasingCurve::OutQuad) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.19 << 0.36 << 0.51 << 0.64 << 0.75 << 0.84 << 0.91 << 0.96 << 0.99 << 1); + + QTest::newRow("InOutQuad") << int(QEasingCurve::InOutQuad) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.02 << 0.08 << 0.18 << 0.32 << 0.5 << 0.68 << 0.82 << 0.92 << 0.98 << 1); + + QTest::newRow("OutInQuad") << int(QEasingCurve::OutInQuad) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.18 << 0.32 << 0.42 << 0.48 << 0.5 << 0.52 << 0.58 << 0.68 << 0.82 << 1); + + QTest::newRow("InCubic") << int(QEasingCurve::InCubic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.001 << 0.008 << 0.027 << 0.064 << 0.125 << 0.216 << 0.343 << 0.512 << 0.729 << 1); + + QTest::newRow("OutCubic") << int(QEasingCurve::OutCubic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.271 << 0.488 << 0.657 << 0.784 << 0.875 << 0.936 << 0.973 << 0.992 << 0.999 << 1); + + QTest::newRow("InOutCubic") << int(QEasingCurve::InOutCubic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.004 << 0.032 << 0.108 << 0.256 << 0.5 << 0.744 << 0.892 << 0.968 << 0.996 << 1); + + QTest::newRow("OutInCubic") << int(QEasingCurve::OutInCubic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.244 << 0.392 << 0.468 << 0.496 << 0.5 << 0.504 << 0.532 << 0.608 << 0.756 << 1); + + QTest::newRow("InQuart") << int(QEasingCurve::InQuart) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.0001 << 0.0016 << 0.0081 << 0.0256 << 0.0625 << 0.1296 << 0.2401 << 0.4096 << 0.6561 << 1); + + QTest::newRow("OutQuart") << int(QEasingCurve::OutQuart) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.3439 << 0.5904 << 0.7599 << 0.8704 << 0.9375 << 0.9744 << 0.9919 << 0.9984 << 0.9999 << 1); + + QTest::newRow("InOutQuart") << int(QEasingCurve::InOutQuart) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.0008 << 0.0128 << 0.0648 << 0.2048 << 0.5 << 0.7952 << 0.9352 << 0.9872 << 0.9992 << 1); + + QTest::newRow("OutInQuart") << int(QEasingCurve::OutInQuart) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.2952 << 0.4352 << 0.4872 << 0.4992 << 0.5 << 0.5008 << 0.5128 << 0.5648 << 0.7048 << 1); + + QTest::newRow("InQuint") << int(QEasingCurve::InQuint) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 1e-05 << 0.00032 << 0.00243 << 0.01024 << 0.03125 << 0.07776 << 0.1681 << 0.3277 << 0.5905 << 1); + + QTest::newRow("OutQuint") << int(QEasingCurve::OutQuint) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.4095 << 0.6723 << 0.8319 << 0.9222 << 0.9688 << 0.9898 << 0.9976 << 0.9997 << 1 << 1); + + QTest::newRow("InOutQuint") << int(QEasingCurve::InOutQuint) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.00016 << 0.00512 << 0.03888 << 0.1638 << 0.5 << 0.8362 << 0.9611 << 0.9949 << 0.9998 << 1); + + QTest::newRow("OutInQuint") << int(QEasingCurve::OutInQuint) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.3362 << 0.4611 << 0.4949 << 0.4998 << 0.5 << 0.5002 << 0.5051 << 0.5389 << 0.6638 << 1); + + QTest::newRow("InSine") << int(QEasingCurve::InSine) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.01231 << 0.04894 << 0.109 << 0.191 << 0.2929 << 0.4122 << 0.546 << 0.691 << 0.8436 << 1); + + QTest::newRow("OutSine") << int(QEasingCurve::OutSine) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.1564 << 0.309 << 0.454 << 0.5878 << 0.7071 << 0.809 << 0.891 << 0.9511 << 0.9877 << 1); + + QTest::newRow("InOutSine") << int(QEasingCurve::InOutSine) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.02447 << 0.09549 << 0.2061 << 0.3455 << 0.5 << 0.6545 << 0.7939 << 0.9045 << 0.9755 << 1); + + QTest::newRow("OutInSine") << int(QEasingCurve::OutInSine) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.1545 << 0.2939 << 0.4045 << 0.4755 << 0.5 << 0.5245 << 0.5955 << 0.7061 << 0.8455 << 1); + + QTest::newRow("InExpo") << int(QEasingCurve::InExpo) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.0009531 << 0.002906 << 0.006812 << 0.01462 << 0.03025 << 0.0615 << 0.124 << 0.249 << 0.499 << 1); + + QTest::newRow("OutExpo") << int(QEasingCurve::OutExpo) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.5005 << 0.7507 << 0.8759 << 0.9384 << 0.9697 << 0.9854 << 0.9932 << 0.9971 << 0.999 << 1); + + QTest::newRow("InOutExpo") << int(QEasingCurve::InOutExpo) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.001453 << 0.007312 << 0.03075 << 0.1245 << 0.5002 << 0.8754 << 0.9692 << 0.9927 << 0.9985 << 1); + + QTest::newRow("OutInExpo") << int(QEasingCurve::OutInExpo) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.3754 << 0.4692 << 0.4927 << 0.4985 << 0.5 << 0.5015 << 0.5073 << 0.5308 << 0.6245 << 1); + + QTest::newRow("InCirc") << int(QEasingCurve::InCirc) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.005013 << 0.0202 << 0.04606 << 0.08348 << 0.134 << 0.2 << 0.2859 << 0.4 << 0.5641 << 1); + + QTest::newRow("OutCirc") << int(QEasingCurve::OutCirc) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.4359 << 0.6 << 0.7141 << 0.8 << 0.866 << 0.9165 << 0.9539 << 0.9798 << 0.995 << 1); + + QTest::newRow("InOutCirc") << int(QEasingCurve::InOutCirc) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.0101 << 0.04174 << 0.1 << 0.2 << 0.5 << 0.8 << 0.9 << 0.9583 << 0.9899 << 1); + + QTest::newRow("OutInCirc") << int(QEasingCurve::OutInCirc) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.3 << 0.4 << 0.4583 << 0.4899 << 0.5 << 0.5101 << 0.5417 << 0.6 << 0.7 << 1); + + QTest::newRow("InElastic") << int(QEasingCurve::InElastic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.001953 << -0.001953 << -0.003906 << 0.01562 << -0.01562 << -0.03125 << 0.125 << -0.125 << -0.25 << 1); + + QTest::newRow("OutElastic") << int(QEasingCurve::OutElastic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 1.25 << 1.125 << 0.875 << 1.031 << 1.016 << 0.9844 << 1.004 << 1.002 << 0.998 << 1); + + QTest::newRow("InOutElastic") << int(QEasingCurve::InOutElastic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << -0.0009766 << 0.007812 << -0.01563 << -0.0625 << 0.5 << 1.062 << 1.016 << 0.9922 << 1.001 << 1); + + QTest::newRow("OutInElastic") << int(QEasingCurve::OutInElastic) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.375 << 0.5625 << 0.4922 << 0.498 << 0.5 << 0.4961 << 0.5078 << 0.5313 << 0.25 << 1); + + QTest::newRow("InBack") << int(QEasingCurve::InBack) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << -0.01431 << -0.04645 << -0.0802 << -0.09935 << -0.0877 << -0.02903 << 0.09287 << 0.2942 << 0.5912 << 1); + + QTest::newRow("OutBack") << int(QEasingCurve::OutBack) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.4088 << 0.7058 << 0.9071 << 1.029 << 1.088 << 1.099 << 1.08 << 1.046 << 1.014 << 1); + + QTest::newRow("InOutBack") << int(QEasingCurve::InOutBack) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << -0.03752 << -0.09256 << -0.07883 << 0.08993 << 0.5 << 0.9101 << 1.079 << 1.093 << 1.038 << 1); + + QTest::newRow("OutInBack") << int(QEasingCurve::OutInBack) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.3529 << 0.5145 << 0.5497 << 0.5232 << 0.5 << 0.4768 << 0.4503 << 0.4855 << 0.6471 << 1); + + QTest::newRow("InBounce") << int(QEasingCurve::InBounce) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.01188 << 0.06 << 0.06937 << 0.2275 << 0.2344 << 0.09 << 0.3194 << 0.6975 << 0.9244 << 1); + + QTest::newRow("OutBounce") << int(QEasingCurve::OutBounce) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.07563 << 0.3025 << 0.6806 << 0.91 << 0.7656 << 0.7725 << 0.9306 << 0.94 << 0.9881 << 1); + + QTest::newRow("InOutBounce") << int(QEasingCurve::InOutBounce) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.03 << 0.1138 << 0.045 << 0.3488 << 0.5 << 0.6512 << 0.955 << 0.8862 << 0.97 << 1); + + QTest::newRow("OutInBounce") << int(QEasingCurve::OutInBounce) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.1513 << 0.41 << 0.2725 << 0.44 << 0.5 << 0.56 << 0.7275 << 0.59 << 0.8488 << 1); + + QTest::newRow("InCurve") << int(QEasingCurve::InCurve) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.02447 << 0.1059 << 0.2343 << 0.3727 << 0.5 << 0.6055 << 0.7 << 0.8 << 0.9 << 1); + + QTest::newRow("OutCurve") << int(QEasingCurve::OutCurve) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.1 << 0.2 << 0.3 << 0.3945 << 0.5 << 0.6273 << 0.7657 << 0.8941 << 0.9755 << 1); + + QTest::newRow("SineCurve") << int(QEasingCurve::SineCurve) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0 << 0.09549 << 0.3455 << 0.6545 << 0.9045 << 1 << 0.9045 << 0.6545 << 0.3455 << 0.09549 << 0); + + QTest::newRow("CosineCurve") << int(QEasingCurve::CosineCurve) + << (IntList() << 0 << 10 << 20 << 30 << 40 << 50 << 60 << 70 << 80 << 90 << 100) + << (RealList() << 0.5 << 0.7939 << 0.9755 << 0.9755 << 0.7939 << 0.5 << 0.2061 << 0.02447 << 0.02447 << 0.2061 << 0.5); + +} + + +void tst_QEasingCurve::valueForProgress() +{ +#if 0 + // used to generate data tables... + QFile out; + out.open(stdout, QIODevice::WriteOnly); + for (int c = QEasingCurve::Linear; c < QEasingCurve::NCurveTypes - 1; ++c) { + QEasingCurve curve((QEasingCurve::Type)c); + QMetaObject mo = QEasingCurve::staticMetaObject; + QString strCurve = QLatin1String(mo.enumerator(mo.indexOfEnumerator("Type")).key(c)); + QString strInputs; + QString strOutputs; + + for (int t = 0; t <= 100; t+= 10) { + qreal ease = curve.valueForProgress(t/qreal(100)); + strInputs += QString::fromAscii(" << %1").arg(t); + strOutputs += " << " + QString().setNum(ease, 'g', 4); + } + QString str = QString::fromAscii(" QTest::newRow(\"%1\") << int(QEasingCurve::%2)\n" + " << (IntList() %3)\n" + " << (RealList()%4);\n\n") + .arg(strCurve) + .arg(strCurve) + .arg(strInputs) + .arg(strOutputs); + out.write(str.toLatin1().constData()); + } + out.close(); + exit(1); +#else + QFETCH(int, type); + QFETCH(IntList, at); + QFETCH(RealList, expected); + + QEasingCurve curve((QEasingCurve::Type)type); + for (int i = 0; i < at.count(); ++i) { + qreal ease = curve.valueForProgress(at.at(i)/qreal(100)); + // converting ease to 4 precision qreal to match the generated samples + qreal easeConv = qreal(QString().setNum(ease, 'g', 4).toDouble()); + qreal ex = expected.at(i); + + // the least significant digit it is still subject to rounding errors + qreal error = easeConv - ex; + // accept the potential rounding error in the least significant digit + QVERIFY(error <= 0.00001 ); + } +#endif +} + +static qreal discreteEase(qreal progress) +{ + return qFloor(progress * 10) / qreal(10.0); +} + +void tst_QEasingCurve::setCustomType() +{ + QEasingCurve curve; + curve.setCustomType(&discreteEase); + QCOMPARE(curve.type(), QEasingCurve::Custom); + QCOMPARE(curve.valueForProgress(0.0), 0.0); + QCOMPARE(curve.valueForProgress(0.05), 0.0); + QCOMPARE(curve.valueForProgress(0.10), 0.1); + QCOMPARE(curve.valueForProgress(0.15), 0.1); + QCOMPARE(curve.valueForProgress(0.20), 0.2); + QCOMPARE(curve.valueForProgress(0.25), 0.2); + QCOMPARE(curve.valueForProgress(0.30), 0.3); + QCOMPARE(curve.valueForProgress(0.35), 0.3); + QCOMPARE(curve.valueForProgress(0.999999), 0.9); + + curve.setType(QEasingCurve::Linear); + QCOMPARE(curve.type(), QEasingCurve::Linear); + QCOMPARE(curve.valueForProgress(0.0), 0.0); + QCOMPARE(curve.valueForProgress(0.1), 0.1); + QCOMPARE(curve.valueForProgress(0.5), 0.5); + QCOMPARE(curve.valueForProgress(0.99), 0.99); +} + +void tst_QEasingCurve::operators() +{ + // operator= + QEasingCurve curve; + QEasingCurve curve2; + curve.setCustomType(&discreteEase); + curve2 = curve; + QCOMPARE(curve2.type(), QEasingCurve::Custom); + QCOMPARE(curve2.valueForProgress(0.0), 0.0); + QCOMPARE(curve2.valueForProgress(0.05), 0.0); + QCOMPARE(curve2.valueForProgress(0.15), 0.1); + QCOMPARE(curve2.valueForProgress(0.25), 0.2); + QCOMPARE(curve2.valueForProgress(0.35), 0.3); + QCOMPARE(curve2.valueForProgress(0.999999), 0.9); + + // operator== + curve.setType(QEasingCurve::InBack); + curve2 = curve; + curve2.setOvershoot(qreal(1.70158f)); + QCOMPARE(curve.overshoot(), curve2.overshoot()); + QVERIFY(curve2 == curve); + + curve.setOvershoot(3.0); + QVERIFY(curve2 != curve); + curve2.setOvershoot(3.0); + QVERIFY(curve2 == curve); + + curve2.setType(QEasingCurve::Linear); + QCOMPARE(curve.overshoot(), curve2.overshoot()); + QVERIFY(curve2 != curve); + curve2.setType(QEasingCurve::InBack); + QCOMPARE(curve.overshoot(), curve2.overshoot()); + QVERIFY(curve2 == curve); +} + + +QTEST_MAIN(tst_QEasingCurve) +#include "tst_qeasingcurve.moc" + +#endif //QT_VERSION diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 34d5a3c..66f29dd 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -123,6 +123,7 @@ private slots: void permissions(); void setPermissions(); void copy(); + void copyAfterFail(); void copyRemovesTemporaryFile() const; void copyShouldntOverwrite(); void copyFallback(); @@ -224,8 +225,15 @@ void tst_QFile::cleanup() // for renameFallback() QFile::remove("file-rename-destination.txt"); + // for copyAfterFail() + QFile::remove("file-to-be-copied.txt"); + QFile::remove("existing-file.txt"); + QFile::remove("copied-file-1.txt"); + QFile::remove("copied-file-2.txt"); + // for renameMultiple() QFile::remove("file-to-be-renamed.txt"); + QFile::remove("existing-file.txt"); QFile::remove("file-renamed-once.txt"); QFile::remove("file-renamed-twice.txt"); } @@ -374,6 +382,12 @@ void tst_QFile::open() QFETCH( bool, ok ); +#ifdef Q_OS_UNIX + if (::getuid() == 0) + // root and Chuck Norris don't care for file permissions. Skip. + QSKIP("Running this test as root doesn't make sense", SkipAll); +#endif + #if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) QEXPECT_FAIL("noreadfile", "Windows does not currently support non-readable files.", Abort); #endif @@ -894,6 +908,39 @@ void tst_QFile::copy() QFile::copy(QDir::currentPath(), QDir::currentPath() + QLatin1String("/test2")); } +void tst_QFile::copyAfterFail() +{ + QFile file1("file-to-be-copied.txt"); + QFile file2("existing-file.txt"); + + QVERIFY(file1.open(QIODevice::ReadWrite) && "(test-precondition)"); + QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)"); + QVERIFY(!QFile::exists("copied-file-1.txt") && "(test-precondition)"); + QVERIFY(!QFile::exists("copied-file-2.txt") && "(test-precondition)"); + + QVERIFY(!file1.copy("existing-file.txt")); + QCOMPARE(file1.error(), QFile::CopyError); + + QVERIFY(file1.copy("copied-file-1.txt")); + QVERIFY(!file1.isOpen()); + QCOMPARE(file1.error(), QFile::NoError); + + QVERIFY(!file1.copy("existing-file.txt")); + QCOMPARE(file1.error(), QFile::CopyError); + + QVERIFY(file1.copy("copied-file-2.txt")); + QVERIFY(!file1.isOpen()); + QCOMPARE(file1.error(), QFile::NoError); + + QVERIFY(QFile::exists("copied-file-1.txt")); + QVERIFY(QFile::exists("copied-file-2.txt")); + + QVERIFY(QFile::remove("file-to-be-copied.txt") && "(test-cleanup)"); + QVERIFY(QFile::remove("existing-file.txt") && "(test-cleanup)"); + QVERIFY(QFile::remove("copied-file-1.txt") && "(test-cleanup)"); + QVERIFY(QFile::remove("copied-file-2.txt") && "(test-cleanup)"); +} + void tst_QFile::copyRemovesTemporaryFile() const { const QString newName(QLatin1String("copyRemovesTemporaryFile")); @@ -953,57 +1000,32 @@ static QString getWorkingDirectoryForLink(const QString &linkFileName) { bool neededCoInit = false; QString ret; - QT_WA({ - IShellLink *psl; - HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); - if (hres == CO_E_NOTINITIALIZED) { // COM was not initialized - neededCoInit = true; - CoInitialize(NULL); - hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); - } - if (SUCCEEDED(hres)) { // Get pointer to the IPersistFile interface. - IPersistFile *ppf; - hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); - if (SUCCEEDED(hres)) { - hres = ppf->Load((LPOLESTR)linkFileName.utf16(), STGM_READ); - //The original path of the link is retrieved. If the file/folder - //was moved, the return value still have the old path. - if(SUCCEEDED(hres)) { - wchar_t szGotPath[MAX_PATH]; - if (psl->GetWorkingDirectory(szGotPath, MAX_PATH) == NOERROR) - ret = QString::fromUtf16((ushort*)szGotPath); - } - ppf->Release(); - } - psl->Release(); - } - },{ - IShellLinkA *psl; - HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); - if (hres == CO_E_NOTINITIALIZED) { // COM was not initialized - neededCoInit = true; - CoInitialize(NULL); - hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); - } + IShellLink *psl; + HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); + if (hres == CO_E_NOTINITIALIZED) { // COM was not initialized + neededCoInit = true; + CoInitialize(NULL); + hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl); + } - if (SUCCEEDED(hres)) { // Get pointer to the IPersistFile interface. - IPersistFile *ppf; - hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); - if (SUCCEEDED(hres)) { - hres = ppf->Load((LPOLESTR)linkFileName.utf16(), STGM_READ); - //The original path of the link is retrieved. If the file/folder - //was moved, the return value still have the old path. - if(SUCCEEDED(hres)) { - char szGotPath[MAX_PATH]; - if (psl->GetWorkingDirectory(szGotPath, MAX_PATH) == NOERROR) - ret = QString::fromLocal8Bit(szGotPath); - } - ppf->Release(); + if (SUCCEEDED(hres)) { // Get pointer to the IPersistFile interface. + IPersistFile *ppf; + hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); + if (SUCCEEDED(hres)) { + hres = ppf->Load((LPOLESTR)linkFileName.utf16(), STGM_READ); + //The original path of the link is retrieved. If the file/folder + //was moved, the return value still have the old path. + if(SUCCEEDED(hres)) { + wchar_t szGotPath[MAX_PATH]; + if (psl->GetWorkingDirectory(szGotPath, MAX_PATH) == NOERROR) + ret = QString::fromWCharArray(szGotPath); } - psl->Release(); + ppf->Release(); } - }); + psl->Release(); + } + if (neededCoInit) { CoUninitialize(); } @@ -1497,13 +1519,8 @@ void tst_QFile::largeFileSupport() qlonglong freespace = qlonglong(0); #ifdef Q_WS_WIN _ULARGE_INTEGER free; - if (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based) { - if (::GetDiskFreeSpaceExW((wchar_t *)QDir::currentPath().utf16(), &free, 0, 0)) - freespace = free.QuadPart; - } else { - if (::GetDiskFreeSpaceExA(QDir::currentPath().local8Bit(), &free, 0, 0)) - freespace = free.QuadPart; - } + if (::GetDiskFreeSpaceEx((wchar_t*)QDir::currentPath().utf16(), &free, 0, 0)) + freespace = free.QuadPart; if (freespace != 0) { #elif defined(Q_OS_IRIX) struct statfs info; @@ -1621,16 +1638,9 @@ void tst_QFile::longFileName() } { QFile file(fileName); -#if defined(Q_WS_WIN) -#if !defined(Q_OS_WINCE) - QT_WA({ if (false) ; }, { - QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort); - QEXPECT_FAIL("244 chars to absolutepath", "Full pathname must be less than 260 chars", Abort); - }); -#else - QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort); - QEXPECT_FAIL("244 chars to absolutepath", "Full pathname must be less than 260 chars", Abort); -#endif +#if defined(Q_OS_WINCE) + QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort); + QEXPECT_FAIL("244 chars to absolutepath", "Full pathname must be less than 260 chars", Abort); #endif QVERIFY(file.open(QFile::WriteOnly | QFile::Text)); QTextStream ts(&file); @@ -2124,24 +2134,42 @@ void tst_QFile::renameMultiple() { // create the file if it doesn't exist QFile file("file-to-be-renamed.txt"); + QFile file2("existing-file.txt"); QVERIFY(file.open(QIODevice::ReadWrite) && "(test-precondition)"); + QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)"); // any stale files from previous test failures? QFile::remove("file-renamed-once.txt"); QFile::remove("file-renamed-twice.txt"); // begin testing + QVERIFY(QFile::exists("existing-file.txt")); + QVERIFY(!file.rename("existing-file.txt")); + QCOMPARE(file.error(), QFile::RenameError); + QCOMPARE(file.fileName(), QString("file-to-be-renamed.txt")); + QVERIFY(file.rename("file-renamed-once.txt")); + QVERIFY(!file.isOpen()); + QCOMPARE(file.fileName(), QString("file-renamed-once.txt")); + + QVERIFY(QFile::exists("existing-file.txt")); + QVERIFY(!file.rename("existing-file.txt")); + QCOMPARE(file.error(), QFile::RenameError); QCOMPARE(file.fileName(), QString("file-renamed-once.txt")); + QVERIFY(file.rename("file-renamed-twice.txt")); + QVERIFY(!file.isOpen()); QCOMPARE(file.fileName(), QString("file-renamed-twice.txt")); + QVERIFY(QFile::exists("existing-file.txt")); QVERIFY(!QFile::exists("file-to-be-renamed.txt")); QVERIFY(!QFile::exists("file-renamed-once.txt")); QVERIFY(QFile::exists("file-renamed-twice.txt")); file.remove(); + file2.remove(); QVERIFY(!QFile::exists("file-renamed-twice.txt")); + QVERIFY(!QFile::exists("existing-file.txt")); } void tst_QFile::appendAndRead() @@ -2471,14 +2499,20 @@ void tst_QFile::map() file.close(); - // Change permissions on a file, just to confirm it would fail - QFile::Permissions originalPermissions = file.permissions(); - QVERIFY(file.setPermissions(QFile::ReadOther)); - QVERIFY(!file.open(QFile::ReadWrite)); - memory = file.map(offset, size); - QCOMPARE(file.error(), QFile::PermissionsError); - QVERIFY(!memory); - QVERIFY(file.setPermissions(originalPermissions)); +#ifdef Q_OS_UNIX + if (::getuid() != 0) + // root always has permissions +#endif + { + // Change permissions on a file, just to confirm it would fail + QFile::Permissions originalPermissions = file.permissions(); + QVERIFY(file.setPermissions(QFile::ReadOther)); + QVERIFY(!file.open(QFile::ReadWrite)); + memory = file.map(offset, size); + QCOMPARE(file.error(), QFile::PermissionsError); + QVERIFY(!memory); + QVERIFY(file.setPermissions(originalPermissions)); + } QVERIFY(file.remove()); } diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index e4fec1d..50cab0e 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -160,6 +160,7 @@ private slots: void task251321_sideBarHiddenEntries(); void task251341_sideBarRemoveEntries(); void task254490_selectFileMultipleTimes(); + void task257579_sideBarWithNonCleanUrls(); private: QByteArray userSettings; @@ -231,6 +232,7 @@ void tst_QFiledialog::currentChangedSignal() // only emited from the views, sidebar, or lookin combo void tst_QFiledialog::directoryEnteredSignal() { +#if defined QT_BUILD_INTERNAL QNonNativeFileDialog fd(0, "", QDir::root().path()); fd.setOptions(QFileDialog::DontUseNativeDialog); fd.show(); @@ -274,6 +276,7 @@ void tst_QFiledialog::directoryEnteredSignal() QTest::mouseDClick(listView->viewport(), Qt::LeftButton, 0, listView->visualRect(folder).center()); QTRY_COMPARE(spyDirectoryEntered.count(), 1); */ +#endif } Q_DECLARE_METATYPE(QFileDialog::FileMode) @@ -1314,16 +1317,14 @@ void tst_QFiledialog::hooks() void tst_QFiledialog::listRoot() { +#if defined QT_BUILD_INTERNAL QFileInfoGatherer::fetchedRoot = false; QString dir(QDir::currentPath()); QNonNativeFileDialog fd(0, QString(), dir); fd.show(); -#if defined Q_AUTOTEST_EXPORT QCOMPARE(QFileInfoGatherer::fetchedRoot,false); -#endif fd.setDirectory(""); QTest::qWait(500); -#if defined Q_AUTOTEST_EXPORT QCOMPARE(QFileInfoGatherer::fetchedRoot,true); #endif } @@ -1347,6 +1348,7 @@ struct FriendlyQFileDialog : public QFileDialog void tst_QFiledialog::deleteDirAndFiles() { +#if defined QT_BUILD_INTERNAL QString tempPath = QDir::tempPath() + '/' + "QFileDialogTestDir4FullDelete"; QDir dir; QVERIFY(dir.mkpath(tempPath + "/foo")); @@ -1373,6 +1375,7 @@ void tst_QFiledialog::deleteDirAndFiles() QFileInfo info(tempPath); QTest::qWait(2000); QVERIFY(!info.exists()); +#endif } void tst_QFiledialog::filter() @@ -1583,6 +1586,7 @@ QString &dir, const QString &filter) void tst_QFiledialog::task227304_proxyOnFileDialog() { +#if defined QT_BUILD_INTERNAL QNonNativeFileDialog fd(0, "", QDir::currentPath(), 0); fd.setProxyModel(new FilterDirModel(QDir::currentPath())); fd.show(); @@ -1616,6 +1620,7 @@ void tst_QFiledialog::task227304_proxyOnFileDialog() QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(1, 0)).center()); QTest::qWait(250); //We shouldn't crash +#endif } void tst_QFiledialog::task227930_correctNavigationKeyboardBehavior() @@ -1727,6 +1732,7 @@ void tst_QFiledialog::task235069_hideOnEscape() void tst_QFiledialog::task236402_dontWatchDeletedDir() { +#if defined QT_BUILD_INTERNAL //THIS TEST SHOULD NOT DISPLAY WARNINGS QDir current = QDir::currentPath(); //make sure it is the first on the list @@ -1746,6 +1752,7 @@ void tst_QFiledialog::task236402_dontWatchDeletedDir() QTest::qWait(200); fd.d_func()->removeDirectory(current.absolutePath() + "/aaaaaaaaaa/"); QTest::qWait(1000); +#endif } void tst_QFiledialog::task203703_returnProperSeparator() @@ -1870,6 +1877,7 @@ void tst_QFiledialog::task218353_relativePaths() void tst_QFiledialog::task251321_sideBarHiddenEntries() { +#if defined QT_BUILD_INTERNAL QNonNativeFileDialog fd; QDir current = QDir::currentPath(); @@ -1899,8 +1907,10 @@ void tst_QFiledialog::task251321_sideBarHiddenEntries() hiddenSubDir.rmdir("happy"); hiddenDir.rmdir("subdir"); current.rmdir(".hidden"); +#endif } +#if defined QT_BUILD_INTERNAL class MyQSideBar : public QSidebar { public : @@ -1918,9 +1928,11 @@ public : model()->removeRow(indexes.at(i).row()); } }; +#endif void tst_QFiledialog::task251341_sideBarRemoveEntries() { +#if defined QT_BUILD_INTERNAL QNonNativeFileDialog fd; QDir current = QDir::currentPath(); @@ -1980,6 +1992,7 @@ void tst_QFiledialog::task251341_sideBarRemoveEntries() QCOMPARE(mySideBar.urls(), expected); current.rmdir("testDir"); +#endif } void tst_QFiledialog::task254490_selectFileMultipleTimes() @@ -2014,5 +2027,25 @@ void tst_QFiledialog::task254490_selectFileMultipleTimes() t->deleteLater(); } +void tst_QFiledialog::task257579_sideBarWithNonCleanUrls() +{ + QDir tempDir = QDir::temp(); + QLatin1String dirname("autotest_task257579"); + tempDir.rmdir(dirname); //makes sure it doesn't exist any more + QVERIFY(tempDir.mkdir(dirname)); + QString url = QString::fromLatin1("%1/%2/..").arg(tempDir.absolutePath()).arg(dirname); + QNonNativeFileDialog fd; + fd.setSidebarUrls(QList<QUrl>() << QUrl::fromLocalFile(url)); + QSidebar *sidebar = qFindChild<QSidebar*>(&fd, "sidebar"); + QCOMPARE(sidebar->urls().count(), 1); + QVERIFY(sidebar->urls().first().toLocalFile() != url); + QCOMPARE(sidebar->urls().first().toLocalFile(), QDir::cleanPath(url)); + QCOMPARE(sidebar->model()->index(0,0).data().toString(), tempDir.dirName()); + + //all tests are finished, we can remove the temporary dir + QVERIFY(tempDir.rmdir(dirname)); +} + + QTEST_MAIN(tst_QFiledialog) #include "tst_qfiledialog.moc" diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 306994c..e5831fd 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -61,6 +61,7 @@ #include <qdebug.h> #include "../network-settings.h" +#include <private/qfileinfo_p.h> //TESTED_CLASS= //TESTED_FILES= @@ -75,6 +76,9 @@ public: private slots: void getSetCheck(); + + void copy(); + void isFile_data(); void isFile(); @@ -123,6 +127,8 @@ private slots: void size_data(); void size(); + void systemFiles(); + void compare_data(); void compare(); @@ -178,6 +184,58 @@ void tst_QFileInfo::getSetCheck() QCOMPARE(true, obj1.caching()); } +static QFileInfoPrivate* getPrivate(QFileInfo &info) +{ + return (*reinterpret_cast<QFileInfoPrivate**>(&info)); +} + +void tst_QFileInfo::copy() +{ + QTemporaryFile *t; + t = new QTemporaryFile; + t->open(); + QFileInfo info(t->fileName()); + QVERIFY(info.exists()); + + //copy constructor + QFileInfo info2(info); + QFileInfoPrivate *privateInfo = getPrivate(info); + QFileInfoPrivate *privateInfo2 = getPrivate(info2); + QCOMPARE(privateInfo->data, privateInfo2->data); + + //operator = + QFileInfo info3 = info; + QFileInfoPrivate *privateInfo3 = getPrivate(info3); + QCOMPARE(privateInfo->data, privateInfo3->data); + QCOMPARE(privateInfo2->data, privateInfo3->data); + + //refreshing info3 will detach it + QFile file(info.absoluteFilePath()); + QVERIFY(file.open(QFile::WriteOnly)); + QCOMPARE(file.write("JAJAJAA"), qint64(7)); + file.flush(); + + QTest::qWait(250); +#if defined(Q_OS_WIN) || defined(Q_OS_WINCE) + if (QSysInfo::windowsVersion() & QSysInfo::WV_VISTA || + QSysInfo::windowsVersion() & QSysInfo::WV_CE_based) + file.close(); +#endif +#if defined(Q_OS_WINCE) + // On Windows CE we need to close the file. + // Otherwise the content will be cached and not + // flushed to the storage, although we flushed it + // manually!!! CE has interim cache, we cannot influence. + QTest::qWait(5000); +#endif + info3.refresh(); + QVERIFY(privateInfo->data != privateInfo3->data); + QVERIFY(privateInfo2->data != privateInfo3->data); + QCOMPARE(privateInfo->data, privateInfo2->data); + + +} + tst_QFileInfo::tst_QFileInfo() { } @@ -298,8 +356,9 @@ void tst_QFileInfo::exists_data() QTest::newRow("data6") << "resources/*" << false; QTest::newRow("data7") << "resources/*.foo" << false; QTest::newRow("data8") << "resources/*.ext1" << false; - QTest::newRow("data9") << "." << true; - QTest::newRow("data10") << ". " << false; + QTest::newRow("data9") << "resources/file?.ext1" << false; + QTest::newRow("data10") << "." << true; + QTest::newRow("data11") << ". " << false; QTest::newRow("simple dir") << "resources" << true; QTest::newRow("simple dir with slash") << "resources/" << true; @@ -685,6 +744,17 @@ void tst_QFileInfo::size() QTEST(int(fi.size()), "size"); } +void tst_QFileInfo::systemFiles() +{ +#ifndef Q_OS_WIN + QSKIP("This is a Windows only test", SkipAll); +#endif + QFileInfo fi("c:\\pagefile.sys"); + QVERIFY(fi.exists()); // task 167099 + QVERIFY(fi.size() > 0); // task 189202 + QVERIFY(fi.lastModified().isValid()); +} + void tst_QFileInfo::compare_data() { QTest::addColumn<QString>("file1"); @@ -806,11 +876,6 @@ void tst_QFileInfo::fileTimes() #if !defined(Q_OS_UNIX) && !defined(Q_OS_WINCE) QVERIFY(fileInfo.created() < beforeWrite); #endif -#ifdef Q_OS_WIN - if (QSysInfo::WindowsVersion & QSysInfo::WV_DOS_based) { - QVERIFY(fileInfo.lastRead().addDays(1) > beforeRead); - } else -#endif //In Vista the last-access timestamp is not updated when the file is accessed/touched (by default). //To enable this the HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate //is set to 0, in the test machine. @@ -841,26 +906,14 @@ void tst_QFileInfo::fileTimes_oldFile() // WriteOnly can create files, ReadOnly cannot. DWORD creationDisp = OPEN_ALWAYS; - HANDLE fileHandle; - // Create the file handle. - QT_WA({ - fileHandle = CreateFileW(L"oldfile.txt", - accessRights, - shareMode, - &securityAtts, - creationDisp, - flagsAndAtts, - NULL); - }, { - fileHandle = CreateFileA("oldfile.txt", - accessRights, - shareMode, - &securityAtts, - creationDisp, - flagsAndAtts, - NULL); - }); + HANDLE fileHandle = CreateFile(L"oldfile.txt", + accessRights, + shareMode, + &securityAtts, + creationDisp, + flagsAndAtts, + NULL); // Set file times back to 1601. FILETIME ctime; diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index e415b02..d49083f 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -254,6 +254,7 @@ void tst_QFileSystemModel::naturalCompare_data() void tst_QFileSystemModel::naturalCompare() { +#ifdef QT_BUILD_INTERNAL QFETCH(QString, s1); QFETCH(QString, s2); QFETCH(int, caseSensitive); @@ -271,6 +272,7 @@ void tst_QFileSystemModel::naturalCompare() // created. The scheduler takes its time to recognize ended threads. QTest::qWait(300); #endif +#endif } void tst_QFileSystemModel::readOnly() diff --git a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp index da06742..c883c63 100644 --- a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp +++ b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp @@ -73,6 +73,8 @@ private slots: void removePath(); void addPaths(); void removePaths(); + void watchFileAndItsDirectory(); + void watchFileAndItsDirectory_data() { basicTest_data(); } private: QStringList do_force_engines; @@ -397,5 +399,83 @@ void tst_QFileSystemWatcher::removePaths() watcher.removePaths(paths); } +void tst_QFileSystemWatcher::watchFileAndItsDirectory() +{ + QFETCH(QString, backend); + QDir().mkdir("testDir"); + QDir testDir("testDir"); + + QString testFileName = testDir.filePath("testFile.txt"); + QString secondFileName = testDir.filePath("testFile2.txt"); + QFile::remove(secondFileName); + + QFile testFile(testFileName); + testFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner); + testFile.remove(); + + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate)); + testFile.write(QByteArray("hello")); + testFile.close(); + + QFileSystemWatcher watcher; + watcher.setObjectName(QLatin1String("_qt_autotest_force_engine_") + backend); + + watcher.addPath(testDir.dirName()); + watcher.addPath(testFileName); + + QSignalSpy fileChangedSpy(&watcher, SIGNAL(fileChanged(const QString &))); + QSignalSpy dirChangedSpy(&watcher, SIGNAL(directoryChanged(const QString &))); + QEventLoop eventLoop; + QTimer timer; + connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit())); + + // resolution of the modification time is system dependent, but it's at most 1 second when using + // the polling engine. From what I know, FAT32 has a 2 second resolution. So we have to + // wait before modifying the directory... + QTest::qWait(2000); + + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Truncate)); + testFile.write(QByteArray("hello again")); + testFile.close(); + + timer.start(3000); + eventLoop.exec(); + QCOMPARE(fileChangedSpy.count(), 1); + QCOMPARE(dirChangedSpy.count(), 0); + + fileChangedSpy.clear(); + QFile secondFile(secondFileName); + secondFile.open(QIODevice::WriteOnly | QIODevice::Truncate); + secondFile.write("Foo"); + secondFile.close(); + + timer.start(3000); + eventLoop.exec(); + QCOMPARE(fileChangedSpy.count(), 0); + QCOMPARE(dirChangedSpy.count(), 1); + + dirChangedSpy.clear(); + + QFile::remove(testFileName); + + timer.start(3000); + eventLoop.exec(); + QCOMPARE(fileChangedSpy.count(), 1); + QCOMPARE(dirChangedSpy.count(), 1); + + fileChangedSpy.clear(); + dirChangedSpy.clear(); + + watcher.removePath(testFileName); + QFile::remove(secondFileName); + + timer.start(3000); + eventLoop.exec(); + QCOMPARE(fileChangedSpy.count(), 0); + QCOMPARE(dirChangedSpy.count(), 1); + + QVERIFY(QDir().rmdir("testDir")); +} + QTEST_MAIN(tst_QFileSystemWatcher) #include "tst_qfilesystemwatcher.moc" diff --git a/tests/auto/qfontcombobox/tst_qfontcombobox.cpp b/tests/auto/qfontcombobox/tst_qfontcombobox.cpp index 62bfdf7..e2515ae 100644 --- a/tests/auto/qfontcombobox/tst_qfontcombobox.cpp +++ b/tests/auto/qfontcombobox/tst_qfontcombobox.cpp @@ -122,7 +122,10 @@ void tst_QFontComboBox::currentFont_data() { QTest::addColumn<QFont>("currentFont"); // Normalize the names - QTest::newRow("default") << QFont(QFontInfo(QFont()).family()); + QFont defaultFont; + QTest::newRow("default") << defaultFont; + defaultFont.setPointSize(defaultFont.pointSize() + 10); + QTest::newRow("default") << defaultFont; QFontDatabase db; QStringList list = db.families(); for (int i = 0; i < list.count(); ++i) { @@ -141,6 +144,7 @@ void tst_QFontComboBox::currentFont() QFont oldCurrentFont = box.currentFont(); box.setCurrentFont(currentFont); + QCOMPARE(box.currentFont(), currentFont); QString boxFontFamily = QFontInfo(box.currentFont()).family(); QRegExp foundry(" \\[.*\\]"); if (!currentFont.family().contains(foundry)) diff --git a/tests/auto/qfontdialog/tst_qfontdialog.cpp b/tests/auto/qfontdialog/tst_qfontdialog.cpp index c12c229..cbdd440 100644 --- a/tests/auto/qfontdialog/tst_qfontdialog.cpp +++ b/tests/auto/qfontdialog/tst_qfontdialog.cpp @@ -47,7 +47,9 @@ #include <qfontinfo.h> #include <qtimer.h> #include <qmainwindow.h> +#include <qlistview.h> #include "qfontdialog.h" +#include <private/qfontdialog_p.h> //TESTED_CLASS= //TESTED_FILES= @@ -74,6 +76,7 @@ public slots: private slots: void defaultOkButton(); void setFont(); + void task256466_wrongStyle(); }; tst_QFontDialog::tst_QFontDialog() @@ -151,6 +154,33 @@ void tst_QFontDialog::setFont() } +class FriendlyFontDialog : public QFontDialog +{ + friend class tst_QFontDialog; + Q_DECLARE_PRIVATE(QFontDialog); +}; + +void tst_QFontDialog::task256466_wrongStyle() +{ + QFontDatabase fdb; + FriendlyFontDialog dialog; + QListView *familyList = reinterpret_cast<QListView*>(dialog.d_func()->familyList); + QListView *styleList = reinterpret_cast<QListView*>(dialog.d_func()->styleList); + QListView *sizeList = reinterpret_cast<QListView*>(dialog.d_func()->sizeList); + for (int i = 0; i < familyList->model()->rowCount(); ++i) { + QModelIndex currentFamily = familyList->model()->index(i, 0); + familyList->setCurrentIndex(currentFamily); + const QFont current = dialog.currentFont(), + expected = fdb.font(currentFamily.data().toString(), + styleList->currentIndex().data().toString(), sizeList->currentIndex().data().toInt()); + QCOMPARE(current.family(), expected.family()); + QCOMPARE(current.style(), expected.style()); + QCOMPARE(current.pointSizeF(), expected.pointSizeF()); + } +} + + + QTEST_MAIN(tst_QFontDialog) #include "tst_qfontdialog.moc" diff --git a/tests/auto/qformlayout/tst_qformlayout.cpp b/tests/auto/qformlayout/tst_qformlayout.cpp index 9806557..74384a9 100644 --- a/tests/auto/qformlayout/tst_qformlayout.cpp +++ b/tests/auto/qformlayout/tst_qformlayout.cpp @@ -125,6 +125,7 @@ private slots: Qt::Orientations expandingDirections() const; */ + void fieldMinimumSize(); }; tst_QFormLayout::tst_QFormLayout() @@ -905,6 +906,35 @@ void tst_QFormLayout::layoutAlone() QTest::qWait(500); } + +void tst_QFormLayout::fieldMinimumSize() +{ + //check that the field with is bigger than its minimumSizeHint for any size of the widget + // even if the label with is not fixed + QWidget w; + QFormLayout layout; + layout.setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); + w.setLayout(&layout); + QLabel label1("Here is a strange test case"); + label1.setWordWrap(true); + QLabel label2("Here is another label"); + label2.setWordWrap(true); + QLabel shortLabel("short"); + QLabel longLabel("Quite long label"); + layout.addRow(&label1, &shortLabel); + layout.addRow(&label2, &longLabel); + w.show(); + int width = w.size().width() + 9; + + do { + w.resize(width, w.size().height()); + layout.activate(); + QVERIFY(shortLabel.size().width() >= shortLabel.minimumSizeHint().width()); + QVERIFY(longLabel.size().width() >= longLabel.minimumSizeHint().width()); + width -= 3; + } while(width >= w.minimumSizeHint().width()); +} + QTEST_MAIN(tst_QFormLayout) #include "tst_qformlayout.moc" diff --git a/tests/auto/qgl/qgl.pro b/tests/auto/qgl/qgl.pro index 55e329d..420c4bb 100644 --- a/tests/auto/qgl/qgl.pro +++ b/tests/auto/qgl/qgl.pro @@ -3,7 +3,8 @@ ############################################################ load(qttest_p4) -contains(QT_CONFIG, opengl):QT += opengl +requires(contains(QT_CONFIG,opengl)) +QT += opengl SOURCES += tst_qgl.cpp diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index 078c559..96f5ddd 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -44,9 +44,7 @@ #include <qcoreapplication.h> #include <qdebug.h> -#ifndef QT_NO_OPENGL #include <qgl.h> -#endif #include <QGraphicsView> #include <QGraphicsProxyWidget> @@ -78,7 +76,6 @@ tst_QGL::~tst_QGL() { } -#ifndef QT_NO_OPENGL class MyGLContext : public QGLContext { public: @@ -96,13 +93,10 @@ public: bool autoBufferSwap() const { return QGLWidget::autoBufferSwap(); } void setAutoBufferSwap(bool on) { QGLWidget::setAutoBufferSwap(on); } }; -#endif + // Testing get/set functions void tst_QGL::getSetCheck() { -#ifdef QT_NO_OPENGL - QSKIP("QGL not yet supported", SkipAll); -#else if (!QGLFormat::hasOpenGL()) QSKIP("QGL not supported on this platform", SkipAll); @@ -246,10 +240,9 @@ void tst_QGL::getSetCheck() QCOMPARE(false, obj3.autoBufferSwap()); obj3.setAutoBufferSwap(true); QCOMPARE(true, obj3.autoBufferSwap()); -#endif } -#ifndef QT_NO_OPENGL +#ifdef QT_BUILD_INTERNAL QT_BEGIN_NAMESPACE extern QGLFormat::OpenGLVersionFlags qOpenGLVersionFlagsFromString(const QString &versionString); QT_END_NAMESPACE @@ -257,9 +250,7 @@ QT_END_NAMESPACE void tst_QGL::openGLVersionCheck() { -#ifdef QT_NO_OPENGL - QSKIP("QGL not yet supported", SkipAll); -#else +#ifdef QT_BUILD_INTERNAL if (!QGLFormat::hasOpenGL()) QSKIP("QGL not supported on this platform", SkipAll); @@ -366,9 +357,6 @@ public: void tst_QGL::graphicsViewClipping() { -#ifdef QT_NO_OPENGL - QSKIP("QGL not supported", SkipAll); -#else const int size = 64; UnclippedWidget *widget = new UnclippedWidget; widget->setFixedSize(size, size); @@ -403,7 +391,6 @@ void tst_QGL::graphicsViewClipping() p.end(); QCOMPARE(image, expected); -#endif } void tst_QGL::partialGLWidgetUpdates_data() @@ -420,9 +407,6 @@ void tst_QGL::partialGLWidgetUpdates_data() void tst_QGL::partialGLWidgetUpdates() { -#ifdef QT_NO_OPENGL - QSKIP("QGL not yet supported", SkipAll); -#else if (!QGLFormat::hasOpenGL()) QSKIP("QGL not supported on this platform", SkipAll); @@ -466,7 +450,6 @@ void tst_QGL::partialGLWidgetUpdates() QCOMPARE(widget.paintEventRegion, QRegion(50, 50, 50, 50)); else QCOMPARE(widget.paintEventRegion, QRegion(widget.rect())); -#endif } QTEST_MAIN(tst_QGL) diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index ce4828a..a548329 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -153,8 +153,11 @@ void tst_QGraphicsGridLayout::qgraphicsgridlayout() layout.columnStretchFactor(0); layout.count(); layout.horizontalSpacing(); + QTest::ignoreMessage(QtWarningMsg, "QGraphicsGridLayout::itemAt: invalid row, column 0, 0"); layout.itemAt(0, 0); + QTest::ignoreMessage(QtWarningMsg, "QGraphicsGridLayout::itemAt: invalid index 0"); layout.itemAt(0); + QTest::ignoreMessage(QtWarningMsg, "QGraphicsGridLayout::removeAt: invalid index 0"); layout.removeAt(0); layout.rowAlignment(0); layout.rowCount(); @@ -191,7 +194,7 @@ class RectWidget : public QGraphicsWidget public: RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent){} - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); @@ -235,11 +238,11 @@ static void populateLayout(QGraphicsGridLayout *gridLayout, int width, int heigh * |+---|---+|xxxx| * ||span=2 ||hole| * |+---|---+|xxxx| - * +----+----+----+ + * +----+----+----+ * |xxxx|+---|---+| * |hole||span=2 || * |xxxx|+---|---+| - * +----+----+----+ + * +----+----+----+ */ static void populateLayoutWithSpansAndHoles(QGraphicsGridLayout *gridLayout) { @@ -296,7 +299,7 @@ void tst_QGraphicsGridLayout::addItem() QTest::ignoreMessage(QtWarningMsg, "QGraphicsGridLayout::addItem: invalid row/column: -1"); } else if (rowSpan < 1 || columnSpan < 1) { char buf[1024]; - ::qsnprintf(buf, sizeof(buf), "QGraphicsGridLayout::addItem: invalid row span/column span: %d", + ::qsnprintf(buf, sizeof(buf), "QGraphicsGridLayout::addItem: invalid row span/column span: %d", rowSpan < 1 ? rowSpan : columnSpan); QTest::ignoreMessage(QtWarningMsg, buf); } @@ -458,7 +461,7 @@ void tst_QGraphicsGridLayout::columnCount() QCOMPARE(layout->columnCount(), 3); layout->addItem(new RectWidget(widget), 1, 2); QCOMPARE(layout->columnCount(), 3); - + // ### Talk with Jasmin. Not sure if removeAt() should adjust columnCount(). widget->setLayout(0); layout = new QGraphicsGridLayout(); @@ -524,7 +527,7 @@ void tst_QGraphicsGridLayout::columnMinimumWidth() populateLayout(layout, 3, 2); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + // should at least be a very large number QCOMPARE(layout->columnMinimumWidth(0), 0.0); QCOMPARE(layout->columnMinimumWidth(0), layout->columnMinimumWidth(1)); @@ -559,7 +562,7 @@ void tst_QGraphicsGridLayout::columnPreferredWidth() populateLayout(layout, 3, 2); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + // default preferred width ?? QCOMPARE(layout->columnPreferredWidth(0), 0.0); QCOMPARE(layout->columnPreferredWidth(0), layout->columnPreferredWidth(1)); @@ -594,7 +597,7 @@ void tst_QGraphicsGridLayout::setColumnFixedWidth() populateLayout(layout, 3, 2); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + layout->setColumnFixedWidth(0, 20); layout->setColumnFixedWidth(2, 40); @@ -626,7 +629,7 @@ void tst_QGraphicsGridLayout::columnSpacing() layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); QCOMPARE(layout->columnSpacing(0), 0.0); - + layout->setColumnSpacing(0, 20); view.show(); widget->show(); @@ -655,7 +658,7 @@ void tst_QGraphicsGridLayout::columnStretchFactor() populateLayout(layout, 3, 2); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + layout->setColumnStretchFactor(0, 1); layout->setColumnStretchFactor(1, 2); layout->setColumnStretchFactor(2, 3); @@ -741,7 +744,7 @@ void tst_QGraphicsGridLayout::contentsMargins() scene.addItem(widget); widget->setLayout(layout); layout->addItem(sublayout,0, 1); - + qreal left, top, right, bottom; // sublayouts have 0 margin sublayout->getContentsMargins(&left, &top, &right, &bottom); @@ -750,7 +753,7 @@ void tst_QGraphicsGridLayout::contentsMargins() QCOMPARE(right, 0.0); QCOMPARE(bottom, 0.0); - // top level layouts have style dependent margins. + // top level layouts have style dependent margins. // we'll just check if its different from 0. (applies to all our styles) layout->getContentsMargins(&left, &top, &right, &bottom); QVERIFY(left >= 0.0); @@ -771,7 +774,7 @@ void tst_QGraphicsGridLayout::itemAt() scene.addItem(widget); widget->setLayout(layout); populateLayoutWithSpansAndHoles(layout); - + //itemAt(int row, int column) QVERIFY( layout->itemAt(0,0)); QVERIFY( layout->itemAt(0,1)); @@ -874,7 +877,7 @@ void tst_QGraphicsGridLayout::rowAlignment() QCOMPARE(layout->alignment(layout->itemAt(1,0)), Qt::AlignTop); QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 101, 50, 50)); QCOMPARE(layout->rowAlignment(1), Qt::AlignVCenter); - QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(101, 126, 50, 50)); + QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(101, 126, 50, 50)); QCOMPARE(layout->alignment(layout->itemAt(2,0)), Qt::AlignHCenter); QCOMPARE(layout->itemAt(2,0)->geometry(), QRectF(25, 202, 50, 50)); QCOMPARE(layout->rowAlignment(2), Qt::AlignTop); @@ -922,7 +925,7 @@ void tst_QGraphicsGridLayout::rowMaximumHeight() populateLayout(layout, 2, 3); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + // should at least be a very large number QVERIFY(layout->rowMaximumHeight(0) >= 10000); QCOMPARE(layout->rowMaximumHeight(0), layout->rowMaximumHeight(1)); @@ -957,7 +960,7 @@ void tst_QGraphicsGridLayout::rowMinimumHeight() populateLayout(layout, 2, 3); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + // should at least be a very large number QCOMPARE(layout->rowMinimumHeight(0), 0.0); QCOMPARE(layout->rowMinimumHeight(0), layout->rowMinimumHeight(1)); @@ -992,7 +995,7 @@ void tst_QGraphicsGridLayout::rowPreferredHeight() populateLayout(layout, 2, 3); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + // default preferred height ?? QCOMPARE(layout->rowPreferredHeight(0), 0.0); QCOMPARE(layout->rowPreferredHeight(0), layout->rowPreferredHeight(1)); @@ -1028,7 +1031,7 @@ void tst_QGraphicsGridLayout::setRowFixedHeight() populateLayout(layout, 2, 3); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + layout->setRowFixedHeight(0, 20.); layout->setRowFixedHeight(2, 40.); @@ -1060,7 +1063,7 @@ void tst_QGraphicsGridLayout::rowSpacing() layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); QCOMPARE(layout->columnSpacing(0), 0.0); - + layout->setColumnSpacing(0, 20); view.show(); widget->show(); @@ -1090,7 +1093,7 @@ void tst_QGraphicsGridLayout::rowStretchFactor() populateLayout(layout, 2, 3); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); - + layout->setRowStretchFactor(0, 1); layout->setRowStretchFactor(1, 2); layout->setRowStretchFactor(2, 3); @@ -1121,7 +1124,7 @@ void tst_QGraphicsGridLayout::setColumnSpacing() { QFETCH(int, column); QFETCH(qreal, spacing); - + QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -1175,7 +1178,7 @@ void tst_QGraphicsGridLayout::setRowSpacing() { QFETCH(int, row); QFETCH(qreal, spacing); - + QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -1229,7 +1232,7 @@ void tst_QGraphicsGridLayout::setSpacing() void tst_QGraphicsGridLayout::sizeHint_data() { - + /* QTest::addColumn<Qt::SizeHint>("which"); QTest::addColumn<QSizeF>("constraint"); @@ -1308,7 +1311,7 @@ void tst_QGraphicsGridLayout::layoutDirection() RectWidget *w4 = new RectWidget; w4->setMinimumSize(30, 20); layout->addItem(w4, 1, 1); - + layout->setAlignment(w2, Qt::AlignRight); layout->setAlignment(w3, Qt::AlignLeft); @@ -1325,7 +1328,7 @@ void tst_QGraphicsGridLayout::layoutDirection() QCOMPARE(w3->geometry().right(), 21.0); QCOMPARE(w4->geometry().left(), 37.0); QCOMPARE(w4->geometry().right(), 67.0); - + window->setLayoutDirection(Qt::RightToLeft); QApplication::processEvents(); QCOMPARE(w1->geometry().left(), 39.0); @@ -1336,7 +1339,7 @@ void tst_QGraphicsGridLayout::layoutDirection() QCOMPARE(w3->geometry().right(), 69.0); QCOMPARE(w4->geometry().left(), 3.0); QCOMPARE(w4->geometry().right(), 33.0); - + delete window; } @@ -1437,7 +1440,7 @@ struct ItemDesc m_sizes[Qt::MaximumSize] = sz; return (*this); } - + ItemDesc &alignment(Qt::Alignment alignment) { m_align = alignment; return (*this); @@ -1506,8 +1509,8 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); QTest::newRow("ignoreitem01") << (ItemList() @@ -1527,8 +1530,8 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); QTest::newRow("ignoreitem01_resize120x40") << (ItemList() @@ -1548,8 +1551,8 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF(120, 40) << (SizeList() - << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) - << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) + << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) + << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) ); QTest::newRow("ignoreitem11_resize120x40") << (ItemList() @@ -1569,8 +1572,8 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF(120, 60) << (SizeList() - << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) - << QSizeF(20,40) << QSizeF(40,40) << QSizeF(60,40) + << QSizeF(20,20) << QSizeF(40,20) << QSizeF(60,20) + << QSizeF(20,40) << QSizeF(40,40) << QSizeF(60,40) ); QTest::newRow("ignoreitem01_span01_resize70x60") << (ItemList() @@ -1589,10 +1592,10 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF(70, 60) << (SizeList() - << QSizeF(20,20) << QSizeF(10,60) << QSizeF(40,20) - << QSizeF(20,40) << QSizeF(40,40) + << QSizeF(20,20) << QSizeF(10,60) << QSizeF(40,20) + << QSizeF(20,40) << QSizeF(40,40) ); - + QTest::newRow("ignoreitem10_resize40x120") << (ItemList() << ItemDesc(0,0) .preferredSizeHint(QSizeF(10,10)) @@ -1610,11 +1613,11 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF(40, 120) << (SizeList() - << QSizeF(20,20) << QSizeF(20,20) - << QSizeF(20,40) << QSizeF(20,40) - << QSizeF(20,60) << QSizeF(20,60) + << QSizeF(20,20) << QSizeF(20,20) + << QSizeF(20,40) << QSizeF(20,40) + << QSizeF(20,60) << QSizeF(20,60) ); - + QTest::newRow("ignoreitem01_span02") << (ItemList() << ItemDesc(0,0) .preferredSizeHint(QSizeF(10,10)) @@ -1631,7 +1634,7 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(0,20) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(0,20) << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); @@ -1651,7 +1654,7 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(0,20) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(0,20) << QSizeF(10,10) << QSizeF(10,10) ); @@ -1670,7 +1673,7 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,20) << QSizeF(10,10) << QSizeF(0,20) + << QSizeF(10,20) << QSizeF(10,10) << QSizeF(0,20) << QSizeF(10,10) ); @@ -1690,7 +1693,7 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(20,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(20,10) << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); @@ -1710,10 +1713,10 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(20,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(20,10) << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); - + QTest::newRow("ignorecolumn1_resize70x60") << (ItemList() << ItemDesc(0,0) .preferredSizeHint(QSizeF(10,10)) @@ -1732,8 +1735,8 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF(70, 60) << (SizeList() - << QSizeF(20,20) << QSizeF(10,20) << QSizeF(40,20) - << QSizeF(20,40) << QSizeF(10,40) << QSizeF(40,40) + << QSizeF(20,20) << QSizeF(10,20) << QSizeF(40,20) + << QSizeF(20,40) << QSizeF(10,40) << QSizeF(40,40) ); QTest::newRow("ignorerow0") << (ItemList() @@ -1756,7 +1759,7 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() << QSizeF() << (SizeList() << QSizeF(10,0) << QSizeF(10,0) << QSizeF(10,0) - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) ); QTest::newRow("ignorerow1") << (ItemList() @@ -1778,10 +1781,10 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() ) << QSizeF() << (SizeList() - << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) + << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,10) << QSizeF(10,0) << QSizeF(10,0) << QSizeF(10,0) ); - + QTest::newRow("ignorerow0_resize60x50") << (ItemList() << ItemDesc(0,0) .sizePolicy(QSizePolicy::Ignored) @@ -1802,9 +1805,9 @@ void tst_QGraphicsGridLayout::defaultStretchFactors_data() << QSizeF(60, 50) << (SizeList() << QSizeF(10,10) << QSizeF(20,10) << QSizeF(30,10) - << QSizeF(10,40) << QSizeF(20,40) << QSizeF(30,40) + << QSizeF(10,40) << QSizeF(20,40) << QSizeF(30,40) ); - + } void tst_QGraphicsGridLayout::defaultStretchFactors() @@ -1837,13 +1840,13 @@ void tst_QGraphicsGridLayout::defaultStretchFactors() view.resize(400,300); if (newSize.isValid()) widget->resize(newSize); - + QApplication::processEvents(); for (i = 0; i < expectedSizes.count(); ++i) { QSizeF itemSize = layout->itemAt(i)->geometry().size(); QCOMPARE(itemSize, expectedSizes.at(i)); } - + delete widget; } @@ -2024,7 +2027,7 @@ void tst_QGraphicsGridLayout::geometries_data() << (RectList() << QRectF(0, 0, 50,10) << QRectF(0, 10, 10,10) ); - + QTest::newRow("combine_min_sizes") << (ItemList() << ItemDesc(0,0) .minSize(QSizeF(50,10)) @@ -2035,7 +2038,7 @@ void tst_QGraphicsGridLayout::geometries_data() << (RectList() << QRectF(0, 0, 60,10) << QRectF(0, 10, 60,10) ); - + } void tst_QGraphicsGridLayout::geometries() diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 90c4636..011e480 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -44,6 +44,7 @@ #include <private/qtextcontrol_p.h> #include <private/qgraphicsitem_p.h> +#include <QStyleOptionGraphicsItem> #include <QAbstractTextDocumentLayout> #include <QBitmap> #include <QCursor> @@ -75,6 +76,46 @@ Q_DECLARE_METATYPE(QRectF) #define Q_CHECK_PAINTEVENTS #endif +class EventSpy : public QGraphicsWidget +{ + Q_OBJECT +public: + EventSpy(QObject *watched, QEvent::Type type) + : _count(0), spied(type) + { + watched->installEventFilter(this); + } + + EventSpy(QGraphicsScene *scene, QGraphicsItem *watched, QEvent::Type type) + : _count(0), spied(type) + { + scene->addItem(this); + watched->installSceneEventFilter(this); + } + + int count() const { return _count; } + +protected: + bool eventFilter(QObject *watched, QEvent *event) + { + Q_UNUSED(watched); + if (event->type() == spied) + ++_count; + return false; + } + + bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) + { + Q_UNUSED(watched); + if (event->type() == spied) + ++_count; + return false; + } + + int _count; + QEvent::Type spied; +}; + class EventTester : public QGraphicsItem { public: @@ -121,6 +162,7 @@ private slots: void construction(); void constructionWithParent(); void destruction(); + void deleteChildItem(); void scene(); void parentItem(); void setParentItem(); @@ -170,6 +212,7 @@ private slots: void boundingRects2(); void sceneBoundingRect(); void childrenBoundingRect(); + void childrenBoundingRectTransformed(); void childrenBoundingRect2(); void group(); void setGroup(); @@ -179,6 +222,8 @@ private slots: void handlesChildEvents(); void handlesChildEvents2(); void handlesChildEvents3(); + void filtersChildEvents(); + void filtersChildEvents2(); void ensureVisible(); void cursor(); //void textControlGetterSetter(); @@ -219,6 +264,17 @@ private slots: void updateCachedItemAfterMove(); void deviceTransform_data(); void deviceTransform(); + void update(); + void setTransformProperties_data(); + void setTransformProperties(); + void itemUsesExtendedStyleOption(); + void itemSendsGeometryChanges(); + void moveItem(); + void sorting_data(); + void sorting(); + void itemHasNoContents(); + void hitTestUntransformableItem(); + void focusProxy(); // task specific tests below me void task141694_textItemEnsureVisible(); @@ -229,6 +285,9 @@ private slots: void task240400_clickOnTextItem(); void task243707_addChildBeforeParent(); void task197802_childrenVisibility(); + +private: + QList<QGraphicsItem *> paintedItems; }; void tst_QGraphicsItem::init() @@ -248,50 +307,59 @@ void tst_QGraphicsItem::construction() QCOMPARE(int(item->type()), int(QGraphicsEllipseItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsEllipseItem *>(item), (QGraphicsEllipseItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + QCOMPARE(item->flags(), 0); break; case 1: item = new QGraphicsLineItem; QCOMPARE(int(item->type()), int(QGraphicsLineItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsLineItem *>(item), (QGraphicsLineItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + QCOMPARE(item->flags(), 0); break; case 2: item = new QGraphicsPathItem; QCOMPARE(int(item->type()), int(QGraphicsPathItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsPathItem *>(item), (QGraphicsPathItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + QCOMPARE(item->flags(), 0); break; case 3: item = new QGraphicsPixmapItem; QCOMPARE(int(item->type()), int(QGraphicsPixmapItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsPixmapItem *>(item), (QGraphicsPixmapItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + QCOMPARE(item->flags(), 0); break; case 4: item = new QGraphicsPolygonItem; QCOMPARE(int(item->type()), int(QGraphicsPolygonItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsPolygonItem *>(item), (QGraphicsPolygonItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + QCOMPARE(item->flags(), 0); break; case 5: item = new QGraphicsRectItem; QCOMPARE(int(item->type()), int(QGraphicsRectItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsLineItem *>(item), (QGraphicsLineItem *)0); + QCOMPARE(item->flags(), 0); break; case 6: - default: item = new QGraphicsTextItem; QCOMPARE(int(item->type()), int(QGraphicsTextItem::Type)); QCOMPARE(qgraphicsitem_cast<QGraphicsTextItem *>(item), (QGraphicsTextItem *)item); QCOMPARE(qgraphicsitem_cast<QGraphicsRectItem *>(item), (QGraphicsRectItem *)0); + // This is the only item that uses an extended style option. + QCOMPARE(item->flags(), QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemUsesExtendedStyleOption)); + break; + default: + qFatal("You broke the logic, please fix!"); break; } QCOMPARE(item->scene(), (QGraphicsScene *)0); QCOMPARE(item->parentItem(), (QGraphicsItem *)0); QVERIFY(item->children().isEmpty()); - QCOMPARE(item->flags(), 0); QVERIFY(item->isVisible()); QVERIFY(item->isEnabled()); QVERIFY(!item->isSelected()); @@ -516,6 +584,29 @@ void tst_QGraphicsItem::destruction() QCOMPARE(itemDeleted, 59); } QCOMPARE(itemDeleted, 109); + { + QGraphicsScene *scene = new QGraphicsScene; + QGraphicsRectItem *parent = new QGraphicsRectItem; + Item *child = new Item; + child->setParentItem(parent); + parent->setVisible(false); + scene->addItem(parent); + QCOMPARE(child->parentItem(), parent); + delete scene; + QCOMPARE(itemDeleted, 110); + } +} + +void tst_QGraphicsItem::deleteChildItem() +{ + QGraphicsScene scene; + QGraphicsItem *rect = scene.addRect(QRectF()); + QGraphicsItem *child1 = new QGraphicsRectItem(rect); + QGraphicsItem *child2 = new QGraphicsRectItem(rect); + QGraphicsItem *child3 = new QGraphicsRectItem(rect); + delete child1; + child2->setParentItem(0); + delete child2; } void tst_QGraphicsItem::scene() @@ -1756,15 +1847,15 @@ void tst_QGraphicsItem::setMatrix() QCOMPARE(rlist.at(2), unrotatedRect); // From post-update (update current state) } -static QList<QGraphicsItem *> paintedItems; +static QList<QGraphicsItem *> _paintedItems; class PainterItem : public QGraphicsItem { protected: QRectF boundingRect() const { return QRectF(-10, -10, 20, 20); } - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) - { paintedItems << this; } + void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) + { _paintedItems << this; painter->fillRect(boundingRect(), Qt::red); } }; void tst_QGraphicsItem::zValue() @@ -1796,10 +1887,10 @@ void tst_QGraphicsItem::zValue() QApplication::sendPostedEvents(); //glib workaround #endif - QVERIFY(!paintedItems.isEmpty()); - QVERIFY((paintedItems.size() % 4) == 0); + QVERIFY(!_paintedItems.isEmpty()); + QVERIFY((_paintedItems.size() % 4) == 0); for (int i = 0; i < 3; ++i) - QVERIFY(paintedItems.at(i)->zValue() < paintedItems.at(i + 1)->zValue()); + QVERIFY(_paintedItems.at(i)->zValue() < _paintedItems.at(i + 1)->zValue()); } void tst_QGraphicsItem::shape() @@ -2898,9 +2989,57 @@ void tst_QGraphicsItem::childrenBoundingRect() childChild->setParentItem(child); childChild->setPos(500, 500); child->rotate(90); + + + scene.addPolygon(parent->mapToScene(parent->boundingRect() | parent->childrenBoundingRect()))->setPen(QPen(Qt::red));; + + QGraphicsView view(&scene); + view.show(); + + QTest::qWait(5000); + QCOMPARE(parent->childrenBoundingRect(), QRectF(-500, -100, 600, 800)); } +void tst_QGraphicsItem::childrenBoundingRectTransformed() +{ + QGraphicsScene scene; + + QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100)); + QGraphicsRectItem *rect2 = scene.addRect(QRectF(0, 0, 100, 100)); + QGraphicsRectItem *rect3 = scene.addRect(QRectF(0, 0, 100, 100)); + QGraphicsRectItem *rect4 = scene.addRect(QRectF(0, 0, 100, 100)); + QGraphicsRectItem *rect5 = scene.addRect(QRectF(0, 0, 100, 100)); + rect2->setParentItem(rect); + rect3->setParentItem(rect2); + rect4->setParentItem(rect3); + rect5->setParentItem(rect4); + + rect2->setTransform(QTransform().translate(50, 50).rotate(45)); + rect2->setPos(25, 25); + rect3->setTransform(QTransform().translate(50, 50).rotate(45)); + rect3->setPos(25, 25); + rect4->setTransform(QTransform().translate(50, 50).rotate(45)); + rect4->setPos(25, 25); + rect5->setTransform(QTransform().translate(50, 50).rotate(45)); + rect5->setPos(25, 25); + + QRectF subTreeRect = rect->childrenBoundingRect(); + QCOMPARE(subTreeRect.left(), qreal(-206.0660171779821)); + QCOMPARE(subTreeRect.top(), qreal(75.0)); + QCOMPARE(subTreeRect.width(), qreal(351.7766952966369)); + QCOMPARE(subTreeRect.height(), qreal(251.7766952966369)); + + rect->rotate(45); + rect2->rotate(-45); + rect3->rotate(45); + rect4->rotate(-45); + rect5->rotate(45); + + subTreeRect = rect->childrenBoundingRect(); + QCOMPARE(rect->childrenBoundingRect(), QRectF(-100, 75, 275, 250)); +} + void tst_QGraphicsItem::childrenBoundingRect2() { QGraphicsItemGroup box; @@ -3109,150 +3248,134 @@ protected: void mouseReleaseEvent(QGraphicsSceneMouseEvent *) { ++counter; } }; + void tst_QGraphicsItem::handlesChildEvents() { - ChildEventTester *item2_level2 = new ChildEventTester(QRectF(0, 0, 25, 25)); - ChildEventTester *item1_level1 = new ChildEventTester(QRectF(0, 0, 50, 50)); - ChildEventTester *item_level0 = new ChildEventTester(QRectF(0, 0, 100, 100)); - ChildEventTester *item1_level2 = new ChildEventTester(QRectF(0, 0, 25, 25)); - ChildEventTester *item2_level1 = new ChildEventTester(QRectF(0, 0, 50, 50)); - - item_level0->setBrush(QBrush(Qt::blue)); - item1_level1->setBrush(QBrush(Qt::red)); - item2_level1->setBrush(QBrush(Qt::yellow)); - item1_level2->setBrush(QBrush(Qt::green)); - item2_level2->setBrush(QBrush(Qt::gray)); - item1_level1->setPos(50, 0); - item2_level1->setPos(50, 50); - item1_level2->setPos(25, 0); - item2_level2->setPos(25, 25); - item1_level1->setParentItem(item_level0); - item2_level1->setParentItem(item_level0); - item1_level2->setParentItem(item1_level1); - item2_level2->setParentItem(item1_level1); + ChildEventTester *blue = new ChildEventTester(QRectF(0, 0, 100, 100)); + ChildEventTester *red = new ChildEventTester(QRectF(0, 0, 50, 50)); + ChildEventTester *green = new ChildEventTester(QRectF(0, 0, 25, 25)); + ChildEventTester *gray = new ChildEventTester(QRectF(0, 0, 25, 25)); + ChildEventTester *yellow = new ChildEventTester(QRectF(0, 0, 50, 50)); + + blue->setBrush(QBrush(Qt::blue)); + red->setBrush(QBrush(Qt::red)); + yellow->setBrush(QBrush(Qt::yellow)); + green->setBrush(QBrush(Qt::green)); + gray->setBrush(QBrush(Qt::gray)); + red->setPos(50, 0); + yellow->setPos(50, 50); + green->setPos(25, 0); + gray->setPos(25, 25); + red->setParentItem(blue); + yellow->setParentItem(blue); + green->setParentItem(red); + gray->setParentItem(red); QGraphicsScene scene; - scene.addItem(item_level0); - - // Pull out the items, closest item first - QList<QGraphicsItem *> items = scene.items(scene.itemsBoundingRect()); - QCOMPARE(items.at(4), (QGraphicsItem *)item_level0); - if (item1_level1 < item2_level1) { - QCOMPARE(items.at(3), (QGraphicsItem *)item1_level1); - if (item1_level2 < item2_level2) { - QCOMPARE(items.at(2), (QGraphicsItem *)item1_level2); - QCOMPARE(items.at(1), (QGraphicsItem *)item2_level2); - } else { - QCOMPARE(items.at(2), (QGraphicsItem *)item2_level2); - QCOMPARE(items.at(1), (QGraphicsItem *)item1_level2); - } - QCOMPARE(items.at(0), (QGraphicsItem *)item2_level1); - } else { - QCOMPARE(items.at(3), (QGraphicsItem *)item2_level1); - QCOMPARE(items.at(2), (QGraphicsItem *)item1_level1); - if (item1_level2 < item2_level2) { - QCOMPARE(items.at(1), (QGraphicsItem *)item1_level2); - QCOMPARE(items.at(0), (QGraphicsItem *)item2_level2); - } else { - QCOMPARE(items.at(1), (QGraphicsItem *)item2_level2); - QCOMPARE(items.at(0), (QGraphicsItem *)item1_level2); - } - } + scene.addItem(blue); QGraphicsView view(&scene); view.show(); QTest::qWait(1000); - QCOMPARE(item_level0->counter, 0); + // Pull out the items, closest item first + QList<QGraphicsItem *> items = scene.items(scene.itemsBoundingRect()); + QCOMPARE(items.at(0), (QGraphicsItem *)yellow); + QCOMPARE(items.at(1), (QGraphicsItem *)gray); + QCOMPARE(items.at(2), (QGraphicsItem *)green); + QCOMPARE(items.at(3), (QGraphicsItem *)red); + QCOMPARE(items.at(4), (QGraphicsItem *)blue); + + QCOMPARE(blue->counter, 0); // Send events to the toplevel item QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress); QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMouseRelease); pressEvent.setButton(Qt::LeftButton); - pressEvent.setScenePos(item_level0->mapToScene(5, 5)); + pressEvent.setScenePos(blue->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); releaseEvent.setButton(Qt::LeftButton); - releaseEvent.setScenePos(item_level0->mapToScene(5, 5)); + releaseEvent.setScenePos(blue->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 2); + QCOMPARE(blue->counter, 2); // Send events to a level1 item - pressEvent.setScenePos(item1_level1->mapToScene(5, 5)); + pressEvent.setScenePos(red->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level1->mapToScene(5, 5)); + releaseEvent.setScenePos(red->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 2); - QCOMPARE(item1_level1->counter, 2); + QCOMPARE(blue->counter, 2); + QCOMPARE(red->counter, 2); // Send events to a level2 item - pressEvent.setScenePos(item1_level2->mapToScene(5, 5)); + pressEvent.setScenePos(green->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level2->mapToScene(5, 5)); + releaseEvent.setScenePos(green->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 2); - QCOMPARE(item1_level1->counter, 2); - QCOMPARE(item1_level2->counter, 2); + QCOMPARE(blue->counter, 2); + QCOMPARE(red->counter, 2); + QCOMPARE(green->counter, 2); - item_level0->setHandlesChildEvents(true); + blue->setHandlesChildEvents(true); // Send events to a level1 item - pressEvent.setScenePos(item1_level1->mapToScene(5, 5)); + pressEvent.setScenePos(red->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level1->mapToScene(5, 5)); + releaseEvent.setScenePos(red->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 4); - QCOMPARE(item1_level1->counter, 2); + QCOMPARE(blue->counter, 4); + QCOMPARE(red->counter, 2); // Send events to a level2 item - pressEvent.setScenePos(item1_level2->mapToScene(5, 5)); + pressEvent.setScenePos(green->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level2->mapToScene(5, 5)); + releaseEvent.setScenePos(green->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 6); - QCOMPARE(item1_level1->counter, 2); - QCOMPARE(item1_level2->counter, 2); + QCOMPARE(blue->counter, 6); + QCOMPARE(red->counter, 2); + QCOMPARE(green->counter, 2); - item_level0->setHandlesChildEvents(false); + blue->setHandlesChildEvents(false); // Send events to a level1 item - pressEvent.setScenePos(item1_level1->mapToScene(5, 5)); + pressEvent.setScenePos(red->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level1->mapToScene(5, 5)); + releaseEvent.setScenePos(red->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 6); - QCOMPARE(item1_level1->counter, 4); + QCOMPARE(blue->counter, 6); + QCOMPARE(red->counter, 4); // Send events to a level2 item - pressEvent.setScenePos(item1_level2->mapToScene(5, 5)); + pressEvent.setScenePos(green->mapToScene(5, 5)); pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); - releaseEvent.setScenePos(item1_level2->mapToScene(5, 5)); + releaseEvent.setScenePos(green->mapToScene(5, 5)); releaseEvent.setScreenPos(view.mapFromScene(releaseEvent.scenePos())); QApplication::sendEvent(&scene, &pressEvent); QApplication::sendEvent(&scene, &releaseEvent); - QCOMPARE(item_level0->counter, 6); - QCOMPARE(item1_level1->counter, 4); - QCOMPARE(item1_level2->counter, 4); + QCOMPARE(blue->counter, 6); + QCOMPARE(red->counter, 4); + QCOMPARE(green->counter, 4); } void tst_QGraphicsItem::handlesChildEvents2() @@ -3326,6 +3449,127 @@ void tst_QGraphicsItem::handlesChildEvents3() QCOMPARE(group2->counter, 3); } + +class ChildEventFilterTester : public ChildEventTester +{ +public: + ChildEventFilterTester(const QRectF &rect, QGraphicsItem *parent = 0) + : ChildEventTester(rect, parent), filter(QEvent::None) + { } + + QEvent::Type filter; + +protected: + bool sceneEventFilter(QGraphicsItem *item, QEvent *event) + { + Q_UNUSED(item); + if (event->type() == filter) { + ++counter; + return true; + } + return false; + } +}; + +void tst_QGraphicsItem::filtersChildEvents() +{ + QGraphicsScene scene; + ChildEventFilterTester *root = new ChildEventFilterTester(QRectF(0, 0, 10, 10)); + ChildEventFilterTester *filter = new ChildEventFilterTester(QRectF(10, 10, 10, 10), root); + ChildEventTester *child = new ChildEventTester(QRectF(20, 20, 10, 10), filter); + + // setup filter + filter->setFiltersChildEvents(true); + filter->filter = QEvent::GraphicsSceneMousePress; + + scene.addItem(root); + + QGraphicsView view(&scene); + view.show(); + + QTest::qWait(1000); + + QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress); + QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMouseRelease); + + // send event to child + pressEvent.setButton(Qt::LeftButton); + pressEvent.setScenePos(QPointF(25, 25));//child->mapToScene(5, 5)); + pressEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); + releaseEvent.setButton(Qt::LeftButton); + releaseEvent.setScenePos(QPointF(25, 25));//child->mapToScene(5, 5)); + releaseEvent.setScreenPos(view.mapFromScene(pressEvent.scenePos())); + QApplication::sendEvent(&scene, &pressEvent); + QApplication::sendEvent(&scene, &releaseEvent); + + QCOMPARE(child->counter, 1); // mouse release is not filtered + QCOMPARE(filter->counter, 1); // mouse press is filtered + QCOMPARE(root->counter, 0); + + // add another filter + root->setFiltersChildEvents(true); + root->filter = QEvent::GraphicsSceneMouseRelease; + + // send event to child + QApplication::sendEvent(&scene, &pressEvent); + QApplication::sendEvent(&scene, &releaseEvent); + + QCOMPARE(child->counter, 1); + QCOMPARE(filter->counter, 2); // mouse press is filtered + QCOMPARE(root->counter, 1); // mouse release is filtered + + // reparent to another sub-graph + ChildEventTester *parent = new ChildEventTester(QRectF(10, 10, 10, 10), root); + child->setParentItem(parent); + + // send event to child + QApplication::sendEvent(&scene, &pressEvent); + QApplication::sendEvent(&scene, &releaseEvent); + + QCOMPARE(child->counter, 2); // mouse press is _not_ filtered + QCOMPARE(parent->counter, 0); + QCOMPARE(filter->counter, 2); + QCOMPARE(root->counter, 2); // mouse release is filtered +} + +void tst_QGraphicsItem::filtersChildEvents2() +{ + ChildEventFilterTester *root = new ChildEventFilterTester(QRectF(0, 0, 10, 10)); + root->setFiltersChildEvents(true); + root->filter = QEvent::GraphicsSceneMousePress; + QVERIFY(root->filtersChildEvents()); + + ChildEventTester *child = new ChildEventTester(QRectF(0, 0, 10, 10), root); + QVERIFY(!child->filtersChildEvents()); + + ChildEventTester *child2 = new ChildEventTester(QRectF(0, 0, 10, 10)); + ChildEventTester *child3 = new ChildEventTester(QRectF(0, 0, 10, 10), child2); + ChildEventTester *child4 = new ChildEventTester(QRectF(0, 0, 10, 10), child3); + + child2->setParentItem(root); + QVERIFY(!child2->filtersChildEvents()); + QVERIFY(!child3->filtersChildEvents()); + QVERIFY(!child4->filtersChildEvents()); + + QGraphicsScene scene; + scene.addItem(root); + + QGraphicsView view(&scene); + view.show(); + + QTestEventLoop::instance().enterLoop(1); + + QMouseEvent event(QEvent::MouseButtonPress, view.mapFromScene(5, 5), + view.viewport()->mapToGlobal(view.mapFromScene(5, 5)), Qt::LeftButton, 0, 0); + QApplication::sendEvent(view.viewport(), &event); + + QCOMPARE(child->counter, 0); + QCOMPARE(child2->counter, 0); + QCOMPARE(child3->counter, 0); + QCOMPARE(child4->counter, 0); + QCOMPARE(root->counter, 1); +} + class CustomItem : public QGraphicsItem { public: @@ -3670,8 +3914,20 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsEllipseItem() class ItemChangeTester : public QGraphicsRectItem { public: - ItemChangeTester(){} - ItemChangeTester(QGraphicsItem *parent) : QGraphicsRectItem(parent) {} + ItemChangeTester() + { setFlag(ItemSendsGeometryChanges); clear(); } + ItemChangeTester(QGraphicsItem *parent) : QGraphicsRectItem(parent) + { setFlag(ItemSendsGeometryChanges); clear(); } + + void clear() + { + itemChangeReturnValue = QVariant(); + itemSceneChangeTargetScene = 0; + changes.clear(); + values.clear(); + oldValues.clear(); + } + QVariant itemChangeReturnValue; QGraphicsScene *itemSceneChangeTargetScene; @@ -3848,6 +4104,20 @@ void tst_QGraphicsItem::itemChange() QCOMPARE(tester.pos(), QPointF(42, 0)); } { + // ItemZValueChange / ItemZValueHasChanged + tester.itemChangeReturnValue = qreal(2.0); + tester.setZValue(1.0); + ++changeCount; // notification sent too + ++changeCount; + QCOMPARE(tester.changes.size(), changeCount); + QCOMPARE(tester.changes.at(tester.changes.size() - 2), QGraphicsItem::ItemZValueChange); + QCOMPARE(tester.changes.at(tester.changes.size() - 1), QGraphicsItem::ItemZValueHasChanged); + QCOMPARE(tester.values.at(tester.changes.size() - 2), QVariant(qreal(1.0))); + QCOMPARE(tester.values.at(tester.changes.size() - 1), QVariant(qreal(2.0))); + QCOMPARE(tester.oldValues.last(), QVariant(qreal(0.0))); + QCOMPARE(tester.zValue(), qreal(2.0)); + } + { // ItemFlagsChange tester.itemChangeReturnValue = QGraphicsItem::ItemIsSelectable; tester.setFlag(QGraphicsItem::ItemIsSelectable, false); @@ -3858,7 +4128,8 @@ void tst_QGraphicsItem::itemChange() QCOMPARE(tester.changes.size(), changeCount); QCOMPARE(tester.changes.at(tester.changes.size() - 2), QGraphicsItem::ItemFlagsChange); QCOMPARE(tester.changes.at(tester.changes.size() - 1), QGraphicsItem::ItemFlagsHaveChanged); - QCOMPARE(tester.values.at(tester.values.size() - 2), qVariantFromValue<quint32>(QGraphicsItem::ItemIsSelectable)); + QVariant expectedFlags = qVariantFromValue<quint32>(QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges)); + QCOMPARE(tester.values.at(tester.values.size() - 2), expectedFlags); QCOMPARE(tester.values.at(tester.values.size() - 1), qVariantFromValue<quint32>(QGraphicsItem::ItemIsSelectable)); } { @@ -4248,14 +4519,13 @@ void tst_QGraphicsItem::paint() view.hide(); QGraphicsScene scene2; + QGraphicsView view2(&scene2); + view2.show(); + QTest::qWait(250); PaintTester tester2; scene2.addItem(&tester2); - - QGraphicsView view2(&scene2); - view2.show(); qApp->processEvents(); - QTest::qWait(250); //First show one paint QVERIFY(tester2.painted == 1); @@ -4656,7 +4926,7 @@ void tst_QGraphicsItem::itemClipsChildrenToShape2() QPainter painter(&image); scene.render(&painter); painter.end(); - + QCOMPARE(image.pixel(5, 5), QColor(0, 0, 255).rgba()); QCOMPARE(image.pixel(5, 10), QRgb(0)); QCOMPARE(image.pixel(10, 5), QRgb(0)); @@ -5313,7 +5583,7 @@ void tst_QGraphicsItem::task240400_clickOnTextItem() QVERIFY(selectable ? item->isSelected() : !item->isSelected()); - // + // if (textFlags & Qt::TextEditorInteraction) QVERIFY(item->textCursor().columnNumber() > column); else @@ -5340,11 +5610,12 @@ public: void tst_QGraphicsItem::ensureUpdateOnTextItem() { QGraphicsScene scene; - TextItem *text1 = new TextItem(QLatin1String("123")); - scene.addItem(text1); QGraphicsView view(&scene); view.show(); QTest::qWait(250); + TextItem *text1 = new TextItem(QLatin1String("123")); + scene.addItem(text1); + qApp->processEvents(); QCOMPARE(text1->updates,1); //same bouding rect but we have to update @@ -5753,19 +6024,36 @@ void tst_QGraphicsItem::opacityZeroUpdates() QCOMPARE(view.paintedRegion, expectedRegion); } +class StacksBehindParentHelper : public QGraphicsRectItem +{ +public: + StacksBehindParentHelper(QList<QGraphicsItem *> *paintedItems, const QRectF &rect, QGraphicsItem *parent = 0) + : QGraphicsRectItem(rect, parent), paintedItems(paintedItems) + { } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + QGraphicsRectItem::paint(painter, option, widget); + paintedItems->append(this); + } + +private: + QList<QGraphicsItem *> *paintedItems; +}; + void tst_QGraphicsItem::itemStacksBehindParent() { - QGraphicsRectItem *parent1 = new QGraphicsRectItem(QRectF(0, 0, 100, 50)); - QGraphicsRectItem *child11 = new QGraphicsRectItem(QRectF(-10, 10, 50, 50), parent1); - QGraphicsRectItem *grandChild111 = new QGraphicsRectItem(QRectF(-20, 20, 50, 50), child11); - QGraphicsRectItem *child12 = new QGraphicsRectItem(QRectF(60, 10, 50, 50), parent1); - QGraphicsRectItem *grandChild121 = new QGraphicsRectItem(QRectF(70, 20, 50, 50), child12); + StacksBehindParentHelper *parent1 = new StacksBehindParentHelper(&paintedItems, QRectF(0, 0, 100, 50)); + StacksBehindParentHelper *child11 = new StacksBehindParentHelper(&paintedItems, QRectF(-10, 10, 50, 50), parent1); + StacksBehindParentHelper *grandChild111 = new StacksBehindParentHelper(&paintedItems, QRectF(-20, 20, 50, 50), child11); + StacksBehindParentHelper *child12 = new StacksBehindParentHelper(&paintedItems, QRectF(60, 10, 50, 50), parent1); + StacksBehindParentHelper *grandChild121 = new StacksBehindParentHelper(&paintedItems, QRectF(70, 20, 50, 50), child12); - QGraphicsRectItem *parent2 = new QGraphicsRectItem(QRectF(0, 0, 100, 50)); - QGraphicsRectItem *child21 = new QGraphicsRectItem(QRectF(-10, 10, 50, 50), parent2); - QGraphicsRectItem *grandChild211 = new QGraphicsRectItem(QRectF(-20, 20, 50, 50), child21); - QGraphicsRectItem *child22 = new QGraphicsRectItem(QRectF(60, 10, 50, 50), parent2); - QGraphicsRectItem *grandChild221 = new QGraphicsRectItem(QRectF(70, 20, 50, 50), child22); + StacksBehindParentHelper *parent2 = new StacksBehindParentHelper(&paintedItems, QRectF(0, 0, 100, 50)); + StacksBehindParentHelper *child21 = new StacksBehindParentHelper(&paintedItems, QRectF(-10, 10, 50, 50), parent2); + StacksBehindParentHelper *grandChild211 = new StacksBehindParentHelper(&paintedItems, QRectF(-20, 20, 50, 50), child21); + StacksBehindParentHelper *child22 = new StacksBehindParentHelper(&paintedItems, QRectF(60, 10, 50, 50), parent2); + StacksBehindParentHelper *grandChild221 = new StacksBehindParentHelper(&paintedItems, QRectF(70, 20, 50, 50), child22); parent1->setData(0, "parent1"); child11->setData(0, "child11"); @@ -5787,25 +6075,58 @@ void tst_QGraphicsItem::itemStacksBehindParent() scene.addItem(parent1); scene.addItem(parent2); + QGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(250); + paintedItems.clear(); + view.viewport()->update(); + QTest::qWait(100); + QCOMPARE(scene.items(0, 0, 100, 100), (QList<QGraphicsItem *>() << grandChild111 << child11 << grandChild121 << child12 << parent1 << grandChild211 << child21 << grandChild221 << child22 << parent2)); + QCOMPARE(paintedItems, QList<QGraphicsItem *>() + << parent2 << child22 << grandChild221 + << child21 << grandChild211 + << parent1 << child12 << grandChild121 + << child11 << grandChild111); child11->setFlag(QGraphicsItem::ItemStacksBehindParent); + scene.update(); + paintedItems.clear(); + QTest::qWait(250); + QCOMPARE(scene.items(0, 0, 100, 100), (QList<QGraphicsItem *>() << grandChild121 << child12 << parent1 << grandChild111 << child11 << grandChild211 << child21 << grandChild221 << child22 << parent2)); + QCOMPARE(paintedItems, QList<QGraphicsItem *>() + << parent2 << child22 << grandChild221 + << child21 << grandChild211 + << child11 << grandChild111 + << parent1 << child12 << grandChild121); child12->setFlag(QGraphicsItem::ItemStacksBehindParent); + paintedItems.clear(); + scene.update(); + QTest::qWait(250); + QCOMPARE(scene.items(0, 0, 100, 100), (QList<QGraphicsItem *>() << parent1 << grandChild111 << child11 << grandChild121 << child12 << grandChild211 << child21 << grandChild221 << child22 << parent2)); + QCOMPARE(paintedItems, QList<QGraphicsItem *>() + << parent2 << child22 << grandChild221 + << child21 << grandChild211 + << child12 << grandChild121 + << child11 << grandChild111 << parent1); } class ClippingAndTransformsScene : public QGraphicsScene @@ -5852,8 +6173,9 @@ void tst_QGraphicsItem::nestedClipping() l1->setData(0, "l1"); l2->setData(0, "l2"); l3->setData(0, "l3"); - + QGraphicsView view(&scene); + view.setOptimizationFlag(QGraphicsView::IndirectPainting); view.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&view); @@ -5880,7 +6202,7 @@ void tst_QGraphicsItem::nestedClipping() QCOMPARE(image.pixel(80, 130), qRgba(255, 255, 0, 255)); QCOMPARE(image.pixel(92, 105), qRgba(0, 255, 0, 255)); QCOMPARE(image.pixel(105, 105), qRgba(0, 0, 255, 255)); -#if 0 +#if 0 // Enable this to compare if the test starts failing. image.save("nestedClipping_reference.png"); #endif @@ -6022,7 +6344,7 @@ void tst_QGraphicsItem::tabChangesFocus_data() void tst_QGraphicsItem::tabChangesFocus() { QFETCH(bool, tabChangesFocus); - + QGraphicsScene scene; QGraphicsTextItem *item = scene.addText("Hello"); item->setTabChangesFocus(tabChangesFocus); @@ -6406,5 +6728,741 @@ void tst_QGraphicsItem::deviceTransform() QCOMPARE(rect3->deviceTransform(deviceX).map(QPointF(50, 50)), mapResult3); } +class MyGraphicsView : public QGraphicsView +{ +public: + int repaints; + QRegion paintedRegion; + MyGraphicsView(QGraphicsScene *scene) : QGraphicsView(scene), repaints(0) {} + void paintEvent(QPaintEvent *e) + { + paintedRegion += e->region(); + ++repaints; + QGraphicsView::paintEvent(e); + } + void reset() { repaints = 0; paintedRegion = QRegion(); } +}; + +void tst_QGraphicsItem::update() +{ + QGraphicsScene scene; + scene.setSceneRect(-100, -100, 200, 200); + MyGraphicsView view(&scene); + + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + EventTester *item = new EventTester; + scene.addItem(item); + QTest::qWait(100); // Make sure all pending updates are processed. + item->repaints = 0; + + item->update(); // Item marked as dirty + scene.update(); // Entire scene marked as dirty + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + + // Make sure the dirty state from the previous update is reset so that + // the item don't think it is already dirty and discards this update. + item->update(); + qApp->processEvents(); + QCOMPARE(item->repaints, 2); + + // Make sure a partial update doesn't cause a full update to be discarded. + view.reset(); + item->repaints = 0; + item->update(QRectF(0, 0, 5, 5)); + item->update(); + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + QCOMPARE(view.repaints, 1); + QRect itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform()) + .mapRect(item->boundingRect()).toRect(); + QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); + // The entire item's bounding rect (adjusted for antialiasing) should have been painted. + QCOMPARE(view.paintedRegion, expectedRegion); + + // Make sure update requests outside the bounding rect are discarded. + view.reset(); + item->repaints = 0; + item->update(-15, -15, 5, 5); // Item's brect: (-10, -10, 20, 20) + qApp->processEvents(); + QCOMPARE(item->repaints, 0); + QCOMPARE(view.repaints, 0); + + // Make sure the area occupied by an item is repainted when hiding it. + view.reset(); + item->repaints = 0; + item->update(); // Full update; all sub-sequent update requests are discarded. + item->hide(); // visible set to 0. ignoreVisible must be set to 1; the item won't be processed otherwise. + qApp->processEvents(); + QCOMPARE(item->repaints, 0); + QCOMPARE(view.repaints, 1); + // The entire item's bounding rect (adjusted for antialiasing) should have been painted. + QCOMPARE(view.paintedRegion, expectedRegion); + + // Make sure item is repainted when shown (after being hidden). + view.reset(); + item->repaints = 0; + item->show(); + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + QCOMPARE(view.repaints, 1); + // The entire item's bounding rect (adjusted for antialiasing) should have been painted. + QCOMPARE(view.paintedRegion, expectedRegion); + + item->repaints = 0; + item->hide(); + qApp->processEvents(); + view.reset(); + const QPointF originalPos = item->pos(); + item->setPos(5000, 5000); + qApp->processEvents(); + QCOMPARE(item->repaints, 0); + QCOMPARE(view.repaints, 0); + qApp->processEvents(); + + item->setPos(originalPos); + qApp->processEvents(); + QCOMPARE(item->repaints, 0); + QCOMPARE(view.repaints, 0); + item->show(); + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + QCOMPARE(view.repaints, 1); + // The entire item's bounding rect (adjusted for antialiasing) should have been painted. + QCOMPARE(view.paintedRegion, expectedRegion); + + QGraphicsViewPrivate *viewPrivate = static_cast<QGraphicsViewPrivate *>(qt_widget_private(&view)); + item->setPos(originalPos + QPoint(50, 50)); + viewPrivate->updateAll(); + QVERIFY(viewPrivate->fullUpdatePending); + QTest::qWait(50); + item->repaints = 0; + view.reset(); + item->setPos(originalPos); + QTest::qWait(50); + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + QCOMPARE(view.repaints, 1); + QCOMPARE(view.paintedRegion, expectedRegion + expectedRegion.translated(50, 50)); + + // Make sure moving a parent item triggers an update on the children + // (even though the parent itself is outside the viewport). + QGraphicsRectItem *parent = new QGraphicsRectItem(0, 0, 10, 10); + parent->setPos(-400, 0); + item->setParentItem(parent); + item->setPos(400, 0); + scene.addItem(parent); + QTest::qWait(50); + itemDeviceBoundingRect = item->deviceTransform(view.viewportTransform()) + .mapRect(item->boundingRect()).toRect(); + expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); + view.reset(); + item->repaints = 0; + parent->translate(-400, 0); + qApp->processEvents(); + QCOMPARE(item->repaints, 0); + QCOMPARE(view.repaints, 1); + QCOMPARE(view.paintedRegion, expectedRegion); + view.reset(); + item->repaints = 0; + parent->translate(400, 0); + qApp->processEvents(); + QCOMPARE(item->repaints, 1); + QCOMPARE(view.repaints, 1); + QCOMPARE(view.paintedRegion, expectedRegion); + QCOMPARE(view.paintedRegion, expectedRegion); +} + +void tst_QGraphicsItem::setTransformProperties_data() +{ + QTest::addColumn<QPointF>("origin"); + QTest::addColumn<qreal>("rotationX"); + QTest::addColumn<qreal>("rotationY"); + QTest::addColumn<qreal>("rotationZ"); + QTest::addColumn<qreal>("scaleX"); + QTest::addColumn<qreal>("scaleY"); + QTest::addColumn<qreal>("shearX"); + QTest::addColumn<qreal>("shearY"); + + QTest::newRow("nothing") << QPointF() << qreal(0.0) << qreal(0.0) << qreal(0.0) + << qreal(1.0) << qreal(1.0) << qreal(0.0) << qreal(0.0); + + QTest::newRow("rotationZ") << QPointF() << qreal(0.0) << qreal(0.0) << qreal(42.2) + << qreal(1.0) << qreal(1.0) << qreal(0.0) << qreal(0.0); + + QTest::newRow("rotationXY") << QPointF() << qreal(12.5) << qreal(53.6) << qreal(0.0) + << qreal(1.0) << qreal(1.0) << qreal(0.0) << qreal(0.0); + + QTest::newRow("rotationXYZ") << QPointF() << qreal(-25) << qreal(12) << qreal(556) + << qreal(1.0) << qreal(1.0) << qreal(0.0) << qreal(0.0); + + QTest::newRow("rotationXYZ dicentred") << QPointF(-53, 25.2) + << qreal(-2578.2) << qreal(4565.2) << qreal(56) + << qreal(1.0) << qreal(1.0) << qreal(0.0) << qreal(0.0); + + QTest::newRow("Scale") << QPointF() << qreal(0.0) << qreal(0.0) << qreal(0.0) + << qreal(6) << qreal(0.5) << qreal(0.0) << qreal(0.0); + + QTest::newRow("Shear") << QPointF() << qreal(0.0) << qreal(0.0) << qreal(0.0) + << qreal(1.0) << qreal(1.0) << qreal(2.2) << qreal(0.5); + + QTest::newRow("Scale and Shear") << QPointF() << qreal(0.0) << qreal(0.0) << qreal(0.0) + << qreal(5.2) << qreal(2.1) << qreal(5.2) << qreal(5.5); + + QTest::newRow("Everything") << QPointF() << qreal(41) << qreal(-23) << qreal(0.56) + << qreal(8.2) << qreal(-0.2) << qreal(-12) << qreal(-0.8); + + QTest::newRow("Everything dicentred") << QPointF(qreal(22.3), qreal(-56.2)) << qreal(-175) << qreal(196) << qreal(-1260) + << qreal(4) << qreal(2) << qreal(2.56) << qreal(0.8); +} + +/** + * the normal QCOMPARE doesn't work because it doesn't use qFuzzyCompare + */ +#define QCOMPARE_TRANSFORM(X1, X2) QVERIFY(((X1)*(X2).inverted()).isIdentity()) + +void tst_QGraphicsItem::setTransformProperties() +{ + QFETCH(QPointF,origin); + QFETCH(qreal,rotationX); + QFETCH(qreal,rotationY); + QFETCH(qreal,rotationZ); + QFETCH(qreal,scaleX); + QFETCH(qreal,scaleY); + QFETCH(qreal,shearX); + QFETCH(qreal,shearY); + + QTransform result; + result.translate(origin.x(), origin.y()); + result.rotate(rotationX, Qt::XAxis); + result.rotate(rotationY, Qt::YAxis); + result.rotate(rotationZ, Qt::ZAxis); + result.shear(shearX, shearY); + result.scale(scaleX, scaleY); + result.translate(-origin.x(), -origin.y()); + + QGraphicsScene scene; + QGraphicsRectItem *item = new QGraphicsRectItem(QRectF(0, 0, 100, 100)); + scene.addItem(item); + + item->setRotation(rotationX, rotationY, rotationZ); + item->setScale(scaleX, scaleY); + item->setShear(shearX, shearY); + item->setTransformOrigin(origin); + + QCOMPARE(item->xRotation(), rotationX); + QCOMPARE(item->yRotation(), rotationY); + QCOMPARE(item->zRotation(), rotationZ); + QCOMPARE(item->xScale(), scaleX); + QCOMPARE(item->yScale(), scaleY); + QCOMPARE(item->horizontalShear(), shearX); + QCOMPARE(item->verticalShear(), shearY); + QCOMPARE(item->transformOrigin(), origin); + + QCOMPARE(QTransform(), item->transform()); + QCOMPARE(result, item->sceneTransform()); + + //----------------------------------------------------------------- + //Change the rotation Z + item->setZRotation(45); + QTransform result2; + result2.translate(origin.x(), origin.y()); + result2.rotate(rotationX, Qt::XAxis); + result2.rotate(rotationY, Qt::YAxis); + result2.rotate(45, Qt::ZAxis); + result2.shear(shearX, shearY); + result2.scale(scaleX, scaleY); + result2.translate(-origin.x(), -origin.y()); + + QCOMPARE(item->xRotation(), rotationX); + QCOMPARE(item->yRotation(), rotationY); + QCOMPARE(item->zRotation(), 45.0); + QCOMPARE(item->xScale(), scaleX); + QCOMPARE(item->yScale(), scaleY); + QCOMPARE(item->horizontalShear(), shearX); + QCOMPARE(item->verticalShear(), shearY); + QCOMPARE(item->transformOrigin(), origin); + + QCOMPARE(QTransform(), item->transform()); + QCOMPARE(result2, item->sceneTransform()); + + //----------------------------------------------------------------- + // calling setTransform() and setPos shoukld change the sceneTransform + item->setTransform(result); + item->setPos(100, -150.5); + + QCOMPARE(item->xRotation(), rotationX); + QCOMPARE(item->yRotation(), rotationY); + QCOMPARE(item->zRotation(), 45.0); + QCOMPARE(item->xScale(), scaleX); + QCOMPARE(item->yScale(), scaleY); + QCOMPARE(item->horizontalShear(), shearX); + QCOMPARE(item->verticalShear(), shearY); + QCOMPARE(item->transformOrigin(), origin); + QCOMPARE(result, item->transform()); + + QTransform result3; + + result3.translate(origin.x(), origin.y()); + result3 = result * result3; + result3.rotate(rotationX, Qt::XAxis); + result3.rotate(rotationY, Qt::YAxis); + result3.rotate(45, Qt::ZAxis); + result3.shear(shearX, shearY); + result3.scale(scaleX, scaleY); + result3.translate(-origin.x(), -origin.y()); + + result3 *= QTransform::fromTranslate(100, -150.5); //the pos; + + QCOMPARE(result3, item->sceneTransform()); + + //----------------------------------------------------- + // setting the propertiees should be the same as setting a transform + {//with center origin on the matrix + QGraphicsRectItem *item1 = new QGraphicsRectItem(QRectF(50.2, -150, 230.5, 119)); + scene.addItem(item1); + QGraphicsRectItem *item2 = new QGraphicsRectItem(QRectF(50.2, -150, 230.5, 119)); + scene.addItem(item2); + + item1->setPos(12.3, -5); + item2->setPos(12.3, -5); + item1->setRotation(rotationX, rotationY, rotationZ); + item1->setScale(scaleX, scaleY); + item1->setShear(shearX, shearY); + item1->setTransformOrigin(origin); + + item2->setTransform(result); + + QCOMPARE_TRANSFORM(item1->sceneTransform(), item2->sceneTransform()); + + QCOMPARE_TRANSFORM(item1->itemTransform(item2), QTransform()); + QCOMPARE_TRANSFORM(item2->itemTransform(item1), QTransform()); + } + + {//with center origin on the item + QGraphicsRectItem *item1 = new QGraphicsRectItem(QRectF(50.2, -150, 230.5, 119)); + scene.addItem(item1); + QGraphicsRectItem *item2 = new QGraphicsRectItem(QRectF(50.2, -150, 230.5, 119)); + scene.addItem(item2); + + item1->setPos(12.3, -5); + item2->setPos(12.3, -5); + item1->setTransformOrigin(origin); + item2->setTransformOrigin(origin); + + item1->setRotation(rotationX, rotationY, rotationZ); + item1->setScale(scaleX, scaleY); + item1->setShear(shearX, shearY); + + QTransform tr; + tr.rotate(rotationX, Qt::XAxis); + tr.rotate(rotationY, Qt::YAxis); + tr.rotate(rotationZ, Qt::ZAxis); + tr.shear(shearX, shearY); + tr.scale(scaleX, scaleY); + + item2->setTransform(tr); + + QCOMPARE_TRANSFORM(item1->sceneTransform(), item2->sceneTransform()); + + QCOMPARE_TRANSFORM(item1->itemTransform(item2), QTransform()); + QCOMPARE_TRANSFORM(item2->itemTransform(item1), QTransform()); + } +} + +class MyStyleOptionTester : public QGraphicsRectItem +{ +public: + MyStyleOptionTester(const QRectF &rect) + : QGraphicsRectItem(rect), startTrack(false) + {} + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) + { + if (startTrack) { + //Doesn't use the extended style option so the exposed rect is the boundingRect + if (!(flags() & QGraphicsItem::ItemUsesExtendedStyleOption)) { + QCOMPARE(option->exposedRect, boundingRect()); + QCOMPARE(option->matrix, QMatrix()); + } else { + QVERIFY(option->exposedRect != QRect()); + QVERIFY(option->exposedRect != boundingRect()); + QCOMPARE(option->matrix, sceneTransform().toAffine()); + } + } + QGraphicsRectItem::paint(painter, option, widget); + } + bool startTrack; +}; + +void tst_QGraphicsItem::itemUsesExtendedStyleOption() +{ + QGraphicsScene scene(0, 0, 300, 300); + QGraphicsPixmapItem item; + item.setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true); + QCOMPARE(item.flags(), QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemUsesExtendedStyleOption)); + item.setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, false); + QCOMPARE(item.flags(), 0); + + //We now test the content of the style option + MyStyleOptionTester *rect = new MyStyleOptionTester(QRect(0, 0, 100, 100)); + scene.addItem(rect); + rect->setPos(200, 200); + QGraphicsView view(&scene); + rect->startTrack = false; + view.show(); + QTest::qWait(500); + rect->startTrack = true; + rect->update(10, 10, 10, 10); + QTest::qWait(125); + rect->startTrack = false; + rect->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true); + QVERIFY((rect->flags() & QGraphicsItem::ItemUsesExtendedStyleOption)); + QTest::qWait(125); + rect->startTrack = true; + rect->update(10, 10, 10, 10); + QTest::qWait(125); +} + +void tst_QGraphicsItem::itemSendsGeometryChanges() +{ + ItemChangeTester item; + item.setFlags(0); + item.clear(); + + QTransform x = QTransform().rotate(45); + QPointF pos(10, 10); + qreal o(0.5); + item.setTransform(x); + item.setPos(pos); + QCOMPARE(item.transform(), x); + QCOMPARE(item.pos(), pos); + QCOMPARE(item.changes.size(), 0); + + item.setOpacity(o); + QCOMPARE(item.changes.size(), 2); // opacity + + item.setFlag(QGraphicsItem::ItemSendsGeometryChanges); + QCOMPARE(item.changes.size(), 4); // flags + item.setTransform(QTransform()); + item.setPos(QPointF()); + QCOMPARE(item.changes.size(), 8); // transform + pos + QCOMPARE(item.transform(), QTransform()); + QCOMPARE(item.pos(), QPointF()); + QCOMPARE(item.opacity(), o); + + QCOMPARE(item.changes, QList<QGraphicsItem::GraphicsItemChange>() + << QGraphicsItem::ItemOpacityChange + << QGraphicsItem::ItemOpacityHasChanged + << QGraphicsItem::ItemFlagsChange + << QGraphicsItem::ItemFlagsHaveChanged + << QGraphicsItem::ItemTransformChange + << QGraphicsItem::ItemTransformHasChanged + << QGraphicsItem::ItemPositionChange + << QGraphicsItem::ItemPositionHasChanged); +} + +// Make sure we update moved items correctly. +void tst_QGraphicsItem::moveItem() +{ + QGraphicsScene scene; + scene.setSceneRect(-50, -50, 200, 200); + + MyGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + EventTester *parent = new EventTester; + EventTester *child = new EventTester(parent); + EventTester *grandChild = new EventTester(child); + +#define RESET_COUNTERS \ + parent->repaints = 0; \ + child->repaints = 0; \ + grandChild->repaints = 0; \ + view.reset(); + + scene.addItem(parent); + QTest::qWait(100); + + RESET_COUNTERS + + // Item's boundingRect: (-10, -10, 20, 20). + QRect parentDeviceBoundingRect = parent->deviceTransform(view.viewportTransform()) + .mapRect(parent->boundingRect()).toRect() + .adjusted(-2, -2, 2, 2); // Adjusted for antialiasing. + + parent->setPos(20, 20); + qApp->processEvents(); + QCOMPARE(parent->repaints, 1); + QCOMPARE(view.repaints, 1); + QRegion expectedParentRegion = parentDeviceBoundingRect; // old position + parentDeviceBoundingRect.translate(20, 20); + expectedParentRegion += parentDeviceBoundingRect; // new position + QCOMPARE(view.paintedRegion, expectedParentRegion); + + RESET_COUNTERS + + child->setPos(20, 20); + qApp->processEvents(); + QCOMPARE(parent->repaints, 1); + QCOMPARE(child->repaints, 1); + QCOMPARE(view.repaints, 1); + const QRegion expectedChildRegion = expectedParentRegion.translated(20, 20); + QCOMPARE(view.paintedRegion, expectedChildRegion); + + RESET_COUNTERS + + grandChild->setPos(20, 20); + qApp->processEvents(); + QCOMPARE(parent->repaints, 1); + QCOMPARE(child->repaints, 1); + QCOMPARE(grandChild->repaints, 1); + QCOMPARE(view.repaints, 1); + const QRegion expectedGrandChildRegion = expectedParentRegion.translated(40, 40); + QCOMPARE(view.paintedRegion, expectedGrandChildRegion); + + RESET_COUNTERS + + parent->translate(20, 20); + qApp->processEvents(); + QCOMPARE(parent->repaints, 1); + QCOMPARE(child->repaints, 1); + QCOMPARE(grandChild->repaints, 1); + QCOMPARE(view.repaints, 1); + expectedParentRegion.translate(20, 20); + expectedParentRegion += expectedChildRegion.translated(20, 20); + expectedParentRegion += expectedGrandChildRegion.translated(20, 20); + QCOMPARE(view.paintedRegion, expectedParentRegion); +} + +void tst_QGraphicsItem::sorting_data() +{ + QTest::addColumn<int>("index"); + + QTest::newRow("NoIndex") << int(QGraphicsScene::NoIndex); + QTest::newRow("BspTreeIndex") << int(QGraphicsScene::BspTreeIndex); +} + +void tst_QGraphicsItem::sorting() +{ + _paintedItems.clear(); + + QGraphicsScene scene; + QGraphicsItem *grid[100][100]; + for (int x = 0; x < 100; ++x) { + for (int y = 0; y < 100; ++y) { + PainterItem *item = new PainterItem; + item->setPos(x * 25, y * 25); + item->setData(0, QString("%1x%2").arg(x).arg(y)); + grid[x][y] = item; + scene.addItem(item); + } + } + + PainterItem *item1 = new PainterItem; + PainterItem *item2 = new PainterItem; + item1->setData(0, "item1"); + item2->setData(0, "item2"); + scene.addItem(item1); + scene.addItem(item2); + + QGraphicsView view(&scene); + view.setResizeAnchor(QGraphicsView::NoAnchor); + view.setTransformationAnchor(QGraphicsView::NoAnchor); + view.resize(120, 100); + view.setFrameStyle(0); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + _paintedItems.clear(); + + view.viewport()->repaint(); +#ifdef Q_WS_MAC + // There's no difference between repaint and update on the Mac, + // so we have to process events here to make sure we get the event. + QTest::qWait(100); +#endif + + QCOMPARE(_paintedItems, QList<QGraphicsItem *>() + << grid[0][0] << grid[0][1] << grid[0][2] << grid[0][3] + << grid[1][0] << grid[1][1] << grid[1][2] << grid[1][3] + << grid[2][0] << grid[2][1] << grid[2][2] << grid[2][3] + << grid[3][0] << grid[3][1] << grid[3][2] << grid[3][3] + << grid[4][0] << grid[4][1] << grid[4][2] << grid[4][3] + << item1 << item2); +} + +void tst_QGraphicsItem::itemHasNoContents() +{ + PainterItem *item1 = new PainterItem; + PainterItem *item2 = new PainterItem; + item2->setParentItem(item1); + item2->setPos(50, 50); + item1->setFlag(QGraphicsItem::ItemHasNoContents); + item1->setFlag(QGraphicsItem::ItemClipsChildrenToShape); + + QGraphicsScene scene; + scene.addItem(item1); + + QGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + _paintedItems.clear(); + + view.viewport()->repaint(); +#ifdef Q_WS_MAC + // There's no difference between update() and repaint() on the Mac, + // so we have to process events here to make sure we get the event. + QTest::qWait(100); +#endif + + QCOMPARE(_paintedItems, QList<QGraphicsItem *>() << item2); +} + +void tst_QGraphicsItem::hitTestUntransformableItem() +{ + QGraphicsScene scene; + scene.setSceneRect(-100, -100, 200, 200); + + QGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + // Confuse the BSP with dummy items. + QGraphicsRectItem *dummy = new QGraphicsRectItem(0, 0, 20, 20); + dummy->setPos(-100, -100); + scene.addItem(dummy); + for (int i = 0; i < 100; ++i) { + QGraphicsItem *parent = dummy; + dummy = new QGraphicsRectItem(0, 0, 20, 20); + dummy->setPos(-100 + i, -100 + i); + dummy->setParentItem(parent); + } + + QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, 20, 20); + item1->setPos(-200, -200); + + QGraphicsRectItem *item2 = new QGraphicsRectItem(0, 0, 20, 20); + item2->setFlag(QGraphicsItem::ItemIgnoresTransformations); + item2->setParentItem(item1); + item2->setPos(200, 200); + + QGraphicsRectItem *item3 = new QGraphicsRectItem(0, 0, 20, 20); + item3->setParentItem(item2); + item3->setPos(80, 80); + + scene.addItem(item1); + QTest::qWait(100); + + QList<QGraphicsItem *> items = scene.items(QPointF(80, 80)); + QCOMPARE(items.size(), 1); + QCOMPARE(items.at(0), static_cast<QGraphicsItem*>(item3)); + + scene.setItemIndexMethod(QGraphicsScene::NoIndex); + QTest::qWait(100); + + items = scene.items(QPointF(80, 80)); + QCOMPARE(items.size(), 1); + QCOMPARE(items.at(0), static_cast<QGraphicsItem*>(item3)); +} + +void tst_QGraphicsItem::focusProxy() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(0, 0, 10, 10); + item->setFlag(QGraphicsItem::ItemIsFocusable); + QVERIFY(!item->focusProxy()); + + QGraphicsItem *item2 = scene.addRect(0, 0, 10, 10); + item2->setFlag(QGraphicsItem::ItemIsFocusable); + item->setFocusProxy(item2); + QCOMPARE(item->focusProxy(), item2); + + item->setFocus(); + QVERIFY(item->hasFocus()); + QVERIFY(item2->hasFocus()); + + // Try to make a focus chain loop + QString err; + QTextStream stream(&err); + stream << "QGraphicsItem::setFocusProxy: " + << (void*)item << " is already in the focus proxy chain" << flush; + QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData()); + item2->setFocusProxy(item); // fails + QCOMPARE(item->focusProxy(), (QGraphicsItem *)item2); + QCOMPARE(item2->focusProxy(), (QGraphicsItem *)0); + + // Try to assign self as focus proxy + QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::setFocusProxy: cannot assign self as focus proxy"); + item->setFocusProxy(item); // fails + QCOMPARE(item->focusProxy(), (QGraphicsItem *)item2); + QCOMPARE(item2->focusProxy(), (QGraphicsItem *)0); + + // Reset the focus proxy + item->setFocusProxy(0); + QCOMPARE(item->focusProxy(), (QGraphicsItem *)0); + QVERIFY(!item->hasFocus()); + QVERIFY(item2->hasFocus()); + + // Test deletion + item->setFocusProxy(item2); + QCOMPARE(item->focusProxy(), (QGraphicsItem *)item2); + delete item2; + QCOMPARE(item->focusProxy(), (QGraphicsItem *)0); + + // Test event delivery + item2 = scene.addRect(0, 0, 10, 10); + item2->setFlag(QGraphicsItem::ItemIsFocusable); + item->setFocusProxy(item2); + item->clearFocus(); + + EventSpy focusInSpy(&scene, item, QEvent::FocusIn); + EventSpy focusOutSpy(&scene, item, QEvent::FocusOut); + EventSpy focusInSpy2(&scene, item2, QEvent::FocusIn); + EventSpy focusOutSpy2(&scene, item2, QEvent::FocusOut); + QCOMPARE(focusInSpy.count(), 0); + QCOMPARE(focusOutSpy.count(), 0); + QCOMPARE(focusInSpy2.count(), 0); + QCOMPARE(focusOutSpy2.count(), 0); + + item->setFocus(); + QCOMPARE(focusInSpy.count(), 0); + QCOMPARE(focusInSpy2.count(), 1); + item->clearFocus(); + QCOMPARE(focusOutSpy.count(), 0); + QCOMPARE(focusOutSpy2.count(), 1); + + // Test two items proxying one item. + QGraphicsItem *item3 = scene.addRect(0, 0, 10, 10); + item3->setFlag(QGraphicsItem::ItemIsFocusable); + item3->setFocusProxy(item2); // item and item3 use item2 as proxy + + QCOMPARE(item->focusProxy(), item2); + QCOMPARE(item2->focusProxy(), (QGraphicsItem *)0); + QCOMPARE(item3->focusProxy(), item2); + delete item2; + QCOMPARE(item->focusProxy(), (QGraphicsItem *)0); + QCOMPARE(item3->focusProxy(), (QGraphicsItem *)0); +} + QTEST_MAIN(tst_QGraphicsItem) #include "tst_qgraphicsitem.moc" diff --git a/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp index 536c750..bca673f 100644 --- a/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp +++ b/tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp @@ -687,7 +687,6 @@ void tst_QGraphicsLayout::ownership() delete top; //don't crash after that. } - } QTEST_MAIN(tst_QGraphicsLayout) diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp index b61b2bb..a30e5e5 100644 --- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp @@ -163,19 +163,19 @@ class RectWidget : public QGraphicsWidget public: RectWidget(QGraphicsItem *parent = 0, const QBrush &brush = QBrush()) : QGraphicsWidget(parent){ m_brush = brush;} - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); painter->setBrush(m_brush); painter->drawRoundRect(rect()); } - + void setSizeHint(Qt::SizeHint which, const QSizeF &size) { m_sizeHints[which] = size; updateGeometry(); } - + virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const { if (m_sizeHints[which].isValid()) { return m_sizeHints[which]; @@ -210,17 +210,16 @@ void tst_QGraphicsLinearLayout::qgraphicslinearlayout() layout.setOrientation(Qt::Vertical); layout.orientation(); QTest::ignoreMessage(QtWarningMsg, "QGraphicsLinearLayout::insertItem: cannot insert null item"); - //QCOMPARE(layout.count(), 0); + QCOMPARE(layout.count(), 0); layout.addItem(0); - //QCOMPARE(layout.count(), 0); + QCOMPARE(layout.count(), 0); layout.addStretch(0); - //QCOMPARE(layout.count(), 1); + QCOMPARE(layout.count(), 0); QTest::ignoreMessage(QtWarningMsg, "QGraphicsLinearLayout::insertItem: cannot insert null item"); layout.insertItem(0, 0); layout.insertStretch(0, 0); layout.removeItem(0); - layout.removeAt(0); - //QCOMPARE(layout.count(), 1); + QCOMPARE(layout.count(), 0); layout.setSpacing(0); layout.spacing(); QTest::ignoreMessage(QtWarningMsg, "QGraphicsLinearLayout::setStretchFactor: cannot assign a stretch factor to a null item"); @@ -231,8 +230,7 @@ void tst_QGraphicsLinearLayout::qgraphicslinearlayout() QCOMPARE(layout.alignment(0), 0); layout.setGeometry(QRectF()); layout.geometry(); - //QCOMPARE(layout.count(), 1); - layout.itemAt(0); + QCOMPARE(layout.count(), 0); layout.invalidate(); layout.sizeHint(Qt::MinimumSize, QSizeF()); } @@ -285,7 +283,7 @@ void tst_QGraphicsLinearLayout::alignment() int i; bool addWidget = true; for (i = 0; i < sizeof(alignmentsToTest)/sizeof(Qt::Alignment); ++i) { - QGraphicsLayoutItem *loutItem; + QGraphicsLayoutItem *loutItem; Qt::Alignment align = alignmentsToTest[i]; if (!align && i > 0) addWidget = false; @@ -537,7 +535,10 @@ void tst_QGraphicsLinearLayout::insertItem() QSizeF oldSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); layout.insertItem(insertItemAt, item); QCOMPARE(layout.count(), itemCount + layoutCount + 1); - QCOMPARE(layout.itemAt(insertItemAt), insertItemAt == -1 ? (QGraphicsLayoutItem*)0 : item); + + if (insertItemAt >= 0 && (itemCount + layoutCount >= 0)) { + QCOMPARE(layout.itemAt(itemCount + layoutCount), item); + } layout.activate(); QSizeF newSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); @@ -599,8 +600,7 @@ void tst_QGraphicsLinearLayout::insertStretch() } widget->setLayout(layout); layout->insertStretch(insertItemAt, stretch); - QCOMPARE(layout->itemAt(insertItemAt), (QGraphicsLayoutItem*)0); - QCOMPARE(layout->count(), itemCount + layoutCount + 1); + QCOMPARE(layout->count(), itemCount + layoutCount); layout->activate(); view.show(); @@ -669,7 +669,6 @@ void tst_QGraphicsLinearLayout::invalidate() void tst_QGraphicsLinearLayout::itemAt_data() { QTest::addColumn<int>("index"); - QTest::newRow("-1") << -1; QTest::newRow("0") << 0; QTest::newRow("1") << 1; QTest::newRow("2") << 2; @@ -681,7 +680,10 @@ void tst_QGraphicsLinearLayout::itemAt() // see also the insertItem() etc tests QFETCH(int, index); SubQGraphicsLinearLayout layout; - QCOMPARE(layout.itemAt(index), (QGraphicsLayoutItem*)0); + for (int i = 0; i < 3; ++i) + layout.addItem(new QGraphicsWidget); + + QVERIFY(layout.itemAt(index) != 0); } void tst_QGraphicsLinearLayout::orientation_data() @@ -695,7 +697,7 @@ void tst_QGraphicsLinearLayout::orientation_data() void tst_QGraphicsLinearLayout::orientation() { QFETCH(Qt::Orientation, orientation); - + QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -721,7 +723,7 @@ void tst_QGraphicsLinearLayout::orientation() qreal pos; if (initialOrientation == Qt::Horizontal) pos = item->pos().x(); - else + else pos = item->pos().y(); positions.append(pos); @@ -736,7 +738,7 @@ void tst_QGraphicsLinearLayout::orientation() QGraphicsWidget *item = static_cast<QGraphicsWidget*>(layout.itemAt(i)); if (initialOrientation == Qt::Horizontal) QCOMPARE(item->pos().y(), positions.at(i)); - else + else QCOMPARE(item->pos().x(), positions.at(i)); } @@ -779,19 +781,18 @@ void tst_QGraphicsLinearLayout::removeAt() layout.addItem(new SubQGraphicsLinearLayout); QSizeF oldSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); - QGraphicsLayoutItem *w = layout.itemAt(removeItemAt); - QGraphicsLayoutItem *wParent = 0; + QGraphicsLayoutItem *w = 0; + if (removeItemAt >= 0 && removeItemAt < layout.count()) + w = layout.itemAt(removeItemAt); if (w) { - wParent = w->parentLayoutItem(); + QGraphicsLayoutItem *wParent = w->parentLayoutItem(); QCOMPARE(wParent, static_cast<QGraphicsLayoutItem *>(&layout)); - } - layout.removeAt(removeItemAt); - if (w) { + layout.removeAt(removeItemAt); wParent = w->parentLayoutItem(); QCOMPARE(wParent, static_cast<QGraphicsLayoutItem *>(0)); + delete w; } - delete w; - QCOMPARE(layout.count(), itemCount + layoutCount - ((removeItemAt == -1) ? 0 : 1)); + QCOMPARE(layout.count(), itemCount + layoutCount - (w ? 1 : 0)); layout.activate(); QSizeF newSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); @@ -829,11 +830,15 @@ void tst_QGraphicsLinearLayout::removeItem() for (int i = 0; i < layoutCount; ++i) layout.addItem(new SubQGraphicsLinearLayout); - QGraphicsLayoutItem *w = layout.itemAt(removeItemAt); + QGraphicsLayoutItem *w = 0; + if (removeItemAt >= 0 && removeItemAt < layout.count()) + w = layout.itemAt(removeItemAt); QSizeF oldSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); - layout.removeItem(w); - delete w; - QCOMPARE(layout.count(), itemCount + layoutCount - ((removeItemAt == -1) ? 0 : 1)); + if (w) { + layout.removeItem(w); + delete w; + } + QCOMPARE(layout.count(), itemCount + layoutCount - (w ? 1 : 0)); layout.activate(); QSizeF newSizeHint = layout.sizeHint(Qt::PreferredSize, QSizeF()); @@ -882,7 +887,7 @@ void tst_QGraphicsLinearLayout::setSpacing_data() void tst_QGraphicsLinearLayout::setSpacing() { QFETCH(qreal, spacing); - + QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -994,7 +999,7 @@ void tst_QGraphicsLinearLayout::itemSpacing() /** * The stretch factors are not applied linearly, but they are used together with both the preferred size, maximum size to form the * internal effective stretch factor. - * There is only need to apply stretch factors if the size of the layout is different than the layouts preferred size. + * There is only need to apply stretch factors if the size of the layout is different than the layouts preferred size. * (If the size of the layout is the preferred size, then all items should get their preferred sizes. * However, imagine this use case: * Layout @@ -1007,7 +1012,7 @@ void tst_QGraphicsLinearLayout::itemSpacing() * layout->resize(120, h) * * In QLayout, C would become 50, B would become 50 and A would get 20. When scaling a layout this would give a jerky feeling, since - * the item with the highest stretch factor will first resize. When that has reached its maximum the next candidate for stretch will + * the item with the highest stretch factor will first resize. When that has reached its maximum the next candidate for stretch will * resize, and finally, item with the lowest stretch factor will resize. * In QGraphicsLinearLayout we try to scale all items so that they all reach their maximum at the same time. This means that * their relative sizes are not proportional to their stretch factors. @@ -1059,7 +1064,7 @@ void tst_QGraphicsLinearLayout::setStretchFactor() view.show(); widget->show(); - + qreal firstStretch = -1; qreal firstExtent = -1.; qreal sumExtent = 0; @@ -1073,7 +1078,7 @@ void tst_QGraphicsLinearLayout::setStretchFactor() QCOMPARE(extent, firstExtent); else if (stretch > firstStretch) QVERIFY(extent > firstExtent); - else + else QVERIFY(extent < firstExtent); } else { firstStretch = (qreal)stretch; @@ -1082,7 +1087,7 @@ void tst_QGraphicsLinearLayout::setStretchFactor() sumExtent+= extent; } QCOMPARE(sumExtent, totalSize); - + delete widget; } @@ -1167,7 +1172,7 @@ void tst_QGraphicsLinearLayout::defaultStretchFactors() QSizePolicy sp = item->sizePolicy(); if (orientation == Qt::Horizontal) sp.setHorizontalPolicy(QSizePolicy::Policy(sp.horizontalPolicy() | QSizePolicy::IgnoreFlag)); - else + else sp.setVerticalPolicy(QSizePolicy::Policy(sp.verticalPolicy() | QSizePolicy::IgnoreFlag)); item->setSizePolicy(sp); } @@ -1180,7 +1185,7 @@ void tst_QGraphicsLinearLayout::defaultStretchFactors() view.resize(400,300); if (newSize.isValid()) widget->resize(newSize); - + QApplication::processEvents(); for (i = 0; i < count; ++i) { QSizeF itemSize = layout->itemAt(i)->geometry().size(); @@ -1189,7 +1194,7 @@ void tst_QGraphicsLinearLayout::defaultStretchFactors() if (i < expectedSizes.count()) QCOMPARE(itemSize.width(), qreal(expectedSizes.at(i))); } - + delete widget; } @@ -1254,7 +1259,7 @@ void tst_QGraphicsLinearLayout::updateGeometry() layout->setContentsMargins(0, 0, 0, 0); QCOMPARE(w1->parentLayoutItem(), static_cast<QGraphicsLayoutItem*>(layout)); QCOMPARE(layout->parentLayoutItem(), static_cast<QGraphicsLayoutItem*>(window)); - + view.show(); QApplication::processEvents(); QCOMPARE(window->size().toSize(), QSize(100, 50)); @@ -1283,7 +1288,7 @@ void tst_QGraphicsLinearLayout::updateGeometry() QApplication::processEvents(); w1->setMinimumSize(120, 60); QApplication::processEvents(); - QCOMPARE(window->size().toSize(), QSize(124, 64)); + QCOMPARE(window->size().toSize(), QSize(124, 64)); } { @@ -1341,7 +1346,7 @@ void tst_QGraphicsLinearLayout::layoutDirection() w2->setPreferredSize(20, 20); w2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); layout->addItem(w2); - + scene.addItem(window); window->setLayout(layout); view.show(); @@ -1359,7 +1364,7 @@ void tst_QGraphicsLinearLayout::layoutDirection() QCOMPARE(w1->geometry().left(), 29.0); QCOMPARE(w2->geometry().right(), 23.0); QCOMPARE(w2->geometry().left(), 3.0); - + delete window; } diff --git a/tests/auto/qgraphicsobject/qgraphicsobject.pro b/tests/auto/qgraphicsobject/qgraphicsobject.pro new file mode 100644 index 0000000..965b319 --- /dev/null +++ b/tests/auto/qgraphicsobject/qgraphicsobject.pro @@ -0,0 +1,2 @@ +load(qttest_p4) +SOURCES += tst_qgraphicsobject.cpp diff --git a/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp new file mode 100644 index 0000000..e7a436f --- /dev/null +++ b/tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp @@ -0,0 +1,255 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> +#include <qgraphicsitem.h> +#include <qgraphicsscene.h> +#include <qgraphicssceneevent.h> +#include <qgraphicsview.h> +#include <qstyleoption.h> +#include "../../shared/util.h" + +class tst_QGraphicsObject : public QObject { + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void pos(); + void x(); + void y(); + void z(); + void opacity(); + void enabled(); + void visible(); +}; + + +// This will be called before the first test function is executed. +// It is only called once. +void tst_QGraphicsObject::initTestCase() +{ +} + +// This will be called after the last test function is executed. +// It is only called once. +void tst_QGraphicsObject::cleanupTestCase() +{ +} + +// This will be called before each test function is executed. +void tst_QGraphicsObject::init() +{ +} + +// This will be called after every test function. +void tst_QGraphicsObject::cleanup() +{ +} + + +class MyGraphicsObject : public QGraphicsObject +{ +public: + MyGraphicsObject() : QGraphicsObject() {} + virtual QRectF boundingRect() const { return QRectF(); } + virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) {} +}; + +void tst_QGraphicsObject::pos() +{ + MyGraphicsObject object; + QSignalSpy xSpy(&object, SIGNAL(xChanged())); + QSignalSpy ySpy(&object, SIGNAL(yChanged())); + QVERIFY(object.pos() == QPointF(0, 0)); + object.setPos(10, 10); + QCOMPARE(xSpy.count(), 1); + QCOMPARE(ySpy.count(), 1); + + QVERIFY(object.pos() == QPointF(10,10)); + + object.setPos(10, 10); + QCOMPARE(xSpy.count(), 1); + QCOMPARE(ySpy.count(), 1); + + object.setProperty("pos", QPointF(0, 0)); + QCOMPARE(xSpy.count(), 2); + QCOMPARE(ySpy.count(), 2); + QVERIFY(object.property("pos") == QPointF(0,0)); + + object.setProperty("pos", QPointF(10, 0)); + QCOMPARE(xSpy.count(), 3); + QCOMPARE(ySpy.count(), 2); + QVERIFY(object.property("pos") == QPointF(10,0)); + + object.setProperty("pos", QPointF(10, 10)); + QCOMPARE(xSpy.count(), 3); + QCOMPARE(ySpy.count(), 3); + QVERIFY(object.property("pos") == QPointF(10, 10)); +} + +void tst_QGraphicsObject::x() +{ + MyGraphicsObject object; + QSignalSpy xSpy(&object, SIGNAL(xChanged())); + QSignalSpy ySpy(&object, SIGNAL(yChanged())); + QVERIFY(object.pos() == QPointF(0, 0)); + object.setX(10); + QCOMPARE(xSpy.count(), 1); + QCOMPARE(ySpy.count(), 0); + + QVERIFY(object.pos() == QPointF(10, 0)); + QVERIFY(object.x() == 10); + + object.setX(10); + QCOMPARE(xSpy.count(), 1); + QCOMPARE(ySpy.count(), 0); + + object.setProperty("x", 0); + QCOMPARE(xSpy.count(), 2); + QCOMPARE(ySpy.count(), 0); + QVERIFY(object.property("x") == 0); +} + +void tst_QGraphicsObject::y() +{ + MyGraphicsObject object; + QSignalSpy xSpy(&object, SIGNAL(xChanged())); + QSignalSpy ySpy(&object, SIGNAL(yChanged())); + QVERIFY(object.pos() == QPointF(0, 0)); + object.setY(10); + QCOMPARE(xSpy.count(), 0); + QCOMPARE(ySpy.count(), 1); + + QVERIFY(object.pos() == QPointF(0, 10)); + QVERIFY(object.y() == 10); + + object.setY(10); + QCOMPARE(xSpy.count(), 0); + QCOMPARE(ySpy.count(), 1); + + object.setProperty("y", 0); + QCOMPARE(xSpy.count(), 0); + QCOMPARE(ySpy.count(), 2); + QVERIFY(object.property("y") == 0); +} + +void tst_QGraphicsObject::z() +{ + MyGraphicsObject object; + QSignalSpy zSpy(&object, SIGNAL(zChanged())); + QVERIFY(object.zValue() == 0); + object.setZValue(10); + QCOMPARE(zSpy.count(), 1); + + QVERIFY(object.zValue() == 10); + + object.setZValue(10); + QCOMPARE(zSpy.count(), 1); + + object.setProperty("z", 0); + QCOMPARE(zSpy.count(), 2); + QVERIFY(object.property("z") == 0); +} + +void tst_QGraphicsObject::opacity() +{ + MyGraphicsObject object; + QSignalSpy spy(&object, SIGNAL(opacityChanged())); + QVERIFY(object.opacity() == 1.); + object.setOpacity(0); + QCOMPARE(spy.count(), 1); + + QVERIFY(object.opacity() == 0.); + + object.setOpacity(0); + QCOMPARE(spy.count(), 1); + + object.setProperty("opacity", .5); + QCOMPARE(spy.count(), 2); + QVERIFY(object.property("opacity") == .5); +} + +void tst_QGraphicsObject::enabled() +{ + MyGraphicsObject object; + QSignalSpy spy(&object, SIGNAL(enabledChanged())); + QVERIFY(object.isEnabled() == true); + object.setEnabled(false); + QCOMPARE(spy.count(), 1); + + QVERIFY(object.isEnabled() == false); + + object.setEnabled(false); + QCOMPARE(spy.count(), 1); + + object.setProperty("enabled", true); + QCOMPARE(spy.count(), 2); + QVERIFY(object.property("enabled") == true); +} + +void tst_QGraphicsObject::visible() +{ + MyGraphicsObject object; + QSignalSpy spy(&object, SIGNAL(visibleChanged())); + QVERIFY(object.isVisible() == true); + object.setVisible(false); + QCOMPARE(spy.count(), 1); + + QVERIFY(object.isVisible() == false); + + object.setVisible(false); + QCOMPARE(spy.count(), 1); + + object.setProperty("visible", true); + QCOMPARE(spy.count(), 2); + QVERIFY(object.property("visible") == true); +} + + +QTEST_MAIN(tst_QGraphicsObject) +#include "tst_qgraphicsobject.moc" + diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index 125c021..1d0663a 100644 --- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -175,6 +175,11 @@ private slots: void bypassGraphicsProxyWidget_data(); void bypassGraphicsProxyWidget(); void dragDrop(); + void windowFlags_data(); + void windowFlags(); + void comboboxWindowFlags(); + void updateAndDelete(); + void inputMethod(); }; // Subclass that exposes the protected functions. @@ -1484,7 +1489,7 @@ void tst_QGraphicsProxyWidget::scrollUpdate() QVector<QRect>() << QRect(0, 0, 200, 12) << QRect(0, 12, 102, 10)); QCOMPARE(widget->npaints, 2); QCOMPARE(widget->paintEventRegion.rects(), - QVector<QRect>() << QRect(0, 0, 200, 13) << QRect(0, 13, 103, 10)); + QVector<QRect>() << QRect(0, 0, 200, 12) << QRect(0, 12, 102, 10)); } void tst_QGraphicsProxyWidget::setWidget_simple() @@ -1569,7 +1574,7 @@ void tst_QGraphicsProxyWidget::resize_simple() QGraphicsProxyWidget proxy; QWidget *widget = new QWidget; - widget->setGeometry(0, 0, size.width(), size.height()); + widget->setGeometry(0, 0, (int)size.width(), (int)size.height()); proxy.setWidget(widget); widget->show(); QCOMPARE(widget->pos(), QPoint()); @@ -3153,10 +3158,150 @@ void tst_QGraphicsProxyWidget::dragDrop() QCOMPARE(edit->text(), QString("hei")); } +void tst_QGraphicsProxyWidget::windowFlags_data() +{ + QTest::addColumn<int>("proxyFlags"); + QTest::addColumn<int>("widgetFlags"); + QTest::addColumn<int>("resultingProxyFlags"); + QTest::addColumn<int>("resultingWidgetFlags"); + + QTest::newRow("proxy(0) widget(0)") << 0 << 0 << 0 << int(Qt::Window); + QTest::newRow("proxy(window)") << int(Qt::Window) << 0 << int(Qt::Window) << int(Qt::Window); + QTest::newRow("proxy(window) widget(window)") << int(Qt::Window) << int(Qt::Window) << int(Qt::Window) << int(Qt::Window); + QTest::newRow("proxy(0) widget(window)") << int(0) << int(Qt::Window) << int(0) << int(Qt::Window); +} + +void tst_QGraphicsProxyWidget::windowFlags() +{ + QFETCH(int, proxyFlags); + QFETCH(int, widgetFlags); + QFETCH(int, resultingProxyFlags); + QFETCH(int, resultingWidgetFlags); + Qt::WindowFlags proxyWFlags = Qt::WindowFlags(proxyFlags); + Qt::WindowFlags widgetWFlags = Qt::WindowFlags(widgetFlags); + Qt::WindowFlags resultingProxyWFlags = Qt::WindowFlags(resultingProxyFlags); + Qt::WindowFlags resultingWidgetWFlags = Qt::WindowFlags(resultingWidgetFlags); + + QGraphicsProxyWidget proxy(0, proxyWFlags); + QVERIFY((proxy.windowFlags() & proxyWFlags) == proxyWFlags); + + QWidget *widget = new QWidget(0, widgetWFlags); + QVERIFY((widget->windowFlags() & widgetWFlags) == widgetWFlags); + + proxy.setWidget(widget); + + if (resultingProxyFlags == 0) + QVERIFY(!proxy.windowFlags()); + else + QVERIFY((proxy.windowFlags() & resultingProxyWFlags) == resultingProxyWFlags); + QVERIFY((widget->windowFlags() & resultingWidgetWFlags) == resultingWidgetWFlags); +} + +void tst_QGraphicsProxyWidget::comboboxWindowFlags() +{ + QComboBox *comboBox = new QComboBox; + comboBox->addItem("Item 1"); + comboBox->addItem("Item 2"); + comboBox->addItem("Item 3"); + QWidget *embedWidget = comboBox; + + QGraphicsScene scene; + QGraphicsProxyWidget *proxy = scene.addWidget(embedWidget); + proxy->setWindowFlags(Qt::Window); + QVERIFY(embedWidget->isWindow()); + QVERIFY(proxy->isWindow()); + + comboBox->showPopup(); + + QCOMPARE(proxy->childItems().size(), 1); + QGraphicsItem *popupProxy = proxy->childItems().first(); + QVERIFY(popupProxy->isWindow()); + QVERIFY((static_cast<QGraphicsWidget *>(popupProxy)->windowFlags() & Qt::Popup) == Qt::Popup); +} + +void tst_QGraphicsProxyWidget::updateAndDelete() +{ + QGraphicsScene scene; + QGraphicsProxyWidget *proxy = scene.addWidget(new QPushButton("Hello World")); + View view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + + const QRect itemDeviceBoundingRect = proxy->deviceTransform(view.viewportTransform()) + .mapRect(proxy->boundingRect()).toRect(); + const QRegion expectedRegion = itemDeviceBoundingRect.adjusted(-2, -2, 2, 2); + + view.npaints = 0; + view.paintEventRegion = QRegion(); + + // Update and hide. + proxy->update(); + proxy->hide(); + QTest::qWait(50); + QCOMPARE(view.npaints, 1); + QCOMPARE(view.paintEventRegion, expectedRegion); + + proxy->show(); + QTest::qWait(50); + view.npaints = 0; + view.paintEventRegion = QRegion(); + + // Update and delete. + proxy->update(); + delete proxy; + QTest::qWait(50); + QCOMPARE(view.npaints, 1); + QCOMPARE(view.paintEventRegion, expectedRegion); +} + +class InputMethod_LineEdit : public QLineEdit +{ + bool event(QEvent *e) + { + if (e->type() == QEvent::InputMethod) + ++inputMethodEvents; + return QLineEdit::event(e); + } +public: + int inputMethodEvents; +}; + +void tst_QGraphicsProxyWidget::inputMethod() +{ + QGraphicsScene scene; + + // check that the proxy is initialized with the correct input method sensitivity + for (int i = 0; i < 2; ++i) + { + QLineEdit *lineEdit = new QLineEdit; + lineEdit->setAttribute(Qt::WA_InputMethodEnabled, !!i); + QGraphicsProxyWidget *proxy = scene.addWidget(lineEdit); + QCOMPARE(!!(proxy->flags() & QGraphicsItem::ItemAcceptsInputMethod), !!i); + } + + // check that input method events are only forwarded to widgets with focus + for (int i = 0; i < 2; ++i) + { + InputMethod_LineEdit *lineEdit = new InputMethod_LineEdit; + lineEdit->setAttribute(Qt::WA_InputMethodEnabled, true); + QGraphicsProxyWidget *proxy = scene.addWidget(lineEdit); + + if (i) + lineEdit->setFocus(); + + lineEdit->inputMethodEvents = 0; + QInputMethodEvent event; + qApp->sendEvent(proxy, &event); + QCOMPARE(lineEdit->inputMethodEvents, i); + } +} + QTEST_MAIN(tst_QGraphicsProxyWidget) #include "tst_qgraphicsproxywidget.moc" #else // QT_NO_STYLE_CLEANLOOKS QTEST_NOOP_MAIN #endif - diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp index d24b2b8..f7ea4ce 100644 --- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp @@ -141,7 +141,7 @@ protected: } }; -class EventSpy : public QObject +class EventSpy : public QGraphicsWidget { Q_OBJECT public: @@ -151,6 +151,13 @@ public: watched->installEventFilter(this); } + EventSpy(QGraphicsScene *scene, QGraphicsItem *watched, QEvent::Type type) + : _count(0), spied(type) + { + scene->addItem(this); + watched->installSceneEventFilter(this); + } + int count() const { return _count; } protected: @@ -162,6 +169,14 @@ protected: return false; } + bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) + { + Q_UNUSED(watched); + if (event->type() == spied) + ++_count; + return false; + } + int _count; QEvent::Type spied; }; @@ -221,6 +236,7 @@ private slots: void contextMenuEvent(); void contextMenuEvent_ItemIgnoresTransformations(); void update(); + void update2(); void views(); void event(); void eventsToDisabledItems(); @@ -236,6 +252,9 @@ private slots: void changedSignal(); void stickyFocus_data(); void stickyFocus(); + void sendEvent(); + void inputMethod_data(); + void inputMethod(); // task specific tests below me void task139710_bspTreeCrash(); @@ -271,26 +290,46 @@ void tst_QGraphicsScene::construction() void tst_QGraphicsScene::sceneRect() { QGraphicsScene scene; + QSignalSpy sceneRectChanged(&scene, SIGNAL(sceneRectChanged(QRectF))); QCOMPARE(scene.sceneRect(), QRectF()); + QCOMPARE(sceneRectChanged.count(), 0); QGraphicsItem *item = scene.addRect(QRectF(0, 0, 10, 10)); item->setPos(-5, -5); + QCOMPARE(sceneRectChanged.count(), 0); QCOMPARE(scene.itemAt(0, 0), item); QCOMPARE(scene.itemAt(10, 10), (QGraphicsItem *)0); + QCOMPARE(sceneRectChanged.count(), 0); + QCOMPARE(scene.sceneRect(), QRectF(-5, -5, 10, 10)); + QCOMPARE(sceneRectChanged.count(), 1); + QCOMPARE(sceneRectChanged.last().at(0).toRectF(), scene.sceneRect()); + + item->setPos(0, 0); QCOMPARE(scene.sceneRect(), QRectF(-5, -5, 15, 15)); + QCOMPARE(sceneRectChanged.count(), 2); + QCOMPARE(sceneRectChanged.last().at(0).toRectF(), scene.sceneRect()); scene.setSceneRect(-100, -100, 10, 10); + QCOMPARE(sceneRectChanged.count(), 3); + QCOMPARE(sceneRectChanged.last().at(0).toRectF(), scene.sceneRect()); QCOMPARE(scene.itemAt(0, 0), item); QCOMPARE(scene.itemAt(10, 10), (QGraphicsItem *)0); QCOMPARE(scene.sceneRect(), QRectF(-100, -100, 10, 10)); + item->setPos(10, 10); + QCOMPARE(scene.sceneRect(), QRectF(-100, -100, 10, 10)); + QCOMPARE(sceneRectChanged.count(), 3); + QCOMPARE(sceneRectChanged.last().at(0).toRectF(), scene.sceneRect()); scene.setSceneRect(QRectF()); - QCOMPARE(scene.itemAt(0, 0), item); - QCOMPARE(scene.itemAt(10, 10), (QGraphicsItem *)0); - QCOMPARE(scene.sceneRect(), QRectF(-5, -5, 15, 15)); + QCOMPARE(scene.itemAt(10, 10), item); + QCOMPARE(scene.itemAt(20, 20), (QGraphicsItem *)0); + QCOMPARE(sceneRectChanged.count(), 4); + QCOMPARE(scene.sceneRect(), QRectF(-5, -5, 25, 25)); + QCOMPARE(sceneRectChanged.count(), 5); + QCOMPARE(sceneRectChanged.last().at(0).toRectF(), scene.sceneRect()); } void tst_QGraphicsScene::itemIndexMethod() @@ -379,8 +418,7 @@ void tst_QGraphicsScene::items() for (int x = minX; x < maxX; x += 100) items << scene.addRect(QRectF(0, 0, 10, 10)); } - - QCOMPARE(scene.items(), items); + QCOMPARE(scene.items().size(), items.size()); scene.itemAt(0, 0); // trigger indexing scene.removeItem(items.at(5)); @@ -395,6 +433,9 @@ void tst_QGraphicsScene::items() QGraphicsLineItem *l2 = scene.addLine(0, -5, 0, 5); QVERIFY(!l1->sceneBoundingRect().intersects(l2->sceneBoundingRect())); QVERIFY(!l2->sceneBoundingRect().intersects(l1->sceneBoundingRect())); + QList<QGraphicsItem *> items; + items<<l1<<l2; + QCOMPARE(scene.items().size(), items.size()); QVERIFY(scene.items(-1, -1, 2, 2).contains(l1)); QVERIFY(scene.items(-1, -1, 2, 2).contains(l2)); } @@ -1317,8 +1358,9 @@ void tst_QGraphicsScene::removeItem() scene.removeItem(hoverItem); hoverItem->setAcceptsHoverEvents(false); scene.addItem(hoverItem); - qApp->processEvents(); // update - qApp->processEvents(); // draw + qApp->processEvents(); // <- delayed update is called + qApp->processEvents(); // <- scene schedules pending update + qApp->processEvents(); // <- pending update is sent to view QVERIFY(!hoverItem->isHovered); } @@ -2712,6 +2754,7 @@ void tst_QGraphicsScene::update() QGraphicsRectItem *rect = new QGraphicsRectItem(0, 0, 100, 100); scene.addItem(rect); + qApp->processEvents(); rect->setPos(-100, -100); // This function forces indexing @@ -2720,8 +2763,8 @@ void tst_QGraphicsScene::update() qRegisterMetaType<QList<QRectF> >("QList<QRectF>"); QSignalSpy spy(&scene, SIGNAL(changed(QList<QRectF>))); - // When deleted, the item will lazy-remove itself - delete rect; + // We update the scene. + scene.update(); // This function forces a purge, which will post an update signal scene.itemAt(0, 0); @@ -2737,6 +2780,32 @@ void tst_QGraphicsScene::update() QCOMPARE(region, QRectF(-100, -100, 200, 200)); } +void tst_QGraphicsScene::update2() +{ + QGraphicsScene scene; + scene.setSceneRect(-200, -200, 200, 200); + CustomView view; + view.setScene(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(250); + view.repaints = 0; + + // Make sure QGraphicsScene::update only requires one event-loop iteration + // before the view is updated. + scene.update(); + qApp->processEvents(); + QCOMPARE(view.repaints, 1); + view.repaints = 0; + + // The same for partial scene updates. + scene.update(QRectF(-100, -100, 100, 100)); + qApp->processEvents(); + QCOMPARE(view.repaints, 1); +} + void tst_QGraphicsScene::views() { QGraphicsScene scene; @@ -3583,5 +3652,72 @@ void tst_QGraphicsScene::stickyFocus() QCOMPARE(text->hasFocus(), sticky); } +void tst_QGraphicsScene::sendEvent() +{ + QGraphicsScene scene; + QGraphicsTextItem *item = scene.addText(QString()); + EventSpy *spy = new EventSpy(&scene, item, QEvent::User); + QCOMPARE(spy->count(), 0); + QEvent event(QEvent::User); + scene.sendEvent(item, &event); + QCOMPARE(spy->count(), 1); +} + +void tst_QGraphicsScene::inputMethod_data() +{ + QTest::addColumn<int>("flags"); + QTest::addColumn<bool>("callFocusItem"); + QTest::newRow("0") << 0 << false; + QTest::newRow("1") << (int)QGraphicsItem::ItemAcceptsInputMethod << false; + QTest::newRow("2") << (int)QGraphicsItem::ItemIsFocusable << false; + QTest::newRow("3") << + (int)(QGraphicsItem::ItemAcceptsInputMethod|QGraphicsItem::ItemIsFocusable) << true; +} + +class InputMethodTester : public QGraphicsRectItem +{ + void inputMethodEvent(QInputMethodEvent *) { ++eventCalls; } + QVariant inputMethodQuery(Qt::InputMethodQuery) const { ++queryCalls; return QVariant(); } +public: + int eventCalls; + mutable int queryCalls; +}; + +void tst_QGraphicsScene::inputMethod() +{ + QFETCH(int, flags); + QFETCH(bool, callFocusItem); + + InputMethodTester *item = new InputMethodTester; + item->setFlags((QGraphicsItem::GraphicsItemFlags)flags); + + QGraphicsScene scene; + scene.addItem(item); + QInputMethodEvent event; + + scene.setFocusItem(item); + QCOMPARE(!!(item->flags() & QGraphicsItem::ItemIsFocusable), scene.focusItem() == item); + + item->eventCalls = 0; + qApp->sendEvent(&scene, &event); + QCOMPARE(item->eventCalls, callFocusItem ? 1 : 0); + + item->queryCalls = 0; + scene.inputMethodQuery((Qt::InputMethodQuery)0); + QCOMPARE(item->queryCalls, callFocusItem ? 1 : 0); + + scene.setFocusItem(0); + QCOMPARE(item->eventCalls, callFocusItem ? 2 : 0); // verify correct delivery of "reset" event + QCOMPARE(item->queryCalls, callFocusItem ? 1 : 0); // verify that value is unaffected + + item->eventCalls = 0; + qApp->sendEvent(&scene, &event); + QCOMPARE(item->eventCalls, 0); + + item->queryCalls = 0; + scene.inputMethodQuery((Qt::InputMethodQuery)0); + QCOMPARE(item->queryCalls, 0); +} + QTEST_MAIN(tst_QGraphicsScene) #include "tst_qgraphicsscene.moc" diff --git a/tests/auto/qgraphicssceneindex/qgraphicssceneindex.pro b/tests/auto/qgraphicssceneindex/qgraphicssceneindex.pro new file mode 100644 index 0000000..740a23e --- /dev/null +++ b/tests/auto/qgraphicssceneindex/qgraphicssceneindex.pro @@ -0,0 +1,3 @@ +load(qttest_p4) +SOURCES += tst_qgraphicssceneindex.cpp + diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp new file mode 100644 index 0000000..f825c16 --- /dev/null +++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> +#include <QtGui/qgraphicsscene.h> +#include <private/qgraphicsscenebsptreeindex_p.h> +#include <private/qgraphicssceneindex_p.h> +#include <private/qgraphicsscenelinearindex_p.h> + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QGraphicsSceneIndex : public QObject +{ + Q_OBJECT +public slots: + void initTestCase(); + +private slots: + void customIndex_data(); + void customIndex(); + void scatteredItems_data(); + void scatteredItems(); + void overlappedItems_data(); + void overlappedItems(); + void movingItems_data(); + void movingItems(); + void connectedToSceneRectChanged(); + void items(); + void clear(); + +private: + void common_data(); + QGraphicsSceneIndex *createIndex(const QString &name); +}; + +void tst_QGraphicsSceneIndex::initTestCase() +{ +} + +void tst_QGraphicsSceneIndex::common_data() +{ + QTest::addColumn<QString>("indexMethod"); + + QTest::newRow("BSP") << QString("bsp"); + QTest::newRow("Linear") << QString("linear"); +} + +QGraphicsSceneIndex *tst_QGraphicsSceneIndex::createIndex(const QString &indexMethod) +{ + QGraphicsSceneIndex *index = 0; + QGraphicsScene *scene = new QGraphicsScene(); + if (indexMethod == "bsp") + index = new QGraphicsSceneBspTreeIndex(scene); + + if (indexMethod == "linear") + index = new QGraphicsSceneLinearIndex(scene); + + return index; +} + +void tst_QGraphicsSceneIndex::customIndex_data() +{ + common_data(); +} + +void tst_QGraphicsSceneIndex::customIndex() +{ +#if 0 + QFETCH(QString, indexMethod); + QGraphicsSceneIndex *index = createIndex(indexMethod); + + QGraphicsScene scene; + scene.setSceneIndex(index); + + scene.addRect(0, 0, 30, 40); + QCOMPARE(scene.items(QRectF(0, 0, 10, 10)).count(), 1); +#endif +} + +void tst_QGraphicsSceneIndex::scatteredItems_data() +{ + common_data(); +} + +void tst_QGraphicsSceneIndex::scatteredItems() +{ + QFETCH(QString, indexMethod); + + QGraphicsScene scene; +#if 1 + scene.setItemIndexMethod(indexMethod == "linear" ? QGraphicsScene::NoIndex : QGraphicsScene::BspTreeIndex); +#else + QGraphicsSceneIndex *index = createIndex(indexMethod); + scene.setSceneIndex(index); +#endif + + for (int i = 0; i < 10; ++i) + scene.addRect(i*50, i*50, 40, 35); + + QCOMPARE(scene.items(QPointF(5, 5)).count(), 1); + QCOMPARE(scene.items(QPointF(55, 55)).count(), 1); + QCOMPARE(scene.items(QPointF(-100, -100)).count(), 0); + + QCOMPARE(scene.items(QRectF(0, 0, 10, 10)).count(), 1); + QCOMPARE(scene.items(QRectF(0, 0, 1000, 1000)).count(), 10); + QCOMPARE(scene.items(QRectF(-100, -1000, 0, 0)).count(), 0); +} + +void tst_QGraphicsSceneIndex::overlappedItems_data() +{ + common_data(); +} + +void tst_QGraphicsSceneIndex::overlappedItems() +{ + QFETCH(QString, indexMethod); + + QGraphicsScene scene; +#if 1 + scene.setItemIndexMethod(indexMethod == "linear" ? QGraphicsScene::NoIndex : QGraphicsScene::BspTreeIndex); +#else + QGraphicsSceneIndex *index = createIndex(indexMethod); + scene.setSceneIndex(index); +#endif + + for (int i = 0; i < 10; ++i) + for (int j = 0; j < 10; ++j) + scene.addRect(i*50, j*50, 200, 200); + + QCOMPARE(scene.items(QPointF(5, 5)).count(), 1); + QCOMPARE(scene.items(QPointF(55, 55)).count(), 4); + QCOMPARE(scene.items(QPointF(105, 105)).count(), 9); + QCOMPARE(scene.items(QPointF(-100, -100)).count(), 0); + + QCOMPARE(scene.items(QRectF(0, 0, 1000, 1000)).count(), 100); + QCOMPARE(scene.items(QRectF(-100, -1000, 0, 0)).count(), 0); + QCOMPARE(scene.items(QRectF(0, 0, 200, 200)).count(), 16); + QCOMPARE(scene.items(QRectF(0, 0, 100, 100)).count(), 4); + QCOMPARE(scene.items(QRectF(0, 0, 1, 100)).count(), 2); + QCOMPARE(scene.items(QRectF(0, 0, 1, 1000)).count(), 10); +} + +void tst_QGraphicsSceneIndex::movingItems_data() +{ + common_data(); +} + +void tst_QGraphicsSceneIndex::movingItems() +{ + QFETCH(QString, indexMethod); + + QGraphicsScene scene; +#if 1 + scene.setItemIndexMethod(indexMethod == "linear" ? QGraphicsScene::NoIndex : QGraphicsScene::BspTreeIndex); +#else + QGraphicsSceneIndex *index = createIndex(indexMethod); + scene.setSceneIndex(index); +#endif + + for (int i = 0; i < 10; ++i) + scene.addRect(i*50, i*50, 40, 35); + + QGraphicsRectItem *box = scene.addRect(0, 0, 10, 10); + QCOMPARE(scene.items(QPointF(5, 5)).count(), 2); + QCOMPARE(scene.items(QPointF(-1, -1)).count(), 0); + QCOMPARE(scene.items(QRectF(0, 0, 5, 5)).count(), 2); + + box->setPos(10, 10); + QCOMPARE(scene.items(QPointF(9, 9)).count(), 1); + QCOMPARE(scene.items(QPointF(15, 15)).count(), 2); + QCOMPARE(scene.items(QRectF(0, 0, 1, 1)).count(), 1); + + box->setPos(-5, -5); + QCOMPARE(scene.items(QPointF(-1, -1)).count(), 1); + QCOMPARE(scene.items(QRectF(0, 0, 1, 1)).count(), 2); + + QCOMPARE(scene.items(QRectF(0, 0, 1000, 1000)).count(), 11); +} + +void tst_QGraphicsSceneIndex::connectedToSceneRectChanged() +{ + + class MyScene : public QGraphicsScene + { public: using QGraphicsScene::receivers; }; + + MyScene scene; // Uses QGraphicsSceneBspTreeIndex by default. + QCOMPARE(scene.receivers(SIGNAL(sceneRectChanged(const QRectF&))), 1); + + scene.setItemIndexMethod(QGraphicsScene::NoIndex); // QGraphicsSceneLinearIndex + QCOMPARE(scene.receivers(SIGNAL(sceneRectChanged(const QRectF&))), 1); +} + +void tst_QGraphicsSceneIndex::items() +{ + QGraphicsScene scene; + QGraphicsItem *item1 = scene.addRect(0, 0, 10, 10); + QGraphicsItem *item2 = scene.addRect(10, 10, 10, 10); + QCOMPARE(scene.items().size(), 2); + + // Move from unindexed items into bsp tree. + QTest::qWait(50); + QCOMPARE(scene.items().size(), 2); + + // Add untransformable item. + QGraphicsItem *item3 = new QGraphicsRectItem(QRectF(20, 20, 10, 10)); + item3->setFlag(QGraphicsItem::ItemIgnoresTransformations); + scene.addItem(item3); + QCOMPARE(scene.items().size(), 3); + + // Move from unindexed items into untransformable items. + QTest::qWait(50); + QCOMPARE(scene.items().size(), 3); + + // Move from untransformable items into unindexed items. + item3->setFlag(QGraphicsItem::ItemIgnoresTransformations, false); + QCOMPARE(scene.items().size(), 3); + QTest::qWait(50); + QCOMPARE(scene.items().size(), 3); + + // Make all items untransformable. + item1->setFlag(QGraphicsItem::ItemIgnoresTransformations); + item2->setParentItem(item1); + item3->setParentItem(item2); + QCOMPARE(scene.items().size(), 3); + + // Move from unindexed items into untransformable items. + QTest::qWait(50); + QCOMPARE(scene.items().size(), 3); +} + +void tst_QGraphicsSceneIndex::clear() +{ + class MyItem : public QGraphicsItem + { + public: + MyItem(QGraphicsItem *parent = 0) : QGraphicsItem(parent), numPaints(0) {} + int numPaints; + protected: + QRectF boundingRect() const { return QRectF(0, 0, 10, 10); } + void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) + { ++numPaints; } + }; + + QGraphicsScene scene; + scene.setSceneRect(0, 0, 100, 100); + scene.addItem(new MyItem); + + QGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(250); + scene.clear(); + + // Make sure the index is re-generated after QGraphicsScene::clear(); + // otherwise no items will be painted. + MyItem *item = new MyItem; + scene.addItem(item); + qApp->processEvents(); + QCOMPARE(item->numPaints, 1); +} + +QTEST_MAIN(tst_QGraphicsSceneIndex) +#include "tst_qgraphicssceneindex.moc" diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 767f05e..37c5967 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -63,6 +63,8 @@ #include <QtGui/QBoxLayout> #include <QtGui/QStyle> #include <QtGui/QPushButton> +#include <QtGui/QInputContext> +#include <private/qgraphicsview_p.h> //TESTED_CLASS= //TESTED_FILES= @@ -72,6 +74,7 @@ Q_DECLARE_METATYPE(QList<QRectF>) Q_DECLARE_METATYPE(QMatrix) Q_DECLARE_METATYPE(QPainterPath) Q_DECLARE_METATYPE(QPointF) +Q_DECLARE_METATYPE(QPolygonF) Q_DECLARE_METATYPE(QRectF) Q_DECLARE_METATYPE(Qt::ScrollBarPolicy) @@ -159,6 +162,7 @@ private slots: void itemAt2(); void mapToScene(); void mapToScenePoint(); + void mapToSceneRect_data(); void mapToSceneRect(); void mapToScenePoly(); void mapToScenePath(); @@ -173,6 +177,7 @@ private slots: void transformationAnchor(); void resizeAnchor(); void viewportUpdateMode(); + void viewportUpdateMode2(); void acceptDrops(); void optimizationFlags(); void optimizationFlags_dontSavePainterState(); @@ -186,7 +191,17 @@ private slots: void embeddedViews(); void scrollAfterResize_data(); void scrollAfterResize(); + void moveItemWhileScrolling_data(); + void moveItemWhileScrolling(); void centerOnDirtyItem(); + void mouseTracking(); + void mouseTracking2(); + void render(); + void exposeRegion(); + void update_data(); + void update(); + void inputMethodSensitivity(); + void inputContextReset(); // task specific tests below me void task172231_untransformableItems(); @@ -363,6 +378,7 @@ void tst_QGraphicsView::interactive() QCOMPARE(item->events.size(), 0); QPoint itemPoint = view.mapFromScene(item->scenePos()); + QVERIFY(view.itemAt(itemPoint)); for (int i = 0; i < 100; ++i) { @@ -1612,23 +1628,51 @@ void tst_QGraphicsView::mapToScenePoint() view.mapToScene(center) + QPointF(0, -10)); } +void tst_QGraphicsView::mapToSceneRect_data() +{ + QTest::addColumn<QRect>("viewRect"); + QTest::addColumn<QPolygonF>("scenePoly"); + QTest::addColumn<qreal>("rotation"); + + QTest::newRow("nil") << QRect() << QPolygonF() << qreal(0); + QTest::newRow("0, 0, 1, 1") << QRect(0, 0, 1, 1) << QPolygonF(QRectF(0, 0, 1, 1)) << qreal(0); + QTest::newRow("0, 0, 10, 10") << QRect(0, 0, 10, 10) << QPolygonF(QRectF(0, 0, 10, 10)) << qreal(0); + QTest::newRow("nil") << QRect() << QPolygonF() << qreal(90); + QPolygonF p; + p << QPointF(0, 0) << QPointF(0, -1) << QPointF(1, -1) << QPointF(1, 0) << QPointF(0, 0); + QTest::newRow("0, 0, 1, 1") << QRect(0, 0, 1, 1) + << p + << qreal(90); + p.clear(); + p << QPointF(0, 0) << QPointF(0, -10) << QPointF(10, -10) << QPointF(10, 0) << QPointF(0, 0); + QTest::newRow("0, 0, 10, 10") << QRect(0, 0, 10, 10) + << p + << qreal(90); +} + void tst_QGraphicsView::mapToSceneRect() { - QGraphicsScene scene; + QFETCH(QRect, viewRect); + QFETCH(QPolygonF, scenePoly); + QFETCH(qreal, rotation); + + QGraphicsScene scene(-1000, -1000, 2000, 2000); + scene.addRect(25, -25, 50, 50); QGraphicsView view(&scene); - view.rotate(90); - view.setFixedSize(117, 117); + view.setFrameStyle(0); + view.setAlignment(Qt::AlignTop | Qt::AlignLeft); + view.setFixedSize(200, 200); + view.setTransformationAnchor(QGraphicsView::NoAnchor); + view.setResizeAnchor(QGraphicsView::NoAnchor); view.show(); - QPoint center = view.viewport()->rect().center(); - QRect rect(center + QPoint(10, 0), QSize(10, 10)); - QPolygonF poly; - poly << view.mapToScene(rect.topLeft()); - poly << view.mapToScene(rect.topRight()); - poly << view.mapToScene(rect.bottomRight()); - poly << view.mapToScene(rect.bottomLeft()); + view.rotate(rotation); - QCOMPARE(view.mapToScene(rect), poly); + QPolygonF poly = view.mapToScene(viewRect); + if (!poly.isEmpty()) + poly << poly[0]; + + QCOMPARE(poly, scenePoly); } void tst_QGraphicsView::mapToScenePoly() @@ -2070,12 +2114,12 @@ void tst_QGraphicsView::resizeAnchor() view.setResizeAnchor(QGraphicsView::AnchorViewCenter); } view.centerOn(0, 0); - QTest::qWait(100); + QTest::qWait(250); QPointF f = view.mapToScene(50, 50); QPointF center = view.mapToScene(view.viewport()->rect().center()); - QTest::qWait(100); + QTest::qWait(250); for (int size = 200; size <= 400; size += 25) { view.resize(size, size); @@ -2090,7 +2134,7 @@ void tst_QGraphicsView::resizeAnchor() QVERIFY(qAbs(newCenter.x() - center.x()) < slack); QVERIFY(qAbs(newCenter.y() - center.y()) < slack); } - QTest::qWait(100); + QTest::qWait(250); } } } @@ -2192,6 +2236,52 @@ void tst_QGraphicsView::viewportUpdateMode() QCOMPARE(view.lastUpdateRegions.size(), 0); } +void tst_QGraphicsView::viewportUpdateMode2() +{ + // Create a view with viewport rect equal to QRect(0, 0, 200, 200). + QGraphicsScene dummyScene; + CustomView view; + view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); + view.setScene(&dummyScene); + int left, top, right, bottom; + view.getContentsMargins(&left, &top, &right, &bottom); + view.resize(200 + left + right, 200 + top + bottom); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(300); + const QRect viewportRect = view.viewport()->rect(); + QCOMPARE(viewportRect, QRect(0, 0, 200, 200)); + QGraphicsViewPrivate *viewPrivate = static_cast<QGraphicsViewPrivate *>(qt_widget_private(&view)); + + QRect boundingRect; + const QRect rect1(0, 0, 10, 10); + QVERIFY(viewPrivate->updateRect(rect1)); + QVERIFY(!viewPrivate->fullUpdatePending); + boundingRect |= rect1; + QCOMPARE(viewPrivate->dirtyBoundingRect, boundingRect); + + const QRect rect2(50, 50, 10, 10); + QVERIFY(viewPrivate->updateRect(rect2)); + QVERIFY(!viewPrivate->fullUpdatePending); + boundingRect |= rect2; + QCOMPARE(viewPrivate->dirtyBoundingRect, boundingRect); + + const QRect rect3(190, 190, 10, 10); + QVERIFY(viewPrivate->updateRect(rect3)); + QVERIFY(viewPrivate->fullUpdatePending); + boundingRect |= rect3; + QCOMPARE(viewPrivate->dirtyBoundingRect, boundingRect); + + view.lastUpdateRegions.clear(); + viewPrivate->processPendingUpdates(); + QTest::qWait(50); + QCOMPARE(view.lastUpdateRegions.size(), 1); + // Note that we adjust by 2 for antialiasing. + QCOMPARE(view.lastUpdateRegions.at(0), QRegion(boundingRect.adjusted(-2, -2, 2, 2) & viewportRect)); +} + void tst_QGraphicsView::acceptDrops() { QGraphicsView view; @@ -2339,7 +2429,7 @@ public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *viewport) { - lastLod = option->levelOfDetail; + lastLod = option->levelOfDetailFromTransform(painter->worldTransform()); QGraphicsRectItem::paint(painter, option, viewport); } @@ -2493,6 +2583,8 @@ void tst_QGraphicsView::acceptMousePressEvent() scene.addRect(0, 0, 2000, 2000)->setFlag(QGraphicsItem::ItemIsMovable); + qApp->processEvents(); // ensure scene rect is updated + QApplication::sendEvent(view.viewport(), &event); QVERIFY(view.accepted); } @@ -2512,7 +2604,8 @@ void tst_QGraphicsView::replayMouseMove() // One mouse event should be translated into one scene event. for (int i = 0; i < 3; ++i) { - sendMouseMove(view.viewport(), view.viewport()->rect().center()); + sendMouseMove(view.viewport(), view.viewport()->rect().center(), + Qt::LeftButton, Qt::MouseButtons(Qt::LeftButton)); QCOMPARE(viewSpy.count(), i + 1); QCOMPARE(sceneSpy.count(), i + 1); } @@ -2702,6 +2795,7 @@ void tst_QGraphicsView::task186827_deleteReplayedItem() MouseMoveCounter view; view.setScene(&scene); view.show(); + view.viewport()->setMouseTracking(true); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&view); #endif @@ -2948,14 +3042,7 @@ void tst_QGraphicsView::embeddedViews() v2->QWidget::render(&actual); QTransform b = item->transform; -#ifdef Q_WS_MAC - // We don't use shared painter on the Mac, so the - // transform should be exactly the same. QVERIFY(a == b); -#else - QVERIFY(a != b); -#endif - delete v1; } @@ -3008,6 +3095,67 @@ void tst_QGraphicsView::scrollAfterResize() QCOMPARE(view.viewportTransform(), x3); } +void tst_QGraphicsView::moveItemWhileScrolling_data() +{ + QTest::addColumn<bool>("adjustForAntialiasing"); + + QTest::newRow("no adjust") << false; + QTest::newRow("adjust") << true; +} + +void tst_QGraphicsView::moveItemWhileScrolling() +{ + QFETCH(bool, adjustForAntialiasing); + + class MoveItemScrollView : public QGraphicsView + { + public: + MoveItemScrollView() + { + setScene(new QGraphicsScene(0, 0, 1000, 1000)); + rect = scene()->addRect(0, 0, 10, 10); + rect->setPos(50, 50); + } + QRegion lastPaintedRegion; + QGraphicsItem *rect; + protected: + void paintEvent(QPaintEvent *event) + { + lastPaintedRegion = event->region(); + QGraphicsView::paintEvent(event); + } + }; + + MoveItemScrollView view; + view.setFrameStyle(0); + view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.setResizeAnchor(QGraphicsView::NoAnchor); + view.setTransformationAnchor(QGraphicsView::NoAnchor); + if (!adjustForAntialiasing) + view.setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing); + view.show(); + view.resize(200, 200); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + + view.lastPaintedRegion = QRegion(); + view.horizontalScrollBar()->setValue(view.horizontalScrollBar()->value() + 10); + view.rect->moveBy(0, 10); + QTest::qWait(100); + + QRegion expectedRegion; + expectedRegion += QRect(0, 0, 200, 200); + expectedRegion -= QRect(0, 0, 190, 200); + int a = adjustForAntialiasing ? 2 : 1; + expectedRegion += QRect(40, 50, 10, 10).adjusted(-a, -a, a, a); + expectedRegion += QRect(40, 60, 10, 10).adjusted(-a, -a, a, a); + + QCOMPARE(view.lastPaintedRegion, expectedRegion); +} + void tst_QGraphicsView::centerOnDirtyItem() { QGraphicsView view; @@ -3045,6 +3193,402 @@ void tst_QGraphicsView::centerOnDirtyItem() QCOMPARE(before, after); } +void tst_QGraphicsView::mouseTracking() +{ + // Mouse tracking should only be automatically enabled if items either accept hover events + // or have a cursor set. We never disable mouse tracking if it is already enabled. + + { // Make sure mouse tracking is disabled by default. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsView view(&scene); + QVERIFY(!view.viewport()->hasMouseTracking()); + } + + { // Make sure we don't disable mouse tracking in setupViewport/setScene. + QGraphicsView view; + QWidget *viewport = new QWidget; + viewport->setMouseTracking(true); + view.setViewport(viewport); + QVERIFY(viewport->hasMouseTracking()); + + QGraphicsScene scene(-10000, -10000, 20000, 20000); + view.setScene(&scene); + QVERIFY(viewport->hasMouseTracking()); + } + + // Make sure we enable mouse tracking when having items that accept hover events. + { + // Adding an item to the scene after the scene is set on the view. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsView view(&scene); + + QGraphicsRectItem *item = new QGraphicsRectItem(10, 10, 10, 10); + item->setAcceptHoverEvents(true); + scene.addItem(item); + QVERIFY(view.viewport()->hasMouseTracking()); + } + { + // Adding an item to the scene before the scene is set on the view. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsRectItem *item = new QGraphicsRectItem(10, 10, 10, 10); + item->setAcceptHoverEvents(true); + scene.addItem(item); + + QGraphicsView view(&scene); + QVERIFY(view.viewport()->hasMouseTracking()); + } + { + // QGraphicsWidget implicitly accepts hover if it has window decoration. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsView view(&scene); + + QGraphicsWidget *widget = new QGraphicsWidget; + scene.addItem(widget); + QVERIFY(!view.viewport()->hasMouseTracking()); + // Enable window decoraton. + widget->setWindowFlags(Qt::Window | Qt::WindowTitleHint); + QVERIFY(view.viewport()->hasMouseTracking()); + } + + // Make sure we enable mouse tracking when having items with a cursor set. + { + // Adding an item to the scene after the scene is set on the view. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsView view(&scene); + + QGraphicsRectItem *item = new QGraphicsRectItem(10, 10, 10, 10); + item->setCursor(Qt::CrossCursor); + scene.addItem(item); + QVERIFY(view.viewport()->hasMouseTracking()); + } + { + // Adding an item to the scene before the scene is set on the view. + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsRectItem *item = new QGraphicsRectItem(10, 10, 10, 10); + item->setCursor(Qt::CrossCursor); + scene.addItem(item); + + QGraphicsView view(&scene); + QVERIFY(view.viewport()->hasMouseTracking()); + } + + // Make sure we propagate mouse tracking to all views. + { + QGraphicsScene scene(-10000, -10000, 20000, 20000); + QGraphicsView view1(&scene); + QGraphicsView view2(&scene); + QGraphicsView view3(&scene); + + QGraphicsRectItem *item = new QGraphicsRectItem(10, 10, 10, 10); + item->setCursor(Qt::CrossCursor); + scene.addItem(item); + + QVERIFY(view1.viewport()->hasMouseTracking()); + QVERIFY(view2.viewport()->hasMouseTracking()); + QVERIFY(view3.viewport()->hasMouseTracking()); + } +} + +void tst_QGraphicsView::mouseTracking2() +{ + // Make sure mouse move events propagates to the scene when + // mouse tracking is explicitly enabled on the view, + // even when all items ignore hover events / use default cursor. + + QGraphicsScene scene; + scene.addRect(0, 0, 100, 100); + + QGraphicsView view(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + + QVERIFY(!view.viewport()->hasMouseTracking()); + view.viewport()->setMouseTracking(true); // Explicitly enable mouse tracking. + QVERIFY(view.viewport()->hasMouseTracking()); + + EventSpy spy(&scene, QEvent::GraphicsSceneMouseMove); + QCOMPARE(spy.count(), 0); + QMouseEvent event(QEvent::MouseMove,view.viewport()->rect().center(), Qt::NoButton, + Qt::MouseButtons(Qt::NoButton), 0); + QApplication::sendEvent(view.viewport(), &event); + QCOMPARE(spy.count(), 1); +} + +class RenderTester : public QGraphicsRectItem +{ +public: + RenderTester(const QRectF &rect) + : QGraphicsRectItem(rect), paints(0) + { } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget) + { + QGraphicsRectItem::paint(painter, option, widget); + ++paints; + } + + int paints; +}; + +void tst_QGraphicsView::render() +{ + // ### This test can be much more thorough - see QGraphicsScene::render. + QGraphicsScene scene; + QGraphicsView view(&scene); + view.setFrameStyle(0); + view.resize(200, 200); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(200); + + RenderTester *r1 = new RenderTester(QRectF(0, 0, 50, 50)); + RenderTester *r2 = new RenderTester(QRectF(50, 50, 50, 50)); + RenderTester *r3 = new RenderTester(QRectF(0, 50, 50, 50)); + RenderTester *r4 = new RenderTester(QRectF(50, 0, 50, 50)); + scene.addItem(r1); + scene.addItem(r2); + scene.addItem(r3); + scene.addItem(r4); + + qApp->processEvents(); + + QCOMPARE(r1->paints, 1); + QCOMPARE(r2->paints, 1); + QCOMPARE(r3->paints, 1); + QCOMPARE(r4->paints, 1); + + QPixmap pix(200, 200); + pix.fill(Qt::transparent); + QPainter painter(&pix); + view.render(&painter); + painter.end(); + + QCOMPARE(r1->paints, 2); + QCOMPARE(r2->paints, 2); + QCOMPARE(r3->paints, 2); + QCOMPARE(r4->paints, 2); +} + +void tst_QGraphicsView::exposeRegion() +{ + RenderTester *item = new RenderTester(QRectF(0, 0, 20, 20)); + QGraphicsScene scene; + scene.addItem(item); + + CustomView view; + view.setScene(&scene); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(125); + + item->paints = 0; + view.lastUpdateRegions.clear(); + + // Update a small area in the viewport's topLeft() and bottomRight(). + // (the boundingRect() of this area covers the entire viewport). + QWidget *viewport = view.viewport(); + QRegion expectedExposeRegion = QRect(0, 0, 5, 5); + expectedExposeRegion += QRect(viewport->rect().bottomRight() - QPoint(5, 5), QSize(5, 5)); + viewport->update(expectedExposeRegion); + qApp->processEvents(); + + // Make sure it triggers correct repaint on the view. + QCOMPARE(view.lastUpdateRegions.size(), 1); + QCOMPARE(view.lastUpdateRegions.at(0), expectedExposeRegion); + + // Make sure the item didn't get any repaints. + QCOMPARE(item->paints, 0); +} + +void tst_QGraphicsView::update_data() +{ + // In view.viewport() coordinates. (viewport rect: QRect(0, 0, 200, 200)) + QTest::addColumn<QRect>("updateRect"); + QTest::newRow("empty") << QRect(); + QTest::newRow("outside left") << QRect(-200, 0, 100, 100); + QTest::newRow("outside right") << QRect(400, 0 ,100, 100); + QTest::newRow("outside top") << QRect(0, -200, 100, 100); + QTest::newRow("outside bottom") << QRect(0, 400, 100, 100); + QTest::newRow("partially inside left") << QRect(-50, 0, 100, 100); + QTest::newRow("partially inside right") << QRect(-150, 0, 100, 100); + QTest::newRow("partially inside top") << QRect(0, -150, 100, 100); + QTest::newRow("partially inside bottom") << QRect(0, 150, 100, 100); + QTest::newRow("on topLeft edge") << QRect(-100, -100, 100, 100); + QTest::newRow("on topRight edge") << QRect(200, -100, 100, 100); + QTest::newRow("on bottomRight edge") << QRect(200, 200, 100, 100); + QTest::newRow("on bottomLeft edge") << QRect(-200, 200, 100, 100); + QTest::newRow("inside topLeft") << QRect(-99, -99, 100, 100); + QTest::newRow("inside topRight") << QRect(199, -99, 100, 100); + QTest::newRow("inside bottomRight") << QRect(199, 199, 100, 100); + QTest::newRow("inside bottomLeft") << QRect(-199, 199, 100, 100); + QTest::newRow("large1") << QRect(50, -100, 100, 400); + QTest::newRow("large2") << QRect(-100, 50, 400, 100); + QTest::newRow("large3") << QRect(-100, -100, 400, 400); + QTest::newRow("viewport rect") << QRect(0, 0, 200, 200); +} + +void tst_QGraphicsView::update() +{ + QFETCH(QRect, updateRect); + + // Create a view with viewport rect equal to QRect(0, 0, 200, 200). + QGraphicsScene dummyScene; + CustomView view; + view.setScene(&dummyScene); + int left, top, right, bottom; + view.getContentsMargins(&left, &top, &right, &bottom); + view.resize(200 + left + right, 200 + top + bottom); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(300); + const QRect viewportRect = view.viewport()->rect(); + QCOMPARE(viewportRect, QRect(0, 0, 200, 200)); + + const bool intersects = updateRect.intersects(viewportRect); + QGraphicsViewPrivate *viewPrivate = static_cast<QGraphicsViewPrivate *>(qt_widget_private(&view)); + QCOMPARE(viewPrivate->updateRect(updateRect), intersects); + QCOMPARE(viewPrivate->updateRegion(updateRect), intersects); + + view.lastUpdateRegions.clear(); + viewPrivate->processPendingUpdates(); + QVERIFY(viewPrivate->dirtyRegion.isEmpty()); + QVERIFY(viewPrivate->dirtyBoundingRect.isEmpty()); + QTest::qWait(50); + if (!intersects) { + QVERIFY(view.lastUpdateRegions.isEmpty()); + } else { + QCOMPARE(view.lastUpdateRegions.size(), 1); + // Note that we adjust by 2 for antialiasing. + QCOMPARE(view.lastUpdateRegions.at(0), QRegion(updateRect.adjusted(-2, -2, 2, 2) & viewportRect)); + } + QVERIFY(!viewPrivate->fullUpdatePending); +} + +void tst_QGraphicsView::inputMethodSensitivity() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + + QGraphicsRectItem *item = new QGraphicsRectItem; + + view.setAttribute(Qt::WA_InputMethodEnabled, true); + + scene.addItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.removeItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + item->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + scene.addItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.removeItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.addItem(item); + scene.setFocusItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.removeItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + item->setFlag(QGraphicsItem::ItemIsFocusable); + scene.addItem(item); + scene.setFocusItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), true); + + item->setFlag(QGraphicsItem::ItemAcceptsInputMethod, false); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + item->setFlag(QGraphicsItem::ItemAcceptsInputMethod, true); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), true); + + // introduce another item that is focusable but does not accept input methods + QGraphicsRectItem *item2 = new QGraphicsRectItem; + item2->setFlag(QGraphicsItem::ItemIsFocusable); + scene.addItem(item2); + scene.setFocusItem(item2); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.setFocusItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), true); + + view.setScene(0); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + view.setScene(&scene); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), true); + + scene.setFocusItem(item2); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + view.setScene(0); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + scene.setFocusItem(item); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), false); + + view.setScene(&scene); + QCOMPARE(view.testAttribute(Qt::WA_InputMethodEnabled), true); +} + +class InputContextTester : public QInputContext +{ + QString identifierName() { return QString(); } + bool isComposing() const { return false; } + QString language() { return QString(); } + void reset() { ++resets; } +public: + int resets; +}; + +void tst_QGraphicsView::inputContextReset() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + + InputContextTester inputContext; + view.setInputContext(&inputContext); + + QGraphicsItem *item1 = new QGraphicsRectItem; + item1->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemAcceptsInputMethod); + + inputContext.resets = 0; + scene.addItem(item1); + QCOMPARE(inputContext.resets, 0); + + inputContext.resets = 0; + scene.setFocusItem(item1); + QCOMPARE(inputContext.resets, 0); + + inputContext.resets = 0; + scene.setFocusItem(0); + QCOMPARE(inputContext.resets, 1); + + // introduce another item that is focusable but does not accept input methods + QGraphicsItem *item2 = new QGraphicsRectItem; + item1->setFlags(QGraphicsItem::ItemIsFocusable); + + inputContext.resets = 0; + scene.setFocusItem(item2); + QCOMPARE(inputContext.resets, 0); + + inputContext.resets = 0; + scene.setFocusItem(item1); + QCOMPARE(inputContext.resets, 0); +} + void tst_QGraphicsView::task253415_reconnectUpdateSceneOnSceneChanged() { QGraphicsView view; diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp index 41dc779..78d13d3 100644 --- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp +++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp @@ -148,7 +148,14 @@ private slots: void setSizes(); void closePopupOnOutsideClick(); void defaultSize(); + void explicitMouseGrabber(); + void implicitMouseGrabber(); + void doubleClickAfterExplicitMouseGrab(); + void popupMouseGrabber(); + void windowFlags_data(); + void windowFlags(); void shortcutsDeletion(); + void painterStateProtectionOnWindowFrame(); // Task fixes void task236127_bspTreeIndexFails(); @@ -1736,6 +1743,10 @@ void tst_QGraphicsWidget::task236127_bspTreeIndexFails() widget->resize(10, 10); widget2->resize(10, 10); widget2->setZValue(1); + QCOMPARE(widget2->zValue(), qreal(1)); + QCOMPARE(widget->zValue(), qreal(0)); + widget->setData(0, "widget"); + widget2->setData(0, "widget2"); QGraphicsScene scene; scene.addItem(widget); @@ -1746,7 +1757,7 @@ void tst_QGraphicsWidget::task236127_bspTreeIndexFails() #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&view); #endif - QTest::qWait(50); + QTest::qWait(100); QVERIFY(!scene.itemAt(25, 25)); widget->setGeometry(0, 112, 360, 528); @@ -1784,6 +1795,480 @@ void tst_QGraphicsWidget::defaultSize() } +void tst_QGraphicsWidget::explicitMouseGrabber() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse); + EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse); + + // Grab without scene + QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::grabMouse: cannot grab mouse without scene"); + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 0); + QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::ungrabMouse: cannot ungrab mouse without scene"); + widget->ungrabMouse(); + QCOMPARE(widgetUngrabEventSpy.count(), 0); + + // Add to scene + QGraphicsScene scene; + scene.addItem(widget); + + // Ungrab while not grabber + QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::ungrabMouse: not a mouse grabber"); + widget->ungrabMouse(); + + // Simple grab with scene + QVERIFY(!scene.mouseGrabberItem()); + widget->grabMouse(); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 1); + widget->ungrabMouse(); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + QCOMPARE(widgetUngrabEventSpy.count(), 1); + + // Grab while grabbing + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 2); + QTest::ignoreMessage(QtWarningMsg, "QGraphicsItem::grabMouse: already a mouse grabber"); + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 2); + QCOMPARE(widgetUngrabEventSpy.count(), 1); + widget->ungrabMouse(); + QCOMPARE(widgetUngrabEventSpy.count(), 2); + + // Add two more widgets to the scene + QGraphicsWidget *widget2 = new QGraphicsWidget; + scene.addItem(widget2); + EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse); + EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse); + QGraphicsWidget *widget3 = new QGraphicsWidget; + scene.addItem(widget3); + EventSpy widget3GrabEventSpy(widget3, QEvent::GrabMouse); + EventSpy widget3UngrabEventSpy(widget3, QEvent::UngrabMouse); + + widget->setData(0, "widget"); + widget2->setData(0, "widget2"); + widget3->setData(0, "widget3"); + + // Simple nested grabbing + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 3); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + widget2->grabMouse(); + QCOMPARE(widgetUngrabEventSpy.count(), 3); + QCOMPARE(widget2GrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + widget3->grabMouse(); + QCOMPARE(widget2UngrabEventSpy.count(), 1); + QCOMPARE(widget3GrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3); + widget3->ungrabMouse(); + QCOMPARE(widget3UngrabEventSpy.count(), 1); + QCOMPARE(widget2GrabEventSpy.count(), 2); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + widget2->ungrabMouse(); + QCOMPARE(widget2UngrabEventSpy.count(), 2); + QCOMPARE(widgetGrabEventSpy.count(), 4); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + widget->ungrabMouse(); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + + // Out of order ungrab + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 5); + widget2->grabMouse(); + QCOMPARE(widget2GrabEventSpy.count(), 3); + widget3->grabMouse(); + QCOMPARE(widget3GrabEventSpy.count(), 2); + widget2->ungrabMouse(); + QCOMPARE(widget3UngrabEventSpy.count(), 2); + QCOMPARE(widget2UngrabEventSpy.count(), 4); + QCOMPARE(widgetGrabEventSpy.count(), 6); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); +} + +void tst_QGraphicsWidget::implicitMouseGrabber() +{ + QGraphicsScene scene; + QGraphicsWidget *widget = new QGraphicsWidget; + widget->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse + widget->resize(200, 200); + EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse); + EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse); + scene.addItem(widget); + + QVERIFY(!scene.mouseGrabberItem()); + + // Click on an item, see if gain and lose implicit mouse grab. + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 1); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + QCOMPARE(widgetGrabEventSpy.count(), 1); + QCOMPARE(widgetUngrabEventSpy.count(), 1); + + // Click on an item that already grabs the mouse. Shouldn't have any effect. + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 2); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 2); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 2); + QCOMPARE(widgetUngrabEventSpy.count(), 1); + widget->ungrabMouse(); + QCOMPARE(widgetUngrabEventSpy.count(), 2); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + + // Implicit mouse grabber tries to explicitly grab the mouse + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 3); + widget->grabMouse(); + QCOMPARE(widgetUngrabEventSpy.count(), 2); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 3); + QCOMPARE(widgetUngrabEventSpy.count(), 2); + widget->ungrabMouse(); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + QCOMPARE(widgetGrabEventSpy.count(), 3); + QCOMPARE(widgetUngrabEventSpy.count(), 3); + + // Arrival of a new widget + QGraphicsWidget *widget2 = new QGraphicsWidget; + widget2->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse + widget2->resize(200, 200); + widget2->setPos(205, 0); + EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse); + EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse); + scene.addItem(widget2); + + // Implicit grab while there's an explicit grab is not possible. + widget->grabMouse(); + QCOMPARE(widgetGrabEventSpy.count(), 4); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(250, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + QCOMPARE(widgetGrabEventSpy.count(), 4); + QCOMPARE(widget2GrabEventSpy.count(), 0); + QCOMPARE(widget2UngrabEventSpy.count(), 0); + + scene.removeItem(widget); + QCOMPARE(widgetUngrabEventSpy.count(), 4); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); +} + +class GrabOnPressItem : public QGraphicsRectItem +{ +public: + GrabOnPressItem(const QRectF &rect) + : QGraphicsRectItem(rect), + npress(0), nrelease(0), ndoubleClick(0), + ngrab(0), nungrab(0) + { + } + int npress; + int nrelease; + int ndoubleClick; + int ngrab; + int nungrab; +protected: + bool sceneEvent(QEvent *event) + { + switch (event->type()) { + case QEvent::GrabMouse: + ++ngrab; + break; + case QEvent::UngrabMouse: + ++nungrab; + break; + default: + break; + } + return QGraphicsRectItem::sceneEvent(event); + } + + void mousePressEvent(QGraphicsSceneMouseEvent *) + { + grabMouse(); + ++npress; + } + void mouseReleaseEvent(QGraphicsSceneMouseEvent *) + { + ungrabMouse(); + ++nrelease; + } + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *) + { + ++ndoubleClick; + } +}; + +void tst_QGraphicsWidget::doubleClickAfterExplicitMouseGrab() +{ + QGraphicsScene scene; + GrabOnPressItem *item = new GrabOnPressItem(QRectF(0, 0, 100, 100)); + scene.addItem(item); + + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.setButton(Qt::LeftButton); + event.setButtons(Qt::LeftButton); + event.ignore(); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)item); + QCOMPARE(item->npress, 1); + QCOMPARE(item->ngrab, 1); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); + event.setButton(Qt::LeftButton); + event.setButtons(0); + event.ignore(); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + QCOMPARE(item->nrelease, 1); + QCOMPARE(item->nungrab, 1); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseDoubleClick); + event.setButton(Qt::LeftButton); + event.setButtons(Qt::LeftButton); + event.ignore(); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)item); + QCOMPARE(item->ndoubleClick, 1); + QCOMPARE(item->ngrab, 2); + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); + event.setButton(Qt::LeftButton); + event.setButtons(0); + event.ignore(); + event.setScenePos(QPointF(50, 50)); + qApp->sendEvent(&scene, &event); + } + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + QCOMPARE(item->nrelease, 2); + QCOMPARE(item->nungrab, 2); +} + +void tst_QGraphicsWidget::popupMouseGrabber() +{ + QGraphicsScene scene; + QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Popup); + widget->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse + widget->resize(200, 200); + EventSpy widgetGrabEventSpy(widget, QEvent::GrabMouse); + EventSpy widgetUngrabEventSpy(widget, QEvent::UngrabMouse); + + // Simply adding a visible popup to the scene immediately grabs the mouse. + scene.addItem(widget); + QCOMPARE(widgetGrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + + // Hiding it loses the grab again. + widget->hide(); + QCOMPARE(widgetUngrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)0); + + // Showing it grabs the mosue again + widget->show(); + QCOMPARE(widgetGrabEventSpy.count(), 2); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget); + + // Add two popups + QGraphicsWidget *widget2 = new QGraphicsWidget(0, Qt::Popup); + widget2->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse + widget2->resize(200, 200); + EventSpy widget2GrabEventSpy(widget2, QEvent::GrabMouse); + EventSpy widget2UngrabEventSpy(widget2, QEvent::UngrabMouse); + QGraphicsWidget *widget3 = new QGraphicsWidget(0, Qt::Popup); + widget3->setFlag(QGraphicsItem::ItemIsMovable); // can grab mouse + widget3->resize(200, 200); + EventSpy widget3GrabEventSpy(widget3, QEvent::GrabMouse); + EventSpy widget3UngrabEventSpy(widget3, QEvent::UngrabMouse); + + // Adding to the scene grabs + scene.addItem(widget2); + QCOMPARE(widgetUngrabEventSpy.count(), 2); + QCOMPARE(widget2GrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + + // Adding to the scene grabs again + scene.addItem(widget3); + QCOMPARE(widget2UngrabEventSpy.count(), 1); + QCOMPARE(widget3GrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3); + + // Hiding the topmost widget causes widget 2 to regain grab. + widget3->hide(); + QCOMPARE(widget2GrabEventSpy.count(), 2); + QCOMPARE(widget3UngrabEventSpy.count(), 1); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + widget3->show(); + QCOMPARE(widget2UngrabEventSpy.count(), 2); + QCOMPARE(widget3GrabEventSpy.count(), 2); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3); + + // Clicking outside the popup still causes it to close (despite that it's + // an explicit mouse grabber). + { + QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); + event.ignore(); + event.setButton(Qt::LeftButton); + event.setScenePos(QPointF(500, 500)); // outside + qApp->sendEvent(&scene, &event); + } + QVERIFY(!widget3->isVisible()); + QCOMPARE(widget3UngrabEventSpy.count(), 2); + QCOMPARE(widget2GrabEventSpy.count(), 3); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + QVERIFY(widget2->isVisible()); + QVERIFY(widget->isVisible()); + widget3->show(); + QCOMPARE(widget3GrabEventSpy.count(), 3); + QCOMPARE(widget2UngrabEventSpy.count(), 3); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3); + + // This is something of a curiosity. What happens if you call + // ungrabMouse() on a popup? The answer is - it loses the grab. If you + // hide and show the popup again, it will regain the grab. + widget3->ungrabMouse(); + QCOMPARE(widget3UngrabEventSpy.count(), 3); + QCOMPARE(widget2GrabEventSpy.count(), 4); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget2); + widget3->hide(); + widget3->show(); + QCOMPARE(widget3GrabEventSpy.count(), 4); + QCOMPARE(widget2UngrabEventSpy.count(), 4); + QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)widget3); +} + +void tst_QGraphicsWidget::windowFlags_data() +{ + QTest::addColumn<int>("inputFlags"); + QTest::addColumn<int>("outputFlags"); + + QTest::newRow("nil") << 0 << 0; + + // Window types + QTest::newRow("Qt::Window") << int(Qt::Window) + << int(Qt::Window | Qt::WindowTitleHint | Qt::WindowSystemMenuHint + | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint); + QTest::newRow("Qt::SubWindow") << int(Qt::SubWindow) + << int(Qt::SubWindow | Qt::WindowTitleHint | Qt::WindowSystemMenuHint + | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint); + QTest::newRow("Qt::Dialog") << int(Qt::Dialog) + << int(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowSystemMenuHint + | Qt::WindowContextHelpButtonHint); + QTest::newRow("Qt::Sheet") << int(Qt::Sheet) + << int(Qt::Sheet | Qt::WindowTitleHint | Qt::WindowSystemMenuHint + | Qt::WindowContextHelpButtonHint); + QTest::newRow("Qt::Tool") << int(Qt::Tool) + << int(Qt::Tool | Qt::WindowTitleHint | Qt::WindowSystemMenuHint); + + // Custom window flags + QTest::newRow("Qt::FramelessWindowHint") << int(Qt::FramelessWindowHint) + << int(Qt::FramelessWindowHint); + QTest::newRow("Qt::CustomizeWindowHint") << int(Qt::CustomizeWindowHint) + << int(Qt::CustomizeWindowHint); +} + +void tst_QGraphicsWidget::windowFlags() +{ + QFETCH(int, inputFlags); + QFETCH(int, outputFlags); + + // Construct with flags set already + QGraphicsWidget widget(0, Qt::WindowFlags(inputFlags)); + QCOMPARE(widget.windowFlags(), Qt::WindowFlags(outputFlags)); + + // Set flags after construction + QGraphicsWidget widget2; + widget2.setWindowFlags(Qt::WindowFlags(inputFlags)); + QCOMPARE(widget2.windowFlags(), Qt::WindowFlags(outputFlags)); + + // Reset flags + widget2.setWindowFlags(0); + QVERIFY(!widget2.windowFlags()); + + // Set flags back again + widget2.setWindowFlags(Qt::WindowFlags(inputFlags)); + QCOMPARE(widget2.windowFlags(), Qt::WindowFlags(outputFlags)); + + // Construct with custom flags set already + QGraphicsWidget widget3(0, Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + QCOMPARE(widget3.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + + // Set custom flags after construction + QGraphicsWidget widget4; + widget4.setWindowFlags(Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + QCOMPARE(widget4.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + + // Reset flags + widget4.setWindowFlags(0); + QVERIFY(!widget4.windowFlags()); + + // Set custom flags back again + widget4.setWindowFlags(Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + QCOMPARE(widget4.windowFlags(), Qt::WindowFlags(inputFlags | Qt::FramelessWindowHint)); + + QGraphicsWidget *widget5 = new QGraphicsWidget; + widget5->setWindowFlags(Qt::WindowFlags(inputFlags)); + QCOMPARE(widget5->windowFlags(), Qt::WindowFlags(outputFlags)); + QGraphicsWidget window(0, Qt::Window); + widget5->setParentItem(&window); + QCOMPARE(widget5->windowFlags(), Qt::WindowFlags(outputFlags)); +} + void tst_QGraphicsWidget::shortcutsDeletion() { QGraphicsWidget *widget = new QGraphicsWidget; @@ -1798,6 +2283,41 @@ void tst_QGraphicsWidget::shortcutsDeletion() delete widget; } +class MessUpPainterWidget : public QGraphicsWidget +{ +public: + MessUpPainterWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0) + : QGraphicsWidget(parent, wFlags) + {} + + void paintWindowFrame(QPainter * painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + QCOMPARE(painter->opacity(), 1.0); + painter->setOpacity(0.0); + QGraphicsWidget::paintWindowFrame(painter, option, widget); + } + void paint(QPainter * painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + QCOMPARE(painter->opacity(), 1.0); + painter->drawRect(0, 0, 100, 100); + QGraphicsWidget::paint(painter, option, widget); + } + +}; + +void tst_QGraphicsWidget::painterStateProtectionOnWindowFrame() +{ + MessUpPainterWidget *widget = new MessUpPainterWidget(0, Qt::Window); + QGraphicsScene scene(0, 0, 300, 300); + QGraphicsView view(&scene); + scene.addItem(widget); + view.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(500); +} + class ProxyStyle : public QCommonStyle { public: diff --git a/tests/auto/qgroupbox/tst_qgroupbox.cpp b/tests/auto/qgroupbox/tst_qgroupbox.cpp index 2fa553f..3b94851 100644 --- a/tests/auto/qgroupbox/tst_qgroupbox.cpp +++ b/tests/auto/qgroupbox/tst_qgroupbox.cpp @@ -80,6 +80,7 @@ private slots: void clicked(); void toggledVsClicked(); void childrenAreDisabled(); + void propagateFocus(); private: bool checked; @@ -459,5 +460,15 @@ void tst_QGroupBox::childrenAreDisabled() } } +void tst_QGroupBox::propagateFocus() +{ + QGroupBox box; + QLineEdit lineEdit(&box); + box.show(); + box.setFocus(); + QTest::qWait(250); + QCOMPARE(qApp->focusWidget(), &lineEdit); +} + QTEST_MAIN(tst_QGroupBox) #include "tst_qgroupbox.moc" diff --git a/tests/auto/qhelpgenerator/data/test.qhp b/tests/auto/qhelpgenerator/data/test.qhp index e9ac7f2..a97c00d 100644 --- a/tests/auto/qhelpgenerator/data/test.qhp +++ b/tests/auto/qhelpgenerator/data/test.qhp @@ -38,9 +38,8 @@ </keywords> <files> <file>classic.css</file> - <file>test.html</file> - <file>people.html</file> - <file>./sub/about.html</file> + <file>[pt]*.html</file> + <file>./sub/abou?.html</file> </files> </filterSection> <filterSection> @@ -69,4 +68,4 @@ <file>cars.html</file> </files> </filterSection> -</QtHelpProject>
\ No newline at end of file +</QtHelpProject> diff --git a/tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro b/tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro index bc750c5..e19d962 100644 --- a/tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro +++ b/tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro @@ -1,4 +1,7 @@ load(qttest_p4) SOURCES += tst_qhttpnetworkconnection.cpp +INCLUDEPATH += $$(QTDIR)/src/3rdparty/zlib + +requires(contains(QT_CONFIG,private_tests)) QT = core network diff --git a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp index 661cd22..aa0705d 100644 --- a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp +++ b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp @@ -42,6 +42,7 @@ #include <QtTest/QtTest> #include "private/qhttpnetworkconnection_p.h" +#include "private/qnoncontiguousbytedevice_p.h" #include <QAuthenticator> #include "../network-settings.h" @@ -243,8 +244,8 @@ void tst_QHttpNetworkConnection::get() QByteArray ba; do { QCoreApplication::instance()->processEvents(); - if (reply->bytesAvailable()) - ba += reply->read(); + while (reply->bytesAvailable()) + ba += reply->readAny(); if (stopWatch.elapsed() >= 30000) break; } while (!reply->isFinished()); @@ -303,8 +304,8 @@ void tst_QHttpNetworkConnection::put() QHttpNetworkRequest request(protocol + host + path, QHttpNetworkRequest::Put); QByteArray array = data.toLatin1(); - QBuffer buffer(&array); - request.setData(&buffer); + QNonContiguousByteDevice *bd = QNonContiguousByteDeviceFactory::create(&array); + request.setUploadByteDevice(bd); finishedCalled = false; finishedWithErrorCalled = false; @@ -326,7 +327,8 @@ void tst_QHttpNetworkConnection::put() if (reply->isFinished()) { QByteArray ba; - ba += reply->read(); + while (reply->bytesAvailable()) + ba += reply->readAny(); } else if(finishedWithErrorCalled) { if(!succeed) { delete reply; @@ -393,8 +395,8 @@ void tst_QHttpNetworkConnection::post() QHttpNetworkRequest request(protocol + host + path, QHttpNetworkRequest::Post); QByteArray array = data.toLatin1(); - QBuffer buffer(&array); - request.setData(&buffer); + QNonContiguousByteDevice *bd = QNonContiguousByteDeviceFactory::create(&array); + request.setUploadByteDevice(bd); QHttpNetworkReply *reply = connection.sendRequest(request); @@ -416,8 +418,8 @@ void tst_QHttpNetworkConnection::post() QByteArray ba; do { QCoreApplication::instance()->processEvents(); - if (reply->bytesAvailable()) - ba += reply->read(); + while (reply->bytesAvailable()) + ba += reply->readAny(); if (stopWatch.elapsed() >= 30000) break; } while (!reply->isFinished()); @@ -615,8 +617,8 @@ void tst_QHttpNetworkConnection::compression() QByteArray ba; do { QCoreApplication::instance()->processEvents(); - if (reply->bytesAvailable()) - ba += reply->read(); + while (reply->bytesAvailable()) + ba += reply->readAny(); if (stopWatch.elapsed() >= 30000) break; } while (!reply->isFinished()); diff --git a/tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro b/tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro index 9593c55..f86250a 100644 --- a/tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro +++ b/tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro @@ -1,4 +1,7 @@ load(qttest_p4) SOURCES += tst_qhttpnetworkreply.cpp +INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/zlib + +requires(contains(QT_CONFIG,private_tests)) QT = core network diff --git a/tests/auto/qicoimageformat/icons/valid/Qt.ico b/tests/auto/qicoimageformat/icons/valid/Qt.ico Binary files differnew file mode 100644 index 0000000..fef1dee --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/Qt.ico diff --git a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp index 51ee4aa..fbd3821 100644 --- a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp +++ b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp @@ -70,6 +70,8 @@ private slots: void loopCount(); void nextImageDelay_data(); void nextImageDelay(); + void pngCompression_data(); + void pngCompression(); private: QString m_IconPath; @@ -130,6 +132,7 @@ void tst_QtIcoImageFormat::canRead_data() QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; QTest::newRow("103x16px, 24BPP") << "valid/trolltechlogo_tiny.ico" << 1; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 1; + QTest::newRow("PNG compression") << "valid/Qt.ico" << 1; } void tst_QtIcoImageFormat::canRead() @@ -199,6 +202,7 @@ void tst_QtIcoImageFormat::imageCount_data() QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3; QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; + QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; } @@ -226,6 +230,7 @@ void tst_QtIcoImageFormat::jumpToNextImage_data() QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3; QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; + QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; } void tst_QtIcoImageFormat::jumpToNextImage() @@ -275,6 +280,7 @@ void tst_QtIcoImageFormat::nextImageDelay_data() QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3; QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << -1; QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; + QTest::newRow("PNG compression") << "valid/Qt.ico" << 4; } void tst_QtIcoImageFormat::nextImageDelay() @@ -294,5 +300,32 @@ void tst_QtIcoImageFormat::nextImageDelay() } } +void tst_QtIcoImageFormat::pngCompression_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::addColumn<int>("index"); + QTest::addColumn<int>("width"); + QTest::addColumn<int>("height"); + + QTest::newRow("PNG compression") << "valid/Qt.ico" << 4 << 256 << 256; +} + +void tst_QtIcoImageFormat::pngCompression() +{ + QFETCH(QString, fileName); + QFETCH(int, index); + QFETCH(int, width); + QFETCH(int, height); + + QImageReader reader(m_IconPath + "/" + fileName); + + QImage image; + reader.jumpToImage(index); + reader.read(&image); + + QCOMPARE(image.width(), width); + QCOMPARE(image.height(), height); +} + QTEST_MAIN(tst_QtIcoImageFormat) #include "tst_qticoimageformat.moc" diff --git a/tests/auto/qimage/images/image.tif b/tests/auto/qimage/images/image.tif Binary files differnew file mode 100644 index 0000000..ee0637c --- /dev/null +++ b/tests/auto/qimage/images/image.tif diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp index e86db2d..06c9a56 100644 --- a/tests/auto/qimage/tst_qimage.cpp +++ b/tests/auto/qimage/tst_qimage.cpp @@ -131,6 +131,8 @@ private slots: void nullSize(); void premultipliedAlphaConsistency(); + + void compareIndexed(); }; tst_QImage::tst_QImage() @@ -274,6 +276,9 @@ void tst_QImage::formatHandlersInput_data() QTest::newRow("PPM") << "PPM" << prefix + "image.ppm"; QTest::newRow("XBM") << "XBM" << prefix + "image.xbm"; QTest::newRow("XPM") << "XPM" << prefix + "image.xpm"; +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF") << "TIFF" << prefix + "image.tif"; +#endif } void tst_QImage::formatHandlersInput() @@ -1759,5 +1764,31 @@ void tst_QImage::premultipliedAlphaConsistency() } } +void tst_QImage::compareIndexed() +{ + QImage img(256, 1, QImage::Format_Indexed8); + + QVector<QRgb> colorTable(256); + for (int i = 0; i < 256; ++i) + colorTable[i] = qRgb(i, i, i); + img.setColorTable(colorTable); + + for (int i = 0; i < 256; ++i) { + img.setPixel(i, 0, i); + } + + QImage imgInverted(256, 1, QImage::Format_Indexed8); + QVector<QRgb> invertedColorTable(256); + for (int i = 0; i < 256; ++i) + invertedColorTable[255-i] = qRgb(i, i, i); + imgInverted.setColorTable(invertedColorTable); + + for (int i = 0; i < 256; ++i) { + imgInverted.setPixel(i, 0, (255-i)); + } + + QCOMPARE(img, imgInverted); +} + QTEST_MAIN(tst_QImage) #include "tst_qimage.moc" diff --git a/tests/auto/qimagereader/baseline/35floppy.ico b/tests/auto/qimagereader/baseline/35floppy.ico Binary files differnew file mode 100644 index 0000000..59fd37e --- /dev/null +++ b/tests/auto/qimagereader/baseline/35floppy.ico diff --git a/tests/auto/qimagereader/baseline/kde_favicon.ico b/tests/auto/qimagereader/baseline/kde_favicon.ico Binary files differnew file mode 100644 index 0000000..15bcdbb --- /dev/null +++ b/tests/auto/qimagereader/baseline/kde_favicon.ico diff --git a/tests/auto/qimagereader/baseline/semitransparent.ico b/tests/auto/qimagereader/baseline/semitransparent.ico Binary files differnew file mode 100644 index 0000000..dd23de9 --- /dev/null +++ b/tests/auto/qimagereader/baseline/semitransparent.ico diff --git a/tests/auto/qimagereader/images/image_100dpi.tif b/tests/auto/qimagereader/images/image_100dpi.tif Binary files differnew file mode 100644 index 0000000..fcf3cd8 --- /dev/null +++ b/tests/auto/qimagereader/images/image_100dpi.tif diff --git a/tests/auto/qimagereader/qimagereader.pro b/tests/auto/qimagereader/qimagereader.pro index b178823..2c9510e 100644 --- a/tests/auto/qimagereader/qimagereader.pro +++ b/tests/auto/qimagereader/qimagereader.pro @@ -3,6 +3,7 @@ SOURCES += tst_qimagereader.cpp MOC_DIR=tmp QT += network RESOURCES += qimagereader.qrc +DEFINES += SRCDIR=\\\"$$PWD\\\" !contains(QT_CONFIG, no-gif):DEFINES += QTEST_HAVE_GIF !contains(QT_CONFIG, no-jpeg):DEFINES += QTEST_HAVE_JPEG @@ -22,5 +23,6 @@ wince*: { imagePlugins.path = imageformats DEPLOYMENT += images imagePlugins + DEFINES += SRCDIR=\\\".\\\" } diff --git a/tests/auto/qimagereader/qimagereader.qrc b/tests/auto/qimagereader/qimagereader.qrc index 13ce582..c6b963b 100644 --- a/tests/auto/qimagereader/qimagereader.qrc +++ b/tests/auto/qimagereader/qimagereader.qrc @@ -30,6 +30,7 @@ <file>images/image.pgm</file> <file>images/image.png</file> <file>images/image.ppm</file> + <file>images/image_100dpi.tif</file> <file>images/kollada.png</file> <file>images/marble.xpm</file> <file>images/namedcolors.xpm</file> diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp index 260aa71..dee4a17 100644 --- a/tests/auto/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/qimagereader/tst_qimagereader.cpp @@ -153,8 +153,16 @@ private slots: void autoDetectImageFormat(); void fileNameProbing(); + + void pixelCompareWithBaseline_data(); + void pixelCompareWithBaseline(); + + void task255627_setNullScaledSize_data(); + void task255627_setNullScaledSize(); }; +static const QLatin1String prefix(SRCDIR "/images/"); + // Testing get/set functions void tst_QImageReader::getSetCheck() { @@ -229,7 +237,7 @@ void tst_QImageReader::readImage() QFETCH(QByteArray, format); for (int i = 0; i < 2; ++i) { - QImageReader io("images/" + fileName, i ? QByteArray() : format); + QImageReader io(prefix + fileName, i ? QByteArray() : format); if (success) { if (!io.supportsAnimation()) QVERIFY(io.imageCount() > 0); @@ -245,16 +253,16 @@ void tst_QImageReader::readImage() QVERIFY2(!image.isNull(), io.errorString().toLatin1().constData()); // No format - QImageReader io2("images/" + fileName); + QImageReader io2(prefix + fileName); QVERIFY2(!io2.read().isNull(), io.errorString().toLatin1().constData()); // No extension, no format - QImageReader io3("images/" + fileName.left(fileName.lastIndexOf(QLatin1Char('.')))); + QImageReader io3(prefix + fileName.left(fileName.lastIndexOf(QLatin1Char('.')))); QVERIFY2(!io3.read().isNull(), io.errorString().toLatin1().constData()); // Read into \a image2 QImage image2; - QImageReader image2Reader("images/" + fileName, i ? QByteArray() : format); + QImageReader image2Reader(prefix + fileName, i ? QByteArray() : format); QCOMPARE(image2Reader.format(), format); QVERIFY(image2Reader.read(&image2)); if (image2Reader.canRead()) { @@ -278,8 +286,8 @@ void tst_QImageReader::readImage() void tst_QImageReader::jpegRgbCmyk() { - QImage image1(QLatin1String("images/YCbCr_cmyk.jpg")); - QImage image2(QLatin1String("images/YCbCr_cmyk.png")); + QImage image1(prefix + QLatin1String("YCbCr_cmyk.jpg")); + QImage image2(prefix + QLatin1String("YCbCr_cmyk.png")); QCOMPARE(image1, image2); } @@ -290,24 +298,24 @@ void tst_QImageReader::setScaledSize_data() QTest::addColumn<QSize>("newSize"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QSize(200, 200) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QSize(200, 200) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QSize(200, 200) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QSize(200, 200) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QSize(200, 200) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QSize(400, 400) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QSize(10, 10) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QSize(200, 200) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QSize(200, 200) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QSize(200, 200) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QSize(200, 200) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QSize(200, 200) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QSize(200, 200) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QSize(400, 400) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QSize(10, 10) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QSize(200, 200) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QSize(200, 200) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QSize(200, 200) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QSize(200, 200) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QSize(200, 200) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QSize(200, 200) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QSize(200, 200) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QSize(200, 200) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QSize(200, 200) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QSize(200, 200) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QSize(200, 200) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -320,7 +328,7 @@ void tst_QImageReader::setScaledSize() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setScaledSize(newSize); QImage image = reader.read(); QVERIFY(!image.isNull()); @@ -328,30 +336,53 @@ void tst_QImageReader::setScaledSize() QCOMPARE(image.size(), newSize); } +void tst_QImageReader::task255627_setNullScaledSize_data() +{ + setScaledSize_data(); +} + +void tst_QImageReader::task255627_setNullScaledSize() +{ + QFETCH(QString, fileName); + QFETCH(QByteArray, format); + + if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) + QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); + + QImageReader reader(prefix + fileName); + + // set a null size + reader.setScaledSize(QSize(0, 0)); + reader.setQuality(0); + QImage image = reader.read(); + QVERIFY(image.isNull()); + QCOMPARE(image.size(), QSize(0, 0)); +} + void tst_QImageReader::setClipRect_data() { QTest::addColumn<QString>("fileName"); QTest::addColumn<QRect>("newRect"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: 4bpp uncompressed") << "images/tst7.bmp" << QRect(0, 0, 31, 31) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: 4bpp uncompressed") << "tst7.bmp" << QRect(0, 0, 31, 31) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -364,13 +395,13 @@ void tst_QImageReader::setClipRect() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setClipRect(newRect); QImage image = reader.read(); QVERIFY(!image.isNull()); QCOMPARE(image.rect(), newRect); - QImageReader originalReader(fileName); + QImageReader originalReader(prefix + fileName); QImage originalImage = originalReader.read(); QCOMPARE(originalImage.copy(newRect), image); } @@ -381,24 +412,24 @@ void tst_QImageReader::setScaledClipRect_data() QTest::addColumn<QRect>("newRect"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("BMP: colorful") << "images/colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("BMP: font") << "images/font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); - QTest::newRow("XPM: marble") << "images/marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); - QTest::newRow("PNG: kollada") << "images/kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); - QTest::newRow("PPM: teapot") << "images/teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: runners") << "images/runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("PPM: test") << "images/test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); - QTest::newRow("XBM: gnus") << "images/gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); + QTest::newRow("BMP: colorful") << "colorful" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("BMP: font") << "font" << QRect(0, 0, 50, 50) << QByteArray("bmp"); + QTest::newRow("XPM: marble") << "marble" << QRect(0, 0, 50, 50) << QByteArray("xpm"); + QTest::newRow("PNG: kollada") << "kollada" << QRect(0, 0, 50, 50) << QByteArray("png"); + QTest::newRow("PPM: teapot") << "teapot" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: runners") << "runners.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("PPM: test") << "test.ppm" << QRect(0, 0, 50, 50) << QByteArray("ppm"); + QTest::newRow("XBM: gnus") << "gnus" << QRect(0, 0, 50, 50) << QByteArray("xbm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("JPEG: beavis") << "images/beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); + QTest::newRow("JPEG: beavis") << "beavis" << QRect(0, 0, 50, 50) << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("GIF: earth") << "images/earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); - QTest::newRow("GIF: trolltech") << "images/trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: earth") << "earth" << QRect(0, 0, 50, 50) << QByteArray("gif"); + QTest::newRow("GIF: trolltech") << "trolltech" << QRect(0, 0, 50, 50) << QByteArray("gif"); #endif // QTEST_HAVE_GIF #ifdef QTEST_HAVE_MNG - QTest::newRow("MNG: ball") << "images/ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); - QTest::newRow("MNG: fire") << "images/fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: ball") << "ball" << QRect(0, 0, 50, 50) << QByteArray("mng"); + QTest::newRow("MNG: fire") << "fire" << QRect(0, 0, 50, 50) << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -411,14 +442,14 @@ void tst_QImageReader::setScaledClipRect() if (!format.isEmpty() && !QImageReader::supportedImageFormats().contains(format)) QSKIP("Qt does not support reading the \"" + format + "\" format", SkipSingle); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); reader.setScaledSize(QSize(300, 300)); reader.setScaledClipRect(newRect); QImage image = reader.read(); QVERIFY(!image.isNull()); QCOMPARE(image.rect(), newRect); - QImageReader originalReader(fileName); + QImageReader originalReader(prefix + fileName); originalReader.setScaledSize(QSize(300, 300)); QImage originalImage = originalReader.read(); QCOMPARE(originalImage.copy(newRect), image); @@ -430,29 +461,29 @@ void tst_QImageReader::imageFormat_data() QTest::addColumn<QByteArray>("format"); QTest::addColumn<QImage::Format>("imageFormat"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm") << QImage::Format_Mono; - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm") << QImage::Format_Indexed8; - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-3") << QString("images/runners.ppm") << QByteArray("ppm") << QImage::Format_RGB32; - QTest::newRow("ppm-4") << QString("images/test.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm") << QImage::Format_Mono; + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm") << QImage::Format_Indexed8; + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-3") << QString("runners.ppm") << QByteArray("ppm") << QImage::Format_RGB32; + QTest::newRow("ppm-4") << QString("test.ppm") << QByteArray("ppm") << QImage::Format_RGB32; #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg") << QImage::Format_Indexed8; - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg") << QImage::Format_Indexed8; + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg") << QImage::Format_RGB32; #endif #if defined QTEST_HAVE_GIF - QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif") << QImage::Format_Invalid; - QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif") << QImage::Format_Invalid; + QTest::newRow("gif-1") << QString("earth.gif") << QByteArray("gif") << QImage::Format_Invalid; + QTest::newRow("gif-2") << QString("trolltech.gif") << QByteArray("gif") << QImage::Format_Invalid; #endif - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm") << QImage::Format_MonoLSB; - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm") << QImage::Format_Indexed8; - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png") << QImage::Format_ARGB32; - QTest::newRow("png-2") << QString("images/YCbCr_cmyk.png") << QByteArray("png") << QImage::Format_RGB32; - QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng") << QImage::Format_Invalid; - QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng") << QImage::Format_Invalid; + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm") << QImage::Format_MonoLSB; + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm") << QImage::Format_Indexed8; + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp") << QImage::Format_Indexed8; + QTest::newRow("png") << QString("kollada.png") << QByteArray("png") << QImage::Format_ARGB32; + QTest::newRow("png-2") << QString("YCbCr_cmyk.png") << QByteArray("png") << QImage::Format_RGB32; + QTest::newRow("mng-1") << QString("ball.mng") << QByteArray("mng") << QImage::Format_Invalid; + QTest::newRow("mng-2") << QString("fire.mng") << QByteArray("mng") << QImage::Format_Invalid; } void tst_QImageReader::imageFormat() @@ -460,7 +491,8 @@ void tst_QImageReader::imageFormat() QFETCH(QString, fileName); QFETCH(QByteArray, format); QFETCH(QImage::Format, imageFormat); - if (QImageReader::imageFormat(fileName).isEmpty()) { + + if (QImageReader::imageFormat(prefix + fileName).isEmpty()) { if (QByteArray("jpeg") == format) #ifndef QTEST_HAVE_JPEG return; @@ -475,31 +507,31 @@ void tst_QImageReader::imageFormat() #endif // !QTEST_HAVE_MNG QSKIP(("Qt does not support the " + format + " format.").constData(), SkipSingle); } else { - QCOMPARE(QImageReader::imageFormat(fileName), format); + QCOMPARE(QImageReader::imageFormat(prefix + fileName), format); } - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QCOMPARE(reader.imageFormat(), imageFormat); } void tst_QImageReader::blackXPM() { - QImage image(QLatin1String("images/black.xpm")); - QImage image2(QLatin1String("images/black.png")); + QImage image(prefix + QLatin1String("black.xpm")); + QImage image2(prefix + QLatin1String("black.png")); QCOMPARE(image.pixel(25, 25), qRgb(190, 190, 190)); QCOMPARE(image.pixel(25, 25), image2.pixel(25, 25)); } void tst_QImageReader::transparentXPM() { - QImage image(QLatin1String("images/nontransparent.xpm")); - QImage image2(QLatin1String("images/transparent.xpm")); + QImage image(prefix + QLatin1String("nontransparent.xpm")); + QImage image2(prefix + QLatin1String("transparent.xpm")); QCOMPARE(image.format(), QImage::Format_RGB32); QCOMPARE(image2.format(), QImage::Format_ARGB32); } void tst_QImageReader::multiWordNamedColorXPM() { - QImage image(QLatin1String("images/namedcolors.xpm")); + QImage image(prefix + QLatin1String("namedcolors.xpm")); QCOMPARE(image.pixel(0, 0), qRgb(102, 139, 139)); // pale turquoise 4 QCOMPARE(image.pixel(0, 1), qRgb(250, 250, 210)); // light golden rod yellow QCOMPARE(image.pixel(0, 2), qRgb(255, 250, 205)); // lemon chiffon @@ -590,7 +622,7 @@ void tst_QImageReader::supportsAnimation() { QFETCH(QString, fileName); QFETCH(bool, success); - QImageReader io("images/" + fileName); + QImageReader io(prefix + fileName); QCOMPARE(io.supportsAnimation(), success); } @@ -603,7 +635,7 @@ void tst_QImageReader::sizeBeforeRead() { QFETCH(QString, fileName); QFETCH(QByteArray, format); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QVERIFY(reader.canRead()); if (format == "mng") { QCOMPARE(reader.size(), QSize()); @@ -641,7 +673,7 @@ void tst_QImageReader::imageFormatBeforeRead() void tst_QImageReader::gifHandlerBugs() { { - QImageReader io("images/trolltech.gif"); + QImageReader io(prefix + "trolltech.gif"); QVERIFY(io.loopCount() != 1); int count=0; for (; io.canRead(); io.read(), ++count) ; @@ -650,8 +682,8 @@ void tst_QImageReader::gifHandlerBugs() // Task 95166 { - QImageReader io1("images/bat1.gif"); - QImageReader io2("images/bat2.gif"); + QImageReader io1(prefix + "bat1.gif"); + QImageReader io2(prefix + "bat2.gif"); QVERIFY(io1.canRead()); QVERIFY(io2.canRead()); QImage im1 = io1.read(); @@ -663,8 +695,8 @@ void tst_QImageReader::gifHandlerBugs() // Task 9994 { - QImageReader io1("images/noclearcode.gif"); - QImageReader io2("images/noclearcode.bmp"); + QImageReader io1(prefix + "noclearcode.gif"); + QImageReader io2(prefix + "noclearcode.bmp"); QVERIFY(io1.canRead()); QVERIFY(io2.canRead()); QImage im1 = io1.read(); QImage im2 = io2.read(); QVERIFY(!im1.isNull()); QVERIFY(!im2.isNull()); @@ -728,29 +760,29 @@ void tst_QImageReader::readFromDevice_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm"); - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm"); - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-3") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-4") << QString("images/runners.ppm") << QByteArray("ppm"); + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm"); + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm"); + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-3") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-4") << QString("runners.ppm") << QByteArray("ppm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg"); #endif // QTEST_HAVE_JPEG #ifdef QTEST_HAVE_GIF - QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif"); - QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif"); + QTest::newRow("gif-1") << QString("earth.gif") << QByteArray("gif"); + QTest::newRow("gif-2") << QString("trolltech.gif") << QByteArray("gif"); #endif // QTEST_HAVE_GIF - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm"); - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm"); - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp"); - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp"); - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png"); + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm"); + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm"); + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp"); + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp"); + QTest::newRow("png") << QString("kollada.png") << QByteArray("png"); #ifdef QTEST_HAVE_MNG - QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng"); - QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng"); + QTest::newRow("mng-1") << QString("ball.mng") << QByteArray("mng"); + QTest::newRow("mng-2") << QString("fire.mng") << QByteArray("mng"); #endif // QTEST_HAVE_MNG } @@ -759,9 +791,9 @@ void tst_QImageReader::readFromDevice() QFETCH(QString, fileName); QFETCH(QByteArray, format); - QImage expectedImage(fileName, format); + QImage expectedImage(prefix + fileName, format); - QFile file(fileName); + QFile file(prefix + fileName); QVERIFY(file.open(QFile::ReadOnly)); QByteArray imageData = file.readAll(); QVERIFY(!imageData.isEmpty()); @@ -810,26 +842,26 @@ void tst_QImageReader::readFromFileAfterJunk_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QByteArray>("format"); - QTest::newRow("pbm") << QString("images/image.pbm") << QByteArray("pbm"); - QTest::newRow("pgm") << QString("images/image.pgm") << QByteArray("pgm"); - QTest::newRow("ppm-1") << QString("images/image.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-2") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-3") << QString("images/teapot.ppm") << QByteArray("ppm"); - QTest::newRow("ppm-4") << QString("images/runners.ppm") << QByteArray("ppm"); + QTest::newRow("pbm") << QString("image.pbm") << QByteArray("pbm"); + QTest::newRow("pgm") << QString("image.pgm") << QByteArray("pgm"); + QTest::newRow("ppm-1") << QString("image.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-2") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-3") << QString("teapot.ppm") << QByteArray("ppm"); + QTest::newRow("ppm-4") << QString("runners.ppm") << QByteArray("ppm"); #ifdef QTEST_HAVE_JPEG - QTest::newRow("jpeg-1") << QString("images/beavis.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-2") << QString("images/YCbCr_cmyk.jpg") << QByteArray("jpeg"); - QTest::newRow("jpeg-3") << QString("images/YCbCr_rgb.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-1") << QString("beavis.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-2") << QString("YCbCr_cmyk.jpg") << QByteArray("jpeg"); + QTest::newRow("jpeg-3") << QString("YCbCr_rgb.jpg") << QByteArray("jpeg"); #endif #if defined QTEST_HAVE_GIF // QTest::newRow("gif-1") << QString("images/earth.gif") << QByteArray("gif"); // QTest::newRow("gif-2") << QString("images/trolltech.gif") << QByteArray("gif"); #endif - QTest::newRow("xbm") << QString("images/gnus.xbm") << QByteArray("xbm"); - QTest::newRow("xpm") << QString("images/marble.xpm") << QByteArray("xpm"); - QTest::newRow("bmp-1") << QString("images/colorful.bmp") << QByteArray("bmp"); - QTest::newRow("bmp-2") << QString("images/font.bmp") << QByteArray("bmp"); - QTest::newRow("png") << QString("images/kollada.png") << QByteArray("png"); + QTest::newRow("xbm") << QString("gnus.xbm") << QByteArray("xbm"); + QTest::newRow("xpm") << QString("marble.xpm") << QByteArray("xpm"); + QTest::newRow("bmp-1") << QString("colorful.bmp") << QByteArray("bmp"); + QTest::newRow("bmp-2") << QString("font.bmp") << QByteArray("bmp"); + QTest::newRow("png") << QString("kollada.png") << QByteArray("png"); // QTest::newRow("mng-1") << QString("images/ball.mng") << QByteArray("mng"); // QTest::newRow("mng-2") << QString("images/fire.mng") << QByteArray("mng"); } @@ -848,7 +880,7 @@ void tst_QImageReader::readFromFileAfterJunk() QFile junkFile("junk"); QVERIFY(junkFile.open(QFile::WriteOnly)); - QFile imageFile(fileName); + QFile imageFile(prefix + fileName); QVERIFY(imageFile.open(QFile::ReadOnly)); QByteArray imageData = imageFile.readAll(); QVERIFY(!imageData.isNull()); @@ -866,7 +898,7 @@ void tst_QImageReader::readFromFileAfterJunk() for (int i = 0; i < iterations; ++i) { QImageWriter writer(&junkFile, format); junkFile.write("deadbeef", 9); - QVERIFY(writer.write(QImage(fileName))); + QVERIFY(writer.write(QImage(prefix + fileName))); } } junkFile.close(); @@ -900,8 +932,8 @@ void tst_QImageReader::description_data() willem["Software"] = "Created on a NeXTstation color using \"pnmtopng\"."; willem["Disclaimer"] = "Freeware."; - QTest::newRow("PNG") << QString("images/pngwithtext.png") << willem; - QTest::newRow("PNG Compressed") << QString("images/pngwithcompressedtext.png") << willem; + QTest::newRow("PNG") << QString("pngwithtext.png") << willem; + QTest::newRow("PNG Compressed") << QString("pngwithcompressedtext.png") << willem; } void tst_QImageReader::description() @@ -910,9 +942,9 @@ void tst_QImageReader::description() QFETCH(QStringMap, description); // Sanity check - QVERIFY(!QImage(fileName).isNull()); + QVERIFY(!QImage(prefix + fileName).isNull()); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); foreach (QString key, description.keys()) QCOMPARE(reader.text(key), description.value(key)); @@ -937,143 +969,143 @@ void tst_QImageReader::readFromResources_data() QTest::addColumn<QSize>("size"); QTest::addColumn<QString>("message"); - QTest::newRow("images/corrupt.bmp") << QString("images/corrupt.bmp") + QTest::newRow("corrupt.bmp") << QString("corrupt.bmp") << QByteArray("bmp") << QSize(0, 0) << QString(""); - QTest::newRow("images/negativeheight.bmp") << QString("images/negativeheight.bmp") + QTest::newRow("negativeheight.bmp") << QString("negativeheight.bmp") << QByteArray("bmp") << QSize(127, 64) << QString(""); - QTest::newRow("images/font.bmp") << QString("images/font.bmp") + QTest::newRow("font.bmp") << QString("font.bmp") << QByteArray("bmp") << QSize(240, 8) << QString(""); - QTest::newRow("images/noclearcode.bmp") << QString("images/noclearcode.bmp") + QTest::newRow("noclearcode.bmp") << QString("noclearcode.bmp") << QByteArray("bmp") << QSize(29, 18) << QString(""); - QTest::newRow("images/colorful.bmp") << QString("images/colorful.bmp") + QTest::newRow("colorful.bmp") << QString("colorful.bmp") << QByteArray("bmp") << QSize(320, 200) << QString(""); - QTest::newRow("images/16bpp.bmp") << QString("images/16bpp.bmp") + QTest::newRow("16bpp.bmp") << QString("16bpp.bmp") << QByteArray("bmp") << QSize(320, 240) << QString(""); - QTest::newRow("images/crash-signed-char.bmp") << QString("images/crash-signed-char.bmp") + QTest::newRow("crash-signed-char.bmp") << QString("crash-signed-char.bmp") << QByteArray("bmp") << QSize(360, 280) << QString(""); - QTest::newRow("images/4bpp-rle.bmp") << QString("images/4bpp-rle.bmp") + QTest::newRow("4bpp-rle.bmp") << QString("4bpp-rle.bmp") << QByteArray("bmp") << QSize(640, 480) << QString(""); #ifdef QTEST_HAVE_GIF - QTest::newRow("images/corrupt.gif") << QString("images/corrupt.gif") + QTest::newRow("corrupt.gif") << QString("corrupt.gif") << QByteArray("gif") << QSize(0, 0) << QString(""); - QTest::newRow("images/trolltech.gif") << QString("images/trolltech.gif") + QTest::newRow("trolltech.gif") << QString("trolltech.gif") << QByteArray("gif") << QSize(128, 64) << QString(""); - QTest::newRow("images/noclearcode.gif") << QString("images/noclearcode.gif") + QTest::newRow("noclearcode.gif") << QString("noclearcode.gif") << QByteArray("gif") << QSize(29, 18) << QString(""); - QTest::newRow("images/earth.gif") << QString("images/earth.gif") + QTest::newRow("earth.gif") << QString("earth.gif") << QByteArray("gif") << QSize(320, 200) << QString(""); - QTest::newRow("images/bat1.gif") << QString("images/bat1.gif") + QTest::newRow("bat1.gif") << QString("bat1.gif") << QByteArray("gif") << QSize(32, 32) << QString(""); - QTest::newRow("images/bat2.gif") << QString("images/bat2.gif") + QTest::newRow("bat2.gif") << QString("bat2.gif") << QByteArray("gif") << QSize(32, 32) << QString(""); #endif #ifdef QTEST_HAVE_JPEG - QTest::newRow("images/corrupt.jpg") << QString("images/corrupt.jpg") + QTest::newRow("corrupt.jpg") << QString("corrupt.jpg") << QByteArray("jpg") << QSize(0, 0) << QString("JPEG datastream contains no image"); - QTest::newRow("images/beavis.jpg") << QString("images/beavis.jpg") + QTest::newRow("beavis.jpg") << QString("beavis.jpg") << QByteArray("jpg") << QSize(350, 350) << QString(""); - QTest::newRow("images/YCbCr_cmyk.jpg") << QString("images/YCbCr_cmyk.jpg") + QTest::newRow("YCbCr_cmyk.jpg") << QString("YCbCr_cmyk.jpg") << QByteArray("jpg") << QSize(75, 50) << QString(""); - QTest::newRow("images/YCbCr_rgb.jpg") << QString("images/YCbCr_rgb.jpg") + QTest::newRow("YCbCr_rgb.jpg") << QString("YCbCr_rgb.jpg") << QByteArray("jpg") << QSize(75, 50) << QString(""); #endif #ifdef QTEST_HAVE_MNG - QTest::newRow("images/corrupt.mng") << QString("images/corrupt.mng") + QTest::newRow("corrupt.mng") << QString("corrupt.mng") << QByteArray("mng") << QSize(0, 0) << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); - QTest::newRow("images/fire.mng") << QString("images/fire.mng") + QTest::newRow("fire.mng") << QString("fire.mng") << QByteArray("mng") << QSize(30, 60) << QString(""); - QTest::newRow("images/ball.mng") << QString("images/ball.mng") + QTest::newRow("ball.mng") << QString("ball.mng") << QByteArray("mng") << QSize(32, 32) << QString(""); #endif - QTest::newRow("images/image.pbm") << QString("images/image.pbm") + QTest::newRow("image.pbm") << QString("image.pbm") << QByteArray("pbm") << QSize(16, 6) << QString(""); - QTest::newRow("images/image.pgm") << QString("images/image.pgm") + QTest::newRow("image.pgm") << QString("image.pgm") << QByteArray("pgm") << QSize(24, 7) << QString(""); - QTest::newRow("images/corrupt.png") << QString("images/corrupt.png") + QTest::newRow("corrupt.png") << QString("corrupt.png") << QByteArray("png") << QSize(0, 0) << QString(""); - QTest::newRow("images/away.png") << QString("images/away.png") + QTest::newRow("away.png") << QString("away.png") << QByteArray("png") << QSize(16, 16) << QString(""); - QTest::newRow("images/image.png") << QString("images/image.png") + QTest::newRow("image.png") << QString("image.png") << QByteArray("png") << QSize(22, 22) << QString(""); - QTest::newRow("images/pngwithcompressedtext.png") << QString("images/pngwithcompressedtext.png") + QTest::newRow("pngwithcompressedtext.png") << QString("pngwithcompressedtext.png") << QByteArray("png") << QSize(32, 32) << QString(""); - QTest::newRow("images/pngwithtext.png") << QString("images/pngwithtext.png") + QTest::newRow("pngwithtext.png") << QString("pngwithtext.png") << QByteArray("png") << QSize(32, 32) << QString(""); - QTest::newRow("images/kollada.png") << QString("images/kollada.png") + QTest::newRow("kollada.png") << QString("kollada.png") << QByteArray("png") << QSize(436, 160) << QString(""); - QTest::newRow("images/black.png") << QString("images/black.png") + QTest::newRow("black.png") << QString("black.png") << QByteArray("png") << QSize(48, 48) << QString(""); - QTest::newRow("images/YCbCr_cmyk.png") << QString("images/YCbCr_cmyk.png") + QTest::newRow("YCbCr_cmyk.png") << QString("YCbCr_cmyk.png") << QByteArray("png") << QSize(75, 50) << QString(""); - QTest::newRow("images/teapot.ppm") << QString("images/teapot.ppm") + QTest::newRow("teapot.ppm") << QString("teapot.ppm") << QByteArray("ppm") << QSize(256, 256) << QString(""); - QTest::newRow("images/image.ppm") << QString("images/image.ppm") + QTest::newRow("image.ppm") << QString("image.ppm") << QByteArray("ppm") << QSize(4, 4) << QString(""); - QTest::newRow("images/runners.ppm") << QString("images/runners.ppm") + QTest::newRow("runners.ppm") << QString("runners.ppm") << QByteArray("ppm") << QSize(400, 400) << QString(""); - QTest::newRow("images/test.ppm") << QString("images/test.ppm") + QTest::newRow("test.ppm") << QString("test.ppm") << QByteArray("ppm") << QSize(10, 10) << QString(""); -// QTest::newRow("images/corrupt.xbm") << QString("images/corrupt.xbm") << QByteArray("xbm") << QSize(0, 0); - QTest::newRow("images/gnus.xbm") << QString("images/gnus.xbm") +// QTest::newRow("corrupt.xbm") << QString("corrupt.xbm") << QByteArray("xbm") << QSize(0, 0); + QTest::newRow("gnus.xbm") << QString("gnus.xbm") << QByteArray("xbm") << QSize(271, 273) << QString(""); - QTest::newRow("images/corrupt-colors.xpm") << QString("images/corrupt-colors.xpm") + QTest::newRow("corrupt-colors.xpm") << QString("corrupt-colors.xpm") << QByteArray("xpm") << QSize(0, 0) << QString("QImage: XPM color specification is missing: bla9an.n#x"); - QTest::newRow("images/corrupt-pixels.xpm") << QString("images/corrupt-pixels.xpm") + QTest::newRow("corrupt-pixels.xpm") << QString("corrupt-pixels.xpm") << QByteArray("xpm") << QSize(0, 0) << QString("QImage: XPM pixels missing on image line 3"); - QTest::newRow("images/marble.xpm") << QString("images/marble.xpm") + QTest::newRow("marble.xpm") << QString("marble.xpm") << QByteArray("xpm") << QSize(240, 240) << QString(""); - QTest::newRow("images/test.xpm") << QString("images/test.xpm") + QTest::newRow("test.xpm") << QString("test.xpm") << QByteArray("xpm") << QSize(256, 256) << QString(""); - QTest::newRow("images/black.xpm") << QString("images/black.xpm") + QTest::newRow("black.xpm") << QString("black.xpm") << QByteArray("xpm") << QSize(48, 48) << QString(""); - QTest::newRow("images/namedcolors.xpm") << QString("images/namedcolors.xpm") + QTest::newRow("namedcolors.xpm") << QString("namedcolors.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); - QTest::newRow("images/nontransparent.xpm") << QString("images/nontransparent.xpm") + QTest::newRow("nontransparent.xpm") << QString("nontransparent.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); - QTest::newRow("images/transparent.xpm") << QString("images/transparent.xpm") + QTest::newRow("transparent.xpm") << QString("transparent.xpm") << QByteArray("xpm") << QSize(8, 8) << QString(""); } @@ -1084,9 +1116,8 @@ void tst_QImageReader::readFromResources() QFETCH(QByteArray, format); QFETCH(QSize, size); QFETCH(QString, message); - for (int i = 0; i < 2; ++i) { - QString file = i ? (":/" + fileName) : fileName; + QString file = i ? (":/images/" + fileName) : (prefix + fileName); { // suppress warnings if we expect them if (!message.isEmpty()) { @@ -1150,7 +1181,7 @@ void tst_QImageReader::readFromResources() QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); } - QCOMPARE(QImageReader(fileName).read(), QImageReader(":/" + fileName).read()); + QCOMPARE(QImageReader(prefix + fileName).read(), QImageReader(":/images/" + fileName).read()); } void tst_QImageReader::readCorruptImage_data() @@ -1159,25 +1190,25 @@ void tst_QImageReader::readCorruptImage_data() QTest::addColumn<bool>("shouldFail"); QTest::addColumn<QString>("message"); #if defined QTEST_HAVE_JPEG - QTest::newRow("corrupt jpeg") << QString("images/corrupt.jpg") << true + QTest::newRow("corrupt jpeg") << QString("corrupt.jpg") << true << QString("JPEG datastream contains no image"); #endif #if defined QTEST_HAVE_GIF - QTest::newRow("corrupt gif") << QString("images/corrupt.gif") << true << QString(""); + QTest::newRow("corrupt gif") << QString("corrupt.gif") << true << QString(""); #endif #ifdef QTEST_HAVE_MNG - QTest::newRow("corrupt mng") << QString("images/corrupt.mng") << true + QTest::newRow("corrupt mng") << QString("corrupt.mng") << true << QString("MNG error 901: Application signalled I/O error; chunk IHDR; subcode 0:0"); #endif - QTest::newRow("corrupt png") << QString("images/corrupt.png") << true << QString(""); - QTest::newRow("corrupt bmp") << QString("images/corrupt.bmp") << true << QString(""); - QTest::newRow("corrupt xpm (colors)") << QString("images/corrupt-colors.xpm") << true + QTest::newRow("corrupt png") << QString("corrupt.png") << true << QString(""); + QTest::newRow("corrupt bmp") << QString("corrupt.bmp") << true << QString(""); + QTest::newRow("corrupt xpm (colors)") << QString("corrupt-colors.xpm") << true << QString("QImage: XPM color specification is missing: bla9an.n#x"); - QTest::newRow("corrupt xpm (pixels)") << QString("images/corrupt-pixels.xpm") << true + QTest::newRow("corrupt xpm (pixels)") << QString("corrupt-pixels.xpm") << true << QString("QImage: XPM pixels missing on image line 3"); - QTest::newRow("corrupt xbm") << QString("images/corrupt.xbm") << false << QString(""); + QTest::newRow("corrupt xbm") << QString("corrupt.xbm") << false << QString(""); #if defined QTEST_HAVE_TIFF - QTest::newRow("corrupt tiff") << QString("images/corrupt-data.tif") << true << QString(""); + QTest::newRow("corrupt tiff") << QString("corrupt-data.tif") << true << QString(""); #endif } @@ -1186,16 +1217,17 @@ void tst_QImageReader::readCorruptImage() QFETCH(QString, fileName); QFETCH(bool, shouldFail); QFETCH(QString, message); + if (!message.isEmpty()) QTest::ignoreMessage(QtWarningMsg, message.toLatin1()); - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); QVERIFY(reader.canRead()); QCOMPARE(reader.read().isNull(), shouldFail); } void tst_QImageReader::readCorruptBmp() { - QCOMPARE(QImage("images/tst7.bmp").convertToFormat(QImage::Format_ARGB32_Premultiplied), QImage("images/tst7.png").convertToFormat(QImage::Format_ARGB32_Premultiplied)); + QCOMPARE(QImage("tst7.bmp").convertToFormat(QImage::Format_ARGB32_Premultiplied), QImage("images/tst7.png").convertToFormat(QImage::Format_ARGB32_Premultiplied)); } void tst_QImageReader::supportsOption_data() @@ -1203,7 +1235,7 @@ void tst_QImageReader::supportsOption_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QIntList>("options"); - QTest::newRow("png") << QString("images/black.png") + QTest::newRow("png") << QString("black.png") << (QIntList() << QImageIOHandler::Gamma << QImageIOHandler::Description << QImageIOHandler::Quality @@ -1231,7 +1263,7 @@ void tst_QImageReader::supportsOption() << QImageIOHandler::Animation << QImageIOHandler::BackgroundColor; - QImageReader reader(fileName); + QImageReader reader(prefix + fileName); for (int i = 0; i < options.size(); ++i) { QVERIFY(reader.supportsOption(QImageIOHandler::ImageOption(options.at(i)))); allOptions.remove(QImageIOHandler::ImageOption(options.at(i))); @@ -1247,14 +1279,14 @@ void tst_QImageReader::tiffCompression_data() QTest::addColumn<QString>("uncompressedFile"); QTest::addColumn<QString>("compressedFile"); - QTest::newRow("TIFF: adobedeflate") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_adobedeflate_littleendian.tif"; - QTest::newRow("TIFF: lzw") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_lzw_littleendian.tif"; - QTest::newRow("TIFF: packbits") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_packbits_littleendian.tif"; - QTest::newRow("TIFF: zipdeflate") << "images/rgba_nocompression_littleendian.tif" - << "images/rgba_zipdeflate_littleendian.tif"; + QTest::newRow("TIFF: adobedeflate") << "rgba_nocompression_littleendian.tif" + << "rgba_adobedeflate_littleendian.tif"; + QTest::newRow("TIFF: lzw") << "rgba_nocompression_littleendian.tif" + << "rgba_lzw_littleendian.tif"; + QTest::newRow("TIFF: packbits") << "rgba_nocompression_littleendian.tif" + << "rgba_packbits_littleendian.tif"; + QTest::newRow("TIFF: zipdeflate") << "rgba_nocompression_littleendian.tif" + << "rgba_zipdeflate_littleendian.tif"; } void tst_QImageReader::tiffCompression() @@ -1262,16 +1294,16 @@ void tst_QImageReader::tiffCompression() QFETCH(QString, uncompressedFile); QFETCH(QString, compressedFile); - QImage uncompressedImage(uncompressedFile); - QImage compressedImage(compressedFile); + QImage uncompressedImage(prefix + uncompressedFile); + QImage compressedImage(prefix + compressedFile); QCOMPARE(uncompressedImage, compressedImage); } void tst_QImageReader::tiffEndianness() { - QImage littleEndian("images/rgba_nocompression_littleendian.tif"); - QImage bigEndian("images/rgba_nocompression_bigendian.tif"); + QImage littleEndian(prefix + "rgba_nocompression_littleendian.tif"); + QImage bigEndian(prefix + "rgba_nocompression_bigendian.tif"); QCOMPARE(littleEndian, bigEndian); } @@ -1283,8 +1315,10 @@ void tst_QImageReader::dotsPerMeter_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<int>("expectedDotsPerMeterX"); QTest::addColumn<int>("expectedDotsPerMeterY"); - - QTest::newRow("TIFF: 72 dpi") << "images/rgba_nocompression_littleendian.tif" << qRound(72 * (100 / 2.54)) << qRound(72 * (100 / 2.54)); +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 72 dpi") << ("rgba_nocompression_littleendian.tif") << qRound(72 * (100 / 2.54)) << qRound(72 * (100 / 2.54)); + QTest::newRow("TIFF: 100 dpi") << ("image_100dpi.tif") << qRound(100 * (100 / 2.54)) << qRound(100 * (100 / 2.54)); +#endif } void tst_QImageReader::dotsPerMeter() @@ -1293,7 +1327,7 @@ void tst_QImageReader::dotsPerMeter() QFETCH(int, expectedDotsPerMeterX); QFETCH(int, expectedDotsPerMeterY); - QImage image(fileName); + QImage image(prefix + fileName); QCOMPARE(image.dotsPerMeterX(), expectedDotsPerMeterX); QCOMPARE(image.dotsPerMeterY(), expectedDotsPerMeterY); @@ -1304,8 +1338,10 @@ void tst_QImageReader::physicalDpi_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<int>("expectedPhysicalDpiX"); QTest::addColumn<int>("expectedPhysicalDpiY"); - - QTest::newRow("TIFF: 72 dpi") << "images/rgba_nocompression_littleendian.tif" << 72 << 72; +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 72 dpi") << "rgba_nocompression_littleendian.tif" << 72 << 72; + QTest::newRow("TIFF: 100 dpi") << "image_100dpi.tif" << 100 << 100; +#endif } void tst_QImageReader::physicalDpi() @@ -1314,7 +1350,7 @@ void tst_QImageReader::physicalDpi() QFETCH(int, expectedPhysicalDpiX); QFETCH(int, expectedPhysicalDpiY); - QImage image(fileName); + QImage image(prefix + fileName); QCOMPARE(image.physicalDpiX(), expectedPhysicalDpiX); QCOMPARE(image.physicalDpiY(), expectedPhysicalDpiY); @@ -1325,7 +1361,7 @@ void tst_QImageReader::autoDetectImageFormat() // Assume PNG is supported :-) { // Disables file name extension probing - QImageReader reader("images/kollada"); + QImageReader reader(prefix + "kollada"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); @@ -1335,7 +1371,7 @@ void tst_QImageReader::autoDetectImageFormat() } { // Disables detection based on suffix - QImageReader reader("images/kollada.png"); + QImageReader reader(prefix + "kollada.png"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); @@ -1345,7 +1381,7 @@ void tst_QImageReader::autoDetectImageFormat() } { // Disables detection based on content - QImageReader reader("images/kollada-noext"); + QImageReader reader(prefix + "kollada-noext"); reader.setAutoDetectImageFormat(false); QVERIFY(!reader.canRead()); QVERIFY(reader.read().isNull()); @@ -1368,5 +1404,32 @@ void tst_QImageReader::fileNameProbing() QCOMPARE(r.fileName(), name); } +void tst_QImageReader::pixelCompareWithBaseline_data() +{ + QTest::addColumn<QString>("fileName"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "35floppy.ico"; + QTest::newRow("semitransparent") << "semitransparent.ico"; + QTest::newRow("slightlybroken") << "kde_favicon.ico"; +} + +void tst_QImageReader::pixelCompareWithBaseline() +{ + QFETCH(QString, fileName); + + QImage icoImg; + // might fail if the plugin does not exist, which is ok. + if (icoImg.load(QString::fromAscii("images/%1").arg(fileName))) { + QString baselineFileName = QString::fromAscii("baseline/%1").arg(fileName); +#if 0 + icoImg.save(baselineFileName); +#else + QImage baseImg; + QVERIFY(baseImg.load(baselineFileName)); + QCOMPARE(baseImg, icoImg); +#endif + } +} + QTEST_MAIN(tst_QImageReader) #include "tst_qimagereader.moc" diff --git a/tests/auto/qimagewriter/tst_qimagewriter.cpp b/tests/auto/qimagewriter/tst_qimagewriter.cpp index 17f1bc7..0ebf06b 100644 --- a/tests/auto/qimagewriter/tst_qimagewriter.cpp +++ b/tests/auto/qimagewriter/tst_qimagewriter.cpp @@ -59,6 +59,7 @@ Q_DECLARE_METATYPE(QStringMap) Q_DECLARE_METATYPE(QIntList) Q_DECLARE_METATYPE(QImageWriter::ImageWriterError) Q_DECLARE_METATYPE(QIODevice *) +Q_DECLARE_METATYPE(QImage::Format) //TESTED_FILES= @@ -82,6 +83,9 @@ private slots: void writeImage2(); void supportedFormats(); + void readWriteNonDestructive_data(); + void readWriteNonDestructive(); + #if defined QTEST_HAVE_TIFF void largeTiff(); #endif @@ -97,6 +101,9 @@ private slots: void saveWithNoFormat_data(); void saveWithNoFormat(); + void resolution_data(); + void resolution(); + void saveToTemporaryFile(); }; @@ -162,7 +169,7 @@ tst_QImageWriter::tst_QImageWriter() tst_QImageWriter::~tst_QImageWriter() { - QDir dir("images"); + QDir dir(prefix); QStringList filesToDelete = dir.entryList(QStringList() << "gen-*" , QDir::NoDotAndDotDot | QDir::Files); foreach( QString file, filesToDelete) { QFile::remove(dir.absoluteFilePath(file)); @@ -373,6 +380,28 @@ void tst_QImageWriter::supportedFormats() QCOMPARE(formatSet.size(), formats.size()); } +void tst_QImageWriter::readWriteNonDestructive_data() +{ + QTest::addColumn<QImage::Format>("format"); + QTest::addColumn<QImage::Format>("expectedFormat"); + QTest::newRow("tiff mono") << QImage::Format_Mono << QImage::Format_Mono; + QTest::newRow("tiff indexed") << QImage::Format_Indexed8 << QImage::Format_Indexed8; + QTest::newRow("tiff rgb32") << QImage::Format_ARGB32 << QImage::Format_ARGB32; +} + +void tst_QImageWriter::readWriteNonDestructive() +{ + QFETCH(QImage::Format, format); + QFETCH(QImage::Format, expectedFormat); + QImage image = QImage(prefix + "colorful.bmp").convertToFormat(format); + QVERIFY(image.save(prefix + "gen-readWriteNonDestructive.tiff")); + + QImage image2 = QImage(prefix + "gen-readWriteNonDestructive.tiff"); + QImage::Format readFormat = image2.format(); + QCOMPARE(readFormat, expectedFormat); + QCOMPARE(image, image2); +} + void tst_QImageWriter::setDescription_data() { QTest::addColumn<QString>("fileName"); @@ -442,13 +471,13 @@ void tst_QImageWriter::supportsOption_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QIntList>("options"); - QTest::newRow("png") << QString(prefix + "gen-black.png") + QTest::newRow("png") << QString("gen-black.png") << (QIntList() << QImageIOHandler::Gamma << QImageIOHandler::Description << QImageIOHandler::Quality << QImageIOHandler::Size); #if defined QTEST_HAVE_TIFF - QTest::newRow("tiff") << QString("images/gen-black.tiff") + QTest::newRow("tiff") << QString("gen-black.tiff") << (QIntList() << QImageIOHandler::Size << QImageIOHandler::CompressionRatio); #endif @@ -475,7 +504,7 @@ void tst_QImageWriter::supportsOption() << QImageIOHandler::Animation << QImageIOHandler::BackgroundColor; - QImageWriter writer(fileName); + QImageWriter writer(prefix + fileName); for (int i = 0; i < options.size(); ++i) { QVERIFY(writer.supportsOption(QImageIOHandler::ImageOption(options.at(i)))); allOptions.remove(QImageIOHandler::ImageOption(options.at(i))); @@ -530,6 +559,39 @@ void tst_QImageWriter::saveWithNoFormat() QVERIFY2(!outImage.isNull(), qPrintable(reader.errorString())); } +void tst_QImageWriter::resolution_data() +{ + QTest::addColumn<QString>("filename"); + QTest::addColumn<int>("expectedDotsPerMeterX"); + QTest::addColumn<int>("expectedDotsPerMeterY"); +#if defined QTEST_HAVE_TIFF + QTest::newRow("TIFF: 100 dpi") << ("image_100dpi.tif") << qRound(100 * (100 / 2.54)) << qRound(100 * (100 / 2.54)); + QTest::newRow("TIFF: 50 dpi") << ("image_50dpi.tif") << qRound(50 * (100 / 2.54)) << qRound(50 * (100 / 2.54)); + QTest::newRow("TIFF: 300 dot per meter") << ("image_300dpm.tif") << 300 << 300; +#endif +} + +void tst_QImageWriter::resolution() +{ + QFETCH(QString, filename); + QFETCH(int, expectedDotsPerMeterX); + QFETCH(int, expectedDotsPerMeterY); + + QImage image(prefix + QLatin1String("colorful.bmp")); + image.setDotsPerMeterX(expectedDotsPerMeterX); + image.setDotsPerMeterY(expectedDotsPerMeterY); + const QString generatedFilepath = prefix + "gen-" + filename; + { + QImageWriter writer(generatedFilepath); + QVERIFY(writer.write(image)); + } + QImageReader reader(generatedFilepath); + const QImage generatedImage = reader.read(); + + QCOMPARE(expectedDotsPerMeterX, generatedImage.dotsPerMeterX()); + QCOMPARE(expectedDotsPerMeterY, generatedImage.dotsPerMeterY()); +} + void tst_QImageWriter::saveToTemporaryFile() { QImage image(prefix + "kollada.png"); diff --git a/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp b/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp index d9a7d56..e235ff5 100644 --- a/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp +++ b/tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp @@ -59,13 +59,13 @@ void tst_QItemEditorFactory::createEditor() QCOMPARE(w->metaObject()->className(), "QExpandingLineEdit"); } -void tst_QItemEditorFactory::createCustomEditor() +//we make it inherit from QObject so that we can use QPointer +class MyEditor : public QObject, public QStandardItemEditorCreator<QDoubleSpinBox> { - //we make it inherit from QObject so that we can use QPointer - class MyEditor : public QObject, public QStandardItemEditorCreator<QDoubleSpinBox> - { - }; +}; +void tst_QItemEditorFactory::createCustomEditor() +{ QPointer<MyEditor> creator = new MyEditor; QPointer<MyEditor> creator2 = new MyEditor; diff --git a/tests/auto/qitemmodel/qitemmodel.pro b/tests/auto/qitemmodel/qitemmodel.pro index c51f4c7..38c615b 100644 --- a/tests/auto/qitemmodel/qitemmodel.pro +++ b/tests/auto/qitemmodel/qitemmodel.pro @@ -1,6 +1,5 @@ -CONFIG += qtestlib +load(qttest_p4) SOURCES += tst_qitemmodel.cpp -TARGET = tst_qitemmodel QT += sql diff --git a/tests/auto/qitemview/tst_qitemview.cpp b/tests/auto/qitemview/tst_qitemview.cpp index 6bfd1e8..73c08d1 100644 --- a/tests/auto/qitemview/tst_qitemview.cpp +++ b/tests/auto/qitemview/tst_qitemview.cpp @@ -55,7 +55,7 @@ #if defined(Q_OS_WINCE) bool qt_wince_is_platform(const QString &platformString) { - TCHAR tszPlatform[64]; + wchar_t tszPlatform[64]; if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (platformString.utf16()), tszPlatform)) diff --git a/tests/auto/qkeysequence/tst_qkeysequence.cpp b/tests/auto/qkeysequence/tst_qkeysequence.cpp index aeb57ef..2e4b850 100644 --- a/tests/auto/qkeysequence/tst_qkeysequence.cpp +++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp @@ -270,7 +270,7 @@ void tst_QKeySequence::checkMultipleNames() void tst_QKeySequence::ensureSorted() { //### accessing static members from private classes does not work on msvc at the moment -#ifndef Q_WS_WIN +#if defined(QT_BUILD_INTERNAL) && !defined(Q_WS_WIN) uint N = QKeySequencePrivate::numberOfKeyBindings; uint val = QKeySequencePrivate::keyBindings[0].shortcut; for ( uint i = 1 ; i < N ; ++i) { diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp index 658435b..3519afa 100644 --- a/tests/auto/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/qlineedit/tst_qlineedit.cpp @@ -257,6 +257,7 @@ private slots: void task233101_cursorPosAfterInputMethod_data(); void task233101_cursorPosAfterInputMethod(); void task241436_passwordEchoOnEditRestoreEchoMode(); + void task248948_redoRemovedSelection(); protected slots: #ifdef QT3_SUPPORT @@ -3483,5 +3484,17 @@ void tst_QLineEdit::task241436_passwordEchoOnEditRestoreEchoMode() testWidget->setEchoMode(QLineEdit::Normal); } +void tst_QLineEdit::task248948_redoRemovedSelection() +{ + testWidget->setText("a"); + testWidget->selectAll(); + QTest::keyPress(testWidget, Qt::Key_Delete); + testWidget->undo(); + testWidget->redo(); + QTest::keyPress(testWidget, 'a'); + QTest::keyPress(testWidget, 'b'); + QCOMPARE(testWidget->text(), QLatin1String("ab")); +} + QTEST_MAIN(tst_QLineEdit) #include "tst_qlineedit.moc" diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp index 0e73df3..cc80931 100644 --- a/tests/auto/qlistview/tst_qlistview.cpp +++ b/tests/auto/qlistview/tst_qlistview.cpp @@ -52,6 +52,7 @@ #include <math.h> #include <QtGui/QScrollBar> #include <QtGui/QDialog> +#include <QtGui/QStyledItemDelegate> #if defined(Q_OS_WIN) || defined(Q_OS_WINCE) #include <windows.h> #endif @@ -106,6 +107,10 @@ private slots: void task228566_infiniteRelayout(); void task248430_crashWith0SizedItem(); void task250446_scrollChanged(); + void task196118_visualRegionForSelection(); + void task254449_draggingItemToNegativeCoordinates(); + void keyboardSearch(); + void shiftSelectionWithNonUniformItemSizes(); }; // Testing get/set functions @@ -1555,6 +1560,168 @@ void tst_QListView::task250446_scrollChanged() QCOMPARE(view.currentIndex(), index); } +void tst_QListView::task196118_visualRegionForSelection() +{ + class MyListView : public QListView + { + public: + QRegion visualRegionForSelection() const + { return QListView::visualRegionForSelection( selectionModel()->selection()); } + } view; + + QStandardItemModel model; + QStandardItem top1("top1"); + QStandardItem sub1("sub1"); + top1.appendRow(QList<QStandardItem*>() << &sub1); + model.appendColumn(QList<QStandardItem*>() << &top1); + view.setModel(&model); + view.setRootIndex(top1.index()); + + view.selectionModel()->select(top1.index(), QItemSelectionModel::Select); + + QCOMPARE(view.selectionModel()->selectedIndexes().count(), 1); + QVERIFY(view.visualRegionForSelection().isEmpty()); +} + +void tst_QListView::task254449_draggingItemToNegativeCoordinates() +{ + //we'll check that the items are painted correctly + class MyListView : public QListView + { + public: + void setPositionForIndex(const QPoint &position, const QModelIndex &index) + { QListView::setPositionForIndex(position, index); } + + } list; + + QStandardItemModel model(1,1); + QModelIndex index = model.index(0,0); + model.setData(index, QLatin1String("foo")); + list.setModel(&model); + list.setViewMode(QListView::IconMode); + list.show(); + QTest::qWait(200); //makes sure the layout is done + + const QPoint topLeft(-6, 0); + + + list.setPositionForIndex(topLeft, index); + + class MyItemDelegate : public QStyledItemDelegate + { + public: + MyItemDelegate() : numPaints(0) { } + void paint(QPainter *painter, + const QStyleOptionViewItem &option, const QModelIndex &index) const + { + numPaints++; + QStyledItemDelegate::paint(painter, option, index); + } + + mutable int numPaints; + } delegate; + + list.setItemDelegate(&delegate); + + //we'll make sure the item is repainted + delegate.numPaints = 0; + list.viewport()->repaint(); + + QCOMPARE(list.visualRect(index).topLeft(), topLeft); + QCOMPARE(delegate.numPaints, 1); +} + + +void tst_QListView::keyboardSearch() +{ + QStringList items; + items << "AB" << "AC" << "BA" << "BB" << "BD" << "KAFEINE" << "KONQUEROR" << "KOPETE" << "KOOKA" << "OKULAR"; + QStringListModel model(items); + + QListView view; + view.setModel(&model); + view.show(); + QTest::qWait(30); +// QCOMPARE(view.currentIndex() , model.index(0,0)); + + QTest::keyClick(&view, Qt::Key_K); + QTest::qWait(10); + QCOMPARE(view.currentIndex() , model.index(5,0)); //KAFEINE + + QTest::keyClick(&view, Qt::Key_O); + QTest::qWait(10); + QCOMPARE(view.currentIndex() , model.index(6,0)); //KONQUEROR + + QTest::keyClick(&view, Qt::Key_N); + QTest::qWait(10); + QCOMPARE(view.currentIndex() , model.index(6,0)); //KONQUEROR +} + +void tst_QListView::shiftSelectionWithNonUniformItemSizes() +{ + // This checks that no items are selected unexpectedly by Shift-Arrow + // when items with non-uniform sizes are laid out in a grid + { // First test: QListView::LeftToRight flow + QStringList items; + items << "Long\nText" << "Text" << "Text" << "Text"; + QStringListModel model(items); + + QListView view; + view.setFixedSize(250, 250); + view.setFlow(QListView::LeftToRight); + view.setGridSize(QSize(100, 100)); + view.setSelectionMode(QListView::ExtendedSelection); + view.setViewMode(QListView::IconMode); + view.setModel(&model); + view.show(); + QTest::qWait(30); + + // Verfify that item sizes are non-uniform + QVERIFY(view.sizeHintForIndex(model.index(0, 0)).height() > view.sizeHintForIndex(model.index(1, 0)).height()); + + QModelIndex index = model.index(3, 0); + view.setCurrentIndex(index); + QCOMPARE(view.currentIndex(), index); + + QTest::keyClick(&view, Qt::Key_Up, Qt::ShiftModifier); + QTest::qWait(10); + QCOMPARE(view.currentIndex(), model.index(1, 0)); + + QModelIndexList selected = view.selectionModel()->selectedIndexes(); + QCOMPARE(selected.count(), 3); + QVERIFY(!selected.contains(model.index(0, 0))); + } + { // Second test: QListView::TopToBottom flow + QStringList items; + items << "ab" << "a" << "a" << "a"; + QStringListModel model(items); + + QListView view; + view.setFixedSize(250, 250); + view.setFlow(QListView::TopToBottom); + view.setGridSize(QSize(100, 100)); + view.setSelectionMode(QListView::ExtendedSelection); + view.setViewMode(QListView::IconMode); + view.setModel(&model); + view.show(); + QTest::qWait(30); + + // Verfify that item sizes are non-uniform + QVERIFY(view.sizeHintForIndex(model.index(0, 0)).width() > view.sizeHintForIndex(model.index(1, 0)).width()); + + QModelIndex index = model.index(3, 0); + view.setCurrentIndex(index); + QCOMPARE(view.currentIndex(), index); + + QTest::keyClick(&view, Qt::Key_Left, Qt::ShiftModifier); + QTest::qWait(10); + QCOMPARE(view.currentIndex(), model.index(1, 0)); + + QModelIndexList selected = view.selectionModel()->selectedIndexes(); + QCOMPARE(selected.count(), 3); + QVERIFY(!selected.contains(model.index(0, 0))); + } +} QTEST_MAIN(tst_QListView) #include "tst_qlistview.moc" diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp index a56a470..e581bd3 100644 --- a/tests/auto/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp @@ -883,31 +883,46 @@ void tst_QListWidget::itemStreaming() void tst_QListWidget::sortItems_data() { QTest::addColumn<int>("order"); - QTest::addColumn<QStringList>("initialList"); - QTest::addColumn<QStringList>("expectedList"); + QTest::addColumn<QVariantList>("initialList"); + QTest::addColumn<QVariantList>("expectedList"); QTest::addColumn<IntList>("expectedRows"); - QTest::newRow("ascending order") + QTest::newRow("ascending strings") << static_cast<int>(Qt::AscendingOrder) - << (QStringList() << "c" << "d" << "a" << "b") - << (QStringList() << "a" << "b" << "c" << "d") + << (QVariantList() << QString("c") << QString("d") << QString("a") << QString("b")) + << (QVariantList() << QString("a") << QString("b") << QString("c") << QString("d")) << (IntList() << 2 << 3 << 0 << 1); - QTest::newRow("descending order") + QTest::newRow("descending strings") << static_cast<int>(Qt::DescendingOrder) - << (QStringList() << "c" << "d" << "a" << "b") - << (QStringList() << "d" << "c" << "b" << "a") + << (QVariantList() << QString("c") << QString("d") << QString("a") << QString("b")) + << (QVariantList() << QString("d") << QString("c") << QString("b") << QString("a")) << (IntList() << 1 << 0 << 3 << 2); + + QTest::newRow("ascending numbers") + << static_cast<int>(Qt::AscendingOrder) + << (QVariantList() << 1 << 11 << 2 << 22) + << (QVariantList() << 1 << 2 << 11 << 22) + << (IntList() << 0 << 2 << 1 << 3); + + QTest::newRow("descending numbers") + << static_cast<int>(Qt::DescendingOrder) + << (QVariantList() << 1 << 11 << 2 << 22) + << (QVariantList() << 22 << 11 << 2 << 1) + << (IntList() << 3 << 1 << 2 << 0); } void tst_QListWidget::sortItems() { QFETCH(int, order); - QFETCH(QStringList, initialList); - QFETCH(QStringList, expectedList); + QFETCH(QVariantList, initialList); + QFETCH(QVariantList, expectedList); QFETCH(IntList, expectedRows); - testWidget->addItems(initialList); + foreach (const QVariant &data, initialList) { + QListWidgetItem *item = new QListWidgetItem(testWidget); + item->setData(Qt::DisplayRole, data); + } QAbstractItemModel *model = testWidget->model(); QList<QPersistentModelIndex> persistent; @@ -918,7 +933,7 @@ void tst_QListWidget::sortItems() QCOMPARE(testWidget->count(), expectedList.count()); for (int i = 0; i < testWidget->count(); ++i) - QCOMPARE(testWidget->item(i)->text(), expectedList.at(i)); + QCOMPARE(testWidget->item(i)->text(), expectedList.at(i).toString()); for (int k = 0; k < testWidget->count(); ++k) QCOMPARE(persistent.at(k).row(), expectedRows.at(k)); diff --git a/tests/auto/qlocale/tst_qlocale.cpp b/tests/auto/qlocale/tst_qlocale.cpp index 8ac6ef0..9ef7f1d 100644 --- a/tests/auto/qlocale/tst_qlocale.cpp +++ b/tests/auto/qlocale/tst_qlocale.cpp @@ -1093,12 +1093,7 @@ void tst_QLocale::macDefaultLocale() static QString getWinLocaleInfo(LCTYPE type) { LCID id = GetThreadLocale(); - int cnt = 0; - QT_WA({ - cnt = GetLocaleInfoW(id, type, 0, 0)*2; - } , { - cnt = GetLocaleInfoA(id, type, 0, 0); - }); + int cnt = GetLocaleInfo(id, type, 0, 0) * 2; if (cnt == 0) { qWarning("QLocale: empty windows locale info (%d)", type); @@ -1107,38 +1102,20 @@ static QString getWinLocaleInfo(LCTYPE type) QByteArray buff(cnt, 0); - QT_WA({ - cnt = GetLocaleInfoW(id, type, - reinterpret_cast<wchar_t*>(buff.data()), - buff.size()/2); - } , { - cnt = GetLocaleInfoA(id, type, - buff.data(), buff.size()); - }); + cnt = GetLocaleInfo(id, type, reinterpret_cast<wchar_t*>(buff.data()), buff.size() / 2); if (cnt == 0) { qWarning("QLocale: empty windows locale info (%d)", type); return QString(); } - QString result; - QT_WA({ - result = QString::fromUtf16(reinterpret_cast<ushort*>(buff.data())); - } , { - result = QString::fromLocal8Bit(buff.data()); - }); - return result; + return QString::fromWCharArray(reinterpret_cast<wchar_t*>(buff.data())); } static void setWinLocaleInfo(LCTYPE type, const QString &value) { LCID id = GetThreadLocale(); - - QT_WA({ - SetLocaleInfoW(id, type, reinterpret_cast<const wchar_t*>(value.utf16())); - } , { - SetLocaleInfoA(id, type, value.toLocal8Bit()); - }); + SetLocaleInfo(id, type, reinterpret_cast<const wchar_t*>(value.utf16())); } class RestoreLocaleHelper { diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp index 485158a..a41eecd 100644 --- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp @@ -80,6 +80,8 @@ private slots: void sendData_data(); void sendData(); + void readBufferOverflow(); + void fullPath(); void hitMaximumConnections_data(); @@ -101,6 +103,9 @@ private slots: void recycleServer(); + void multiConnect(); + void writeOnlySocket(); + void debug(); }; @@ -529,6 +534,37 @@ void tst_QLocalSocket::sendData() QCOMPARE(spy.count(), (canListen ? 1 : 0)); } +void tst_QLocalSocket::readBufferOverflow() +{ + const int readBufferSize = 128; + const int dataBufferSize = readBufferSize * 2; + const QString serverName = QLatin1String("myPreciousTestServer"); + LocalServer server; + server.listen(serverName); + QVERIFY(server.isListening()); + + LocalSocket client; + client.setReadBufferSize(readBufferSize); + client.connectToServer(serverName); + + bool timedOut = true; + QVERIFY(server.waitForNewConnection(3000, &timedOut)); + QVERIFY(!timedOut); + + QCOMPARE(client.state(), QLocalSocket::ConnectedState); + QVERIFY(server.hasPendingConnections()); + + QLocalSocket* serverSocket = server.nextPendingConnection(); + char* buffer = (char*)qMalloc(dataBufferSize); + memset(buffer, 0, dataBufferSize); + serverSocket->write(buffer, dataBufferSize); + serverSocket->flush(); + qFree(buffer); + + QVERIFY(client.waitForReadyRead()); + QCOMPARE(client.readAll().size(), dataBufferSize); +} + // QLocalSocket/Server can take a name or path, check that it works as expected void tst_QLocalSocket::fullPath() { @@ -846,6 +882,47 @@ void tst_QLocalSocket::recycleServer() QVERIFY(server.nextPendingConnection() != 0); } +void tst_QLocalSocket::multiConnect() +{ + QLocalServer server; + QLocalSocket client1; + QLocalSocket client2; + QLocalSocket client3; + + QVERIFY(server.listen("multiconnect")); + + client1.connectToServer("multiconnect"); + client2.connectToServer("multiconnect"); + client3.connectToServer("multiconnect"); + + QVERIFY(client1.waitForConnected(201)); + QVERIFY(client2.waitForConnected(202)); + QVERIFY(client3.waitForConnected(203)); + + QVERIFY(server.waitForNewConnection(201)); + QVERIFY(server.nextPendingConnection() != 0); + QVERIFY(server.waitForNewConnection(202)); + QVERIFY(server.nextPendingConnection() != 0); + QVERIFY(server.waitForNewConnection(203)); + QVERIFY(server.nextPendingConnection() != 0); +} + +void tst_QLocalSocket::writeOnlySocket() +{ + QLocalServer server; + QVERIFY(server.listen("writeOnlySocket")); + + QLocalSocket client; + client.connectToServer("writeOnlySocket", QIODevice::WriteOnly); + QVERIFY(client.waitForConnected()); + + QVERIFY(server.waitForNewConnection()); + QLocalSocket* serverSocket = server.nextPendingConnection(); + + QCOMPARE(client.bytesAvailable(), qint64(0)); + QCOMPARE(client.state(), QLocalSocket::ConnectedState); +} + void tst_QLocalSocket::debug() { // Make sure this compiles diff --git a/tests/auto/qmainwindow/tst_qmainwindow.cpp b/tests/auto/qmainwindow/tst_qmainwindow.cpp index 80ba198..6ae7a3e 100644 --- a/tests/auto/qmainwindow/tst_qmainwindow.cpp +++ b/tests/auto/qmainwindow/tst_qmainwindow.cpp @@ -1400,6 +1400,7 @@ void AddDockWidget::apply(QMainWindow *mw) const } } +#ifdef QT_BUILD_INTERNAL struct MoveSeparator { MoveSeparator() {} @@ -1434,11 +1435,9 @@ void MoveSeparator::apply(QMainWindow *mw) const } QVERIFY(!path.isEmpty()); - QVector<QLayoutStruct> cache; - - l->layoutState.dockAreaLayout.separatorMove(path, QPoint(0, 0), QPoint(delta, delta), &cache); - + l->layoutState.dockAreaLayout.separatorMove(path, QPoint(0, 0), QPoint(delta, delta)); } +#endif QMap<QString, QRect> dockWidgetGeometries(QMainWindow *mw) { @@ -1466,6 +1465,7 @@ QMap<QString, QRect> dockWidgetGeometries(QMainWindow *mw) void tst_QMainWindow::saveRestore_data() { +#ifdef QT_BUILD_INTERNAL QTest::addColumn<AddList >("addList"); QTest::addColumn<MoveList >("moveList"); @@ -1500,10 +1500,12 @@ void tst_QMainWindow::saveRestore_data() << MoveSeparator(-30, "right1") << MoveSeparator(30, "right2a") ); +#endif } void tst_QMainWindow::saveRestore() { +#ifdef QT_BUILD_INTERNAL QFETCH(AddList, addList); QFETCH(MoveList, moveList); @@ -1573,6 +1575,7 @@ void tst_QMainWindow::saveRestore() mainWindow.show(); COMPARE_DOCK_WIDGET_GEOS(dockWidgetGeos, dockWidgetGeometries(&mainWindow)); } +#endif } void tst_QMainWindow::iconSizeChanged() diff --git a/tests/auto/qmake/testdata/bundle-spaces/some-file b/tests/auto/qmake/testdata/bundle-spaces/some-file index e69de29..9975dba 100644 --- a/tests/auto/qmake/testdata/bundle-spaces/some-file +++ b/tests/auto/qmake/testdata/bundle-spaces/some-file @@ -0,0 +1,6 @@ +all: + C:\git\qt-kinetic-animations\bin\qmake qdir.pro -o Makefile -spec win32-msvc2008 + nmake -f Makefile +first: all +qmake: + C:\git\qt-kinetic-animations\bin\qmake qdir.pro -o Makefile -spec win32-msvc2008 diff --git a/tests/auto/qmap/tst_qmap.cpp b/tests/auto/qmap/tst_qmap.cpp index 7e34d6f..1b3d68b 100644 --- a/tests/auto/qmap/tst_qmap.cpp +++ b/tests/auto/qmap/tst_qmap.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#define QT_STRICT_ITERATORS #include <QtTest/QtTest> #include <QDebug> @@ -400,7 +401,7 @@ void tst_QMap::operator_eq() QVERIFY(a == b); QVERIFY(!(a != b)); - + a.insert(1,1); b.insert(1,1); QVERIFY(a == b); @@ -422,7 +423,7 @@ void tst_QMap::operator_eq() b.insert(-1, -1); QVERIFY(a != b); - QVERIFY(!(a == b)); + QVERIFY(!(a == b)); } { @@ -468,7 +469,7 @@ void tst_QMap::operator_eq() b.insert("willy", 1); QVERIFY(a != b); QVERIFY(!(a == b)); - } + } } void tst_QMap::empty() @@ -523,9 +524,9 @@ void tst_QMap::find() map1.insertMulti(4, compareString); } - QMap<int, QString>::const_iterator it=map1.find(4); + QMap<int, QString>::const_iterator it=map1.constFind(4); - for(i = 9; i > 2 && it != map1.end() && it.key() == 4; --i) { + for(i = 9; i > 2 && it != map1.constEnd() && it.key() == 4; --i) { compareString = testString.arg(i); QVERIFY(it.value() == compareString); ++it; @@ -546,9 +547,9 @@ void tst_QMap::constFind() map1.insert(1,"Mensch"); map1.insert(1,"Mayer"); map1.insert(2,"Hej"); - + QVERIFY(map1.constFind(4) == map1.constEnd()); - + QVERIFY(map1.constFind(1).value() == "Mayer"); QVERIFY(map1.constFind(2).value() == "Hej"); @@ -677,7 +678,7 @@ void tst_QMap::iterators() cstlIt--; QVERIFY(cstlIt.value() == "Teststring 3"); - for(cstlIt = map.begin(), i = 1; cstlIt != map.constEnd(), i < 100; ++cstlIt, ++i) + for(cstlIt = map.constBegin(), i = 1; cstlIt != map.constEnd(), i < 100; ++cstlIt, ++i) QVERIFY(cstlIt.value() == testString.arg(i)); //Java-Style iterators diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp index 2fb9b8b..1d19ffa 100644 --- a/tests/auto/qmenu/tst_qmenu.cpp +++ b/tests/auto/qmenu/tst_qmenu.cpp @@ -92,7 +92,9 @@ private slots: void activeSubMenuPosition(); void task242454_sizeHint(); void task176201_clear(); - void task250673_activeMutliColumnSubMenuPosition(); + void task250673_activeMultiColumnSubMenuPosition(); + void task256918_setFont(); + void menuSizeHint(); protected slots: void onActivated(QAction*); void onHighlighted(QAction*); @@ -679,7 +681,7 @@ void tst_QMenu::task176201_clear() QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.rect().center()); } -void tst_QMenu::task250673_activeMutliColumnSubMenuPosition() +void tst_QMenu::task250673_activeMultiColumnSubMenuPosition() { class MyMenu : public QMenu { @@ -713,5 +715,53 @@ void tst_QMenu::task250673_activeMutliColumnSubMenuPosition() const int subMenuOffset = main.style()->pixelMetric(QStyle::PM_SubMenuOverlap, 0, &main); QVERIFY((sub.geometry().left() - subMenuOffset + 5) < main.geometry().right()); } + + +void tst_QMenu::task256918_setFont() +{ + QMenu menu; + QAction *action = menu.addAction("foo"); + QFont f; + f.setPointSize(30); + action->setFont(f); + menu.show(); //ensures that the actiongeometry are calculated + QVERIFY(menu.actionGeometry(action).height() > f.pointSize()); +} + +void tst_QMenu::menuSizeHint() +{ + QMenu menu; + //this is a list of arbitrary strings so that we check the geometry + QStringList list = QStringList() << "trer" << "ezrfgtgvqd" << "sdgzgzerzerzer" << "eerzertz" << "er"; + foreach(QString str, list) + menu.addAction(str); + + int left, top, right, bottom; + menu.getContentsMargins(&left, &top, &right, &bottom); + const int panelWidth = menu.style()->pixelMetric(QStyle::PM_MenuPanelWidth, 0, &menu); + const int hmargin = menu.style()->pixelMetric(QStyle::PM_MenuHMargin, 0, &menu), + vmargin = menu.style()->pixelMetric(QStyle::PM_MenuVMargin, 0, &menu); + + int maxWidth =0; + QRect result; + foreach(QAction *action, menu.actions()) { + maxWidth = qMax(maxWidth, menu.actionGeometry(action).width()); + result |= menu.actionGeometry(action); + QCOMPARE(result.x(), left + hmargin + panelWidth); + QCOMPARE(result.y(), top + vmargin + panelWidth); + } + + QStyleOption opt(0); + opt.rect = menu.rect(); + opt.state = QStyle::State_None; + + QSize resSize = QSize(result.x(), result.y()) + result.size() + QSize(hmargin + right + panelWidth, vmargin + top + panelWidth); + + resSize = menu.style()->sizeFromContents(QStyle::CT_Menu, &opt, + resSize.expandedTo(QApplication::globalStrut()), &menu); + + QCOMPARE(resSize, menu.sizeHint()); +} + QTEST_MAIN(tst_QMenu) #include "tst_qmenu.moc" diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp index 5404d46..1245de1 100644 --- a/tests/auto/qmenubar/tst_qmenubar.cpp +++ b/tests/auto/qmenubar/tst_qmenubar.cpp @@ -48,8 +48,10 @@ #include <q3popupmenu.h> #endif #include <qstyle.h> +#include <qwindowsstyle.h> #include <qdesktopwidget.h> #include <qaction.h> +#include <qstyleoption.h> #ifdef Q_WS_WIN #include <windows.h> @@ -149,6 +151,8 @@ private slots: void check_shortcutPress(); void check_menuPosition(); void task223138_triggered(); + void task256322_highlight(); + void menubarSizeHint(); #if defined(QT3_SUPPORT) void indexBasedInsertion_data(); @@ -1520,6 +1524,108 @@ void tst_QMenuBar::task223138_triggered() QCOMPARE(submenuSpy.count(), 1); } +void tst_QMenuBar::task256322_highlight() +{ + QMainWindow win; + QMenu menu; + QAction *file = win.menuBar()->addMenu(&menu); + file->setText("file"); + QMenu menu2; + QAction *file2 = win.menuBar()->addMenu(&menu2); + file2->setText("file2"); + QAction *nothing = win.menuBar()->addAction("nothing"); + + win.show(); + + QTest::mouseClick(win.menuBar(), Qt::LeftButton, 0, win.menuBar()->actionGeometry(file).center()); + QVERIFY(menu.isVisible()); + QVERIFY(!menu2.isVisible()); + QCOMPARE(win.menuBar()->activeAction(), file); + + QTest::mouseMove(win.menuBar(), win.menuBar()->actionGeometry(file2).center()); + QVERIFY(!menu.isVisible()); + QVERIFY(menu2.isVisible()); + QCOMPARE(win.menuBar()->activeAction(), file2); + + QTest::mouseMove(win.menuBar(), win.menuBar()->actionGeometry(nothing).center()); + QVERIFY(!menu.isVisible()); + QVERIFY(!menu2.isVisible()); + QCOMPARE(win.menuBar()->activeAction(), nothing); + + QTest::mouseMove(&win, win.menuBar()->geometry().bottomLeft() + QPoint(1,1)); + + QVERIFY(!menu.isVisible()); + QVERIFY(!menu2.isVisible()); + QVERIFY(!win.menuBar()->activeAction()); +} + +void tst_QMenuBar::menubarSizeHint() +{ + struct MyStyle : public QWindowsStyle + { + virtual int pixelMetric(PixelMetric metric, const QStyleOption * option = 0, const QWidget * widget = 0 ) const + { + // I chose strange values (prime numbers to be more sure that the size of the menubar is correct) + switch (metric) + { + case QStyle::PM_MenuBarItemSpacing: + return 7; + case PM_MenuBarHMargin: + return 13; + case PM_MenuBarVMargin: + return 11; + case PM_MenuBarPanelWidth: + return 1; + default: + return QWindowsStyle::pixelMetric(metric, option, widget); + } + } + } style; + + QMenuBar mb; + mb.setStyle(&style); + //this is a list of arbitrary strings so that we check the geometry + QStringList list = QStringList() << "trer" << "ezrfgtgvqd" << "sdgzgzerzerzer" << "eerzertz" << "er"; + foreach(QString str, list) + mb.addAction(str); + + const int panelWidth = style.pixelMetric(QStyle::PM_MenuBarPanelWidth); + const int hmargin = style.pixelMetric(QStyle::PM_MenuBarHMargin); + const int vmargin = style.pixelMetric(QStyle::PM_MenuBarVMargin); + const int spacing = style.pixelMetric(QStyle::PM_MenuBarItemSpacing); + + mb.show(); + QRect result; + foreach(QAction *action, mb.actions()) { + const QRect actionRect = mb.actionGeometry(action); + if (!result.isNull()) //this is the first item + QCOMPARE(actionRect.left() - result.right() - 1, spacing); + result |= actionRect; + QCOMPARE(result.x(), panelWidth + hmargin + spacing); + QCOMPARE(result.y(), panelWidth + vmargin); + } + + //this code is copied from QMenuBar + //there is no public member that allows to initialize a styleoption instance + QStyleOptionMenuItem opt; + opt.rect = mb.rect(); + opt.menuRect = mb.rect(); + opt.state = QStyle::State_None; + opt.menuItemType = QStyleOptionMenuItem::Normal; + opt.checkType = QStyleOptionMenuItem::NotCheckable; + opt.palette = mb.palette(); + + QSize resSize = QSize(result.x(), result.y()) + result.size() + + QSize(panelWidth + hmargin, panelWidth + vmargin); + + + resSize = style.sizeFromContents(QStyle::CT_MenuBar, &opt, + resSize.expandedTo(QApplication::globalStrut()), + &mb); + + QCOMPARE(resSize, mb.sizeHint()); +} + #if defined(QT3_SUPPORT) void tst_QMenuBar::indexBasedInsertion_data() diff --git a/tests/auto/qnativesocketengine/qnativesocketengine.pro b/tests/auto/qnativesocketengine/qnativesocketengine.pro index 320f24c..ad40d53 100644 --- a/tests/auto/qnativesocketengine/qnativesocketengine.pro +++ b/tests/auto/qnativesocketengine/qnativesocketengine.pro @@ -3,6 +3,8 @@ SOURCES += tst_qnativesocketengine.cpp include(../qnativesocketengine/qsocketengine.pri) +requires(contains(QT_CONFIG,private_tests)) + MOC_DIR=tmp QT = core network diff --git a/tests/auto/qnetworkreply/qnetworkreply.pro b/tests/auto/qnetworkreply/qnetworkreply.pro index 0bcf067..fd8454c 100644 --- a/tests/auto/qnetworkreply/qnetworkreply.pro +++ b/tests/auto/qnetworkreply/qnetworkreply.pro @@ -1,4 +1,6 @@ TEMPLATE = subdirs SUBDIRS = test +requires(contains(QT_CONFIG,private_tests)) + !wince*:SUBDIRS += echo diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 842befb..788be1e 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -52,6 +52,7 @@ #include <QtNetwork/QTcpSocket> #include <QtNetwork/QLocalSocket> #include <QtNetwork/QLocalServer> +#include <QtNetwork/QHostInfo> #include <QtNetwork/QFtp> #include <QtNetwork/qauthenticator.h> #include <QtNetwork/qnetworkaccessmanager.h> @@ -91,6 +92,15 @@ class tst_QNetworkReply: public QObject { Q_OBJECT + struct ProxyData { + ProxyData(const QNetworkProxy &p, const QByteArray &t, bool auth) + : tag(t), proxy(p), requiresAuthentication(auth) + { } + QByteArray tag; + QNetworkProxy proxy; + bool requiresAuthentication; + }; + QEventLoop *loop; enum RunSimpleRequestReturn { Timeout = 0, Success, Failure }; int returnCode; @@ -99,10 +109,12 @@ class tst_QNetworkReply: public QObject QString wronlyFileName; #endif QString uniqueExtension; + QList<ProxyData> proxies; QNetworkAccessManager manager; MyCookieJar *cookieJar; #ifndef QT_NO_OPENSSL QSslConfiguration storedSslConfiguration; + QList<QSslError> storedExpectedSslErrors; #endif public: @@ -115,9 +127,11 @@ public Q_SLOTS: void gotError(); void authenticationRequired(QNetworkReply*,QAuthenticator*); void proxyAuthenticationRequired(const QNetworkProxy &,QAuthenticator*); + #ifndef QT_NO_OPENSSL void sslErrors(QNetworkReply*,const QList<QSslError> &); void storeSslConfiguration(); + void ignoreSslErrorListSlot(QNetworkReply *reply, const QList<QSslError> &); #endif protected Q_SLOTS: @@ -150,6 +164,10 @@ private Q_SLOTS: void putToHttp(); void postToHttp_data(); void postToHttp(); + void deleteFromHttp_data(); + void deleteFromHttp(); + void putGetDeleteGetFromHttp_data(); + void putGetDeleteGetFromHttp(); void ioGetFromData_data(); void ioGetFromData(); @@ -192,11 +210,20 @@ private Q_SLOTS: void ioPutToHttpFromFile(); void ioPostToHttpFromFile_data(); void ioPostToHttpFromFile(); + void ioPostToHttpFromSocket_data(); + void ioPostToHttpFromSocket(); + void ioPostToHttpFromMiddleOfFileToEnd(); + void ioPostToHttpFromMiddleOfFileFiveBytes(); + void ioPostToHttpFromMiddleOfQBufferFiveBytes(); + void ioPostToHttpNoBufferFlag(); + void ioPostToHttpUploadProgress(); + void ioPostToHttpEmtpyUploadProgress(); void rateControl_data(); void rateControl(); void downloadPerformance(); void uploadPerformance(); + void httpUploadPerformance(); void performanceControlRate(); void downloadProgress_data(); @@ -220,8 +247,16 @@ private Q_SLOTS: void authorizationError_data(); void authorizationError(); + void httpConnectionCount(); void httpDownloadPerformance_data(); void httpDownloadPerformance(); + +#ifndef QT_NO_OPENSSL + void ignoreSslErrorsList_data(); + void ignoreSslErrorsList(); + void ignoreSslErrorsListWithSlot_data(); + void ignoreSslErrorsListWithSlot(); +#endif }; QT_BEGIN_NAMESPACE @@ -371,6 +406,63 @@ public slots: } }; +class FixedSizeDataGenerator : public QIODevice +{ + Q_OBJECT + enum { Idle, Started, Stopped } state; +public: + FixedSizeDataGenerator(qint64 size) : state(Idle) + { open(ReadOnly | Unbuffered); + toBeGeneratedTotalCount = toBeGeneratedCount = size; + } + + virtual qint64 bytesAvailable() const + { + return state == Started ? toBeGeneratedCount + QIODevice::bytesAvailable() : 0; + } + + virtual bool isSequential() const{ + return false; + } + + virtual bool reset() const{ + return false; + } + + qint64 size() const { + return toBeGeneratedTotalCount; + } + +public slots: + void start() { state = Started; emit readyRead(); } + +protected: + virtual qint64 readData(char *data, qint64 maxlen) + { + memset(data, '@', maxlen); + + if (toBeGeneratedCount <= 0) { + return -1; + } + + qint64 n = qMin(maxlen, toBeGeneratedCount); + toBeGeneratedCount -= n; + + if (toBeGeneratedCount <= 0) { + // make sure this is a queued connection! + emit readChannelFinished(); + } + + return n; + } + virtual qint64 writeData(const char *, qint64) + { return -1; } + + qint64 toBeGeneratedCount; + qint64 toBeGeneratedTotalCount; +}; + + class DataGenerator: public QIODevice { Q_OBJECT @@ -391,6 +483,7 @@ protected: { if (state == Stopped) return -1; // EOF + // return as many bytes as are wanted memset(data, '@', maxlen); return maxlen; @@ -399,6 +492,8 @@ protected: { return -1; } }; + + class SocketPair: public QObject { Q_OBJECT @@ -636,7 +731,7 @@ protected: return; transferRate = totalBytes * 1000 / timer.elapsed(); - qDebug() << "receive rate:" << (transferRate / 1024) << "kB/s in" + qDebug() << "TimedSender::run" << "receive rate:" << (transferRate / 1024) << "kB/s in" << timer.elapsed() << "ms"; } @@ -650,12 +745,13 @@ protected: class ThreadedDataReader: public QThread { Q_OBJECT + // used to make the constructor only return after the tcp server started listening QSemaphore ready; QTcpSocket *client; int timeout; int port; public: - int transferRate; + qint64 transferRate; ThreadedDataReader() : port(-1), transferRate(-1) { @@ -683,12 +779,65 @@ protected: QTime timer; timer.start(); eventLoop.exec(); + qint64 elapsed = timer.elapsed(); - transferRate = reader.totalBytes * 1000 / timer.elapsed(); - qDebug() << "send rate:" << (transferRate / 1024) << "kB/s"; + transferRate = reader.totalBytes * 1000 / elapsed; + qDebug() << "ThreadedDataReader::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec"; } }; +class ThreadedDataReaderHttpServer: public QThread +{ + Q_OBJECT + // used to make the constructor only return after the tcp server started listening + QSemaphore ready; + QTcpSocket *client; + int timeout; + int port; +public: + qint64 transferRate; + ThreadedDataReaderHttpServer() + : port(-1), transferRate(-1) + { + start(); + ready.acquire(); + } + + inline int serverPort() const { return port; } + +protected: + void run() + { + QTcpServer server; + server.listen(); + port = server.serverPort(); + ready.release(); + + server.waitForNewConnection(-1); + client = server.nextPendingConnection(); + client->write("HTTP/1.0 200 OK\r\n"); + client->write("Content-length: 0\r\n"); + client->write("\r\n"); + client->flush(); + + QCoreApplication::processEvents(); + + QEventLoop eventLoop; + DataReader reader(client, false); + QObject::connect(client, SIGNAL(disconnected()), &eventLoop, SLOT(quit())); + + QTime timer; + timer.start(); + eventLoop.exec(); + qint64 elapsed = timer.elapsed(); + + transferRate = reader.totalBytes * 1000 / elapsed; + qDebug() << "ThreadedDataReaderHttpServer::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec"; + } +}; + + + tst_QNetworkReply::tst_QNetworkReply() { testFileName = QDir::currentPath() + "/testfile"; @@ -699,8 +848,28 @@ tst_QNetworkReply::tst_QNetworkReply() #endif cookieJar = new MyCookieJar; manager.setCookieJar(cookieJar); + + QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName()); + + proxies << ProxyData(QNetworkProxy::NoProxy, "", false); + + if (hostInfo.error() == QHostInfo::NoError && !hostInfo.addresses().isEmpty()) { + QString proxyserver = hostInfo.addresses().first().toString(); + proxies << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128), "+proxy", false) + << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3129), "+proxyauth", true) + // currently unsupported + // << ProxyData(QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3130), "+proxyauth-ntlm", true); + << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080), "+socks", false) + << ProxyData(QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1081), "+socksauth", true); + } else { + printf("==================================================================\n"); + printf("Proxy could not be looked up. No proxy will be used while testing!\n"); + printf("==================================================================\n"); + } } + + void tst_QNetworkReply::authenticationRequired(QNetworkReply*, QAuthenticator* auth) { auth->setUser("httptest"); @@ -752,6 +921,10 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, reply = manager.post(request, data); break; + case QNetworkAccessManager::DeleteOperation: + reply = manager.deleteResource(request); + break; + default: Q_ASSERT_X(false, "tst_QNetworkReply", "Invalid/unknown operation requested"); } @@ -840,6 +1013,7 @@ void tst_QNetworkReply::stateChecking() QCOMPARE(reply->request(), req); QCOMPARE(int(reply->operation()), int(QNetworkAccessManager::GetOperation)); QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->isFinished(), false); QCOMPARE(reply->url(), url); reply->abort(); @@ -1161,6 +1335,9 @@ void tst_QNetworkReply::getErrors() QTEST(reply->readAll().isEmpty(), "dataIsEmpty"); + QVERIFY(reply->isFinished()); + QVERIFY(!reply->isRunning()); + QFETCH(int, httpStatusCode); if (httpStatusCode != 0) { QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), httpStatusCode); @@ -1327,6 +1504,97 @@ void tst_QNetworkReply::postToHttp() QCOMPARE(uploadedData, md5sum.toHex()); } +void tst_QNetworkReply::deleteFromHttp_data() +{ + QTest::addColumn<QUrl>("url"); + QTest::addColumn<int>("resultCode"); + QTest::addColumn<QNetworkReply::NetworkError>("error"); + + // for status codes to expect, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html + + QTest::newRow("405-method-not-allowed") << QUrl("http://" + QtNetworkSettings::serverName() + "/index.html") << 405 << QNetworkReply::ContentOperationNotPermittedError; + QTest::newRow("200-ok") << QUrl("http://" + QtNetworkSettings::serverName() + "/cgi-bin/http-delete.cgi?200-ok") << 200 << QNetworkReply::NoError; + QTest::newRow("202-accepted") << QUrl("http://" + QtNetworkSettings::serverName() + "/cgi-bin/http-delete.cgi?202-accepted") << 202 << QNetworkReply::NoError; + QTest::newRow("204-no-content") << QUrl("http://" + QtNetworkSettings::serverName() + "/cgi-bin/http-delete.cgi?204-no-content") << 204 << QNetworkReply::NoError; + QTest::newRow("404-not-found") << QUrl("http://" + QtNetworkSettings::serverName() + "/cgi-bin/http-delete.cgi?404-not-found") << 404 << QNetworkReply::ContentNotFoundError; +} + +void tst_QNetworkReply::deleteFromHttp() +{ + QFETCH(QUrl, url); + QFETCH(int, resultCode); + QFETCH(QNetworkReply::NetworkError, error); + QNetworkRequest request(url); + QNetworkReplyPtr reply; + runSimpleRequest(QNetworkAccessManager::DeleteOperation, request, reply, 0); + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), error); + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), resultCode); +} + +void tst_QNetworkReply::putGetDeleteGetFromHttp_data() +{ + QTest::addColumn<QUrl>("putUrl"); + QTest::addColumn<int>("putResultCode"); + QTest::addColumn<QNetworkReply::NetworkError>("putError"); + QTest::addColumn<QUrl>("deleteUrl"); + QTest::addColumn<int>("deleteResultCode"); + QTest::addColumn<QNetworkReply::NetworkError>("deleteError"); + QTest::addColumn<QUrl>("get2Url"); + QTest::addColumn<int>("get2ResultCode"); + QTest::addColumn<QNetworkReply::NetworkError>("get2Error"); + + QUrl url("http://" + QtNetworkSettings::serverName()); + url.setPath(QString("/dav/qnetworkaccess-putToHttp-%1-%2") + .arg(QTest::currentDataTag()) + .arg(uniqueExtension)); + + // first use case: put, get (to check it is there), delete, get (to check it is not there anymore) + QTest::newRow("success") << url << 201 << QNetworkReply::NoError << url << 204 << QNetworkReply::NoError << url << 404 << QNetworkReply::ContentNotFoundError; + + QUrl wrongUrl("http://" + QtNetworkSettings::serverName()); + wrongUrl.setPath(QString("/dav/qnetworkaccess-thisURLisNotAvailable")); + + // second use case: put, get (to check it is there), delete wrong URL, get (to check it is still there) + QTest::newRow("delete-error") << url << 201 << QNetworkReply::NoError << wrongUrl << 404 << QNetworkReply::ContentNotFoundError << url << 200 << QNetworkReply::NoError; + +} + +void tst_QNetworkReply::putGetDeleteGetFromHttp() +{ + QFETCH(QUrl, putUrl); + QFETCH(int, putResultCode); + QFETCH(QNetworkReply::NetworkError, putError); + QFETCH(QUrl, deleteUrl); + QFETCH(int, deleteResultCode); + QFETCH(QNetworkReply::NetworkError, deleteError); + QFETCH(QUrl, get2Url); + QFETCH(int, get2ResultCode); + QFETCH(QNetworkReply::NetworkError, get2Error); + + QNetworkRequest putRequest(putUrl); + QNetworkRequest deleteRequest(deleteUrl); + QNetworkRequest get2Request(get2Url); + QNetworkReplyPtr reply; + + RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, putRequest, reply, 0)); + QCOMPARE(reply->error(), putError); + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), putResultCode); + + runSimpleRequest(QNetworkAccessManager::GetOperation, putRequest, reply, 0); + QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + + runSimpleRequest(QNetworkAccessManager::DeleteOperation, deleteRequest, reply, 0); + QCOMPARE(reply->error(), deleteError); + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), deleteResultCode); + + runSimpleRequest(QNetworkAccessManager::GetOperation, get2Request, reply, 0); + QCOMPARE(reply->error(), get2Error); + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), get2ResultCode); + +} + void tst_QNetworkReply::ioGetFromData_data() { QTest::addColumn<QString>("urlStr"); @@ -2506,6 +2774,320 @@ void tst_QNetworkReply::ioPostToHttpFromFile() QCOMPARE(reply->readAll().trimmed(), md5sum(sourceFile.readAll()).toHex()); } +void tst_QNetworkReply::ioPostToHttpFromSocket_data() +{ + QTest::addColumn<QByteArray>("data"); + QTest::addColumn<QByteArray>("md5sum"); + QTest::addColumn<QUrl>("url"); + QTest::addColumn<QNetworkProxy>("proxy"); + QTest::addColumn<int>("authenticationRequiredCount"); + QTest::addColumn<int>("proxyAuthenticationRequiredCount"); + + for (int i = 0; i < proxies.count(); ++i) + for (int auth = 0; auth < 2; ++auth) { + QUrl url; + if (auth) + url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + else + url = "http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi"; + + QNetworkProxy proxy = proxies.at(i).proxy; + QByteArray testsuffix = QByteArray(auth ? "+auth" : "") + proxies.at(i).tag; + int proxyauthcount = proxies.at(i).requiresAuthentication; + + QByteArray data; + data = ""; + QTest::newRow("empty" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + + data = "This is a normal message."; + QTest::newRow("generic" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + + data = "This is a message to show that Qt rocks!\r\n\n"; + QTest::newRow("small" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + + data = QByteArray("abcd\0\1\2\abcd",12); + QTest::newRow("with-nul" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + + data = QByteArray(4097, '\4'); + QTest::newRow("4k+1" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + + data = QByteArray(128*1024+1, '\177'); + QTest::newRow("128k+1" + testsuffix) << data << md5sum(data) << url << proxy << auth << proxyauthcount; + } +} + +void tst_QNetworkReply::ioPostToHttpFromSocket() +{ + qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy + qRegisterMetaType<QAuthenticator *>(); + qRegisterMetaType<QNetworkReply *>(); + + QFETCH(QByteArray, data); + QFETCH(QUrl, url); + QFETCH(QNetworkProxy, proxy); + SocketPair socketpair; + socketpair.create(); + QVERIFY(socketpair.endPoints[0] && socketpair.endPoints[1]); + + socketpair.endPoints[0]->write(data); + + QNetworkRequest request(url); + manager.setProxy(proxy); + QNetworkReplyPtr reply = manager.post(QNetworkRequest(url), socketpair.endPoints[1]); + socketpair.endPoints[0]->close(); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + connect(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), + SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + QSignalSpy authenticationRequiredSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QSignalSpy proxyAuthenticationRequiredSpy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + + QTestEventLoop::instance().enterLoop(1); + + disconnect(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), + this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QCOMPARE(reply->url(), url); + QCOMPARE(reply->error(), QNetworkReply::NoError); + // verify that the HTTP status code is 200 Ok + QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); + + QCOMPARE(reply->readAll().trimmed(), md5sum(data).toHex()); + + QTEST(authenticationRequiredSpy.count(), "authenticationRequiredCount"); + QTEST(proxyAuthenticationRequiredSpy.count(), "proxyAuthenticationRequiredCount"); + } + +// this tests checks if rewinding the POST-data to some place in the middle +// worked. +void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileToEnd() +{ + QFile sourceFile(SRCDIR "/rfc3252.txt"); + QVERIFY(sourceFile.open(QIODevice::ReadOnly)); + // seeking to the middle + sourceFile.seek(sourceFile.size() / 2); + + QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QNetworkRequest request(url); + QNetworkReplyPtr reply = manager.post(QNetworkRequest(url), &sourceFile); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + QTestEventLoop::instance().enterLoop(2); + disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // compare half data + sourceFile.seek(sourceFile.size() / 2); + QByteArray data = sourceFile.readAll(); + QCOMPARE(reply->readAll().trimmed(), md5sum(data).toHex()); +} + +void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileFiveBytes() +{ + QFile sourceFile(SRCDIR "/rfc3252.txt"); + QVERIFY(sourceFile.open(QIODevice::ReadOnly)); + // seeking to the middle + sourceFile.seek(sourceFile.size() / 2); + + QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QNetworkRequest request(url); + // only send 5 bytes + request.setHeader(QNetworkRequest::ContentLengthHeader, 5); + QVERIFY(request.header(QNetworkRequest::ContentLengthHeader).isValid()); + QNetworkReplyPtr reply = manager.post(request, &sourceFile); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + QTestEventLoop::instance().enterLoop(2); + disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // compare half data + sourceFile.seek(sourceFile.size() / 2); + QByteArray data = sourceFile.read(5); + QCOMPARE(reply->readAll().trimmed(), md5sum(data).toHex()); +} + +void tst_QNetworkReply::ioPostToHttpFromMiddleOfQBufferFiveBytes() +{ + // test needed since a QBuffer goes with a different codepath than the QFile + // tested in ioPostToHttpFromMiddleOfFileFiveBytes + QBuffer uploadBuffer; + uploadBuffer.open(QIODevice::ReadWrite); + uploadBuffer.write("1234567890"); + uploadBuffer.seek(5); + + QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QNetworkRequest request(url); + QNetworkReplyPtr reply = manager.post(request, &uploadBuffer); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + QTestEventLoop::instance().enterLoop(2); + disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + QVERIFY(!QTestEventLoop::instance().timeout()); + + // compare half data + uploadBuffer.seek(5); + QByteArray data = uploadBuffer.read(5); + QCOMPARE(reply->readAll().trimmed(), md5sum(data).toHex()); +} + + +void tst_QNetworkReply::ioPostToHttpNoBufferFlag() +{ + QByteArray data = QByteArray("daaaaaaataaaaaaa"); + // create a sequential QIODevice by feeding the data into a local TCP server + SocketPair socketpair; + socketpair.create(); + QVERIFY(socketpair.endPoints[0] && socketpair.endPoints[1]); + socketpair.endPoints[0]->write(data); + + QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; + QNetworkRequest request(url); + // disallow buffering + request.setAttribute(QNetworkRequest::DoNotBufferUploadDataAttribute, true); + request.setHeader(QNetworkRequest::ContentLengthHeader, data.size()); + QNetworkReplyPtr reply = manager.post(request, socketpair.endPoints[1]); + socketpair.endPoints[0]->close(); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + QTestEventLoop::instance().enterLoop(2); + disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), + this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); + + // verify: error code is QNetworkReply::ContentReSendError + QCOMPARE(reply->error(), QNetworkReply::ContentReSendError); +} + + +void tst_QNetworkReply::ioPostToHttpUploadProgress() +{ + QFile sourceFile(SRCDIR "/bigfile"); + QVERIFY(sourceFile.open(QIODevice::ReadOnly)); + + // emulate a minimal http server + QTcpServer server; + server.listen(QHostAddress(QHostAddress::LocalHost), 0); + + // create the request + QUrl url = QUrl(QString("http://127.0.0.1:%1/").arg(server.serverPort())); + QNetworkRequest request(url); + QNetworkReplyPtr reply = manager.post(request, &sourceFile); + QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); + connect(&server, SIGNAL(newConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); + + // get the request started and the incoming socket connected + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + QTcpSocket *incomingSocket = server.nextPendingConnection(); + QVERIFY(incomingSocket); + disconnect(&server, SIGNAL(newConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); + + incomingSocket->setReadBufferSize(1*1024); + QTestEventLoop::instance().enterLoop(2); + // some progress should have been made + QList<QVariant> args = spy.last(); + QVERIFY(!args.isEmpty()); + QVERIFY(args.at(0).toLongLong() > 0); + + incomingSocket->setReadBufferSize(32*1024); + incomingSocket->read(16*1024); + QTestEventLoop::instance().enterLoop(2); + // some more progress than before + QList<QVariant> args2 = spy.last(); + QVERIFY(!args2.isEmpty()); + QVERIFY(args2.at(0).toLongLong() > args.at(0).toLongLong()); + + // set the read buffer to unlimited + incomingSocket->setReadBufferSize(0); + QTestEventLoop::instance().enterLoop(10); + // progress should be finished + QList<QVariant> args3 = spy.last(); + QVERIFY(!args3.isEmpty()); + QVERIFY(args3.at(0).toLongLong() > args2.at(0).toLongLong()); + QCOMPARE(args3.at(0).toLongLong(), args3.at(1).toLongLong()); + QCOMPARE(args3.at(0).toLongLong(), sourceFile.size()); + + // after sending this, the QNAM should emit finished() + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + incomingSocket->write("HTTP/1.0 200 OK\r\n"); + incomingSocket->write("Content-Length: 0\r\n"); + incomingSocket->write("\r\n"); + QTestEventLoop::instance().enterLoop(10); + // not timeouted -> finished() was emitted + QVERIFY(!QTestEventLoop::instance().timeout()); + + incomingSocket->close(); + server.close(); +} + +void tst_QNetworkReply::ioPostToHttpEmtpyUploadProgress() +{ + QByteArray ba; + ba.resize(0); + QBuffer buffer(&ba,0); + QVERIFY(buffer.open(QIODevice::ReadOnly)); + + // emulate a minimal http server + QTcpServer server; + server.listen(QHostAddress(QHostAddress::LocalHost), 0); + + // create the request + QUrl url = QUrl(QString("http://127.0.0.1:%1/").arg(server.serverPort())); + QNetworkRequest request(url); + QNetworkReplyPtr reply = manager.post(request, &buffer); + QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); + connect(&server, SIGNAL(newConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); + + + // get the request started and the incoming socket connected + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + QTcpSocket *incomingSocket = server.nextPendingConnection(); + QVERIFY(incomingSocket); + + // after sending this, the QNAM should emit finished() + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + incomingSocket->write("HTTP/1.0 200 OK\r\n"); + incomingSocket->write("Content-Length: 0\r\n"); + incomingSocket->write("\r\n"); + incomingSocket->flush(); + QTestEventLoop::instance().enterLoop(10); + // not timeouted -> finished() was emitted + QVERIFY(!QTestEventLoop::instance().timeout()); + + // final check: only 1 uploadProgress has been emitted + QVERIFY(spy.length() == 1); + QList<QVariant> args = spy.last(); + QVERIFY(!args.isEmpty()); + QCOMPARE(args.at(0).toLongLong(), buffer.size()); + QCOMPARE(args.at(0).toLongLong(), buffer.size()); + + incomingSocket->close(); + server.close(); +} + + void tst_QNetworkReply::rateControl_data() { QTest::addColumn<int>("rate"); @@ -2542,8 +3124,8 @@ void tst_QNetworkReply::rateControl() QTestEventLoop::instance().enterLoop(40); int elapsedTime = loopTime.elapsed(); - qDebug() << "send rate:" << sender.transferRate; - qDebug() << "receive rate:" << reader.totalBytesRead * 1000 / elapsedTime + qDebug() << "tst_QNetworkReply::rateControl" << "send rate:" << sender.transferRate; + qDebug() << "tst_QNetworkReply::rateControl" << "receive rate:" << reader.totalBytesRead * 1000 / elapsedTime << "(it received" << reader.totalBytesRead << "bytes in" << elapsedTime << "ms)"; sender.wait(); @@ -2577,23 +3159,54 @@ void tst_QNetworkReply::downloadPerformance() sender.wait(); qint64 receivedBytes = reader.totalBytes; - qDebug() << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and" + qDebug() << "tst_QNetworkReply::downloadPerformance" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and" << elapsedTime << "ms"; } void tst_QNetworkReply::uploadPerformance() { - ThreadedDataReader reader; - DataGenerator generator; - QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1"); - QNetworkReplyPtr reply = manager.put(request, &generator); + ThreadedDataReader reader; + DataGenerator generator; - connect(&reader, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); - QTimer::singleShot(5000, &generator, SLOT(stop())); - generator.start(); - QTestEventLoop::instance().enterLoop(40); + + QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1"); + QNetworkReplyPtr reply = manager.put(request, &generator); + generator.start(); + connect(&reader, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTimer::singleShot(5000, &generator, SLOT(stop())); + + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); } +void tst_QNetworkReply::httpUploadPerformance() +{ + enum {UploadSize = 1000*1024*1024}; // 1000 MB + ThreadedDataReaderHttpServer reader; + FixedSizeDataGenerator generator(UploadSize); + + QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1")); + request.setHeader(QNetworkRequest::ContentLengthHeader,UploadSize); + + QNetworkReplyPtr reply = manager.put(request, &generator); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + + QTime time; + generator.start(); + time.start(); + QTestEventLoop::instance().enterLoop(40); + QVERIFY(!QTestEventLoop::instance().timeout()); + + qint64 elapsed = time.elapsed(); + qDebug() << "tst_QNetworkReply::httpUploadPerformance" << elapsed << "msec, " + << ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec"; + + reader.exit(); + reader.wait(3000); +} + + void tst_QNetworkReply::performanceControlRate() { // this is a control comparison for the other two above @@ -2614,7 +3227,7 @@ void tst_QNetworkReply::performanceControlRate() sender.wait(); qint64 receivedBytes = reader.totalBytes; - qDebug() << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and" + qDebug() << "tst_QNetworkReply::performanceControlRate" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and" << elapsedTime << "ms"; } @@ -2638,6 +3251,8 @@ void tst_QNetworkReply::downloadProgress() connect(reply, SIGNAL(downloadProgress(qint64,qint64)), &QTestEventLoop::instance(), SLOT(exitLoop())); QVERIFY(spy.isValid()); + QVERIFY(!reply->isFinished()); + QVERIFY(reply->isRunning()); QCoreApplication::instance()->processEvents(); if (!server.hasPendingConnections()) @@ -2647,6 +3262,7 @@ void tst_QNetworkReply::downloadProgress() QByteArray data(128, 'a'); QTcpSocket *sender = server.nextPendingConnection(); + QVERIFY(sender); QFETCH(int, loopCount); for (int i = 1; i <= loopCount; ++i) { @@ -2657,6 +3273,8 @@ void tst_QNetworkReply::downloadProgress() QTestEventLoop::instance().enterLoop(2); QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(spy.count() > 0); + QVERIFY(!reply->isFinished()); + QVERIFY(reply->isRunning()); QList<QVariant> args = spy.last(); QCOMPARE(args.at(0).toInt(), i*data.size()); @@ -2670,6 +3288,8 @@ void tst_QNetworkReply::downloadProgress() QTestEventLoop::instance().enterLoop(2); QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(spy.count() > 0); + QVERIFY(!reply->isRunning()); + QVERIFY(reply->isFinished()); QList<QVariant> args = spy.last(); QCOMPARE(args.at(0).toInt(), loopCount * data.size()); @@ -2930,7 +3550,7 @@ void tst_QNetworkReply::httpProxyCommands_data() << QUrl("http://0.0.0.0:4443/http-request") << QByteArray("HTTP/1.0 200 OK\r\nProxy-Connection: close\r\nContent-Length: 1\r\n\r\n1") << "GET http://0.0.0.0:4443/http-request HTTP/1."; -#ifndef QT_NO_SSL +#ifndef QT_NO_OPENSSL QTest::newRow("https") << QUrl("https://0.0.0.0:4443/https-request") << QByteArray("HTTP/1.0 200 Connection Established\r\n\r\n") @@ -3069,6 +3689,35 @@ void tst_QNetworkReply::authorizationError() QCOMPARE(QString(reply->readAll()), httpBody); } +void tst_QNetworkReply::httpConnectionCount() +{ + QTcpServer server; + QVERIFY(server.listen()); + QCoreApplication::instance()->processEvents(); + + for (int i = 0; i < 10; i++) { + QNetworkRequest request (QUrl("http://127.0.0.1:" + QString::number(server.serverPort()) + "/" + QString::number(i))); + QNetworkReply* reply = manager.get(request); + reply->setParent(this); + } + + int pendingConnectionCount = 0; + QTime time; + time.start(); + + while(pendingConnectionCount != 6) { + QCoreApplication::instance()->processEvents(); + while (server.nextPendingConnection()) + pendingConnectionCount++; + + // at max. wait 10 sec + if (time.elapsed() > 10000) + break; + } + + QCOMPARE(pendingConnectionCount, 6); +} + class HttpDownloadPerformanceClient : QObject { Q_OBJECT; QIODevice *device; @@ -3193,5 +3842,81 @@ void tst_QNetworkReply::httpDownloadPerformance() delete reply; } +#ifndef QT_NO_OPENSSL +void tst_QNetworkReply::ignoreSslErrorsList_data() +{ + QTest::addColumn<QString>("url"); + QTest::addColumn<QList<QSslError> >("expectedSslErrors"); + QTest::addColumn<QNetworkReply::NetworkError>("expectedNetworkError"); + + QList<QSslError> expectedSslErrors; + // apparently, because of some weird behaviour of SRCDIR, the file name below needs to start with a slash + QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "/../qsslsocket/certs/qt-test-server-cacert.pem")); + QSslError rightError(QSslError::SelfSignedCertificate, certs.at(0)); + QSslError wrongError(QSslError::SelfSignedCertificate); + + QTest::newRow("SSL-failure-empty-list") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; + expectedSslErrors.append(wrongError); + QTest::newRow("SSL-failure-wrong-error") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; + expectedSslErrors.append(rightError); + QTest::newRow("allErrorsInExpectedList1") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::NoError; + expectedSslErrors.removeAll(wrongError); + QTest::newRow("allErrorsInExpectedList2") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::NoError; + expectedSslErrors.removeAll(rightError); + QTest::newRow("SSL-failure-empty-list-again") << "https://" + QtNetworkSettings::serverName() + "/index.html" << expectedSslErrors << QNetworkReply::SslHandshakeFailedError; +} + +void tst_QNetworkReply::ignoreSslErrorsList() +{ + QFETCH(QString, url); + QNetworkRequest request(url); + QNetworkReply *reply = manager.get(request); + + QFETCH(QList<QSslError>, expectedSslErrors); + reply->ignoreSslErrors(expectedSslErrors); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QFETCH(QNetworkReply::NetworkError, expectedNetworkError); + QCOMPARE(reply->error(), expectedNetworkError); +} + +void tst_QNetworkReply::ignoreSslErrorsListWithSlot_data() +{ + ignoreSslErrorsList_data(); +} + +// this is not a test, just a slot called in the test below +void tst_QNetworkReply::ignoreSslErrorListSlot(QNetworkReply *reply, const QList<QSslError> &) +{ + reply->ignoreSslErrors(storedExpectedSslErrors); +} + +// do the same as in ignoreSslErrorsList, but ignore the errors in the slot +void tst_QNetworkReply::ignoreSslErrorsListWithSlot() +{ + QFETCH(QString, url); + QNetworkRequest request(url); + QNetworkReply *reply = manager.get(request); + + QFETCH(QList<QSslError>, expectedSslErrors); + // store the errors to ignore them later in the slot connected below + storedExpectedSslErrors = expectedSslErrors; + connect(&manager, SIGNAL(sslErrors(QNetworkReply *, const QList<QSslError> &)), + this, SLOT(ignoreSslErrorListSlot(QNetworkReply *, const QList<QSslError> &))); + + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(10); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QFETCH(QNetworkReply::NetworkError, expectedNetworkError); + QCOMPARE(reply->error(), expectedNetworkError); +} + +#endif // QT_NO_OPENSSL + QTEST_MAIN(tst_QNetworkReply) #include "tst_qnetworkreply.moc" diff --git a/tests/auto/qobject/tst_qobject.cpp b/tests/auto/qobject/tst_qobject.cpp index 2df2a82..4f25af6 100644 --- a/tests/auto/qobject/tst_qobject.cpp +++ b/tests/auto/qobject/tst_qobject.cpp @@ -106,6 +106,7 @@ private slots: void childDeletesItsSibling(); void dynamicProperties(); void floatProperty(); + void qrealProperty(); void property(); void recursiveSignalEmission(); void blockingQueuedConnection(); @@ -116,6 +117,7 @@ private slots: void dumpObjectInfo(); void connectToSender(); void qobjectConstCast(); + void uniqConnection(); protected: }; @@ -204,12 +206,20 @@ public: sequence_slot3 = 0; sequence_slot2 = 0; sequence_slot1 = 0; + count_slot1 = 0; + count_slot2 = 0; + count_slot3 = 0; + count_slot4 = 0; } int sequence_slot1; int sequence_slot2; int sequence_slot3; int sequence_slot4; + int count_slot1; + int count_slot2; + int count_slot3; + int count_slot4; bool called(int slot) { switch (slot) { @@ -224,10 +234,10 @@ public: static int sequence; public slots: - void slot1() { sequence_slot1 = ++sequence; } - void slot2() { sequence_slot2 = ++sequence; } - void slot3() { sequence_slot3 = ++sequence; } - void slot4() { sequence_slot4 = ++sequence; } + void slot1() { sequence_slot1 = ++sequence; count_slot1++; } + void slot2() { sequence_slot2 = ++sequence; count_slot2++; } + void slot3() { sequence_slot3 = ++sequence; count_slot3++; } + void slot4() { sequence_slot4 = ++sequence; count_slot4++; } }; @@ -1104,6 +1114,7 @@ class PropertyObject : public QObject Q_PROPERTY(QVariant variant READ variant WRITE setVariant) Q_PROPERTY(CustomType* custom READ custom WRITE setCustom) Q_PROPERTY(float myFloat READ myFloat WRITE setMyFloat) + Q_PROPERTY(qreal myQReal READ myQReal WRITE setMyQReal) public: enum Alpha { @@ -1139,6 +1150,9 @@ public: void setMyFloat(float value) { m_float = value; } inline float myFloat() const { return m_float; } + void setMyQReal(qreal value) { m_qreal = value; } + qreal myQReal() const { return m_qreal; } + private: Alpha m_alpha; Priority m_priority; @@ -1147,6 +1161,7 @@ private: QVariant m_variant; CustomType *m_custom; float m_float; + qreal m_qreal; }; Q_DECLARE_METATYPE(PropertyObject::Priority) @@ -2339,6 +2354,27 @@ void tst_QObject::floatProperty() QVERIFY(qVariantValue<float>(v) == 128.0f); } +void tst_QObject::qrealProperty() +{ + PropertyObject obj; + const int idx = obj.metaObject()->indexOfProperty("myQReal"); + QVERIFY(idx > 0); + QMetaProperty prop = obj.metaObject()->property(idx); + QVERIFY(prop.isValid()); + QVERIFY(prop.type() == uint(QMetaType::type("qreal"))); + QVERIFY(!prop.write(&obj, QVariant("Hello"))); + + QVERIFY(prop.write(&obj, qVariantFromValue(128.0f))); + QVariant v = prop.read(&obj); + QCOMPARE(v.userType(), qMetaTypeId<qreal>()); + QVERIFY(qVariantValue<qreal>(v) == 128.0); + + QVERIFY(prop.write(&obj, qVariantFromValue(double(127)))); + v = prop.read(&obj); + QCOMPARE(v.userType(), qMetaTypeId<qreal>()); + QVERIFY(qVariantValue<qreal>(v) == 127.0); +} + class DynamicPropertyObject : public PropertyObject { public: @@ -2390,11 +2426,15 @@ void tst_QObject::dynamicProperties() void tst_QObject::recursiveSignalEmission() { +#ifdef QT_NO_PROCESS + QSKIP("Test requires QProcess", SkipAll); +#else QProcess proc; proc.start("./signalbug"); QVERIFY(proc.waitForFinished()); QVERIFY(proc.exitStatus() == QProcess::NormalExit); QCOMPARE(proc.exitCode(), 0); +#endif } void tst_QObject::blockingQueuedConnection() @@ -2783,5 +2823,69 @@ void tst_QObject::qobjectConstCast() QVERIFY(qobject_cast<const FooObject *>(cptr)); } +void tst_QObject::uniqConnection() +{ + SenderObject *s = new SenderObject; + ReceiverObject *r1 = new ReceiverObject; + ReceiverObject *r2 = new ReceiverObject; + r1->reset(); + r2->reset(); + ReceiverObject::sequence = 0; + + QVERIFY( connect( s, SIGNAL( signal1() ), r1, SLOT( slot1() ) , Qt::UniqueConnection) ); + QVERIFY( connect( s, SIGNAL( signal1() ), r2, SLOT( slot1() ) , Qt::UniqueConnection) ); + QVERIFY( connect( s, SIGNAL( signal1() ), r1, SLOT( slot3() ) , Qt::UniqueConnection) ); + QVERIFY( connect( s, SIGNAL( signal3() ), r1, SLOT( slot3() ) , Qt::UniqueConnection) ); + + s->emitSignal1(); + s->emitSignal2(); + s->emitSignal3(); + s->emitSignal4(); + + QCOMPARE( r1->count_slot1, 1 ); + QCOMPARE( r1->count_slot2, 0 ); + QCOMPARE( r1->count_slot3, 2 ); + QCOMPARE( r1->count_slot4, 0 ); + QCOMPARE( r2->count_slot1, 1 ); + QCOMPARE( r2->count_slot2, 0 ); + QCOMPARE( r2->count_slot3, 0 ); + QCOMPARE( r2->count_slot4, 0 ); + QCOMPARE( r1->sequence_slot1, 1 ); + QCOMPARE( r2->sequence_slot1, 2 ); + QCOMPARE( r1->sequence_slot3, 4 ); + + r1->reset(); + r2->reset(); + ReceiverObject::sequence = 0; + + QVERIFY( connect( s, SIGNAL( signal4() ), r1, SLOT( slot4() ) , Qt::UniqueConnection) ); + QVERIFY( connect( s, SIGNAL( signal4() ), r2, SLOT( slot4() ) , Qt::UniqueConnection) ); + QVERIFY(!connect( s, SIGNAL( signal4() ), r2, SLOT( slot4() ) , Qt::UniqueConnection) ); + QVERIFY( connect( s, SIGNAL( signal1() ), r2, SLOT( slot4() ) , Qt::UniqueConnection) ); + QVERIFY(!connect( s, SIGNAL( signal4() ), r1, SLOT( slot4() ) , Qt::UniqueConnection) ); + + s->emitSignal4(); + QCOMPARE( r1->count_slot4, 1 ); + QCOMPARE( r2->count_slot4, 1 ); + QCOMPARE( r1->sequence_slot4, 1 ); + QCOMPARE( r2->sequence_slot4, 2 ); + + r1->reset(); + r2->reset(); + ReceiverObject::sequence = 0; + + connect( s, SIGNAL( signal4() ), r1, SLOT( slot4() ) ); + + s->emitSignal4(); + QCOMPARE( r1->count_slot4, 2 ); + QCOMPARE( r2->count_slot4, 1 ); + QCOMPARE( r1->sequence_slot4, 3 ); + QCOMPARE( r2->sequence_slot4, 2 ); + + delete s; + delete r1; + delete r2; +} + QTEST_MAIN(tst_QObject) #include "tst_qobject.moc" diff --git a/tests/auto/qobjectrace/tst_qobjectrace.cpp b/tests/auto/qobjectrace/tst_qobjectrace.cpp index 87fef48..98c7a30 100644 --- a/tests/auto/qobjectrace/tst_qobjectrace.cpp +++ b/tests/auto/qobjectrace/tst_qobjectrace.cpp @@ -43,6 +43,7 @@ #include <QtCore> #include <QtTest/QtTest> + enum { OneMinute = 60 * 1000, TwoMinutes = OneMinute * 2 }; class tst_QObjectRace: public QObject @@ -70,12 +71,18 @@ public: public slots: void theSlot() { - enum { step = 1000 }; + enum { step = 35 }; if ((++count % step) == 0) { QThread *nextThread = threads.at((count / step) % threads.size()); moveToThread(nextThread); } } + + void destroSlot() { + emit theSignal(); + } +signals: + void theSignal(); }; class RaceThread : public QThread @@ -120,6 +127,10 @@ private slots: if (stopWatch.elapsed() >= OneMinute / 2) #endif quit(); + + QObject o; + connect(&o, SIGNAL(destroyed()) , object, SLOT(destroSlot())); + connect(object, SIGNAL(destroyed()) , &o, SLOT(deleteLater())); } }; @@ -138,10 +149,17 @@ void tst_QObjectRace::moveToThreadRace() for (int i = 0; i < ThreadCount; ++i) threads[i]->start(); - QVERIFY(threads[0]->wait(TwoMinutes)); + + while(!threads[0]->isFinished()) { + QPointer<RaceObject> foo (object); + QObject o; + connect(&o, SIGNAL(destroyed()) , object, SLOT(destroSlot())); + connect(object, SIGNAL(destroyed()) , &o, SLOT(deleteLater())); + QTest::qWait(10); + } // the other threads should finish pretty quickly now for (int i = 1; i < ThreadCount; ++i) - QVERIFY(threads[i]->wait(30000)); + QVERIFY(threads[i]->wait(300)); for (int i = 0; i < ThreadCount; ++i) delete threads[i]; diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp index cb532ce..5e5bd39 100644 --- a/tests/auto/qpainter/tst_qpainter.cpp +++ b/tests/auto/qpainter/tst_qpainter.cpp @@ -202,6 +202,7 @@ private slots: void drawImage_task217400_data(); void drawImage_task217400(); + void drawImage_1x1(); void drawRect_task215378(); void drawRect_task247505(); @@ -227,6 +228,7 @@ private slots: void extendedBlendModes(); void zeroOpacity(); + void clippingBug(); void emptyClip(); private: @@ -4195,6 +4197,29 @@ void tst_QPainter::zeroOpacity() QCOMPARE(target.pixel(0, 0), 0xff000000); } +void tst_QPainter::clippingBug() +{ + QImage img(32, 32, QImage::Format_ARGB32_Premultiplied); + img.fill(0); + + QImage expected = img; + QPainter p(&expected); + p.fillRect(1, 1, 30, 30, Qt::red); + p.end(); + + QPainterPath path; + path.addRect(1, 1, 30, 30); + path.addRect(1, 1, 30, 30); + path.addRect(1, 1, 30, 30); + + p.begin(&img); + p.setClipPath(path); + p.fillRect(0, 0, 32, 32, Qt::red); + p.end(); + + QCOMPARE(img, expected); +} + void tst_QPainter::emptyClip() { QImage img(64, 64, QImage::Format_ARGB32_Premultiplied); @@ -4213,5 +4238,25 @@ void tst_QPainter::emptyClip() p.fillPath(path, Qt::green); } +void tst_QPainter::drawImage_1x1() +{ + QImage source(1, 1, QImage::Format_ARGB32_Premultiplied); + source.fill(0xffffffff); + + QImage img(32, 32, QImage::Format_ARGB32_Premultiplied); + img.fill(0xff000000); + QPainter p(&img); + p.drawImage(QRectF(0.9, 0.9, 32, 32), source); + p.end(); + + QImage expected = img; + expected.fill(0xff000000); + p.begin(&expected); + p.fillRect(1, 1, 31, 31, Qt::white); + p.end(); + + QCOMPARE(img, expected); +} + QTEST_MAIN(tst_QPainter) #include "tst_qpainter.moc" diff --git a/tests/auto/qpainterpath/tst_qpainterpath.cpp b/tests/auto/qpainterpath/tst_qpainterpath.cpp index 0e7c000..4a8c4fc 100644 --- a/tests/auto/qpainterpath/tst_qpainterpath.cpp +++ b/tests/auto/qpainterpath/tst_qpainterpath.cpp @@ -107,6 +107,8 @@ private slots: void operators(); void connectPathDuplicatePoint(); + + void translate(); }; // Testing get/set functions @@ -1167,6 +1169,44 @@ void tst_QPainterPath::connectPathDuplicatePoint() QCOMPARE(c, a); } +void tst_QPainterPath::translate() +{ + QPainterPath path; + + // Path with no elements. + QCOMPARE(path.currentPosition(), QPointF()); + path.translate(50.5, 50.5); + QCOMPARE(path.currentPosition(), QPointF()); + QCOMPARE(path.translated(50.5, 50.5).currentPosition(), QPointF()); + + // path.isEmpty(), but we have one MoveTo element that should be translated. + path.moveTo(50, 50); + QCOMPARE(path.currentPosition(), QPointF(50, 50)); + path.translate(99.9, 99.9); + QCOMPARE(path.currentPosition(), QPointF(149.9, 149.9)); + path.translate(-99.9, -99.9); + QCOMPARE(path.currentPosition(), QPointF(50, 50)); + QCOMPARE(path.translated(-50, -50).currentPosition(), QPointF(0, 0)); + + // Complex path. + QRegion shape(100, 100, 300, 200, QRegion::Ellipse); + shape -= QRect(225, 175, 50, 50); + QPainterPath complexPath; + complexPath.addRegion(shape); + QVector<QPointF> untranslatedElements; + for (int i = 0; i < complexPath.elementCount(); ++i) + untranslatedElements.append(QPointF(complexPath.elementAt(i))); + + const QPainterPath untranslatedComplexPath(complexPath); + const QPointF offset(100, 100); + complexPath.translate(offset); + + for (int i = 0; i < complexPath.elementCount(); ++i) + QCOMPARE(QPointF(complexPath.elementAt(i)) - offset, untranslatedElements.at(i)); + + QCOMPARE(complexPath.translated(-offset), untranslatedComplexPath); +} + QTEST_APPLESS_MAIN(tst_QPainterPath) #include "tst_qpainterpath.moc" diff --git a/tests/auto/qparallelanimationgroup/qparallelanimationgroup.pro b/tests/auto/qparallelanimationgroup/qparallelanimationgroup.pro new file mode 100644 index 0000000..f2cacd3 --- /dev/null +++ b/tests/auto/qparallelanimationgroup/qparallelanimationgroup.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +QT = core gui +SOURCES += tst_qparallelanimationgroup.cpp + + diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp new file mode 100644 index 0000000..d7d6b88 --- /dev/null +++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp @@ -0,0 +1,832 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtCore/qparallelanimationgroup.h> + +//TESTED_CLASS=QParallelAnimationGroup +//TESTED_FILES= + +Q_DECLARE_METATYPE(QAbstractAnimation::State) + +class tst_QParallelAnimationGroup : public QObject +{ + Q_OBJECT +public: + tst_QParallelAnimationGroup(); + virtual ~tst_QParallelAnimationGroup(); + +public Q_SLOTS: + void init(); + void cleanup(); + +private slots: + void construction(); + void setCurrentTime(); + void clearGroup(); + void propagateGroupUpdateToChildren(); + void updateChildrenWithRunningGroup(); + void deleteChildrenWithRunningGroup(); + void startChildrenWithStoppedGroup(); + void stopGroupWithRunningChild(); + void startGroupWithRunningChild(); + void zeroDurationAnimation(); + void stopUncontrolledAnimations(); + void loopCount_data(); + void loopCount(); + void autoAdd(); +}; + +tst_QParallelAnimationGroup::tst_QParallelAnimationGroup() +{ +} + +tst_QParallelAnimationGroup::~tst_QParallelAnimationGroup() +{ +} + +void tst_QParallelAnimationGroup::init() +{ + qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); +} + +void tst_QParallelAnimationGroup::cleanup() +{ +} + +void tst_QParallelAnimationGroup::construction() +{ + QParallelAnimationGroup animationgroup; +} + +class AnimationObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue) +public: + AnimationObject(int startValue = 0) + : v(startValue) + { } + + int value() const { return v; } + void setValue(int value) { v = value; } + + int v; +}; + +class TestAnimation : public QVariantAnimation +{ + Q_OBJECT +public: + virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)}; + virtual void updateState(QAbstractAnimation::State oldState, + QAbstractAnimation::State newState) + { + Q_UNUSED(oldState) + Q_UNUSED(newState) + }; +}; + +class TestAnimation2 : public QVariantAnimation +{ + Q_OBJECT +public: + TestAnimation2(QAbstractAnimation *animation) : QVariantAnimation(animation) {} + TestAnimation2(int duration, QAbstractAnimation *animation) : QVariantAnimation(animation), m_duration(duration) {} + + virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)}; + virtual void updateState(QAbstractAnimation::State oldState, + QAbstractAnimation::State newState) + { + Q_UNUSED(oldState) + Q_UNUSED(newState) + }; + + virtual int duration() const { + return m_duration; + } +private: + int m_duration; +}; + +class UncontrolledAnimation : public QPropertyAnimation +{ + Q_OBJECT +public: + UncontrolledAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = 0) + : QPropertyAnimation(target, propertyName, parent), id(0) + { + setDuration(250); + } + + int duration() const { return -1; /* not time driven */ } + +protected: + void timerEvent(QTimerEvent *event) + { + if (event->timerId() == id) + stop(); + } + + void updateRunning(bool running) + { + if (running) { + id = startTimer(500); + } else { + killTimer(id); + id = 0; + } + } + +private: + int id; +}; + +void tst_QParallelAnimationGroup::setCurrentTime() +{ + AnimationObject p_o1; + AnimationObject p_o2; + AnimationObject p_o3; + AnimationObject t_o1; + AnimationObject t_o2; + + // parallel operating on different object/properties + QAnimationGroup *parallel = new QParallelAnimationGroup(); + QVariantAnimation *a1_p_o1 = new QPropertyAnimation(&p_o1, "value"); + QVariantAnimation *a1_p_o2 = new QPropertyAnimation(&p_o2, "value"); + QVariantAnimation *a1_p_o3 = new QPropertyAnimation(&p_o3, "value"); + a1_p_o2->setLoopCount(3); + parallel->addAnimation(a1_p_o1); + parallel->addAnimation(a1_p_o2); + parallel->addAnimation(a1_p_o3); + + UncontrolledAnimation *notTimeDriven = new UncontrolledAnimation(&t_o1, "value"); + QCOMPARE(notTimeDriven->totalDuration(), -1); + + QVariantAnimation *loopsForever = new QPropertyAnimation(&t_o2, "value"); + loopsForever->setLoopCount(-1); + QCOMPARE(loopsForever->totalDuration(), -1); + + QParallelAnimationGroup group; + group.addAnimation(parallel); + group.addAnimation(notTimeDriven); + group.addAnimation(loopsForever); + + // Current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(parallel->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_p_o3->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped); + + QCOMPARE(group.currentTime(), 1); + QCOMPARE(a1_p_o1->currentTime(), 1); + QCOMPARE(a1_p_o2->currentTime(), 1); + QCOMPARE(a1_p_o3->currentTime(), 1); + QCOMPARE(notTimeDriven->currentTime(), 1); + QCOMPARE(loopsForever->currentTime(), 1); + + // Current time = 250 + group.setCurrentTime(250); + QCOMPARE(group.currentTime(), 250); + QCOMPARE(a1_p_o1->currentTime(), 250); + QCOMPARE(a1_p_o2->currentTime(), 0); + QCOMPARE(a1_p_o2->currentLoop(), 1); + QCOMPARE(a1_p_o3->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 250); + QCOMPARE(loopsForever->currentTime(), 0); + QCOMPARE(loopsForever->currentLoop(), 1); + + // Current time = 251 + group.setCurrentTime(251); + QCOMPARE(group.currentTime(), 251); + QCOMPARE(a1_p_o1->currentTime(), 250); + QCOMPARE(a1_p_o2->currentTime(), 1); + QCOMPARE(a1_p_o2->currentLoop(), 1); + QCOMPARE(a1_p_o3->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 251); + QCOMPARE(loopsForever->currentTime(), 1); +} + +void tst_QParallelAnimationGroup::clearGroup() +{ + QParallelAnimationGroup group; + static const int animationCount = 10; + + for (int i = 0; i < animationCount; ++i) { + new QParallelAnimationGroup(&group); + } + + QCOMPARE(group.animationCount(), animationCount); + + QPointer<QAbstractAnimation> children[animationCount]; + for (int i = 0; i < animationCount; ++i) { + QVERIFY(group.animationAt(i) != 0); + children[i] = group.animationAt(i); + } + + group.clearAnimations(); + QCOMPARE(group.animationCount(), 0); + QCOMPARE(group.currentTime(), 0); + for (int i = 0; i < animationCount; ++i) + QVERIFY(children[i].isNull()); +} + +void tst_QParallelAnimationGroup::propagateGroupUpdateToChildren() +{ + // this test verifies if group state changes are updating its children correctly + QParallelAnimationGroup group; + + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation anim1(&o, "ole"); + anim1.setEndValue(43); + anim1.setDuration(100); + QVERIFY(!anim1.currentValue().isValid()); + QCOMPARE(anim1.currentValue().toInt(), 0); + QCOMPARE(o.property("ole").toInt(), 42); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QVERIFY(anim2.currentValue().isValid()); + QCOMPARE(anim2.currentValue().toInt(), 0); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + group.start(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Running); + + group.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(anim1.state(), QAnimationGroup::Paused); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); +} + +void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup() +{ + // assert that its possible to modify a child's state directly while their group is running + QParallelAnimationGroup group; + + TestAnimation anim; + anim.setStartValue(0); + anim.setEndValue(100); + anim.setDuration(200); + + QSignalSpy groupStateChangedSpy(&group, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy childStateChangedSpy(&anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QCOMPARE(groupStateChangedSpy.count(), 0); + QCOMPARE(childStateChangedSpy.count(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim); + + group.start(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Running); + + QCOMPARE(groupStateChangedSpy.count(), 1); + QCOMPARE(childStateChangedSpy.count(), 1); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + + // starting directly a running child will not have any effect + anim.start(); + + QCOMPARE(groupStateChangedSpy.count(), 1); + QCOMPARE(childStateChangedSpy.count(), 1); + + anim.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Paused); + + // in the animation stops directly, the group will still be running + anim.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Stopped); +} + +void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup() +{ + // test if children can be activated when their group is stopped + QParallelAnimationGroup group; + + QVariantAnimation *anim1 = new TestAnimation; + anim1->setStartValue(0); + anim1->setEndValue(100); + anim1->setDuration(200); + group.addAnimation(anim1); + + QCOMPARE(group.duration(), anim1->duration()); + + group.start(); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1->state(), QAnimationGroup::Running); + + QTest::qWait(50); + QVERIFY(group.currentTime() > 0); + + delete anim1; + QVERIFY(group.animationCount() == 0); + QCOMPARE(group.duration(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(group.currentTime(), 0); //that's the invariant +} + +void tst_QParallelAnimationGroup::startChildrenWithStoppedGroup() +{ + // test if children can be activated when their group is stopped + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(200); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + anim1.start(); + anim2.start(); + anim2.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); +} + +void tst_QParallelAnimationGroup::stopGroupWithRunningChild() +{ + // children that started independently will not be affected by a group stop + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(200); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + anim1.start(); + anim2.start(); + anim2.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + anim1.stop(); + anim2.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); +} + +void tst_QParallelAnimationGroup::startGroupWithRunningChild() +{ + // as the group has precedence over its children, starting a group will restart all the children + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(200); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QSignalSpy stateChangedSpy1(&anim1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy stateChangedSpy2(&anim2, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QCOMPARE(stateChangedSpy1.count(), 0); + QCOMPARE(stateChangedSpy2.count(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + anim1.start(); + anim2.start(); + anim2.pause(); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(1).at(1)), + QAnimationGroup::Paused); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + group.start(); + + QCOMPARE(stateChangedSpy1.count(), 3); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).at(1)), + QAnimationGroup::Stopped); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(2).at(1)), + QAnimationGroup::Running); + + QCOMPARE(stateChangedSpy2.count(), 4); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).at(1)), + QAnimationGroup::Stopped); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).at(1)), + QAnimationGroup::Running); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Running); +} + +void tst_QParallelAnimationGroup::zeroDurationAnimation() +{ + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(0); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(100); + + QSignalSpy stateChangedSpy1(&anim1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy finishedSpy1(&anim1, SIGNAL(finished())); + + QSignalSpy stateChangedSpy2(&anim2, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy finishedSpy2(&anim2, SIGNAL(finished())); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + QCOMPARE(stateChangedSpy1.count(), 0); + group.start(); + QCOMPARE(stateChangedSpy1.count(), 2); + QCOMPARE(finishedSpy1.count(), 1); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(stateChangedSpy2.count(), 1); + QCOMPARE(finishedSpy2.count(), 0); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)), + QAnimationGroup::Running); + + + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Running); + QCOMPARE(group.state(), QAnimationGroup::Running); + + + group.stop(); + group.setLoopCount(4); + stateChangedSpy1.clear(); + stateChangedSpy2.clear(); + + group.start(); + QCOMPARE(stateChangedSpy1.count(), 2); + QCOMPARE(stateChangedSpy2.count(), 1); + group.setCurrentTime(50); + QCOMPARE(stateChangedSpy1.count(), 2); + QCOMPARE(stateChangedSpy2.count(), 1); + group.setCurrentTime(150); + QCOMPARE(stateChangedSpy1.count(), 4); + QCOMPARE(stateChangedSpy2.count(), 3); + group.setCurrentTime(50); + QCOMPARE(stateChangedSpy1.count(), 6); + QCOMPARE(stateChangedSpy2.count(), 5); + +} + +void tst_QParallelAnimationGroup::stopUncontrolledAnimations() +{ + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(0); + + AnimationObject o1; + UncontrolledAnimation notTimeDriven(&o1, "value"); + QCOMPARE(notTimeDriven.totalDuration(), -1); + + TestAnimation loopsForever; + loopsForever.setStartValue(0); + loopsForever.setEndValue(100); + loopsForever.setDuration(100); + loopsForever.setLoopCount(-1); + + QSignalSpy stateChangedSpy(&anim1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + group.addAnimation(&anim1); + group.addAnimation(¬TimeDriven); + group.addAnimation(&loopsForever); + + group.start(); + + QCOMPARE(stateChangedSpy.count(), 2); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running); + QCOMPARE(loopsForever.state(), QAnimationGroup::Running); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + + notTimeDriven.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever.state(), QAnimationGroup::Running); + + loopsForever.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever.state(), QAnimationGroup::Stopped); +} + +struct AnimState { + AnimState(int time = -1) : time(time), state(-1) {} + AnimState(int time, int state) : time(time), state(state) {} + int time; + int state; +}; + +#define Running QAbstractAnimation::Running +#define Stopped QAbstractAnimation::Stopped + +Q_DECLARE_METATYPE(AnimState) +void tst_QParallelAnimationGroup::loopCount_data() +{ + QTest::addColumn<bool>("directionBackward"); + QTest::addColumn<int>("setLoopCount"); + QTest::addColumn<int>("initialGroupTime"); + QTest::addColumn<int>("currentGroupTime"); + QTest::addColumn<AnimState>("expected1"); + QTest::addColumn<AnimState>("expected2"); + QTest::addColumn<AnimState>("expected3"); + + // D U R A T I O N + // 100 60*2 0 + // direction = Forward + QTest::newRow("50") << false << 3 << 0 << 50 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("100") << false << 3 << 0 << 100 << AnimState(100 ) << AnimState( 40, Running) << AnimState( 0, Stopped); + QTest::newRow("110") << false << 3 << 0 << 110 << AnimState(100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("120") << false << 3 << 0 << 120 << AnimState( 0, Running) << AnimState( 0, Running) << AnimState( 0, Stopped); + + QTest::newRow("170") << false << 3 << 0 << 170 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("220") << false << 3 << 0 << 220 << AnimState(100 ) << AnimState( 40, Running) << AnimState( 0, Stopped); + QTest::newRow("230") << false << 3 << 0 << 230 << AnimState(100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("240") << false << 3 << 0 << 240 << AnimState( 0, Running) << AnimState( 0, Running) << AnimState( 0, Stopped); + + QTest::newRow("290") << false << 3 << 0 << 290 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("340") << false << 3 << 0 << 340 << AnimState(100 ) << AnimState( 40, Running) << AnimState( 0, Stopped); + QTest::newRow("350") << false << 3 << 0 << 350 << AnimState(100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("360") << false << 3 << 0 << 360 << AnimState(100, Stopped) << AnimState( 60 ) << AnimState( 0, Stopped); + + QTest::newRow("410") << false << 3 << 0 << 410 << AnimState(100, Stopped) << AnimState( 60, Stopped) << AnimState( 0, Stopped); + QTest::newRow("460") << false << 3 << 0 << 460 << AnimState(100, Stopped) << AnimState( 60, Stopped) << AnimState( 0, Stopped); + QTest::newRow("470") << false << 3 << 0 << 470 << AnimState(100, Stopped) << AnimState( 60, Stopped) << AnimState( 0, Stopped); + QTest::newRow("480") << false << 3 << 0 << 480 << AnimState(100, Stopped) << AnimState( 60, Stopped) << AnimState( 0, Stopped); + + // direction = Forward, rewind + QTest::newRow("120-110") << false << 3 << 120 << 110 << AnimState( 0, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("120-50") << false << 3 << 120 << 50 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("120-0") << false << 3 << 120 << 0 << AnimState( 0, Running) << AnimState( 0, Running) << AnimState( 0, Stopped); + QTest::newRow("300-110") << false << 3 << 300 << 110 << AnimState( 0, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("300-50") << false << 3 << 300 << 50 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("300-0") << false << 3 << 300 << 0 << AnimState( 0, Running) << AnimState( 0, Running) << AnimState( 0, Stopped); + QTest::newRow("115-105") << false << 3 << 115 << 105 << AnimState( 42, Stopped) << AnimState( 45, Running) << AnimState( 0, Stopped); + + // direction = Backward + QTest::newRow("b120-120") << true << 3 << 120 << 120 << AnimState( 42, Stopped) << AnimState( 60, Running) << AnimState( 0, Stopped); + QTest::newRow("b120-110") << true << 3 << 120 << 110 << AnimState( 42, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("b120-100") << true << 3 << 120 << 100 << AnimState(100, Running) << AnimState( 40, Running) << AnimState( 0, Stopped); + QTest::newRow("b120-50") << true << 3 << 120 << 50 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("b120-0") << true << 3 << 120 << 0 << AnimState( 0, Stopped) << AnimState( 0, Stopped) << AnimState( 0, Stopped); + QTest::newRow("b360-170") << true << 3 << 360 << 170 << AnimState( 50, Running) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("b360-220") << true << 3 << 360 << 220 << AnimState(100, Running) << AnimState( 40, Running) << AnimState( 0, Stopped); + QTest::newRow("b360-210") << true << 3 << 360 << 210 << AnimState( 90, Running) << AnimState( 30, Running) << AnimState( 0, Stopped); + QTest::newRow("b360-120") << true << 3 << 360 << 120 << AnimState( 0, Stopped) << AnimState( 60, Running) << AnimState( 0, Stopped); + + // rewind, direction = Backward + QTest::newRow("b50-110") << true << 3 << 50 << 110 << AnimState(100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + QTest::newRow("b50-120") << true << 3 << 50 << 120 << AnimState(100, Stopped) << AnimState( 60, Running) << AnimState( 0, Stopped); + QTest::newRow("b50-140") << true << 3 << 50 << 140 << AnimState( 20, Running) << AnimState( 20, Running) << AnimState( 0, Stopped); + QTest::newRow("b50-240") << true << 3 << 50 << 240 << AnimState(100, Stopped) << AnimState( 60, Running) << AnimState( 0, Stopped); + QTest::newRow("b50-260") << true << 3 << 50 << 260 << AnimState( 20, Running) << AnimState( 20, Running) << AnimState( 0, Stopped); + QTest::newRow("b50-350") << true << 3 << 50 << 350 << AnimState(100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + + // infinite looping + QTest::newRow("inf1220") << false << -1 << 0 << 1220 << AnimState( 20, Running) << AnimState( 20, Running) << AnimState( 0, Stopped); + QTest::newRow("inf1310") << false << -1 << 0 << 1310 << AnimState( 100, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + // infinite looping, direction = Backward (will only loop once) + QTest::newRow("b.inf120-120") << true << -1 << 120 << 120 << AnimState( 42, Stopped) << AnimState( 60, Running) << AnimState( 0, Stopped); + QTest::newRow("b.inf120-20") << true << -1 << 120 << 20 << AnimState( 20, Running) << AnimState( 20, Running) << AnimState( 0, Stopped); + QTest::newRow("b.inf120-110") << true << -1 << 120 << 110 << AnimState( 42, Stopped) << AnimState( 50, Running) << AnimState( 0, Stopped); + + +} + +void tst_QParallelAnimationGroup::loopCount() +{ + QFETCH(bool, directionBackward); + QFETCH(int, setLoopCount); + QFETCH(int, initialGroupTime); + QFETCH(int, currentGroupTime); + QFETCH(AnimState, expected1); + QFETCH(AnimState, expected2); + QFETCH(AnimState, expected3); + + QParallelAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(100); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(60); //total 120 + anim2.setLoopCount(2); + + TestAnimation anim3; + anim3.setStartValue(0); + anim3.setEndValue(100); + anim3.setDuration(0); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + group.addAnimation(&anim3); + + group.setLoopCount(setLoopCount); + if (initialGroupTime >= 0) + group.setCurrentTime(initialGroupTime); + if (directionBackward) + group.setDirection(QAbstractAnimation::Backward); + + group.start(); + if (initialGroupTime >= 0) + group.setCurrentTime(initialGroupTime); + + anim1.setCurrentTime(42); // 42 is "untouched" + anim2.setCurrentTime(42); + + group.setCurrentTime(currentGroupTime); + + QCOMPARE(anim1.currentTime(), expected1.time); + QCOMPARE(anim2.currentTime(), expected2.time); + QCOMPARE(anim3.currentTime(), expected3.time); + + if (expected1.state >=0) + QCOMPARE(int(anim1.state()), expected1.state); + if (expected2.state >=0) + QCOMPARE(int(anim2.state()), expected2.state); + if (expected3.state >=0) + QCOMPARE(int(anim3.state()), expected3.state); + +} + +void tst_QParallelAnimationGroup::autoAdd() +{ + QParallelAnimationGroup group; + QCOMPARE(group.duration(), 0); + TestAnimation2 *test = new TestAnimation2(250, &group); // 0, duration = 250; + QCOMPARE(test->group(), static_cast<QAnimationGroup*>(&group)); + QCOMPARE(test->duration(), 250); + QCOMPARE(group.duration(), 250); + + test = new TestAnimation2(750, &group); // 1 + QCOMPARE(test->group(), static_cast<QAnimationGroup*>(&group)); + QCOMPARE(group.duration(), 750); + test = new TestAnimation2(500, &group); // 2 + QCOMPARE(test->group(), static_cast<QAnimationGroup*>(&group)); + QCOMPARE(group.duration(), 750); + + delete group.animationAt(1); // remove the one with duration = 750 + QCOMPARE(group.duration(), 500); + + delete group.animationAt(1); // remove the one with duration = 500 + QCOMPARE(group.duration(), 250); + + test = static_cast<TestAnimation2*>(group.animationAt(0)); + test->setParent(0); // remove the last one (with duration = 250) + QCOMPARE(test->group(), static_cast<QAnimationGroup*>(0)); + QCOMPARE(group.duration(), 0); +} + +QTEST_MAIN(tst_QParallelAnimationGroup) +#include "tst_qparallelanimationgroup.moc" diff --git a/tests/auto/qpathclipper/qpathclipper.pro b/tests/auto/qpathclipper/qpathclipper.pro index 675e463..dc9d60f 100644 --- a/tests/auto/qpathclipper/qpathclipper.pro +++ b/tests/auto/qpathclipper/qpathclipper.pro @@ -3,6 +3,8 @@ INCLUDEPATH += . HEADERS += paths.h SOURCES += tst_qpathclipper.cpp paths.cpp +requires(contains(QT_CONFIG,private_tests)) + unix:!mac:LIBS+=-lm diff --git a/tests/auto/qpicture/tst_qpicture.cpp b/tests/auto/qpicture/tst_qpicture.cpp index 9ea465d..8d6cc0a 100644 --- a/tests/auto/qpicture/tst_qpicture.cpp +++ b/tests/auto/qpicture/tst_qpicture.cpp @@ -47,6 +47,7 @@ #include <qimage.h> #include <qdesktopwidget.h> #include <qapplication.h> +#include <limits.h> //TESTED_CLASS= //TESTED_FILES= @@ -66,6 +67,9 @@ private slots: void operator_lt_lt(); void save_restore(); + + void boundaryValues_data(); + void boundaryValues(); }; // Testing get/set functions @@ -234,5 +238,39 @@ void tst_QPicture::save_restore() QVERIFY( pix1.toImage() == pix2.toImage() ); } +void tst_QPicture::boundaryValues_data() +{ + QTest::addColumn<int>("x"); + QTest::addColumn<int>("y"); + QTest::newRow("max x") << INT_MAX << 50; + QTest::newRow("max y") << 50 << INT_MAX; + QTest::newRow("max x and y") << INT_MAX << INT_MAX; + + QTest::newRow("min x") << INT_MIN << 50; + QTest::newRow("min y") << 50 << INT_MIN; + QTest::newRow("min x and y") << INT_MIN << INT_MIN; + + QTest::newRow("min x, max y") << INT_MIN << INT_MAX; + QTest::newRow("max x, min y") << INT_MAX << INT_MIN; + +} + +void tst_QPicture::boundaryValues() +{ + QPicture picture; + + QPainter painter; + painter.begin(&picture); + + QFETCH(int, x); + QFETCH(int, y); + painter.drawPoint(QPoint(x, y)); + + painter.end(); + + +} + + QTEST_MAIN(tst_QPicture) #include "tst_qpicture.moc" diff --git a/tests/auto/qpixmap/images/designer.png b/tests/auto/qpixmap/images/designer.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/designer.png diff --git a/tests/auto/qpixmap/images/dx_-10_dy_-10_50_50_100_100.png b/tests/auto/qpixmap/images/dx_-10_dy_-10_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..a4a1924 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-10_dy_-10_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_-10_dy_-10_x_y_w_h.png b/tests/auto/qpixmap/images/dx_-10_dy_-10_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..1506af5 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-10_dy_-10_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_-10_dy_0_50_50_100_100.png b/tests/auto/qpixmap/images/dx_-10_dy_0_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..8500ab1 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-10_dy_0_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_-10_dy_0_x_y_w_h.png b/tests/auto/qpixmap/images/dx_-10_dy_0_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..2145c61 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-10_dy_0_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_-128_dy_-128_x_y_w_h.png b/tests/auto/qpixmap/images/dx_-128_dy_-128_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-128_dy_-128_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_-128_dy_0_x_y_w_h.png b/tests/auto/qpixmap/images/dx_-128_dy_0_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_-128_dy_0_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_-10_50_50_100_100.png b/tests/auto/qpixmap/images/dx_0_dy_-10_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..728ee79 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_-10_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_-10_x_y_w_h.png b/tests/auto/qpixmap/images/dx_0_dy_-10_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..e9d5850 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_-10_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_-128_x_y_w_h.png b/tests/auto/qpixmap/images/dx_0_dy_-128_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_-128_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_0_50_50_100_100.png b/tests/auto/qpixmap/images/dx_0_dy_0_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_0_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_0_null.png b/tests/auto/qpixmap/images/dx_0_dy_0_null.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_0_null.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_0_x_y_w_h.png b/tests/auto/qpixmap/images/dx_0_dy_0_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_0_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_10_50_50_100_100.png b/tests/auto/qpixmap/images/dx_0_dy_10_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..7c09b17 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_10_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_10_x_y_w_h.png b/tests/auto/qpixmap/images/dx_0_dy_10_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..70a6340 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_10_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_128_x_y_w_h.png b/tests/auto/qpixmap/images/dx_0_dy_128_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_128_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_0_dy_1_null.png b/tests/auto/qpixmap/images/dx_0_dy_1_null.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_0_dy_1_null.png diff --git a/tests/auto/qpixmap/images/dx_10_dy_0_50_50_100_100.png b/tests/auto/qpixmap/images/dx_10_dy_0_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..85abada --- /dev/null +++ b/tests/auto/qpixmap/images/dx_10_dy_0_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_10_dy_0_x_y_w_h.png b/tests/auto/qpixmap/images/dx_10_dy_0_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..3e03450 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_10_dy_0_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_10_dy_10_50_50_100_100.png b/tests/auto/qpixmap/images/dx_10_dy_10_50_50_100_100.png Binary files differnew file mode 100644 index 0000000..315fbe0 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_10_dy_10_50_50_100_100.png diff --git a/tests/auto/qpixmap/images/dx_10_dy_10_x_y_w_h.png b/tests/auto/qpixmap/images/dx_10_dy_10_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..d91dc71 --- /dev/null +++ b/tests/auto/qpixmap/images/dx_10_dy_10_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_128_dy_0_x_y_w_h.png b/tests/auto/qpixmap/images/dx_128_dy_0_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_128_dy_0_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_128_dy_128_64_64_128_128.png b/tests/auto/qpixmap/images/dx_128_dy_128_64_64_128_128.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_128_dy_128_64_64_128_128.png diff --git a/tests/auto/qpixmap/images/dx_128_dy_128_x_y_w_h.png b/tests/auto/qpixmap/images/dx_128_dy_128_x_y_w_h.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_128_dy_128_x_y_w_h.png diff --git a/tests/auto/qpixmap/images/dx_1_dy_0_null.png b/tests/auto/qpixmap/images/dx_1_dy_0_null.png Binary files differnew file mode 100644 index 0000000..bca471d --- /dev/null +++ b/tests/auto/qpixmap/images/dx_1_dy_0_null.png diff --git a/tests/auto/qpixmap/qpixmap.pro b/tests/auto/qpixmap/qpixmap.pro index e5dace4..70be4be 100644 --- a/tests/auto/qpixmap/qpixmap.pro +++ b/tests/auto/qpixmap/qpixmap.pro @@ -13,5 +13,4 @@ wince*: { win32:LIBS += -lgdi32 -luser32 } - - +RESOURCES += qpixmap.qrc diff --git a/tests/auto/qpixmap/qpixmap.qrc b/tests/auto/qpixmap/qpixmap.qrc new file mode 100644 index 0000000..99fde61 --- /dev/null +++ b/tests/auto/qpixmap/qpixmap.qrc @@ -0,0 +1,29 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> + <file>images/designer.png</file> + <file>images/dx_0_dy_0_50_50_100_100.png</file> + <file>images/dx_0_dy_0_null.png</file> + <file>images/dx_0_dy_0_x_y_w_h.png</file> + <file>images/dx_0_dy_-10_50_50_100_100.png</file> + <file>images/dx_0_dy_10_50_50_100_100.png</file> + <file>images/dx_0_dy_-10_x_y_w_h.png</file> + <file>images/dx_0_dy_10_x_y_w_h.png</file> + <file>images/dx_0_dy_-128_x_y_w_h.png</file> + <file>images/dx_0_dy_128_x_y_w_h.png</file> + <file>images/dx_0_dy_1_null.png</file> + <file>images/dx_-10_dy_0_50_50_100_100.png</file> + <file>images/dx_10_dy_0_50_50_100_100.png</file> + <file>images/dx_-10_dy_0_x_y_w_h.png</file> + <file>images/dx_10_dy_0_x_y_w_h.png</file> + <file>images/dx_-10_dy_-10_50_50_100_100.png</file> + <file>images/dx_10_dy_10_50_50_100_100.png</file> + <file>images/dx_-10_dy_-10_x_y_w_h.png</file> + <file>images/dx_10_dy_10_x_y_w_h.png</file> + <file>images/dx_-128_dy_0_x_y_w_h.png</file> + <file>images/dx_128_dy_0_x_y_w_h.png</file> + <file>images/dx_128_dy_128_64_64_128_128.png</file> + <file>images/dx_-128_dy_-128_x_y_w_h.png</file> + <file>images/dx_128_dy_128_x_y_w_h.png</file> + <file>images/dx_1_dy_0_null.png</file> +</qresource> +</RCC> diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index da054c0..b3736ab 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -48,6 +48,8 @@ #include <qdesktopwidget.h> #include <qpaintengine.h> +#include <private/qpixmapdata_p.h> + #include <QSet> #ifdef Q_WS_WIN @@ -88,6 +90,9 @@ private slots: void testMetrics(); + void scroll_data(); + void scroll(); + void fill_data(); void fill(); void fill_transparent(); @@ -137,6 +142,38 @@ private slots: void fromData(); }; +static bool lenientCompare(const QPixmap &actual, const QPixmap &expected) +{ + QImage expectedImage = expected.toImage().convertToFormat(QImage::Format_RGB32); + QImage actualImage = actual.toImage().convertToFormat(QImage::Format_RGB32); + + if (expectedImage.size() != actualImage.size()) + return false; + + int size = actual.width() * actual.height(); + + QRgb *a = (QRgb *)actualImage.bits(); + QRgb *e = (QRgb *)expectedImage.bits(); + for (int i = 0; i < size; ++i) { + QColor ca(a[i]); + QColor ce(e[i]); + + bool result = true; + + if (qAbs(ca.red() - ce.red()) > 2) + result = false; + if (qAbs(ca.green() - ce.green()) > 2) + result = false; + if (qAbs(ca.blue() - ce.blue()) > 2) + result = false; + + if (!result) + return false; + } + + return true; +} + Q_DECLARE_METATYPE(QImage) Q_DECLARE_METATYPE(QPixmap) Q_DECLARE_METATYPE(QMatrix) @@ -199,7 +236,7 @@ void tst_QPixmap::setAlphaChannel() pixmap.setAlphaChannel(alphaChannel); #ifdef Q_WS_X11 - if (!pixmap.x11PictureHandle()) + if (pixmap.pixmapData()->classId() == QPixmapData::X11Class && !pixmap.x11PictureHandle()) QSKIP("Requires XRender support", SkipAll); #endif @@ -258,7 +295,7 @@ void tst_QPixmap::fromImage() const QPixmap pixmap = QPixmap::fromImage(image); #ifdef Q_WS_X11 - if (!pixmap.x11PictureHandle()) + if (pixmap.pixmapData()->classId() == QPixmapData::X11Class && !pixmap.x11PictureHandle()) QSKIP("Requires XRender support", SkipAll); #endif const QImage result = pixmap.toImage(); @@ -302,6 +339,99 @@ void tst_QPixmap::convertFromImage() QVERIFY( pixmapsAreEqual(&pix, &res) ); } +void tst_QPixmap::scroll_data() +{ + QTest::addColumn<QImage>("input"); + QTest::addColumn<int>("dx"); + QTest::addColumn<int>("dy"); + QTest::addColumn<QRect>("rect"); + QTest::addColumn<QRegion>("exposed"); + QTest::addColumn<bool>("newPix"); + + QImage input(":/images/designer.png"); + + // Noop tests + QTest::newRow("null") << QImage() << 0 << 0 << QRect() << QRegion() << false; + QTest::newRow("dx_0_dy_0_null") << input << 0 << 0 << QRect() << QRegion() << false; + QTest::newRow("dx_1_dy_0_null") << input << 1 << 0 << QRect() << QRegion() << false; + QTest::newRow("dx_0_dy_1_null") << input << 0 << 1 << QRect() << QRegion() << false; + QTest::newRow("dx_0_dy_0_x_y_w_h") << input << 0 << 0 << input.rect() << QRegion() << false; + + QRegion r; + // Scroll whole pixmap + r = QRegion(); r += QRect(0, 0, 128, 10); + QTest::newRow("dx_0_dy_10_x_y_w_h") << input << 0 << 10 << input.rect() << r << true; + r = QRegion(); r += QRect(0, 0, 10, 128); + QTest::newRow("dx_10_dy_0_x_y_w_h") << input << 10 << 0 << input.rect() << r << true; + r = QRegion(); r += QRect(0, 0, 128, 10); r += QRect(0, 10, 10, 118); + QTest::newRow("dx_10_dy_10_x_y_w_h") << input << 10 << 10 << input.rect() << r << true; + r = QRegion(); r += QRect(118, 0, 10, 128); + QTest::newRow("dx_-10_dy_0_x_y_w_h") << input << -10 << 0 << input.rect() << r << true; + r = QRegion(); r += QRect(0, 118, 128, 10); + QTest::newRow("dx_0_dy_-10_x_y_w_h") << input << 0 << -10 << input.rect() << r << true; + r = QRegion(); r += QRect(118, 0, 10, 118); r += QRect(0, 118, 128, 10); + QTest::newRow("dx_-10_dy_-10_x_y_w_h") << input << -10 << -10 << input.rect() << r << true; + + // Scroll part of pixmap + QTest::newRow("dx_0_dy_0_50_50_100_100") << input << 0 << 0 << QRect(50, 50, 100, 100) << QRegion() << false; + r = QRegion(); r += QRect(50, 50, 10, 78); + QTest::newRow("dx_10_dy_0_50_50_100_100") << input << 10 << 0 << QRect(50, 50, 100, 100) << r << true; + r = QRegion(); r += QRect(50, 50, 78, 10); + QTest::newRow("dx_0_dy_10_50_50_100_100") << input << 0 << 10 << QRect(50, 50, 100, 100) << r << true; + r = QRegion(); r += QRect(50, 50, 78, 10); r += QRect(50, 60, 10, 68); + QTest::newRow("dx_10_dy_10_50_50_100_100") << input << 10 << 10 << QRect(50, 50, 100, 100) << r << true; + r = QRegion(); r += QRect(118, 50, 10, 78); + QTest::newRow("dx_-10_dy_0_50_50_100_100") << input << -10 << 0 << QRect(50, 50, 100, 100) << r << true; + r = QRegion(); r += QRect(50, 118, 78, 10); + QTest::newRow("dx_0_dy_-10_50_50_100_100") << input << 0 << -10 << QRect(50, 50, 100, 100) << r << true; + r = QRegion(); r += QRect(118, 50, 10, 68); r += QRect(50, 118, 78, 10); + QTest::newRow("dx_-10_dy_-10_50_50_100_100") << input << -10 << -10 << QRect(50, 50, 100, 100) << r << true; + + // Scroll away the whole pixmap + r = input.rect(); + QTest::newRow("dx_128_dy_0_x_y_w_h") << input << 128 << 0 << input.rect() << r << false; + QTest::newRow("dx_0_dy_128_x_y_w_h") << input << 0 << 128 << input.rect() << r << false; + QTest::newRow("dx_128_dy_128_x_y_w_h") << input << 128 << 128 << input.rect() << r << false; + QTest::newRow("dx_-128_dy_0_x_y_w_h") << input << -128 << 0 << input.rect() << r << false; + QTest::newRow("dx_0_dy_-128_x_y_w_h") << input << 0 << -128 << input.rect() << r << false; + QTest::newRow("dx_-128_dy_-128_x_y_w_h") << input << -128 << -128 << input.rect() << r << false; + + // Scroll away part of the pixmap + r = QRegion(); r += QRect(64, 64, 64, 64); + QTest::newRow("dx_128_dy_128_64_64_128_128") << input << 128 << 128 << QRect(64, 64, 128, 128) << r << false; +} + +void tst_QPixmap::scroll() +{ + QFETCH(QImage, input); + QFETCH(int, dx); + QFETCH(int, dy); + QFETCH(QRect, rect); + QFETCH(QRegion, exposed); + QFETCH(bool, newPix); + + QPixmap pixmap = QPixmap::fromImage(input); + QRegion exp; + qint64 oldKey = pixmap.cacheKey(); + pixmap.scroll(dx, dy, rect, &exp); + if (!newPix) + QCOMPARE(pixmap.cacheKey(), oldKey); + else + QVERIFY(pixmap.cacheKey() != oldKey); + +#if 0 + // Remember to add to resources. + QString fileName = QString("images/%1.png").arg(QTest::currentDataTag()); + pixmap.toImage().save(fileName); +#else + QString fileName = QString(":/images/%1.png").arg(QTest::currentDataTag()); +#endif + QPixmap output(fileName); + QVERIFY(input.isNull() == output.isNull()); + QVERIFY(lenientCompare(pixmap, output)); + QCOMPARE(exp, exposed); +} + void tst_QPixmap::fill_data() { QTest::addColumn<uint>("pixel"); @@ -367,7 +497,7 @@ void tst_QPixmap::fill() pm = QPixmap(400, 400); #if defined(Q_WS_X11) - if (!bitmap && !pm.x11PictureHandle()) + if (!bitmap && pm.pixmapData()->classId() == QPixmapData::X11Class && !pm.x11PictureHandle()) QSKIP("Requires XRender support", SkipSingle); #endif @@ -379,7 +509,7 @@ void tst_QPixmap::fill() QImage image = pm.toImage(); if (bitmap && syscolor) { int pixelindex = (pixel == Qt::color0) ? 0 : 1; - QVERIFY(image.pixelIndex(0,0) == pixelindex); + QCOMPARE(image.pixelIndex(0,0), pixelindex); } QImage::Format format = compareColor.alpha() != 255 ? QImage::Format_ARGB32 @@ -397,7 +527,7 @@ void tst_QPixmap::fill_transparent() { QPixmap pixmap(10, 10); #ifdef Q_WS_X11 - if (!pixmap.x11PictureHandle()) + if (pixmap.pixmapData()->classId() == QPixmapData::X11Class && !pixmap.x11PictureHandle()) QSKIP("Requires XRender support", SkipAll); #endif pixmap.fill(Qt::transparent); @@ -517,7 +647,7 @@ void tst_QPixmap::testMetrics() QCOMPARE(pixmap.width(), 100); QCOMPARE(pixmap.height(), 100); - QCOMPARE(pixmap.depth(), QPixmap::defaultDepth()); + QVERIFY(pixmap.depth() >= QPixmap::defaultDepth()); QBitmap bitmap(100, 100); @@ -579,7 +709,11 @@ void tst_QPixmap::drawBitmap() painter2.setPen(Qt::red); painter2.drawPixmap(0,0,10,10, bitmap); painter2.end(); - QCOMPARE(pixmap.toImage().pixel(5,5), QColor(Qt::red).rgb()); + + QPixmap expected(10, 10); + expected.fill(Qt::red); + + QVERIFY(lenientCompare(pixmap, expected)); } void tst_QPixmap::grabWidget() @@ -592,8 +726,7 @@ void tst_QPixmap::grabWidget() expected.fill(Qt::green); QPixmap actual = QPixmap::grabWidget(&widget, QRect(64, 64, 64, 64)); - - QCOMPARE(actual, expected); + QVERIFY(lenientCompare(actual, expected)); } void tst_QPixmap::grabWindow() @@ -624,7 +757,7 @@ void tst_QPixmap::grabWindow() QPixmap grabWindowPixmap = QPixmap::grabWindow(child.winId()); QPixmap grabWidgetPixmap = QPixmap::grabWidget(&child); - QCOMPARE(grabWindowPixmap, grabWidgetPixmap); + lenientCompare(grabWindowPixmap, grabWidgetPixmap); } void tst_QPixmap::isNull() @@ -721,12 +854,7 @@ void tst_QPixmap::toWinHBITMAP() BITMAP bitmap_info; memset(&bitmap_info, 0, sizeof(BITMAP)); - int res; - QT_WA({ - res = GetObjectW(bitmap, sizeof(BITMAP), &bitmap_info); - } , { - res = GetObjectA(bitmap, sizeof(BITMAP), &bitmap_info); - }); + int res = GetObject(bitmap, sizeof(BITMAP), &bitmap_info); QVERIFY(res); QCOMPARE(100, (int) bitmap_info.bmWidth); @@ -864,10 +992,10 @@ void tst_QPixmap::copy() } QPixmap dest = src.copy(10, 10, 10, 10); - QImage result = dest.toImage().convertToFormat(QImage::Format_RGB32); - QImage expected(10, 10, QImage::Format_RGB32); - expected.fill(0xff0000ff); - QCOMPARE(result, expected); + + QPixmap expected(10, 10); + expected.fill(Qt::blue); + QVERIFY(lenientCompare(dest, expected)); } #ifdef QT3_SUPPORT @@ -935,27 +1063,33 @@ void tst_QPixmap::transformed() } QPixmap p2(10, 20); - p2.fill(Qt::red); { QPainter p(&p2); - p.drawRect(0, 0, p2.width() - 1, p2.height() - 1); + p.rotate(90); + p.drawPixmap(0, -p1.height(), p1); + } + + QPixmap p3(20, 10); + { + QPainter p(&p3); + p.rotate(180); + p.drawPixmap(-p1.width(), -p1.height(), p1); + } + + QPixmap p4(10, 20); + { + QPainter p(&p4); + p.rotate(270); + p.drawPixmap(-p1.width(), 0, p1); } QPixmap p1_90 = p1.transformed(QTransform().rotate(90)); QPixmap p1_180 = p1.transformed(QTransform().rotate(180)); QPixmap p1_270 = p1.transformed(QTransform().rotate(270)); - QCOMPARE(p1_90.size(), p2.size()); - QCOMPARE(p1_90.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied), - p2.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied)); - - QCOMPARE(p1_180.size(), p1.size()); - QCOMPARE(p1_180.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied), - p1.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied)); - - QCOMPARE(p1_270.size(), p2.size()); - QCOMPARE(p1_270.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied), - p2.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied)); + QVERIFY(lenientCompare(p1_90, p2)); + QVERIFY(lenientCompare(p1_180, p3)); + QVERIFY(lenientCompare(p1_270, p4)); } void tst_QPixmap::transformed2() @@ -983,9 +1117,7 @@ void tst_QPixmap::transformed2() p.drawRect(3, 6, 3, 3); p.end(); - QCOMPARE(actual.size(), expected.size()); - QCOMPARE(actual.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied), - expected.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied)); + QVERIFY(lenientCompare(actual, expected)); } void tst_QPixmap::fromImage_crash() diff --git a/tests/auto/qpixmapcache/tst_qpixmapcache.cpp b/tests/auto/qpixmapcache/tst_qpixmapcache.cpp index 77db107..e71bd5d 100644 --- a/tests/auto/qpixmapcache/tst_qpixmapcache.cpp +++ b/tests/auto/qpixmapcache/tst_qpixmapcache.cpp @@ -44,9 +44,7 @@ #include <qpixmapcache.h> - - - +#include "../../../src/gui/image/qpixmapcache_p.h" //TESTED_CLASS= @@ -68,10 +66,21 @@ private slots: void setCacheLimit(); void find(); void insert(); + void replace(); void remove(); void clear(); + void pixmapKey(); }; +static QPixmapCache::KeyData* getPrivate(QPixmapCache::Key &key) +{ + return (*reinterpret_cast<QPixmapCache::KeyData**>(&key)); +} + +static QPixmapCache::KeyData** getPrivateRef(QPixmapCache::Key &key) +{ + return (reinterpret_cast<QPixmapCache::KeyData**>(&key)); +} static int originalCacheLimit; @@ -119,6 +128,72 @@ void tst_QPixmapCache::setCacheLimit() QVERIFY(QPixmapCache::find("P1") != 0); delete p1; + + //The int part of the API + p1 = new QPixmap(2, 3); + QPixmapCache::Key key = QPixmapCache::insert(*p1); + QVERIFY(QPixmapCache::find(key, p1) != 0); + delete p1; + + QPixmapCache::setCacheLimit(0); + QVERIFY(QPixmapCache::find(key, p1) == 0); + + p1 = new QPixmap(2, 3); + QPixmapCache::setCacheLimit(1000); + QPixmapCache::replace(key, *p1); + QVERIFY(QPixmapCache::find(key, p1) == 0); + + delete p1; + + //Let check if keys are released when the pixmap cache is + //full or has been flushed. + QPixmapCache::clear(); + p1 = new QPixmap(2, 3); + key = QPixmapCache::insert(*p1); + QVERIFY(QPixmapCache::find(key, p1) != 0); + QPixmapCache::setCacheLimit(0); + QVERIFY(QPixmapCache::find(key, p1) == 0); + QPixmapCache::setCacheLimit(1000); + key = QPixmapCache::insert(*p1); + QCOMPARE(getPrivate(key)->isValid, true); + QCOMPARE(getPrivate(key)->key, 1); + + delete p1; + + //Let check if removing old entries doesn't let you get + // wrong pixmaps + QPixmapCache::clear(); + QPixmap p2; + p1 = new QPixmap(2, 3); + key = QPixmapCache::insert(*p1); + QVERIFY(QPixmapCache::find(key, &p2) != 0); + //we flush the cache + QPixmapCache::setCacheLimit(0); + QPixmapCache::setCacheLimit(1000); + QPixmapCache::Key key2 = QPixmapCache::insert(*p1); + QCOMPARE(getPrivate(key2)->key, 2); + QVERIFY(QPixmapCache::find(key, &p2) == 0); + QVERIFY(QPixmapCache::find(key2, &p2) != 0); + QCOMPARE(p2, *p1); + + delete p1; + + //Here we simulate the flushing when the app is idle + /*QPixmapCache::clear(); + QPixmapCache::setCacheLimit(originalCacheLimit); + p1 = new QPixmap(300, 300); + key = QPixmapCache::insert(*p1); + QCOMPARE(getPrivate(key)->key, 1); + key2 = QPixmapCache::insert(*p1); + key2 = QPixmapCache::insert(*p1); + QPixmapCache::Key key3 = QPixmapCache::insert(*p1); + QTest::qWait(32000); + key2 = QPixmapCache::insert(*p1); + QCOMPARE(getPrivate(key2)->key, 1); + //This old key is not valid anymore after the flush + QCOMPARE(getPrivate(key)->isValid, false); + QVERIFY(QPixmapCache::find(key, &p2) == 0); + delete p1;*/ } void tst_QPixmapCache::find() @@ -137,6 +212,28 @@ void tst_QPixmapCache::find() QPixmap *p3 = QPixmapCache::find("P1"); QVERIFY(p3); QCOMPARE(p1, *p3); + + //The int part of the API + QPixmapCache::Key key = QPixmapCache::insert(p1); + + QVERIFY(QPixmapCache::find(key, &p2)); + QCOMPARE(p2.width(), 10); + QCOMPARE(p2.height(), 10); + QCOMPARE(p1, p2); + + QPixmapCache::clear(); + + key = QPixmapCache::insert(p1); + + //The int part of the API + // make sure it doesn't explode + QList<QPixmapCache::Key> keys; + for (int i = 0; i < 40000; ++i) + QPixmapCache::insert(p1); + + //at that time the first key has been erase because no more place in the cache + QVERIFY(QPixmapCache::find(key, &p1) == 0); + QCOMPARE(getPrivate(key)->isValid, false); } void tst_QPixmapCache::insert() @@ -152,18 +249,22 @@ void tst_QPixmapCache::insert() QPixmapCache::insert("0", p1); // ditto - for (int j = 0; j < 20000; ++j) + for (int j = 0; j < 40000; ++j) QPixmapCache::insert(QString::number(j), p1); int num = 0; - for (int k = 0; k < 20000; ++k) { + for (int k = 0; k < 40000; ++k) { if (QPixmapCache::find(QString::number(k))) ++num; } + if (QPixmapCache::find("0")) + ++num; + int estimatedNum = (1024 * QPixmapCache::cacheLimit()) / ((p1.width() * p1.height() * p1.depth()) / 8); - QVERIFY(estimatedNum - 1 <= num <= estimatedNum + 1); + + QVERIFY(num <= estimatedNum); QPixmap p3; QPixmapCache::insert("null", p3); @@ -176,6 +277,50 @@ void tst_QPixmapCache::insert() QPixmapCache::insert("custom", c2); //We have deleted the old pixmap in the cache for the same key QVERIFY(c1.isDetached()); + + //The int part of the API + // make sure it doesn't explode + QList<QPixmapCache::Key> keys; + for (int i = 0; i < 40000; ++i) + keys.append(QPixmapCache::insert(p1)); + + num = 0; + for (int k = 0; k < 40000; ++k) { + if (QPixmapCache::find(keys.at(k), &p2)) + ++num; + } + + estimatedNum = (1024 * QPixmapCache::cacheLimit()) + / ((p1.width() * p1.height() * p1.depth()) / 8); + QVERIFY(num <= estimatedNum); + QPixmapCache::insert(p3); + +} + +void tst_QPixmapCache::replace() +{ + //The int part of the API + QPixmap p1(10, 10); + p1.fill(Qt::red); + + QPixmap p2(10, 10); + p2.fill(Qt::yellow); + + QPixmapCache::Key key = QPixmapCache::insert(p1); + + QPixmap p3; + QVERIFY(QPixmapCache::find(key, &p3) == 1); + + QPixmapCache::replace(key,p2); + + QVERIFY(QPixmapCache::find(key, &p3) == 1); + + QCOMPARE(p3.width(), 10); + QCOMPARE(p3.height(), 10); + QCOMPARE(p3, p2); + + //Broken keys + QCOMPARE(QPixmapCache::replace(QPixmapCache::Key(), p2), false); } void tst_QPixmapCache::remove() @@ -198,6 +343,48 @@ void tst_QPixmapCache::remove() QPixmapCache::remove("green"); QVERIFY(QPixmapCache::find("green") == 0); + + //The int part of the API + QPixmapCache::clear(); + p1.fill(Qt::red); + QPixmapCache::Key key = QPixmapCache::insert(p1); + p1.fill(Qt::yellow); + + QVERIFY(QPixmapCache::find(key, &p2)); + QVERIFY(p1.toImage() != p2.toImage()); + QVERIFY(p1.toImage() == p1.toImage()); // sanity check + + QPixmapCache::remove(key); + QVERIFY(QPixmapCache::find(key, &p1) == 0); + + //Broken key + QPixmapCache::remove(QPixmapCache::Key()); + QVERIFY(QPixmapCache::find(QPixmapCache::Key(), &p1) == 0); + + //Test if keys are release + QPixmapCache::clear(); + key = QPixmapCache::insert(p1); + QCOMPARE(getPrivate(key)->key, 1); + QPixmapCache::remove(key); + key = QPixmapCache::insert(p1); + QCOMPARE(getPrivate(key)->key, 1); + + //Test if pixmaps are correctly deleted + QPixmapCache::clear(); + key = QPixmapCache::insert(p1); + QCOMPARE(getPrivate(key)->key, 1); + QVERIFY(QPixmapCache::find(key, &p1) != 0); + QPixmapCache::remove(key); + QCOMPARE(p1.isDetached(), true); + + //We mix both part of the API + QPixmapCache::clear(); + p1.fill(Qt::red); + QPixmapCache::insert("red", p1); + key = QPixmapCache::insert(p1); + QPixmapCache::remove(key); + QVERIFY(QPixmapCache::find(key, &p1) == 0); + QVERIFY(QPixmapCache::find("red") != 0); } void tst_QPixmapCache::clear() @@ -205,12 +392,11 @@ void tst_QPixmapCache::clear() QPixmap p1(10, 10); p1.fill(Qt::red); - for (int i = 0; i < 20000; ++i) { + for (int i = 0; i < 20000; ++i) QVERIFY(QPixmapCache::find("x" + QString::number(i)) == 0); - } - for (int j = 0; j < 20000; ++j) { + + for (int j = 0; j < 20000; ++j) QPixmapCache::insert(QString::number(j), p1); - } int num = 0; for (int k = 0; k < 20000; ++k) { @@ -221,10 +407,68 @@ void tst_QPixmapCache::clear() QPixmapCache::clear(); - for (int k = 0; k < 20000; ++k) { + for (int k = 0; k < 20000; ++k) QVERIFY(QPixmapCache::find(QString::number(k)) == 0); + + //The int part of the API + QPixmap p2(10, 10); + p2.fill(Qt::red); + + QList<QPixmapCache::Key> keys; + for (int k = 0; k < 20000; ++k) + keys.append(QPixmapCache::insert(p2)); + + QPixmapCache::clear(); + + for (int k = 0; k < 20000; ++k) { + QVERIFY(QPixmapCache::find(keys.at(k), &p1) == 0); + QCOMPARE(getPrivate(keys[k])->isValid, false); } } +void tst_QPixmapCache::pixmapKey() +{ + QPixmapCache::Key key; + //Default constructed keys have no d pointer unless + //we use them + QVERIFY(!getPrivate(key)); + //Let's put a d pointer + QPixmapCache::KeyData** keyd = getPrivateRef(key); + *keyd = new QPixmapCache::KeyData; + QCOMPARE(getPrivate(key)->ref, 1); + QPixmapCache::Key key2; + //Let's put a d pointer + QPixmapCache::KeyData** key2d = getPrivateRef(key2); + *key2d = new QPixmapCache::KeyData; + QCOMPARE(getPrivate(key2)->ref, 1); + key = key2; + QCOMPARE(getPrivate(key2)->ref, 2); + QCOMPARE(getPrivate(key)->ref, 2); + QPixmapCache::Key key3; + //Let's put a d pointer + QPixmapCache::KeyData** key3d = getPrivateRef(key3); + *key3d = new QPixmapCache::KeyData; + QPixmapCache::Key key4 = key3; + QCOMPARE(getPrivate(key3)->ref, 2); + QCOMPARE(getPrivate(key4)->ref, 2); + key4 = key; + QCOMPARE(getPrivate(key4)->ref, 3); + QCOMPARE(getPrivate(key3)->ref, 1); + QPixmapCache::Key key5(key3); + QCOMPARE(getPrivate(key3)->ref, 2); + QCOMPARE(getPrivate(key5)->ref, 2); + + //let test default constructed keys + QPixmapCache::Key key6; + QVERIFY(!getPrivate(key6)); + QPixmapCache::Key key7; + QVERIFY(!getPrivate(key7)); + key6 = key7; + QVERIFY(!getPrivate(key6)); + QVERIFY(!getPrivate(key7)); + QPixmapCache::Key key8(key7); + QVERIFY(!getPrivate(key8)); +} + QTEST_MAIN(tst_QPixmapCache) #include "tst_qpixmapcache.moc" diff --git a/tests/auto/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/qplaintextedit/tst_qplaintextedit.cpp index fceefd2..40ad539 100644 --- a/tests/auto/qplaintextedit/tst_qplaintextedit.cpp +++ b/tests/auto/qplaintextedit/tst_qplaintextedit.cpp @@ -1106,6 +1106,7 @@ void tst_QPlainTextEdit::mimeDataReimplementations() QCOMPARE(ed.canInsertCallCount, 0); QCOMPARE(ed.insertCallCount, 0); +#ifdef QT_BUILD_INTERNAL QTextControl *control = qFindChild<QTextControl *>(&ed); QVERIFY(control); @@ -1120,6 +1121,7 @@ void tst_QPlainTextEdit::mimeDataReimplementations() QCOMPARE(ed.createMimeDataCallCount, 1); QCOMPARE(ed.canInsertCallCount, 1); QCOMPARE(ed.insertCallCount, 1); +#endif } void tst_QPlainTextEdit::shiftEnterShouldInsertLineSeparator() diff --git a/tests/auto/qpoint/tst_qpoint.cpp b/tests/auto/qpoint/tst_qpoint.cpp index 6f5a4e8..14a61ae 100644 --- a/tests/auto/qpoint/tst_qpoint.cpp +++ b/tests/auto/qpoint/tst_qpoint.cpp @@ -60,6 +60,8 @@ public: private slots: void getSetCheck(); void division(); + + void manhattanLength(); }; tst_QPoint::tst_QPoint() @@ -70,6 +72,24 @@ tst_QPoint::~tst_QPoint() { } + + +void tst_QPoint::manhattanLength() +{ + { + QPoint p(10, 20); + QCOMPARE(p.manhattanLength(), 30); + } + { + QPointF p(10., 20.); + QCOMPARE(p.manhattanLength(), 30.); + } + { + QPointF p(10.1, 20.2); + QCOMPARE(p.manhattanLength(), 30.3); + } +} + // Testing get/set functions void tst_QPoint::getSetCheck() { diff --git a/tests/auto/qprocess/qprocess.pro b/tests/auto/qprocess/qprocess.pro index 4600f02..ed59f10 100644 --- a/tests/auto/qprocess/qprocess.pro +++ b/tests/auto/qprocess/qprocess.pro @@ -3,6 +3,7 @@ SUBDIRS = testProcessCrash \ testProcessEcho \ testProcessEcho2 \ testProcessEcho3 \ + testProcessEnvironment \ testProcessLoopback \ testProcessNormal \ testProcessOutput \ diff --git a/tests/auto/qprocess/testProcessEnvironment/main.cpp b/tests/auto/qprocess/testProcessEnvironment/main.cpp new file mode 100644 index 0000000..759bd54 --- /dev/null +++ b/tests/auto/qprocess/testProcessEnvironment/main.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, char **argv) +{ +#if defined(_WIN32_WCE) + // no environment in Windows CE + return 0; +#else + if (argc == 1) + return 1; + + char *env = getenv(argv[1]); + if (env) { + printf("%s", env); + return 0; + } + return 1; +#endif +} diff --git a/tests/auto/qprocess/testProcessEnvironment/testProcessEnvironment.pro b/tests/auto/qprocess/testProcessEnvironment/testProcessEnvironment.pro new file mode 100644 index 0000000..14ddae5 --- /dev/null +++ b/tests/auto/qprocess/testProcessEnvironment/testProcessEnvironment.pro @@ -0,0 +1,12 @@ +SOURCES = main.cpp +CONFIG -= qt +CONFIG += console +DESTDIR = ./ + +mac { + CONFIG -= app_bundle +} + +# no install rule for application used by test +INSTALLS = + diff --git a/tests/auto/qprocess/tst_qprocess.cpp b/tests/auto/qprocess/tst_qprocess.cpp index 6318d1d..d235dff 100644 --- a/tests/auto/qprocess/tst_qprocess.cpp +++ b/tests/auto/qprocess/tst_qprocess.cpp @@ -50,6 +50,10 @@ #include <QtNetwork/QHostInfo> #include <stdlib.h> +#ifdef QT_NO_PROCESS +QTEST_NOOP_MAIN +#else + #if defined(Q_OS_WIN) #include <windows.h> #endif @@ -124,6 +128,8 @@ private slots: void spaceArgsTest_data(); void spaceArgsTest(); void exitCodeTest(); + void setEnvironment_data(); + void setEnvironment(); void systemEnvironment(); void spaceInName(); void lockupsInStartDetached(); @@ -1615,13 +1621,117 @@ void tst_QProcess::removeFileWhileProcessIsRunning() } //----------------------------------------------------------------------------- +void tst_QProcess::setEnvironment_data() +{ + QTest::addColumn<QString>("name"); + QTest::addColumn<QString>("value"); + + QTest::newRow("setting-empty") << "tst_QProcess" << ""; + QTest::newRow("setting") << "tst_QProcess" << "value"; + +#ifdef Q_OS_WIN + QTest::newRow("unsetting") << "PROMPT" << QString(); + QTest::newRow("overriding") << "PROMPT" << "value"; +#else + QTest::newRow("unsetting") << "PATH" << QString(); + QTest::newRow("overriding") << "PATH" << "value"; +#endif +} + +void tst_QProcess::setEnvironment() +{ +#if !defined (Q_OS_WINCE) + // there is no concept of system variables on Windows CE as there is no console + + // make sure our environment variables are correct + QVERIFY(qgetenv("tst_QProcess").isEmpty()); + QVERIFY(!qgetenv("PATH").isEmpty()); +#ifdef Q_OS_WIN + QVERIFY(!qgetenv("PROMPT").isEmpty()); +#endif + + QFETCH(QString, name); + QFETCH(QString, value); + QString executable = QDir::currentPath() + "/testProcessEnvironment/testProcessEnvironment"; + + { + QProcess process; + QStringList environment = QProcess::systemEnvironment(); + if (value.isNull()) { + int pos; + QRegExp rx(name + "=.*"); +#ifdef Q_OS_WIN + rx.setCaseSensitivity(Qt::CaseInsensitive); +#endif + while ((pos = environment.indexOf(rx)) != -1) + environment.removeAt(pos); + } else { + environment.append(name + '=' + value); + } + process.setEnvironment(environment); + process.start(executable, QStringList() << name); + + QVERIFY(process.waitForFinished()); + if (value.isNull()) + QCOMPARE(process.exitCode(), 1); + else if (!value.isEmpty()) + QCOMPARE(process.exitCode(), 0); + + QCOMPARE(process.readAll(), value.toLocal8Bit()); + } + + // re-do the test but set the environment twice, to make sure + // that the latter addition overrides + // this test doesn't make sense in unsetting + if (!value.isNull()) { + QProcess process; + QStringList environment = QProcess::systemEnvironment(); + environment.prepend(name + "=This is not the right value"); + environment.append(name + '=' + value); + process.setEnvironment(environment); + process.start(executable, QStringList() << name); + + QVERIFY(process.waitForFinished()); + if (!value.isEmpty()) + QCOMPARE(process.exitCode(), 0); + + QCOMPARE(process.readAll(), value.toLocal8Bit()); + } + + // use the hash variant now + { + QProcess process; + QHash<QString, QString> environment = QProcess::systemEnvironmentHash(); + if (value.isNull()) + environment.remove(name); + else + environment.insert(name, value); + process.setEnvironmentHash(environment); + process.start(executable, QStringList() << name); + + QVERIFY(process.waitForFinished()); + if (value.isNull()) + QCOMPARE(process.exitCode(), 1); + else if (!value.isEmpty()) + QCOMPARE(process.exitCode(), 0); + + QCOMPARE(process.readAll(), value.toLocal8Bit()); + } +#endif +} +//----------------------------------------------------------------------------- void tst_QProcess::systemEnvironment() { #if defined (Q_OS_WINCE) // there is no concept of system variables on Windows CE as there is no console QVERIFY(QProcess::systemEnvironment().isEmpty()); + QVERIFY(QProcess::systemEnvironmentHash().isEmpty()); #else QVERIFY(!QProcess::systemEnvironment().isEmpty()); + QVERIFY(!QProcess::systemEnvironmentHash().isEmpty()); + + QVERIFY(QProcess::systemEnvironmentHash().contains("PATH")); + QVERIFY(!QProcess::systemEnvironment().filter(QRegExp("^PATH=", Qt::CaseInsensitive)).isEmpty()); #endif } @@ -2026,3 +2136,4 @@ void tst_QProcess::invalidProgramString() QTEST_MAIN(tst_QProcess) #include "tst_qprocess.moc" +#endif diff --git a/tests/auto/qprogressbar/tst_qprogressbar.cpp b/tests/auto/qprogressbar/tst_qprogressbar.cpp index 403b56b..911d6b7 100644 --- a/tests/auto/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/qprogressbar/tst_qprogressbar.cpp @@ -62,6 +62,8 @@ private slots: void format(); void setValueRepaint(); void sizeHint(); + void formatedText_data(); + void formatedText(); void task245201_testChangeStyleAndDelete_data(); void task245201_testChangeStyleAndDelete(); @@ -174,7 +176,7 @@ void tst_QProgressBar::format() bar.repainted = false; bar.setFormat("%v of %m (%p%)"); qApp->processEvents(); -#ifndef Q_WS_MAC +#ifndef Q_WS_MAC // The Mac scroll bar is animated, which means we get paint events all the time. QVERIFY(!bar.repainted); #endif @@ -225,6 +227,34 @@ void tst_QProgressBar::sizeHint() QCOMPARE(barSize.height(), size.height()); } +void tst_QProgressBar::formatedText_data() +{ + QTest::addColumn<int>("minimum"); + QTest::addColumn<int>("maximum"); + QTest::addColumn<int>("value"); + QTest::addColumn<QString>("format"); + QTest::addColumn<QString>("text"); + + QTest::newRow("1") << -100 << 100 << 0 << QString::fromLatin1(" %p - %v - %m ") << QString::fromLatin1(" 50 - 0 - 200 "); + QTest::newRow("2") << -100 << 0 << -25 << QString::fromLatin1(" %p - %v - %m ") << QString::fromLatin1(" 75 - -25 - 100 "); + QTest::newRow("3") << 10 << 10 << 10 << QString::fromLatin1(" %p - %v - %m ") << QString::fromLatin1(" 100 - 10 - 0 "); + QTest::newRow("task152227") << INT_MIN << INT_MAX << 42 << QString::fromLatin1(" %p - %v - %m ") << QString::fromLatin1(" 50 - 42 - 4294967295 "); +} + +void tst_QProgressBar::formatedText() +{ + QFETCH(int, minimum); + QFETCH(int, maximum); + QFETCH(int, value); + QFETCH(QString, format); + QFETCH(QString, text); + QProgressBar bar; + bar.setRange(minimum, maximum); + bar.setValue(value); + bar.setFormat(format); + QCOMPARE(bar.text(), text); +} + void tst_QProgressBar::task245201_testChangeStyleAndDelete_data() { QTest::addColumn<QString>("style1_str"); diff --git a/tests/auto/qpropertyanimation/qpropertyanimation.pro b/tests/auto/qpropertyanimation/qpropertyanimation.pro new file mode 100644 index 0000000..6d6ddbf --- /dev/null +++ b/tests/auto/qpropertyanimation/qpropertyanimation.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +QT = core gui +SOURCES += tst_qpropertyanimation.cpp + + diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp new file mode 100644 index 0000000..e76c8ef --- /dev/null +++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp @@ -0,0 +1,1015 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtCore/qpropertyanimation.h> +#include <QtCore/qvariantanimation.h> +#include <QtGui/qwidget.h> + +//TESTED_CLASS=QPropertyAnimation +//TESTED_FILES= + +class UncontrolledAnimation : public QPropertyAnimation +{ + Q_OBJECT +public: + int duration() const { return -1; /* not time driven */ } + +protected: + void updateCurrentTime(int msecs) + { + QPropertyAnimation::updateCurrentTime(msecs); + if (msecs >= QPropertyAnimation::duration()) + stop(); + } +}; + +class MyObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(qreal x READ x WRITE setX) +public: + MyObject() : m_x(0) { } + qreal x() const { return m_x; } + void setX(qreal x) { m_x = x; } +private: + qreal m_x; +}; + +class tst_QPropertyAnimation : public QObject +{ + Q_OBJECT +public: + tst_QPropertyAnimation(); + virtual ~tst_QPropertyAnimation(); + +public Q_SLOTS: + void init(); + void cleanup(); + +private slots: + void construction(); + void setCurrentTime_data(); + void setCurrentTime(); + void statesAndSignals_data(); + void statesAndSignals(); + void deletion1(); + void deletion2(); + void deletion3(); + void duration0(); + void noStartValue(); + void noStartValueWithLoop(); + void startWhenAnotherIsRunning(); + void easingcurve_data(); + void easingcurve(); + void startWithoutStartValue(); + void playForwardBackward(); + void interpolated(); + void setStartEndValues_data(); + void setStartEndValues(); + void zeroDurationStart(); + void operationsInStates_data(); + void operationsInStates(); + void oneKeyValue(); + void updateOnSetKeyValues(); + void restart(); +}; + +tst_QPropertyAnimation::tst_QPropertyAnimation() +{ +} + +tst_QPropertyAnimation::~tst_QPropertyAnimation() +{ +} + +void tst_QPropertyAnimation::init() +{ + qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); + qRegisterMetaType<QAbstractAnimation::DeletionPolicy>("QAbstractAnimation::DeletionPolicy"); +} + +void tst_QPropertyAnimation::cleanup() +{ +} + +class AnimationObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue) + Q_PROPERTY(qreal realValue READ realValue WRITE setRealValue) +public: + AnimationObject(int startValue = 0) + : v(startValue) + { } + + int value() const { return v; } + void setValue(int value) { v = value; } + + qreal realValue() const { return rv; } + void setRealValue(qreal value) { rv = value; } + + int v; + qreal rv; +}; + + +void tst_QPropertyAnimation::construction() +{ + QPropertyAnimation panimation; +} + +void tst_QPropertyAnimation::setCurrentTime_data() +{ + QTest::addColumn<int>("duration"); + QTest::addColumn<int>("loopCount"); + QTest::addColumn<int>("currentTime"); + QTest::addColumn<int>("testCurrentTime"); + QTest::addColumn<int>("testCurrentLoop"); + + QTest::newRow("-1") << -1 << 1 << 0 << 0 << 0; + QTest::newRow("0") << 0 << 1 << 0 << 0 << 0; + QTest::newRow("1") << 0 << 1 << 1 << 0 << 0; + QTest::newRow("2") << 0 << 2 << 1 << 0 << 0; + QTest::newRow("3") << 1 << 1 << 0 << 0 << 0; + QTest::newRow("4") << 1 << 1 << 1 << 1 << 0; + QTest::newRow("5") << 1 << 2 << 1 << 0 << 1; + QTest::newRow("6") << 1 << 2 << 2 << 1 << 1; + QTest::newRow("7") << 1 << 2 << 3 << 1 << 1; + QTest::newRow("8") << 1 << 3 << 2 << 0 << 2; + QTest::newRow("9") << 1 << 3 << 3 << 1 << 2; + QTest::newRow("a") << 10 << 1 << 0 << 0 << 0; + QTest::newRow("b") << 10 << 1 << 1 << 1 << 0; + QTest::newRow("c") << 10 << 1 << 10 << 10 << 0; + QTest::newRow("d") << 10 << 2 << 10 << 0 << 1; + QTest::newRow("e") << 10 << 2 << 11 << 1 << 1; + QTest::newRow("f") << 10 << 2 << 20 << 10 << 1; + QTest::newRow("g") << 10 << 2 << 21 << 10 << 1; + QTest::newRow("negloop 0") << 10 << -1 << 0 << 0 << 0; + QTest::newRow("negloop 1") << 10 << -1 << 10 << 0 << 1; + QTest::newRow("negloop 2") << 10 << -1 << 15 << 5 << 1; + QTest::newRow("negloop 3") << 10 << -1 << 20 << 0 << 2; + QTest::newRow("negloop 4") << 10 << -1 << 30 << 0 << 3; +} + +void tst_QPropertyAnimation::setCurrentTime() +{ + QFETCH(int, duration); + QFETCH(int, loopCount); + QFETCH(int, currentTime); + QFETCH(int, testCurrentTime); + QFETCH(int, testCurrentLoop); + + QPropertyAnimation animation; + if (duration < 0) + QTest::ignoreMessage(QtWarningMsg, "QVariantAnimation::setDuration: cannot set a negative duration"); + animation.setDuration(duration); + animation.setLoopCount(loopCount); + animation.setCurrentTime(currentTime); + + QCOMPARE(animation.currentTime(), testCurrentTime); + QCOMPARE(animation.currentLoop(), testCurrentLoop); +} + +void tst_QPropertyAnimation::statesAndSignals_data() +{ + QTest::addColumn<bool>("uncontrolled"); + QTest::newRow("normal animation") << false; + QTest::newRow("animation with undefined duration") << true; +} + +void tst_QPropertyAnimation::statesAndSignals() +{ + QFETCH(bool, uncontrolled); + QPropertyAnimation *anim = uncontrolled ? new UncontrolledAnimation : new QPropertyAnimation; + anim->setDuration(100); + + QSignalSpy finishedSpy(anim, SIGNAL(finished())); + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy currentLoopSpy(anim, SIGNAL(currentLoopChanged(int))); + + anim->setCurrentTime(1); + anim->setCurrentTime(100); + QCOMPARE(finishedSpy.count(), 0); + QCOMPARE(runningSpy.count(), 0); + QCOMPARE(currentLoopSpy.count(), 0); + QCOMPARE(anim->state(), QAnimationGroup::Stopped); + + anim->setLoopCount(3); + anim->setCurrentTime(101); + + if (uncontrolled) + QSKIP("Uncontrolled animations don't handle looping", SkipSingle); + + QCOMPARE(currentLoopSpy.count(), 1); + QCOMPARE(anim->currentLoop(), 1); + + anim->setCurrentTime(0); + QCOMPARE(currentLoopSpy.count(), 2); + QCOMPARE(anim->currentLoop(), 0); + + anim->start(); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QCOMPARE(runningSpy.count(), 1); //anim must have started + QCOMPARE(anim->currentLoop(), 0); + runningSpy.clear(); + + anim->stop(); + QCOMPARE(anim->state(), QAnimationGroup::Stopped); + QCOMPARE(runningSpy.count(), 1); //anim must have stopped + QCOMPARE(finishedSpy.count(), 0); + QCOMPARE(anim->currentTime(), 0); + QCOMPARE(anim->currentLoop(), 0); + QCOMPARE(currentLoopSpy.count(), 2); + runningSpy.clear(); + + anim->start(); + QTest::qWait(1000); + QCOMPARE(anim->state(), QAnimationGroup::Stopped); + QCOMPARE(runningSpy.count(), 2); //started and stopped again + runningSpy.clear(); + QCOMPARE(finishedSpy.count(), 1); + QCOMPARE(anim->currentTime(), 100); + QCOMPARE(anim->currentLoop(), 2); + QCOMPARE(currentLoopSpy.count(), 4); + + anim->start(); // auto-rewinds + QCOMPARE(anim->state(), QAnimationGroup::Running); + QCOMPARE(anim->currentTime(), 0); + QCOMPARE(anim->currentLoop(), 0); + QCOMPARE(currentLoopSpy.count(), 5); + QCOMPARE(runningSpy.count(), 1); // anim has started + QCOMPARE(finishedSpy.count(), 1); + QCOMPARE(anim->currentLoop(), 0); + runningSpy.clear(); + + QTest::qWait(1000); + + QCOMPARE(currentLoopSpy.count(), 7); + QCOMPARE(anim->state(), QAnimationGroup::Stopped); + QCOMPARE(anim->currentLoop(), 2); + QCOMPARE(runningSpy.count(), 1); // anim has stopped + QCOMPARE(finishedSpy.count(), 2); + QCOMPARE(anim->currentTime(), 100); + + delete anim; +} + +void tst_QPropertyAnimation::deletion1() +{ + QObject *object = new QWidget; + QPointer<QPropertyAnimation> anim = new QPropertyAnimation(object, "minimumWidth"); + + //test that the animation is deleted correctly depending of the deletion flag passed in start() + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy finishedSpy(anim, SIGNAL(finished())); + anim->setStartValue(10); + anim->setEndValue(20); + anim->setDuration(200); + anim->start(); + QCOMPARE(runningSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + + QVERIFY(anim); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QTest::qWait(100); + QVERIFY(anim); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QTest::qWait(150); + QVERIFY(anim); //The animation should not have been deleted + QCOMPARE(anim->state(), QAnimationGroup::Stopped); + QCOMPARE(runningSpy.count(), 2); + QCOMPARE(finishedSpy.count(), 1); + + anim->start(QVariantAnimation::DeleteWhenStopped); + QVERIFY(anim); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QTest::qWait(100); + QVERIFY(anim); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QTest::qWait(150); + QVERIFY(!anim); //The animation must have been deleted + QCOMPARE(runningSpy.count(), 4); + QCOMPARE(finishedSpy.count(), 2); + delete object; +} + +void tst_QPropertyAnimation::deletion2() +{ + //test that the animation get deleted if the object is deleted + QObject *object = new QWidget; + QPointer<QPropertyAnimation> anim = new QPropertyAnimation(object,"minimumWidth"); + anim->setStartValue(10); + anim->setEndValue(20); + anim->setDuration(200); + + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy finishedSpy(anim, SIGNAL(finished())); + + anim->setStartValue(10); + anim->setEndValue(20); + anim->setDuration(200); + anim->start(); + + QTest::qWait(50); + QVERIFY(anim); + QCOMPARE(anim->state(), QAnimationGroup::Running); + + QCOMPARE(runningSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + + //we can't call deletaLater directly because the delete would only happen in the next loop of _this_ event loop + QTimer::singleShot(0, object, SLOT(deleteLater())); + QTest::qWait(50); + + QVERIFY(anim->targetObject() == 0); +} + +void tst_QPropertyAnimation::deletion3() +{ + //test that the stopped signal is emit when the animation is destroyed + QObject *object = new QWidget; + QPropertyAnimation *anim = new QPropertyAnimation(object,"minimumWidth"); + anim->setStartValue(10); + anim->setEndValue(20); + anim->setDuration(200); + + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy finishedSpy(anim, SIGNAL(finished())); + anim->start(); + + QTest::qWait(50); + QCOMPARE(anim->state(), QAnimationGroup::Running); + QCOMPARE(runningSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + delete anim; + QCOMPARE(runningSpy.count(), 2); + QCOMPARE(finishedSpy.count(), 0); +} + +void tst_QPropertyAnimation::duration0() +{ + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation animation(&o, "ole"); + animation.setEndValue(43); + QVERIFY(!animation.currentValue().isValid()); + QCOMPARE(animation.currentValue().toInt(), 0); + animation.setStartValue(42); + QVERIFY(animation.currentValue().isValid()); + QCOMPARE(animation.currentValue().toInt(), 42); + + QCOMPARE(o.property("ole").toInt(), 42); + animation.setDuration(0); + QCOMPARE(animation.currentValue().toInt(), 43); //it is at the end + animation.start(); + QCOMPARE(animation.state(), QAnimationGroup::Stopped); + QCOMPARE(animation.currentTime(), 0); + QCOMPARE(o.property("ole").toInt(), 43); +} + +class StartValueTester : public QObject +{ + Q_OBJECT + Q_PROPERTY(int ole READ ole WRITE setOle) +public: + StartValueTester() : o(0) { } + int ole() const { return o; } + void setOle(int v) { o = v; values << v; } + + int o; + QList<int> values; +}; + +void tst_QPropertyAnimation::noStartValue() +{ + StartValueTester o; + o.setProperty("ole", 42); + o.values.clear(); + + QPropertyAnimation a(&o, "ole"); + a.setEndValue(420); + a.setDuration(250); + a.start(); + + QTest::qWait(300); + + QCOMPARE(o.values.first(), 42); + QCOMPARE(o.values.last(), 420); +} + +void tst_QPropertyAnimation::noStartValueWithLoop() +{ + StartValueTester o; + o.setProperty("ole", 42); + o.values.clear(); + + QPropertyAnimation a(&o, "ole"); + a.setEndValue(420); + a.setDuration(250); + a.setLoopCount(2); + a.start(); + + a.setCurrentTime(250); + QCOMPARE(o.values.first(), 42); + QCOMPARE(a.currentValue().toInt(), 42); + QCOMPARE(o.values.last(), 42); + + a.setCurrentTime(500); + QCOMPARE(a.currentValue().toInt(), 420); +} + +void tst_QPropertyAnimation::startWhenAnotherIsRunning() +{ + StartValueTester o; + o.setProperty("ole", 42); + o.values.clear(); + + { + //normal case: the animation finishes and is deleted + QPointer<QVariantAnimation> anim = new QPropertyAnimation(&o, "ole"); + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + anim->start(QVariantAnimation::DeleteWhenStopped); + QTest::qWait(anim->duration() + 50); + QCOMPARE(runningSpy.count(), 2); //started and then stopped + QVERIFY(!anim); + } + + { + QPointer<QVariantAnimation> anim = new QPropertyAnimation(&o, "ole"); + QSignalSpy runningSpy(anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + anim->start(QVariantAnimation::DeleteWhenStopped); + QTest::qWait(anim->duration()/2); + QPointer<QVariantAnimation> anim2 = new QPropertyAnimation(&o, "ole"); + QCOMPARE(runningSpy.count(), 1); + QCOMPARE(anim->state(), QVariantAnimation::Running); + + //anim2 will interrupt anim1 + QMetaObject::invokeMethod(anim2, "start", Qt::QueuedConnection, Q_ARG(QAbstractAnimation::DeletionPolicy, QVariantAnimation::DeleteWhenStopped)); + QTest::qWait(50); + QVERIFY(!anim); //anim should have been deleted + QVERIFY(anim2); + QTest::qWait(anim2->duration()); + QVERIFY(!anim2); //anim2 is finished: it should have been deleted by now + QVERIFY(!anim); + } + +} + +// copy from easing.cpp in case that function changes definition +static qreal easeInOutBack(qreal t) +{ + qreal s = 1.70158; + qreal t_adj = 2.0f * (qreal)t; + if (t_adj < 1) { + s *= 1.525f; + return 1.0/2*(t_adj*t_adj*((s+1)*t_adj - s)); + } else { + t_adj -= 2; + s *= 1.525f; + return 1.0/2*(t_adj*t_adj*((s+1)*t_adj + s) + 2); + } +} + +void tst_QPropertyAnimation::easingcurve_data() +{ + QTest::addColumn<int>("currentTime"); + QTest::addColumn<int>("expectedvalue"); + + QTest::newRow("interpolation1") << 0 << 0; + QTest::newRow("interpolation2") << 1000 << 1000; + QTest::newRow("extrapolationbelow") << 250 << -99; + QTest::newRow("extrapolationabove") << 750 << 1099; +} + +void tst_QPropertyAnimation::easingcurve() +{ + QFETCH(int, currentTime); + QFETCH(int, expectedvalue); + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation pAnimation(&o, "ole"); + pAnimation.setStartValue(0); + pAnimation.setEndValue(1000); + pAnimation.setDuration(1000); + + // this easingcurve assumes that we extrapolate before startValue and after endValue + QEasingCurve easingCurve; + easingCurve.setCustomType(easeInOutBack); + pAnimation.setEasingCurve(easingCurve); + pAnimation.start(); + pAnimation.pause(); + pAnimation.setCurrentTime(currentTime); + QCOMPARE(o.property("ole").toInt(), expectedvalue); +} + +void tst_QPropertyAnimation::startWithoutStartValue() +{ + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation anim(&o, "ole"); + anim.setEndValue(100); + + anim.start(); + + QTest::qWait(100); + int current = anim.currentValue().toInt(); + //it is somewhere in the animation + QVERIFY(current > 42); + QVERIFY(current < 100); + + QTest::qWait(200); + QCOMPARE(anim.state(), QVariantAnimation::Stopped); + current = anim.currentValue().toInt(); + QCOMPARE(current, 100); + QCOMPARE(o.property("ole").toInt(), current); + + anim.setEndValue(110); + anim.start(); + current = anim.currentValue().toInt(); + // the default start value will reevaluate the current property + // and set it to the end value of the last iteration + QCOMPARE(current, 100); + QTest::qWait(100); + current = anim.currentValue().toInt(); + //it is somewhere in the animation + QVERIFY(current >= 100); + QVERIFY(current <= 110); +} + +void tst_QPropertyAnimation::playForwardBackward() +{ + QObject o; + o.setProperty("ole", 0); + QCOMPARE(o.property("ole").toInt(), 0); + + QPropertyAnimation anim(&o, "ole"); + anim.setEndValue(100); + anim.start(); + QTest::qWait(anim.duration() + 50); + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + QCOMPARE(anim.currentTime(), anim.duration()); + + //the animation is at the end + anim.setDirection(QVariantAnimation::Backward); + anim.start(); + QCOMPARE(anim.state(), QAbstractAnimation::Running); + QTest::qWait(anim.duration() + 50); + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + QCOMPARE(anim.currentTime(), 0); + + //the direction is backward + //restarting should jump to the end + anim.start(); + QCOMPARE(anim.state(), QAbstractAnimation::Running); + QCOMPARE(anim.currentTime(), anim.duration()); + QTest::qWait(anim.duration() + 50); + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + QCOMPARE(anim.currentTime(), 0); +} + +struct Number +{ + Number() {} + Number(int n) + : n(n) {} + + Number(const Number &other) + : n(other.n){} + + Number &operator=(const Number &other) { + n = other.n; + return *this; + } + bool operator==(const Number &other) const { + return n == other.n; + } + + int n; +}; + +Q_DECLARE_METATYPE(Number) +Q_DECLARE_METATYPE(QAbstractAnimation::State) + +QVariant numberInterpolator(const Number &f, const Number &t, qreal progress) +{ + return qVariantFromValue<Number>(Number(f.n + (t.n - f.n)*progress)); +} + +QVariant xaxisQPointInterpolator(const QPointF &f, const QPointF &t, qreal progress) +{ + return QPointF(f.x() + (t.x() - f.x())*progress, f.y()); +} + +void tst_QPropertyAnimation::interpolated() +{ + QObject o; + o.setProperty("point", QPointF()); //this will avoid warnings + o.setProperty("number", qVariantFromValue<Number>(Number(42))); + QCOMPARE(qVariantValue<Number>(o.property("number")), Number(42)); + { + qRegisterAnimationInterpolator<Number>(numberInterpolator); + QPropertyAnimation anim(&o, "number"); + anim.setStartValue(qVariantFromValue<Number>(Number(0))); + anim.setEndValue(qVariantFromValue<Number>(Number(100))); + anim.setDuration(1000); + anim.start(); + anim.pause(); + anim.setCurrentTime(100); + Number t(qVariantValue<Number>(o.property("number"))); + QCOMPARE(t, Number(10)); + anim.setCurrentTime(500); + QCOMPARE(qVariantValue<Number>(o.property("number")), Number(50)); + } + { + qRegisterAnimationInterpolator<QPointF>(xaxisQPointInterpolator); + QPropertyAnimation anim(&o, "point"); + anim.setStartValue(QPointF(0,0)); + anim.setEndValue(QPointF(100, 100)); + anim.setDuration(1000); + anim.start(); + anim.pause(); + anim.setCurrentTime(100); + QCOMPARE(o.property("point"), QVariant(QPointF(10, 0))); + anim.setCurrentTime(500); + QCOMPARE(o.property("point"), QVariant(QPointF(50, 0))); + } + { + // unregister it and see if we get back the default behaviour + qRegisterAnimationInterpolator<QPointF>(0); + QPropertyAnimation anim(&o, "point"); + anim.setStartValue(QPointF(0,0)); + anim.setEndValue(QPointF(100, 100)); + anim.setDuration(1000); + anim.start(); + anim.pause(); + anim.setCurrentTime(100); + QCOMPARE(o.property("point").toPointF(), QPointF(10, 10)); + anim.setCurrentTime(500); + QCOMPARE(o.property("point").toPointF(), QPointF(50, 50)); + } + + { + // Interpolate a qreal property with a int interpolator + AnimationObject o1; + o1.setRealValue(42.42); + QPropertyAnimation anim(&o1, "realValue"); + anim.setStartValue(0); + anim.setEndValue(100); + anim.start(); + QCOMPARE(o1.realValue(), qreal(0)); + anim.setCurrentTime(250); + QCOMPARE(o1.realValue(), qreal(100)); + } +} + +Q_DECLARE_METATYPE(QVariant) + +void tst_QPropertyAnimation::setStartEndValues_data() +{ + QTest::addColumn<QByteArray>("propertyName"); + QTest::addColumn<QVariant>("initialValue"); + QTest::addColumn<QVariant>("startValue"); + QTest::addColumn<QVariant>("endValue"); + + QTest::newRow("dynamic property") << QByteArray("ole") << QVariant(42) << QVariant(0) << QVariant(10); + QTest::newRow("real property, with unmatching types") << QByteArray("x") << QVariant(42.) << QVariant(0) << QVariant(10.); +} + +void tst_QPropertyAnimation::setStartEndValues() +{ + MyObject object; + QFETCH(QByteArray, propertyName); + QFETCH(QVariant, initialValue); + QFETCH(QVariant, startValue); + QFETCH(QVariant, endValue); + + //this tests the start value, end value and default start value + object.setProperty(propertyName, initialValue); + QPropertyAnimation anim(&object, propertyName); + QVariantAnimation::KeyValues values; + QCOMPARE(anim.keyValues(), values); + + //let's add a start value + anim.setStartValue(startValue); + values << QVariantAnimation::KeyValue(0, startValue); + QCOMPARE(anim.keyValues(), values); + + anim.setEndValue(endValue); + values << QVariantAnimation::KeyValue(1, endValue); + QCOMPARE(anim.keyValues(), values); + + //now we can play with objects + QCOMPARE(object.property(propertyName).toDouble(), initialValue.toDouble()); + anim.start(); + QVERIFY(anim.startValue().isValid()); + QCOMPARE(object.property(propertyName), anim.startValue()); + anim.setCurrentTime(anim.duration()/2); + QCOMPARE(object.property(propertyName).toDouble(), (startValue.toDouble() + endValue.toDouble())/2 ); //just in the middle of the animation + anim.setCurrentTime(anim.duration()); //we go to the end of the animation + QCOMPARE(anim.state(), QAnimationGroup::Stopped); //it should have stopped + QVERIFY(anim.endValue().isValid()); + QCOMPARE(object.property(propertyName), anim.endValue()); //end of the animations + + //now we remove the explicit start value and test the implicit one + anim.stop(); + object.setProperty(propertyName, initialValue); + + //let's reset the start value + values.remove(0); + anim.setStartValue(QVariant()); + QCOMPARE(anim.keyValues(), values); + QVERIFY(!anim.startValue().isValid()); + + anim.start(); + QCOMPARE(object.property(propertyName), initialValue); + anim.setCurrentTime(anim.duration()/2); + QCOMPARE(object.property(propertyName).toDouble(), (initialValue.toDouble() + endValue.toDouble())/2 ); //just in the middle of the animation + anim.setCurrentTime(anim.duration()); //we go to the end of the animation + QCOMPARE(anim.state(), QAnimationGroup::Stopped); //it should have stopped + QVERIFY(anim.endValue().isValid()); + QCOMPARE(object.property(propertyName), anim.endValue()); //end of the animations + + //now we set back the startValue + anim.setStartValue(startValue); + QVERIFY(anim.startValue().isValid()); + anim.start(); + QCOMPARE(object.property(propertyName), startValue); +} + +void tst_QPropertyAnimation::zeroDurationStart() +{ + QPropertyAnimation anim; + QSignalSpy spy(&anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + anim.setDuration(0); + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + anim.start(); + //the animation stops immediately + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + QCOMPARE(spy.count(), 2); + + //let's check the first state change + const QVariantList firstChange = spy.first(); + //old state + QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.first()), QAbstractAnimation::Stopped); + //new state + QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.last()), QAbstractAnimation::Running); + + //let's check the first state change + const QVariantList secondChange = spy.last(); + //old state + QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.first()), QAbstractAnimation::Running); + //new state + QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.last()), QAbstractAnimation::Stopped); +} + +#define Pause 1 +#define Start 2 +#define Resume 3 +#define Stop 4 + +void tst_QPropertyAnimation::operationsInStates_data() +{ + QTest::addColumn<QAbstractAnimation::State>("originState"); + QTest::addColumn<int>("operation"); + QTest::addColumn<QString>("expectedWarning"); + QTest::addColumn<QAbstractAnimation::State>("expectedState"); + + QString pauseWarn(QLatin1String("QAbstractAnimation::pause: Cannot pause a stopped animation")); + QString resumeWarn(QLatin1String("QAbstractAnimation::resume: Cannot resume an animation that is not paused")); + + QTest::newRow("S-pause") << QAbstractAnimation::Stopped << Pause << pauseWarn << QAbstractAnimation::Stopped; + QTest::newRow("S-start") << QAbstractAnimation::Stopped << Start << QString() << QAbstractAnimation::Running; + QTest::newRow("S-resume") << QAbstractAnimation::Stopped << Resume << resumeWarn << QAbstractAnimation::Stopped; + QTest::newRow("S-stop") << QAbstractAnimation::Stopped << Stop << QString() << QAbstractAnimation::Stopped; + + QTest::newRow("P-pause") << QAbstractAnimation::Paused << Pause << QString() << QAbstractAnimation::Paused; + QTest::newRow("P-start") << QAbstractAnimation::Paused << Start << QString() << QAbstractAnimation::Running; + QTest::newRow("P-resume") << QAbstractAnimation::Paused << Resume << QString() << QAbstractAnimation::Running; + QTest::newRow("P-stop") << QAbstractAnimation::Paused << Stop << QString() << QAbstractAnimation::Stopped; + + QTest::newRow("R-pause") << QAbstractAnimation::Running << Pause << QString() << QAbstractAnimation::Paused; + QTest::newRow("R-start") << QAbstractAnimation::Running << Start << QString() << QAbstractAnimation::Running; + QTest::newRow("R-resume") << QAbstractAnimation::Running << Resume << resumeWarn << QAbstractAnimation::Running; + QTest::newRow("R-stop") << QAbstractAnimation::Running << Stop << QString() << QAbstractAnimation::Stopped; +} + +void tst_QPropertyAnimation::operationsInStates() +{ +/** + * | pause() |start() |resume() |stop() + * ----------+------------+-----------+-----------+-------------------+ + * Stopped | Stopped |Running |Stopped |Stopped | + * _| qWarning |restart |qWarning | | + * Paused | Paused |Running |Running |Stopped | + * _| | | | | + * Running | Paused |Running |Running |Stopped | + * | |restart |qWarning | | + * ----------+------------+-----------+-----------+-------------------+ +**/ + + QFETCH(QAbstractAnimation::State, originState); + QFETCH(int, operation); + QFETCH(QString, expectedWarning); + QFETCH(QAbstractAnimation::State, expectedState); + + QObject o; + o.setProperty("ole", 42); + QPropertyAnimation anim(&o, "ole"); + QSignalSpy spy(&anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + anim.stop(); + switch (originState) { + case QAbstractAnimation::Stopped: + break; + case QAbstractAnimation::Paused: + anim.start(); + anim.pause(); + break; + case QAbstractAnimation::Running: + anim.start(); + break; + } + if (!expectedWarning.isEmpty()) { + QTest::ignoreMessage(QtWarningMsg, qPrintable(expectedWarning)); + } + QCOMPARE(anim.state(), originState); + switch (operation) { + case Pause: + anim.pause(); + break; + case Start: + anim.start(); + break; + case Resume: + anim.resume(); + break; + case Stop: + anim.stop(); + break; + } + + QCOMPARE(anim.state(), expectedState); +} +#undef Pause +#undef Start +#undef Resume +#undef Stop + +void tst_QPropertyAnimation::oneKeyValue() +{ + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation animation(&o, "ole"); + animation.setStartValue(43); + animation.setEndValue(44); + animation.setDuration(100); + + animation.setCurrentTime(0); + + QVERIFY(animation.currentValue().isValid()); + QCOMPARE(animation.currentValue().toInt(), 43); + QCOMPARE(o.property("ole").toInt(), 42); + + // remove the last key value + animation.setKeyValueAt(1.0, QVariant()); + + // we will neither interpolate, nor update the current value + // since there is only one 1 key value defined + animation.setCurrentTime(100); + + // the animation should not have been modified + QVERIFY(animation.currentValue().isValid()); + QCOMPARE(animation.currentValue().toInt(), 43); + QCOMPARE(o.property("ole").toInt(), 42); +} + +void tst_QPropertyAnimation::updateOnSetKeyValues() +{ + QObject o; + o.setProperty("ole", 100); + QCOMPARE(o.property("ole").toInt(), 100); + + QPropertyAnimation animation(&o, "ole"); + animation.setStartValue(100); + animation.setEndValue(200); + animation.setDuration(100); + + animation.setCurrentTime(50); + QCOMPARE(animation.currentValue().toInt(), 150); + animation.setKeyValueAt(0.0, 300); + QCOMPARE(animation.currentValue().toInt(), 250); + + o.setProperty("ole", 100); + QPropertyAnimation animation2(&o, "ole"); + QVariantAnimation::KeyValues kValues; + kValues << QVariantAnimation::KeyValue(0.0, 100) << QVariantAnimation::KeyValue(1.0, 200); + animation2.setKeyValues(kValues); + animation2.setDuration(100); + animation2.setCurrentTime(50); + QCOMPARE(animation2.currentValue().toInt(), 150); + + kValues.clear(); + kValues << QVariantAnimation::KeyValue(0.0, 300) << QVariantAnimation::KeyValue(1.0, 200); + animation2.setKeyValues(kValues); + + QCOMPARE(animation2.currentValue().toInt(), animation.currentValue().toInt()); +} + + +//this class will 'throw' an error in the test lib +// if the property ole is set to ErrorValue +class MyErrorObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int ole READ ole WRITE setOle) +public: + + static const int ErrorValue = 10000; + + MyErrorObject() : m_ole(0) { } + int ole() const { return m_ole; } + void setOle(int o) + { + QVERIFY(o != ErrorValue); + m_ole = o; + } + +private: + int m_ole; + + +}; + +void tst_QPropertyAnimation::restart() +{ + //here we check that be restarting an animation + //it doesn't get an bogus intermediate value (end value) + //because the time is not yet reset to 0 + MyErrorObject o; + o.setOle(100); + QCOMPARE(o.property("ole").toInt(), 100); + + QPropertyAnimation anim(&o, "ole"); + anim.setEndValue(200); + anim.start(); + anim.setCurrentTime(anim.duration()); + QCOMPARE(anim.state(), QAbstractAnimation::Stopped); + QCOMPARE(o.property("ole").toInt(), 200); + + //we'll check that the animation never gets a wrong value when starting it + //after having changed the end value + anim.setEndValue(MyErrorObject::ErrorValue); + anim.start(); +} + + +QTEST_MAIN(tst_QPropertyAnimation) +#include "tst_qpropertyanimation.moc" diff --git a/tests/auto/qpushbutton/tst_qpushbutton.cpp b/tests/auto/qpushbutton/tst_qpushbutton.cpp index cf79ffc..7a81dbf 100644 --- a/tests/auto/qpushbutton/tst_qpushbutton.cpp +++ b/tests/auto/qpushbutton/tst_qpushbutton.cpp @@ -51,6 +51,8 @@ #include <qtimer.h> #include <QDialog> #include <QGridLayout> +#include <QStyleFactory> +#include <QTabWidget> Q_DECLARE_METATYPE(QPushButton*) @@ -90,6 +92,8 @@ private slots: void toggled(); void isEnabled(); void defaultAndAutoDefault(); + void sizeHint_data(); + void sizeHint(); /* void state(); void group(); @@ -590,5 +594,77 @@ void tst_QPushButton::defaultAndAutoDefault() } } +void tst_QPushButton::sizeHint_data() +{ + QTest::addColumn<QString>("stylename"); + QTest::newRow("motif") << QString::fromAscii("motif"); + QTest::newRow("cde") << QString::fromAscii("cde"); + QTest::newRow("windows") << QString::fromAscii("windows"); + QTest::newRow("cleanlooks") << QString::fromAscii("cleanlooks"); + QTest::newRow("gtk") << QString::fromAscii("gtk"); + QTest::newRow("mac") << QString::fromAscii("mac"); + QTest::newRow("plastique") << QString::fromAscii("plastique"); + QTest::newRow("windowsxp") << QString::fromAscii("windowsxp"); + QTest::newRow("windowsvista") << QString::fromAscii("windowsvista"); +} + +void tst_QPushButton::sizeHint() +{ + QFETCH(QString, stylename); + + QStyle *style = QStyleFactory::create(stylename); + if (!style) + QSKIP(qPrintable(QString::fromLatin1("Qt has been compiled without style: %1") + .arg(stylename)), SkipSingle); + QApplication::setStyle(style); + +// Test 1 + { + QPushButton *button = new QPushButton("123"); + QSize initSizeHint = button->sizeHint(); + + QDialog *dialog = new QDialog; + QWidget *widget = new QWidget(dialog); + button->setParent(widget); + button->sizeHint(); + + widget->setParent(0); + delete dialog; + button->setDefault(false); + QCOMPARE(button->sizeHint(), initSizeHint); + delete button; + } + +// Test 2 + { + QWidget *tab1 = new QWidget; + QHBoxLayout *layout1 = new QHBoxLayout(tab1); + QPushButton *button1_1 = new QPushButton("123"); + QPushButton *button1_2 = new QPushButton("123"); + layout1->addWidget(button1_1); + layout1->addWidget(button1_2); + + QWidget *tab2 = new QWidget; + QHBoxLayout *layout2 = new QHBoxLayout(tab2); + QPushButton *button2_1 = new QPushButton("123"); + QPushButton *button2_2 = new QPushButton("123"); + layout2->addWidget(button2_1); + layout2->addWidget(button2_2); + + QDialog *dialog = new QDialog; + QTabWidget *tabWidget = new QTabWidget; + tabWidget->addTab(tab1, "1"); + tabWidget->addTab(tab2, "2"); + QVBoxLayout *mainLayout = new QVBoxLayout(dialog); + mainLayout->addWidget(tabWidget); + dialog->show(); + tabWidget->setCurrentWidget(tab2); + tabWidget->setCurrentWidget(tab1); + QTest::qWait(100); + + QCOMPARE(button1_2->size(), button2_2->size()); + } +} + QTEST_MAIN(tst_QPushButton) #include "tst_qpushbutton.moc" diff --git a/tests/auto/qregion/tst_qregion.cpp b/tests/auto/qregion/tst_qregion.cpp index 3ffa87e..2ad202d 100644 --- a/tests/auto/qregion/tst_qregion.cpp +++ b/tests/auto/qregion/tst_qregion.cpp @@ -96,7 +96,7 @@ private slots: #ifdef Q_OS_WIN void handle(); #endif -#ifdef Q_WS_X11 +#if defined(Q_WS_X11) && defined(QT_BUILD_INTERNAL) void clipRectangles(); #endif @@ -865,7 +865,7 @@ void tst_QRegion::handle() } #endif -#ifdef Q_WS_X11 +#if defined(Q_WS_X11) && defined(QT_BUILD_INTERNAL) void tst_QRegion::clipRectangles() { QRegion region(30, 30, 30, 30); @@ -967,6 +967,7 @@ void tst_QRegion::regionToPath_data() void tst_QRegion::regionToPath() { +#ifdef QT_BUILD_INTERNAL extern QPainterPath qt_regionToPath(const QRegion ®ion); QFETCH(QPainterPath, path); @@ -1002,6 +1003,7 @@ void tst_QRegion::regionToPath() QCOMPARE(ia, ib); QCOMPARE(a.boundingRect(), b.boundingRect()); } +#endif } QTEST_MAIN(tst_QRegion) diff --git a/tests/auto/qringbuffer/qringbuffer.pro b/tests/auto/qringbuffer/qringbuffer.pro new file mode 100644 index 0000000..91fb0a0 --- /dev/null +++ b/tests/auto/qringbuffer/qringbuffer.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +SOURCES += tst_qringbuffer.cpp + +QT = core + + diff --git a/tests/auto/qringbuffer/tst_qringbuffer.cpp b/tests/auto/qringbuffer/tst_qringbuffer.cpp new file mode 100644 index 0000000..93257ad --- /dev/null +++ b/tests/auto/qringbuffer/tst_qringbuffer.cpp @@ -0,0 +1,200 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <private/qringbuffer_p.h> + +class tst_QRingBuffer : public QObject +{ + Q_OBJECT + +public: + tst_QRingBuffer(); + virtual ~tst_QRingBuffer(); +public slots: + void initTestCase(); + void cleanupTestCase(); +private slots: + void readPointerAtPositionWriteRead(); + void readPointerAtPositionEmptyRead(); + void readPointerAtPositionWithHead(); + void readPointerAtPositionReadTooMuch(); + void sizeWhenEmpty(); + void sizeWhenReservedAndChopped(); + void sizeWhenReserved(); +}; + +tst_QRingBuffer::tst_QRingBuffer() +{ +} + +tst_QRingBuffer::~tst_QRingBuffer() +{ +} + +void tst_QRingBuffer::initTestCase() +{ +} + +void tst_QRingBuffer::cleanupTestCase() +{ +} + +void tst_QRingBuffer::sizeWhenReserved() +{ + QRingBuffer ringBuffer; + ringBuffer.reserve(5); + + QCOMPARE(ringBuffer.size(), 5); +} + +void tst_QRingBuffer::sizeWhenReservedAndChopped() +{ + QRingBuffer ringBuffer; + ringBuffer.reserve(31337); + ringBuffer.chop(31337); + + QCOMPARE(ringBuffer.size(), 0); +} + +void tst_QRingBuffer::sizeWhenEmpty() +{ + QRingBuffer ringBuffer; + + QCOMPARE(ringBuffer.size(), 0); +} + +void tst_QRingBuffer::readPointerAtPositionReadTooMuch() +{ + QRingBuffer ringBuffer; + + qint64 length; + const char *buf = ringBuffer.readPointerAtPosition(42, length); + QVERIFY(buf == 0); + QVERIFY(length == 0); +} + +void tst_QRingBuffer::readPointerAtPositionWithHead() +{ + QRingBuffer ringBuffer; + char *buf = ringBuffer.reserve(4); + memcpy (buf, "0123", 4); + ringBuffer.free(2); + + // ringBuffer should have stayed the same except + // its head it had moved to position 2 + qint64 length; + const char* buf2 = ringBuffer.readPointerAtPosition(0, length); + + QCOMPARE(length, qint64(2)); + QVERIFY(*buf2 == '2'); + QVERIFY(*(buf2+1) == '3'); + + // advance 2 more, ringBuffer should be empty then + ringBuffer.free(2); + buf2 = ringBuffer.readPointerAtPosition(0, length); + QCOMPARE(length, qint64(0)); + QVERIFY(buf2 == 0); +} + +void tst_QRingBuffer::readPointerAtPositionEmptyRead() +{ + QRingBuffer ringBuffer; + + qint64 length; + const char *buf = ringBuffer.readPointerAtPosition(0, length); + QVERIFY(buf == 0); + QVERIFY(length == 0); +} + +void tst_QRingBuffer::readPointerAtPositionWriteRead() +{ + //create some data + QBuffer inData; + inData.open(QIODevice::ReadWrite); + inData.putChar(0x42); + inData.putChar(0x23); + inData.write("Qt rocks!"); + for (int i = 0; i < 5000; i++) + inData.write(QString("Number %1").arg(i).toUtf8()); + inData.reset(); + QVERIFY(inData.size() > 0); + + //put the inData in the QRingBuffer + QRingBuffer ringBuffer; + qint64 remaining = inData.size(); + while (remaining > 0) { + // write in chunks of 50 bytes + // this ensures there will be multiple QByteArrays inside the QRingBuffer + // since QRingBuffer is then only using individual arrays of around 4000 bytes + qint64 thisWrite = qMin(remaining, qint64(50)); + char *pos = ringBuffer.reserve(thisWrite); + inData.read(pos, thisWrite); + remaining -= thisWrite; + } + // was data put into it? + QVERIFY(ringBuffer.size() > 0); + QCOMPARE(qint64(ringBuffer.size()), inData.size()); + + //read from the QRingBuffer in loop, put back into another QBuffer + QBuffer outData; + outData.open(QIODevice::ReadWrite); + remaining = ringBuffer.size(); + while (remaining > 0) { + qint64 thisRead; + // always try to read as much as possible + const char *buf = ringBuffer.readPointerAtPosition(ringBuffer.size() - remaining, thisRead); + outData.write(buf, thisRead); + remaining -= thisRead; + } + outData.reset(); + + QVERIFY(outData.size() > 0); + + // was the data read from the QRingBuffer the same as the one written into it? + QCOMPARE(outData.size(), inData.size()); + QVERIFY(outData.buffer().startsWith(inData.buffer())); +} + + +QTEST_APPLESS_MAIN(tst_QRingBuffer) +#include "tst_qringbuffer.moc" diff --git a/tests/auto/qscriptable/tst_qscriptable.cpp b/tests/auto/qscriptable/tst_qscriptable.cpp index 40a57ab..7900d25 100644 --- a/tests/auto/qscriptable/tst_qscriptable.cpp +++ b/tests/auto/qscriptable/tst_qscriptable.cpp @@ -49,7 +49,7 @@ //TESTED_CLASS= //TESTED_FILES= -class MyScriptable : public QObject, protected QScriptable +class MyScriptable : public QObject, public QScriptable { Q_OBJECT Q_PROPERTY(int baz READ baz WRITE setBaz) @@ -87,6 +87,7 @@ public slots: QObject *zab(); QObject *setZab(QObject *); QScriptValue getArguments(); + int getArgumentCount(); signals: void sig(int); @@ -128,6 +129,11 @@ QScriptValue MyScriptable::getArguments() return context()->argumentsObject(); } +int MyScriptable::getArgumentCount() +{ + return context()->argumentCount(); +} + void MyScriptable::foo() { m_lastEngine = engine(); @@ -224,6 +230,8 @@ void tst_QScriptable::cleanupTestCase() void tst_QScriptable::engine() { + QCOMPARE(m_scriptable.engine(), (QScriptEngine*)0); + QCOMPARE(m_scriptable.context(), (QScriptContext*)0); QCOMPARE(m_scriptable.lastEngine(), (QScriptEngine *)0); // reading property @@ -360,6 +368,14 @@ void tst_QScriptable::arguments() QVERIFY(args.property("1").strictlyEquals(QScriptValue(&m_engine, 20))); QVERIFY(args.property("2").strictlyEquals(QScriptValue(&m_engine, 30))); QVERIFY(args.property("3").strictlyEquals(QScriptValue(&m_engine, "hi"))); + + QScriptValue argc = m_engine.evaluate("scriptable.getArgumentCount(1, 2, 3)"); + QVERIFY(argc.isNumber()); + QCOMPARE(argc.toInt32(), 3); + + QCOMPARE(m_scriptable.argumentCount(), -1); + QVERIFY(!m_scriptable.argument(-1).isValid()); + QVERIFY(!m_scriptable.argument(0).isValid()); } void tst_QScriptable::throwError() diff --git a/tests/auto/qscriptcontext/tst_qscriptcontext.cpp b/tests/auto/qscriptcontext/tst_qscriptcontext.cpp index 5b8818a..d96006d 100644 --- a/tests/auto/qscriptcontext/tst_qscriptcontext.cpp +++ b/tests/auto/qscriptcontext/tst_qscriptcontext.cpp @@ -72,6 +72,7 @@ private slots: void scopeChain(); void pushAndPopScope(); void getSetActivationObject(); + void toString(); }; tst_QScriptContext::tst_QScriptContext() @@ -438,6 +439,7 @@ void tst_QScriptContext::pushAndPopContext() QCOMPARE(ctx->isCalledAsConstructor(), false); QCOMPARE(ctx->argumentCount(), 0); QCOMPARE(ctx->argument(0).isUndefined(), true); + QVERIFY(!ctx->argument(-1).isValid()); QCOMPARE(ctx->argumentsObject().isObject(), true); QCOMPARE(ctx->activationObject().isObject(), true); QCOMPARE(ctx->callee().isValid(), false); @@ -687,5 +689,21 @@ void tst_QScriptContext::getSetActivationObject() } } +static QScriptValue parentContextToString(QScriptContext *ctx, QScriptEngine *) +{ + return ctx->parentContext()->toString(); +} + +void tst_QScriptContext::toString() +{ + QScriptEngine eng; + eng.globalObject().setProperty("parentContextToString", eng.newFunction(parentContextToString)); + QScriptValue ret = eng.evaluate("function foo(first, second, third) {\n" + " return parentContextToString();\n" + "}; foo(1, 2, 3)", "script.qs"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("foo (first=1, second=2, third=3) at script.qs:2")); +} + QTEST_MAIN(tst_QScriptContext) #include "tst_qscriptcontext.moc" diff --git a/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp b/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp index 32f6c62..4b33022 100644 --- a/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp +++ b/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp @@ -95,6 +95,7 @@ private slots: void builtinFunctionNames(); void nullContext(); void streaming(); + void assignmentAndComparison(); }; tst_QScriptContextInfo::tst_QScriptContextInfo() @@ -553,5 +554,24 @@ void tst_QScriptContextInfo::streaming() } } +void tst_QScriptContextInfo::assignmentAndComparison() +{ + QScriptEngine eng; + eng.globalObject().setProperty("getContextInfoList", eng.newFunction(getContextInfoList)); + QString fileName = "ciao.qs"; + int lineNumber = 456; + QScriptValue ret = eng.evaluate("function bar(a, b, c) {\n return getContextInfoList();\n}\nbar()", + fileName, lineNumber); + QList<QScriptContextInfo> lst = qscriptvalue_cast<QList<QScriptContextInfo> >(ret); + QCOMPARE(lst.size(), 3); + QScriptContextInfo ci = lst.at(0); + QScriptContextInfo same = ci; + QVERIFY(ci == same); + QVERIFY(!(ci != same)); + QScriptContextInfo other = lst.at(1); + QVERIFY(!(ci == other)); + QVERIFY(ci != other); +} + QTEST_MAIN(tst_QScriptContextInfo) #include "tst_qscriptcontextinfo.moc" diff --git a/tests/auto/qscriptengine/qscriptengine.pro b/tests/auto/qscriptengine/qscriptengine.pro index cf3ced3..b5aa621 100644 --- a/tests/auto/qscriptengine/qscriptengine.pro +++ b/tests/auto/qscriptengine/qscriptengine.pro @@ -1,6 +1,7 @@ load(qttest_p4) QT += script SOURCES += tst_qscriptengine.cpp +DEFINES += SRCDIR=\\\"$$PWD\\\" wince*: { addFiles.sources = script diff --git a/tests/auto/qscriptengine/script/com/__init__.js b/tests/auto/qscriptengine/script/com/__init__.js index 381816a..7db3ee4 100644 --- a/tests/auto/qscriptengine/script/com/__init__.js +++ b/tests/auto/qscriptengine/script/com/__init__.js @@ -3,3 +3,7 @@ __setupPackage__("com"); com.wasDefinedAlready = wasDefinedAlready; com.name = __extension__; com.level = 1; + +com.postInitCallCount = 0; +com.originalPostInit = __postInit__; +__postInit__ = function() { ++com.postInitCallCount; }; diff --git a/tests/auto/qscriptengine/script/com/trolltech/__init__.js b/tests/auto/qscriptengine/script/com/trolltech/__init__.js index f12b17d..a55b132 100644 --- a/tests/auto/qscriptengine/script/com/trolltech/__init__.js +++ b/tests/auto/qscriptengine/script/com/trolltech/__init__.js @@ -3,3 +3,7 @@ __setupPackage__("com.trolltech"); com.trolltech.wasDefinedAlready = wasDefinedAlready; com.trolltech.name = __extension__; com.trolltech.level = com.level + 1; + +com.trolltech.postInitCallCount = 0; +com.trolltech.originalPostInit = __postInit__; +__postInit__ = function() { ++com.trolltech.postInitCallCount; }; diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index 538200b..57c5167 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -64,6 +64,7 @@ public: virtual ~tst_QScriptEngine(); private slots: + void constructWithParent(); void currentContext(); void pushPopContext(); void getSetDefaultPrototype(); @@ -100,6 +101,7 @@ private slots: void automaticSemicolonInsertion(); void abortEvaluation(); void isEvaluating(); + void printFunctionWithCustomHandler(); void printThrowsException(); void errorConstructors(); void argumentsProperty(); @@ -119,6 +121,7 @@ private slots: void getSetAgent(); void reentrancy(); void incDecNonObjectProperty(); + void installTranslatorFunctions(); }; tst_QScriptEngine::tst_QScriptEngine() @@ -129,6 +132,17 @@ tst_QScriptEngine::~tst_QScriptEngine() { } +void tst_QScriptEngine::constructWithParent() +{ + QPointer<QScriptEngine> ptr; + { + QObject obj; + QScriptEngine *engine = new QScriptEngine(&obj); + ptr = engine; + } + QVERIFY(ptr == 0); +} + void tst_QScriptEngine::currentContext() { QScriptEngine eng; @@ -636,9 +650,21 @@ void tst_QScriptEngine::newQObject() QScriptValue val = ret.property("objectName"); QVERIFY(val.isString()); } + // "promote" variant object to QObject + { + QScriptValue obj = eng.newVariant(123); + QVERIFY(obj.isVariant()); + QScriptValue originalProto = obj.prototype(); + QScriptValue ret = eng.newQObject(obj, this); + QVERIFY(ret.isQObject()); + QVERIFY(ret.strictlyEquals(obj)); + QVERIFY(obj.isQObject()); + QCOMPARE(ret.toQObject(), (QObject *)this); + QVERIFY(ret.prototype().strictlyEquals(originalProto)); + } // replace QObject* of existing object { - QScriptValue object = eng.newQObject(this); + QScriptValue object = eng.newVariant(123); QScriptValue originalProto = object.prototype(); QObject otherQObject; QScriptValue ret = eng.newQObject(object, &otherQObject); @@ -933,6 +959,22 @@ void tst_QScriptEngine::checkSyntax() QCOMPARE(result.errorLineNumber(), errorLineNumber); QCOMPARE(result.errorColumnNumber(), errorColumnNumber); QCOMPARE(result.errorMessage(), errorMessage); + + // assignment + { + QScriptSyntaxCheckResult copy = result; + QCOMPARE(copy.state(), result.state()); + QCOMPARE(copy.errorLineNumber(), result.errorLineNumber()); + QCOMPARE(copy.errorColumnNumber(), result.errorColumnNumber()); + QCOMPARE(copy.errorMessage(), result.errorMessage()); + } + { + QScriptSyntaxCheckResult copy(result); + QCOMPARE(copy.state(), result.state()); + QCOMPARE(copy.errorLineNumber(), result.errorLineNumber()); + QCOMPARE(copy.errorColumnNumber(), result.errorColumnNumber()); + QCOMPARE(copy.errorMessage(), result.errorMessage()); + } } void tst_QScriptEngine::canEvaluate_data() @@ -1455,6 +1497,61 @@ void tst_QScriptEngine::valueConversion() Foo foo = qScriptValueToValue<Foo>(str); QCOMPARE(foo.x, 123); } + + // more built-in types + { + QScriptValue val = qScriptValueFromValue(&eng, uint(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, qulonglong(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, float(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, short(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, ushort(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, char(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QScriptValue val = qScriptValueFromValue(&eng, uchar(123)); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), 123); + } + { + QDateTime in = QDateTime::currentDateTime(); + QScriptValue val = qScriptValueFromValue(&eng, in); + QVERIFY(val.isDate()); + QCOMPARE(val.toDateTime(), in); + } + { + QDate in = QDate::currentDate(); + QScriptValue val = qScriptValueFromValue(&eng, in); + QVERIFY(val.isDate()); + QCOMPARE(val.toDateTime().date(), in); + } + { + QRegExp in = QRegExp("foo"); + QScriptValue val = qScriptValueFromValue(&eng, in); + QVERIFY(val.isRegExp()); + QCOMPARE(val.toRegExp(), in); + } } static QScriptValue __import__(QScriptContext *ctx, QScriptEngine *eng) @@ -1465,7 +1562,7 @@ static QScriptValue __import__(QScriptContext *ctx, QScriptEngine *eng) void tst_QScriptEngine::importExtension() { QStringList libPaths = QCoreApplication::instance()->libraryPaths(); - QCoreApplication::instance()->setLibraryPaths(QStringList() << "."); + QCoreApplication::instance()->setLibraryPaths(QStringList() << SRCDIR); QStringList availableExtensions; { @@ -1486,6 +1583,7 @@ void tst_QScriptEngine::importExtension() QScriptValue ret = eng.importExtension("this.extension.does.not.exist"); QCOMPARE(eng.hasUncaughtException(), true); QCOMPARE(ret.isError(), true); + QCOMPARE(ret.toString(), QString::fromLatin1("Error: Unable to import this.extension.does.not.exist: no such extension")); } { @@ -1504,6 +1602,8 @@ void tst_QScriptEngine::importExtension() .strictlyEquals(QScriptValue(&eng, "com")), true); QCOMPARE(com.property("level") .strictlyEquals(QScriptValue(&eng, 1)), true); + QVERIFY(com.property("originalPostInit").isUndefined()); + QVERIFY(com.property("postInitCallCount").strictlyEquals(1)); QScriptValue trolltech = com.property("trolltech"); QCOMPARE(trolltech.isObject(), true); @@ -1513,6 +1613,8 @@ void tst_QScriptEngine::importExtension() .strictlyEquals(QScriptValue(&eng, "com.trolltech")), true); QCOMPARE(trolltech.property("level") .strictlyEquals(QScriptValue(&eng, 2)), true); + QVERIFY(trolltech.property("originalPostInit").isUndefined()); + QVERIFY(trolltech.property("postInitCallCount").strictlyEquals(1)); } QStringList imp = eng.importedExtensions(); QCOMPARE(imp.size(), 2); @@ -1528,6 +1630,8 @@ void tst_QScriptEngine::importExtension() eng.globalObject().setProperty("__import__", eng.newFunction(__import__)); QScriptValue ret = eng.importExtension("com.trolltech.recursive"); QCOMPARE(eng.hasUncaughtException(), true); + QVERIFY(ret.isError()); + QCOMPARE(ret.toString(), QString::fromLatin1("Error: recursive import of com.trolltech.recursive")); QStringList imp = eng.importedExtensions(); QCOMPARE(imp.size(), 2); QCOMPARE(imp.at(0), QString::fromLatin1("com")); @@ -2377,6 +2481,33 @@ void tst_QScriptEngine::isEvaluating() } } +static QtMsgType theMessageType; +static QString theMessage; + +static void myMsgHandler(QtMsgType type, const char *msg) +{ + theMessageType = type; + theMessage = QString::fromLatin1(msg); +} + +void tst_QScriptEngine::printFunctionWithCustomHandler() +{ + QScriptEngine eng; + QtMsgHandler oldHandler = qInstallMsgHandler(myMsgHandler); + QVERIFY(eng.globalObject().property("print").isFunction()); + theMessageType = QtSystemMsg; + QVERIFY(theMessage.isEmpty()); + QVERIFY(eng.evaluate("print('test')").isUndefined()); + QCOMPARE(theMessageType, QtDebugMsg); + QCOMPARE(theMessage, QString::fromLatin1("test")); + theMessageType = QtSystemMsg; + theMessage.clear(); + QVERIFY(eng.evaluate("print(3, true, 'little pigs')").isUndefined()); + QCOMPARE(theMessageType, QtDebugMsg); + QCOMPARE(theMessage, QString::fromLatin1("3 true little pigs")); + qInstallMsgHandler(oldHandler); +} + void tst_QScriptEngine::printThrowsException() { QScriptEngine eng; @@ -3403,5 +3534,49 @@ void tst_QScriptEngine:: incDecNonObjectProperty() } } +void tst_QScriptEngine::installTranslatorFunctions() +{ + QScriptEngine eng; + QScriptValue global = eng.globalObject(); + QVERIFY(!global.property("qsTranslate").isValid()); + QVERIFY(!global.property("QT_TRANSLATE_NOOP").isValid()); + QVERIFY(!global.property("qsTr").isValid()); + QVERIFY(!global.property("QT_TR_NOOP").isValid()); + QVERIFY(!global.property("String").property("prototype").property("arg").isValid()); + + eng.installTranslatorFunctions(); + QVERIFY(global.property("qsTranslate").isFunction()); + QVERIFY(global.property("QT_TRANSLATE_NOOP").isFunction()); + QVERIFY(global.property("qsTr").isFunction()); + QVERIFY(global.property("QT_TR_NOOP").isFunction()); + QVERIFY(global.property("String").property("prototype").property("arg").isFunction()); + + { + QScriptValue ret = eng.evaluate("qsTr('foo')"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("foo")); + } + { + QScriptValue ret = eng.evaluate("qsTranslate('foo', 'bar')"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("bar")); + } + { + QScriptValue ret = eng.evaluate("QT_TR_NOOP('foo')"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("foo")); + } + { + QScriptValue ret = eng.evaluate("QT_TRANSLATE_NOOP('foo', 'bar')"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("bar")); + } + { + QScriptValue ret = eng.evaluate("'foo%0'.arg('bar')"); + QVERIFY(ret.isString()); + QCOMPARE(ret.toString(), QString::fromLatin1("foobar")); + } +} + QTEST_MAIN(tst_QScriptEngine) #include "tst_qscriptengine.moc" diff --git a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp index dd597fc..cbdaf1e 100644 --- a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp +++ b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp @@ -111,15 +111,29 @@ void tst_QScriptEngineDebugger::attachAndDetach() { { QScriptEngineDebugger debugger; + QCOMPARE(debugger.state(), QScriptEngineDebugger::SuspendedState); debugger.attachTo(0); QScriptEngine engine; debugger.attachTo(&engine); + QCOMPARE(debugger.state(), QScriptEngineDebugger::SuspendedState); } { QScriptEngineDebugger debugger; QScriptEngine engine; + QScriptValue oldPrint = engine.globalObject().property("print"); + QVERIFY(oldPrint.isFunction()); + QVERIFY(!engine.globalObject().property("__FILE__").isValid()); + QVERIFY(!engine.globalObject().property("__LINE__").isValid()); + debugger.attachTo(&engine); + QVERIFY(engine.globalObject().property("__FILE__").isUndefined()); + QVERIFY(engine.globalObject().property("__LINE__").isNumber()); + QVERIFY(!engine.globalObject().property("print").strictlyEquals(oldPrint)); + debugger.detach(); + QVERIFY(engine.globalObject().property("print").strictlyEquals(oldPrint)); + QVERIFY(!engine.globalObject().property("__FILE__").isValid()); + QVERIFY(!engine.globalObject().property("__LINE__").isValid()); } { QScriptEngineDebugger debugger; @@ -147,6 +161,14 @@ void tst_QScriptEngineDebugger::attachAndDetach() debugger2.attachTo(&engine); } #endif + { + QScriptEngine *engine = new QScriptEngine; + QScriptEngineDebugger debugger; + debugger.attachTo(engine); + delete engine; + QScriptEngine engine2; + debugger.attachTo(&engine2); + } } void tst_QScriptEngineDebugger::action() diff --git a/tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro b/tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro index b8109cc..f6a6aeb 100644 --- a/tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro +++ b/tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro @@ -1,6 +1,7 @@ load(qttest_p4) QT = core script SOURCES += tst_qscriptjstestsuite.cpp +DEFINES += SRCDIR=\\\"$$PWD\\\" wince*: { testFiles.sources = tests diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp index 66004f8..0194730 100644 --- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp +++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp @@ -389,7 +389,7 @@ int tst_Suite::qt_metacall(QMetaObject::Call _c, int _id, void **_a) tst_Suite::tst_Suite() { - testsDir = QDir("."); + testsDir = QDir(SRCDIR); bool testsFound = testsDir.cd("tests"); if (!testsFound) { qWarning("*** no tests/ dir!"); diff --git a/tests/auto/qscriptqobject/tst_qscriptqobject.cpp b/tests/auto/qscriptqobject/tst_qscriptqobject.cpp index 73400b2..ee914ab 100644 --- a/tests/auto/qscriptqobject/tst_qscriptqobject.cpp +++ b/tests/auto/qscriptqobject/tst_qscriptqobject.cpp @@ -107,6 +107,7 @@ class MyQObject : public QObject Q_PROPERTY(int readOnlyProperty READ readOnlyProperty) Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut) Q_PROPERTY(CustomType propWithCustomType READ propWithCustomType WRITE setPropWithCustomType) + Q_PROPERTY(Policy enumProperty READ enumProperty WRITE setEnumProperty) Q_ENUMS(Policy Strategy) Q_FLAGS(Ability) @@ -144,6 +145,7 @@ public: m_hiddenValue(456.0), m_writeOnlyValue(789), m_readOnlyValue(987), + m_enumValue(BarPolicy), m_qtFunctionInvoked(-1) { } @@ -205,6 +207,11 @@ public: void setPropWithCustomType(const CustomType &c) { m_customType = c; } + Policy enumProperty() const + { return m_enumValue; } + void setEnumProperty(Policy policy) + { m_enumValue = policy; } + int qtFunctionInvoked() const { return m_qtFunctionInvoked; } @@ -255,8 +262,8 @@ public: { m_qtFunctionInvoked = 36; m_actuals << policy; } Q_INVOKABLE Policy myInvokableReturningEnum() { m_qtFunctionInvoked = 37; return BazPolicy; } - Q_INVOKABLE MyQObject::Policy myInvokableReturningQualifiedEnum() - { m_qtFunctionInvoked = 38; return BazPolicy; } + Q_INVOKABLE MyQObject::Strategy myInvokableReturningQualifiedEnum() + { m_qtFunctionInvoked = 38; return BazStrategy; } Q_INVOKABLE QVector<int> myInvokableReturningVectorOfInt() { m_qtFunctionInvoked = 11; return QVector<int>(); } Q_INVOKABLE void myInvokableWithVectorOfIntArg(const QVector<int> &) @@ -326,6 +333,10 @@ public: { emit mySignalWithDefaultArg(arg); } void emitMySignalWithDefaultArg() { emit mySignalWithDefaultArg(); } + void emitMySignalWithVariantArg(const QVariant &arg) + { emit mySignalWithVariantArg(arg); } + void emitMySignalWithScriptEngineArg(QScriptEngine *arg) + { emit mySignalWithScriptEngineArg(arg); } public Q_SLOTS: void mySlot() @@ -388,6 +399,8 @@ Q_SIGNALS: void myOtherOverloadedSignal(const QString &arg); void myOtherOverloadedSignal(int arg); void mySignalWithDefaultArg(int arg = 123); + void mySignalWithVariantArg(const QVariant &arg); + void mySignalWithScriptEngineArg(QScriptEngine *arg); protected: void connectNotify(const char *signal) { @@ -410,6 +423,7 @@ protected: int m_readOnlyValue; QKeySequence m_shortcut; CustomType m_customType; + Policy m_enumValue; int m_qtFunctionInvoked; QVariantList m_actuals; QByteArray m_connectedSignal; @@ -417,6 +431,7 @@ protected: }; Q_DECLARE_METATYPE(MyQObject*) +Q_DECLARE_METATYPE(MyQObject::Policy) class MyOtherQObject : public MyQObject { @@ -530,6 +545,24 @@ static QScriptValue getSetProperty(QScriptContext *ctx, QScriptEngine *) return ctx->callee().property("value"); } +static QScriptValue policyToScriptValue(QScriptEngine *engine, const MyQObject::Policy &policy) +{ + return qScriptValueFromValue(engine, policy); +} + +static void policyFromScriptValue(const QScriptValue &value, MyQObject::Policy &policy) +{ + QString str = value.toString(); + if (str == QLatin1String("red")) + policy = MyQObject::FooPolicy; + else if (str == QLatin1String("green")) + policy = MyQObject::BarPolicy; + else if (str == QLatin1String("blue")) + policy = MyQObject::BazPolicy; + else + policy = (MyQObject::Policy)-1; +} + void tst_QScriptExtQObject::getSetStaticProperty() { QCOMPARE(m_engine->evaluate("myObject.noSuchProperty").isUndefined(), true); @@ -572,6 +605,12 @@ void tst_QScriptExtQObject::getSetStaticProperty() QVERIFY(!(mobj.propertyFlags("mySlot") & QScriptValue::Undeletable)); QVERIFY(!(mobj.propertyFlags("mySlot") & QScriptValue::SkipInEnumeration)); QVERIFY(mobj.propertyFlags("mySlot") & QScriptValue::QObjectMember); + + // signature-based property + QVERIFY(!(mobj.propertyFlags("mySlot()") & QScriptValue::ReadOnly)); + QVERIFY(!(mobj.propertyFlags("mySlot()") & QScriptValue::Undeletable)); + QVERIFY(!(mobj.propertyFlags("mySlot()") & QScriptValue::SkipInEnumeration)); + QVERIFY(mobj.propertyFlags("mySlot()") & QScriptValue::QObjectMember); } // property change in C++ should be reflected in script @@ -703,6 +742,8 @@ void tst_QScriptExtQObject::getSetStaticProperty() // test that we do value conversion if necessary when setting properties { QScriptValue br = m_engine->evaluate("myObject.brushProperty"); + QVERIFY(br.isVariant()); + QVERIFY(!br.strictlyEquals(m_engine->evaluate("myObject.brushProperty"))); QCOMPARE(qscriptvalue_cast<QBrush>(br), m_myObject->brushProperty()); QCOMPARE(qscriptvalue_cast<QColor>(br), m_myObject->brushProperty().color()); @@ -751,6 +792,31 @@ void tst_QScriptExtQObject::getSetStaticProperty() QScriptValue::ReadOnly); } + // enum property + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + { + QScriptValue val = m_engine->evaluate("myObject.enumProperty"); + QVERIFY(val.isNumber()); + QCOMPARE(val.toInt32(), (int)MyQObject::BarPolicy); + } + m_engine->evaluate("myObject.enumProperty = 2"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BazPolicy); + m_engine->evaluate("myObject.enumProperty = 'BarPolicy'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + m_engine->evaluate("myObject.enumProperty = 'ScoobyDoo'"); + // ### ouch! Shouldn't QMetaProperty::write() rather not change the value...? + QCOMPARE(m_myObject->enumProperty(), (MyQObject::Policy)-1); + // enum property with custom conversion + qScriptRegisterMetaType<MyQObject::Policy>(m_engine, policyToScriptValue, policyFromScriptValue); + m_engine->evaluate("myObject.enumProperty = 'red'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::FooPolicy); + m_engine->evaluate("myObject.enumProperty = 'green'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BarPolicy); + m_engine->evaluate("myObject.enumProperty = 'blue'"); + QCOMPARE(m_myObject->enumProperty(), MyQObject::BazPolicy); + m_engine->evaluate("myObject.enumProperty = 'nada'"); + QCOMPARE(m_myObject->enumProperty(), (MyQObject::Policy)-1); + // auto-dereferencing of pointers { QBrush b = QColor(0xCA, 0xFE, 0xBA, 0xBE); @@ -780,6 +846,17 @@ void tst_QScriptExtQObject::getSetStaticProperty() mobj.setProperty("intProperty", m_engine->newFunction(getSetProperty), QScriptValue::PropertyGetter | QScriptValue::PropertySetter); } + + // method properties are persistent + { + QScriptValue slot = m_engine->evaluate("myObject.mySlot"); + QVERIFY(slot.isFunction()); + QScriptValue sameSlot = m_engine->evaluate("myObject.mySlot"); + QVERIFY(sameSlot.strictlyEquals(slot)); + sameSlot = m_engine->evaluate("myObject['mySlot()']"); + QEXPECT_FAIL("", "Signature-based method lookup creates new function wrapper object", Continue); + QVERIFY(sameSlot.strictlyEquals(slot)); + } } void tst_QScriptExtQObject::getSetDynamicProperty() @@ -829,6 +906,20 @@ void tst_QScriptExtQObject::getSetChildren() QCOMPARE(m_engine->evaluate("myObject.hasOwnProperty('child')") .strictlyEquals(QScriptValue(m_engine, true)), true); + QScriptValue mobj = m_engine->evaluate("myObject"); + QVERIFY(mobj.propertyFlags("child") & QScriptValue::ReadOnly); + QVERIFY(mobj.propertyFlags("child") & QScriptValue::Undeletable); + QVERIFY(mobj.propertyFlags("child") & QScriptValue::SkipInEnumeration); + QVERIFY(!(mobj.propertyFlags("child") & QScriptValue::QObjectMember)); + + { + QScriptValue scriptChild = m_engine->evaluate("myObject.child"); + QVERIFY(scriptChild.isQObject()); + QCOMPARE(scriptChild.toQObject(), (QObject*)child); + QScriptValue sameChild = m_engine->evaluate("myObject.child"); + QVERIFY(sameChild.strictlyEquals(scriptChild)); + } + // add a grandchild MyQObject *grandChild = new MyQObject(child); grandChild->setObjectName("grandChild"); @@ -1501,6 +1592,29 @@ void tst_QScriptExtQObject::connectAndDisconnect() m_myObject->emitMyOtherOverloadedSignal(123); QVERIFY(!m_engine->evaluate("gotSignal").toBoolean()); + // signal with QVariant arg: argument conversion should work + m_myObject->clearConnectedSignal(); + QVERIFY(m_engine->evaluate("myObject.mySignalWithVariantArg.connect(myHandler)").isUndefined()); + QCOMPARE(m_myObject->connectedSignal().constData(), SIGNAL(mySignalWithVariantArg(QVariant))); + m_engine->evaluate("gotSignal = false"); + m_myObject->emitMySignalWithVariantArg(123); + QCOMPARE(m_engine->evaluate("gotSignal").toBoolean(), true); + QCOMPARE(m_engine->evaluate("signalArgs.length").toNumber(), 1.0); + QCOMPARE(m_engine->evaluate("signalArgs[0]").toNumber(), 123.0); + QVERIFY(m_engine->evaluate("myObject.mySignalWithVariantArg.disconnect(myHandler)").isUndefined()); + + // signal with argument type that's unknown to the meta-type system + m_myObject->clearConnectedSignal(); + QVERIFY(m_engine->evaluate("myObject.mySignalWithScriptEngineArg.connect(myHandler)").isUndefined()); + QCOMPARE(m_myObject->connectedSignal().constData(), SIGNAL(mySignalWithScriptEngineArg(QScriptEngine*))); + m_engine->evaluate("gotSignal = false"); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine: Unable to handle unregistered datatype 'QScriptEngine*' when invoking handler of signal MyQObject::mySignalWithScriptEngineArg(QScriptEngine*)"); + m_myObject->emitMySignalWithScriptEngineArg(m_engine); + QCOMPARE(m_engine->evaluate("gotSignal").toBoolean(), true); + QCOMPARE(m_engine->evaluate("signalArgs.length").toNumber(), 1.0); + QVERIFY(m_engine->evaluate("signalArgs[0]").isUndefined()); + QVERIFY(m_engine->evaluate("myObject.mySignalWithScriptEngineArg.disconnect(myHandler)").isUndefined()); + // connect(object, function) m_engine->evaluate("otherObject = { name:'foo' }"); QVERIFY(m_engine->evaluate("myObject.mySignal.connect(otherObject, myHandler)").isUndefined()); @@ -1825,6 +1939,22 @@ void tst_QScriptExtQObject::cppConnectAndDisconnect() QVERIFY(qScriptDisconnect(m_myObject, SIGNAL(mySignal()), QScriptValue(), fun)); QCOMPARE(m_myObject->disconnectedSignal().constData(), SIGNAL(mySignal())); } + + // bad args + QVERIFY(!qScriptConnect(0, SIGNAL(foo()), QScriptValue(), fun)); + QVERIFY(!qScriptConnect(&edit, 0, QScriptValue(), fun)); + QVERIFY(!qScriptConnect(&edit, SIGNAL(foo()), QScriptValue(), fun)); + QVERIFY(!qScriptConnect(&edit, SIGNAL(textChanged(QString)), QScriptValue(), QScriptValue())); + QVERIFY(!qScriptDisconnect(0, SIGNAL(foo()), QScriptValue(), fun)); + QVERIFY(!qScriptDisconnect(&edit, 0, QScriptValue(), fun)); + QVERIFY(!qScriptDisconnect(&edit, SIGNAL(foo()), QScriptValue(), fun)); + QVERIFY(!qScriptDisconnect(&edit, SIGNAL(textChanged(QString)), QScriptValue(), QScriptValue())); + { + QScriptEngine eng2; + QScriptValue receiverInDifferentEngine = eng2.newObject(); + QVERIFY(!qScriptConnect(&edit, SIGNAL(textChanged(QString)), receiverInDifferentEngine, fun)); + QVERIFY(!qScriptDisconnect(&edit, SIGNAL(textChanged(QString)), receiverInDifferentEngine, fun)); + } } void tst_QScriptExtQObject::classEnums() @@ -1857,7 +1987,7 @@ void tst_QScriptExtQObject::classEnums() QCOMPARE(MyQObject::Ability(m_engine->evaluate("MyQObject.AllAbility").toInt32()), MyQObject::AllAbility); - QScriptValue::PropertyFlags expectedEnumFlags = QScriptValue::ReadOnly; + QScriptValue::PropertyFlags expectedEnumFlags = QScriptValue::ReadOnly | QScriptValue::Undeletable; QCOMPARE(myClass.propertyFlags("FooPolicy"), expectedEnumFlags); QCOMPARE(myClass.propertyFlags("BarPolicy"), expectedEnumFlags); QCOMPARE(myClass.propertyFlags("BazPolicy"), expectedEnumFlags); @@ -1879,6 +2009,16 @@ void tst_QScriptExtQObject::classEnums() QCOMPARE(m_myObject->qtFunctionActuals().at(0).toInt(), int(MyQObject::BazPolicy)); m_myObject->resetQtFunctionInvoked(); + QCOMPARE(m_engine->evaluate("myObject.myInvokableWithEnumArg('BarPolicy')").isUndefined(), true); + QCOMPARE(m_myObject->qtFunctionInvoked(), 10); + QCOMPARE(m_myObject->qtFunctionActuals().size(), 1); + QCOMPARE(m_myObject->qtFunctionActuals().at(0).toInt(), int(MyQObject::BarPolicy)); + + m_myObject->resetQtFunctionInvoked(); + QVERIFY(m_engine->evaluate("myObject.myInvokableWithEnumArg('NoSuchPolicy')").isError()); + QCOMPARE(m_myObject->qtFunctionInvoked(), -1); + + m_myObject->resetQtFunctionInvoked(); QCOMPARE(m_engine->evaluate("myObject.myInvokableWithQualifiedEnumArg(MyQObject.BazPolicy)").isUndefined(), true); QCOMPARE(m_myObject->qtFunctionInvoked(), 36); QCOMPARE(m_myObject->qtFunctionActuals().size(), 1); @@ -1898,6 +2038,15 @@ void tst_QScriptExtQObject::classEnums() QCOMPARE(m_myObject->qtFunctionActuals().size(), 0); QCOMPARE(ret.isNumber(), true); } + + // enum properties are not deletable or writable + QVERIFY(!m_engine->evaluate("delete MyQObject.BazPolicy").toBool()); + myClass.setProperty("BazPolicy", QScriptValue()); + QCOMPARE(static_cast<MyQObject::Policy>(myClass.property("BazPolicy").toInt32()), + MyQObject::BazPolicy); + myClass.setProperty("BazPolicy", MyQObject::FooPolicy); + QCOMPARE(static_cast<MyQObject::Policy>(myClass.property("BazPolicy").toInt32()), + MyQObject::BazPolicy); } QT_BEGIN_NAMESPACE diff --git a/tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro b/tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro index 9e35801..c07ab53 100644 --- a/tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro +++ b/tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro @@ -1,6 +1,7 @@ load(qttest_p4) QT = core script SOURCES += tst_qscriptv8testsuite.cpp +DEFINES += SRCDIR=\\\"$$PWD\\\" wince*: { testFiles.sources = tests diff --git a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp index 77bfeb5..50eb19f 100644 --- a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp +++ b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp @@ -193,7 +193,7 @@ int tst_Suite::qt_metacall(QMetaObject::Call _c, int _id, void **_a) tst_Suite::tst_Suite() { - testsDir = QDir("."); + testsDir = QDir(SRCDIR); bool testsFound = testsDir.cd("tests"); if (!testsFound) { qWarning("*** no tests/ dir!"); diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp index e4b843e..ff2df7a 100644 --- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp +++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp @@ -1301,6 +1301,27 @@ void tst_QScriptValue::toVariant() QCOMPARE(str.toVariant(), QVariant(QString("ciao"))); QCOMPARE(qscriptvalue_cast<QVariant>(str), QVariant(QString("ciao"))); } + + // array + { + QVariantList listIn; + listIn << 123 << "hello"; + QScriptValue array = qScriptValueFromValue(&eng, listIn); + QVERIFY(array.isArray()); + QCOMPARE(array.property("length").toInt32(), 2); + QVariant ret = array.toVariant(); + QCOMPARE(ret.type(), QVariant::List); + QVariantList listOut = ret.toList(); + QCOMPARE(listOut.size(), listIn.size()); + for (int i = 0; i < listIn.size(); ++i) + QVERIFY(listOut.at(i) == listIn.at(i)); + // round-trip conversion + QScriptValue array2 = qScriptValueFromValue(&eng, ret); + QVERIFY(array2.isArray()); + QCOMPARE(array2.property("length").toInt32(), array.property("length").toInt32()); + for (int i = 0; i < array.property("length").toInt32(); ++i) + QVERIFY(array2.property(i).strictlyEquals(array.property(i))); + } } // unfortunately, this is necessary in order to do qscriptvalue_cast<QPushButton*>(...) @@ -1461,21 +1482,43 @@ void tst_QScriptValue::toObject() { QScriptValue undefined = QScriptValue(QScriptValue::UndefinedValue); QVERIFY(!undefined.toObject().isValid()); + QVERIFY(!eng.toObject(undefined).isValid()); QScriptValue null = QScriptValue(QScriptValue::NullValue); QVERIFY(!null.toObject().isValid()); + QVERIFY(!eng.toObject(null).isValid()); QScriptValue falskt = QScriptValue(false); QVERIFY(!falskt.toObject().isValid()); + { + QScriptValue tmp = eng.toObject(falskt); + QVERIFY(tmp.isObject()); + QVERIFY(tmp.toBool()); + } QScriptValue sant = QScriptValue(true); QVERIFY(!sant.toObject().isValid()); + { + QScriptValue tmp = eng.toObject(sant); + QVERIFY(tmp.isObject()); + QVERIFY(tmp.toBool()); + } QScriptValue number = QScriptValue(123.0); QVERIFY(!number.toObject().isValid()); + { + QScriptValue tmp = eng.toObject(number); + QVERIFY(tmp.isObject()); + QCOMPARE(tmp.toInt32(), number.toInt32()); + } - QScriptValue str = QScriptValue(QString("ciao")); + QScriptValue str = QScriptValue(QString::fromLatin1("ciao")); QVERIFY(!str.toObject().isValid()); + { + QScriptValue tmp = eng.toObject(str); + QVERIFY(tmp.isObject()); + QCOMPARE(tmp.toString(), QString::fromLatin1("ciao")); + } } } @@ -2339,6 +2382,16 @@ void tst_QScriptValue::call() QCOMPARE(qIsNaN(ret.toNumber()), true); } } + { + QScriptValue fun = eng.evaluate("Object"); + QVERIFY(fun.isFunction()); + QScriptEngine eng2; + QScriptValue objectInDifferentEngine = eng2.newObject(); + QScriptValueList args; + args << objectInDifferentEngine; + QTest::ignoreMessage(QtWarningMsg, "QScriptValue::call() failed: cannot call function with argument created in a different engine"); + fun.call(QScriptValue(), args); + } // test that invalid return value is handled gracefully { diff --git a/tests/auto/qsequentialanimationgroup/qsequentialanimationgroup.pro b/tests/auto/qsequentialanimationgroup/qsequentialanimationgroup.pro new file mode 100644 index 0000000..ad861c3 --- /dev/null +++ b/tests/auto/qsequentialanimationgroup/qsequentialanimationgroup.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +QT = core gui +SOURCES += tst_qsequentialanimationgroup.cpp + + diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp new file mode 100644 index 0000000..97ff04b --- /dev/null +++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp @@ -0,0 +1,1648 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include "../../shared/util.h" + +#include <QtCore/qanimationgroup.h> +#include <QtCore/qsequentialanimationgroup.h> + +//TESTED_CLASS=QSequentialAnimationGroup +//TESTED_FILES= + +Q_DECLARE_METATYPE(QAbstractAnimation::State) +Q_DECLARE_METATYPE(QAbstractAnimation*) + +class tst_QSequentialAnimationGroup : public QObject +{ + Q_OBJECT +public: + tst_QSequentialAnimationGroup(); + virtual ~tst_QSequentialAnimationGroup(); + +public Q_SLOTS: + void init(); + void cleanup(); + +private slots: + void construction(); + void setCurrentTime(); + void setCurrentTimeWithUncontrolledAnimation(); + void seekingForwards(); + void seekingBackwards(); + void pauseAndResume(); + void restart(); + void looping(); + void startDelay(); + void clearGroup(); + void groupWithZeroDurationAnimations(); + void propagateGroupUpdateToChildren(); + void updateChildrenWithRunningGroup(); + void deleteChildrenWithRunningGroup(); + void startChildrenWithStoppedGroup(); + void stopGroupWithRunningChild(); + void startGroupWithRunningChild(); + void zeroDurationAnimation(); + void stopUncontrolledAnimations(); + void finishWithUncontrolledAnimation(); + void addRemoveAnimation(); + void currentAnimation(); + void currentAnimationWithZeroDuration(); + void insertAnimation(); + void clearAnimations(); +}; + +tst_QSequentialAnimationGroup::tst_QSequentialAnimationGroup() +{ +} + +tst_QSequentialAnimationGroup::~tst_QSequentialAnimationGroup() +{ +} + +void tst_QSequentialAnimationGroup::init() +{ + qRegisterMetaType<QAbstractAnimation::State>("QAbstractAnimation::State"); + qRegisterMetaType<QAbstractAnimation*>("QAbstractAnimation*"); +} + +void tst_QSequentialAnimationGroup::cleanup() +{ +} + +void tst_QSequentialAnimationGroup::construction() +{ + QSequentialAnimationGroup animationgroup; +} + +class AnimationObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int value READ value WRITE setValue) +public: + AnimationObject(int startValue = 0) + : v(startValue) + { } + + int value() const { return v; } + void setValue(int value) { v = value; } + + int v; +}; + +class TestAnimation : public QVariantAnimation +{ + Q_OBJECT +public: + virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)}; + virtual void updateState(QAbstractAnimation::State oldState, + QAbstractAnimation::State newState) + { + Q_UNUSED(oldState) + Q_UNUSED(newState) + }; +}; + +class UncontrolledAnimation : public QPropertyAnimation +{ + Q_OBJECT +public: + UncontrolledAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = 0) + : QPropertyAnimation(target, propertyName, parent) + { + setDuration(250); + } + + int duration() const { return -1; /* not time driven */ } + +protected: + void updateCurrentTime(int msecs) + { + QPropertyAnimation::updateCurrentTime(msecs); + if (msecs >= QPropertyAnimation::duration()) + stop(); + } +}; + +void tst_QSequentialAnimationGroup::setCurrentTime() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject s_o3; + + // sequence operating on same object/property + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + a2_s_o1->setLoopCount(3); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + + // sequence operating on different object/properties + QAnimationGroup *sequence2 = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o2 = new QPropertyAnimation(&s_o2, "value"); + QVariantAnimation *a1_s_o3 = new QPropertyAnimation(&s_o3, "value"); + sequence2->addAnimation(a1_s_o2); + sequence2->addAnimation(a1_s_o3); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + group.addAnimation(sequence2); + + // Current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + + QCOMPARE(group.currentTime(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(a1_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 250 + group.setCurrentTime(250); + QCOMPARE(group.currentTime(), 250); + QCOMPARE(sequence->currentTime(), 250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 251 + group.setCurrentTime(251); + QCOMPARE(group.currentTime(), 251); + QCOMPARE(sequence->currentTime(), 251); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentLoop(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 750 + group.setCurrentTime(750); + QCOMPARE(group.currentTime(), 750); + QCOMPARE(sequence->currentTime(), 750); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1000 + group.setCurrentTime(1000); + QCOMPARE(group.currentTime(), 1000); + QCOMPARE(sequence->currentTime(), 1000); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1010 + group.setCurrentTime(1010); + QCOMPARE(group.currentTime(), 1010); + QCOMPARE(sequence->currentTime(), 1010); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 10); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1250 + group.setCurrentTime(1250); + QCOMPARE(group.currentTime(), 1250); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1500 + group.setCurrentTime(1500); + QCOMPARE(group.currentTime(), 1500); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1750 + group.setCurrentTime(1750); + QCOMPARE(group.currentTime(), 1750); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 500); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 250); + + // Current time = 2000 + group.setCurrentTime(2000); + QCOMPARE(group.currentTime(), 1750); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 500); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 250); +} + +void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject t_o1; + AnimationObject t_o2; + + // sequence operating on different object/properties + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QAbstractAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QAbstractAnimation *a1_s_o2 = new QPropertyAnimation(&s_o2, "value"); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a1_s_o2); + + QAbstractAnimation *notTimeDriven = new UncontrolledAnimation(&t_o1, "value"); + QCOMPARE(notTimeDriven->totalDuration(), -1); + + QAbstractAnimation *loopsForever = new QPropertyAnimation(&t_o2, "value"); + loopsForever->setLoopCount(-1); + QCOMPARE(loopsForever->totalDuration(), -1); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + group.addAnimation(notTimeDriven); + group.addAnimation(loopsForever); + group.start(); + group.pause(); // this allows the group to listen for the finish signal of its children + + // Current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped); + + QCOMPARE(group.currentTime(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(a1_s_o1->currentTime(), 1); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(notTimeDriven->currentTime(), 0); + QCOMPARE(loopsForever->currentTime(), 0); + + // Current time = 250 + group.setCurrentTime(250); + QCOMPARE(group.currentTime(), 250); + QCOMPARE(sequence->currentTime(), 250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(notTimeDriven->currentTime(), 0); + QCOMPARE(loopsForever->currentTime(), 0); + + // Current time = 500 + group.setCurrentTime(500); + QCOMPARE(group.currentTime(), 500); + QCOMPARE(sequence->currentTime(), 500); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 0); + QCOMPARE(loopsForever->currentTime(), 0); + QCOMPARE(group.currentAnimation(), notTimeDriven); + + // Current time = 505 + group.setCurrentTime(505); + QCOMPARE(group.currentTime(), 505); + QCOMPARE(sequence->currentTime(), 500); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 5); + QCOMPARE(loopsForever->currentTime(), 0); + QCOMPARE(group.currentAnimation(), notTimeDriven); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Paused); + QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped); + + // Current time = 750 (end of notTimeDriven animation) + group.setCurrentTime(750); + QCOMPARE(group.currentTime(), 750); + QCOMPARE(sequence->currentTime(), 500); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 250); + QCOMPARE(loopsForever->currentTime(), 0); + QCOMPARE(group.currentAnimation(), loopsForever); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever->state(), QAnimationGroup::Paused); + + // Current time = 800 (as notTimeDriven was finished at 750, loopsforever should still run) + group.setCurrentTime(800); + QCOMPARE(group.currentTime(), 800); + QCOMPARE(group.currentAnimation(), loopsForever); + QCOMPARE(sequence->currentTime(), 500); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(notTimeDriven->currentTime(), 250); + QCOMPARE(loopsForever->currentTime(), 50); + + loopsForever->stop(); // this should stop the group + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::seekingForwards() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject s_o3; + + // sequence operating on same object/property + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + a2_s_o1->setLoopCount(3); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + + // sequence operating on different object/properties + QAnimationGroup *sequence2 = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o2 = new QPropertyAnimation(&s_o2, "value"); + QVariantAnimation *a1_s_o3 = new QPropertyAnimation(&s_o3, "value"); + sequence2->addAnimation(a1_s_o2); + sequence2->addAnimation(a1_s_o3); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + group.addAnimation(sequence2); + + // Current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o3->state(), QAnimationGroup::Stopped); + + QCOMPARE(group.currentTime(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(a1_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentTime(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // Current time = 1500 + group.setCurrentTime(1500); + QCOMPARE(group.currentTime(), 1500); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 250); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 0); + + // this will restart the group + group.start(); + group.pause(); + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Paused); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o3->state(), QAnimationGroup::Stopped); + + // Current time = 1750 + group.setCurrentTime(1750); + QCOMPARE(group.currentTime(), 1750); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 500); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 250); +} + +void tst_QSequentialAnimationGroup::seekingBackwards() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject s_o3; + + // sequence operating on same object/property + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + a2_s_o1->setLoopCount(3); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + + // sequence operating on different object/properties + QAnimationGroup *sequence2 = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o2 = new QPropertyAnimation(&s_o2, "value"); + QVariantAnimation *a1_s_o3 = new QPropertyAnimation(&s_o3, "value"); + sequence2->addAnimation(a1_s_o2); + sequence2->addAnimation(a1_s_o3); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + group.addAnimation(sequence2); + + group.start(); + + // Current time = 1600 + group.setCurrentTime(1600); + QCOMPARE(group.currentTime(), 1600); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 350); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 100); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(sequence2->state(), QAnimationGroup::Running); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o3->state(), QAnimationGroup::Running); + + // Seeking backwards, current time = 1 + group.setCurrentTime(1); + QCOMPARE(group.currentTime(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(a1_s_o1->currentTime(), 1); + + QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children," + "hence they don't reset from their current animation", Continue); + QCOMPARE(a2_s_o1->currentTime(), 0); + QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children," + "hence they don't reset from their current animation", Continue); + QCOMPARE(a2_s_o1->currentLoop(), 0); + QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children," + "hence they don't reset from their current animation", Continue); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence2->currentTime(), 0); + QCOMPARE(a1_s_o2->currentTime(), 0); + QCOMPARE(a1_s_o3->currentTime(), 0); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(sequence->state(), QAnimationGroup::Running); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Running); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o3->state(), QAnimationGroup::Stopped); + + // Current time = 2000 + group.setCurrentTime(2000); + QCOMPARE(group.currentTime(), 1750); + QCOMPARE(sequence->currentTime(), 1250); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 2); + QCOMPARE(a3_s_o1->currentTime(), 250); + QCOMPARE(sequence2->currentTime(), 500); + QCOMPARE(a1_s_o2->currentTime(), 250); + QCOMPARE(a1_s_o3->currentTime(), 250); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(sequence->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(sequence2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped); + QCOMPARE(a1_s_o3->state(), QAnimationGroup::Stopped); +} + +typedef QList<QAbstractAnimation::State> StateList; + +static bool compareStates(const QSignalSpy& spy, const StateList &expectedStates) +{ + bool equals = true; + for (int i = 0; i < qMax(expectedStates.count(), spy.count()); ++i) { + if (i >= spy.count() || i >= expectedStates.count()) { + equals = false; + break; + } + QList<QVariant> args = spy.at(i); + QAbstractAnimation::State st = expectedStates.at(i); + QAbstractAnimation::State actual = qVariantValue<QAbstractAnimation::State>(args.value(1)); + if (equals && actual != st) { + equals = false; + break; + } + } + if (!equals) { + const char *stateStrings[] = {"Stopped", "Paused", "Running"}; + QString e,a; + for (int i = 0; i < qMax(expectedStates.count(), spy.count()); ++i) { + if (i < expectedStates.count()) { + int exp = int(expectedStates.at(i)); + if (!e.isEmpty()) + e += QLatin1String(", "); + e += QLatin1String(stateStrings[exp]); + } + if (i < spy.count()) { + QList<QVariant> args = spy.at(i); + QAbstractAnimation::State actual = qVariantValue<QAbstractAnimation::State>(args.value(1)); + if (!a.isEmpty()) + a += QLatin1String(", "); + if (int(actual) >= 0 && int(actual) <= 2) { + a += QLatin1String(stateStrings[int(actual)]); + } else { + a += QLatin1String("NaN"); + } + } + + } + qDebug("\n" + "expected (count == %d): %s\n" + "actual (count == %d): %s\n", expectedStates.count(), qPrintable(e), spy.count(), qPrintable(a)); + } + return equals; +} + +void tst_QSequentialAnimationGroup::pauseAndResume() +{ + AnimationObject s_o1; + + // sequence operating on same object/property + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QVariantAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QVariantAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + a2_s_o1->setLoopCount(2); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + sequence->setLoopCount(2); + + QSignalSpy a1StateChangedSpy(a1_s_o1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy seqStateChangedSpy(sequence, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + + group.start(); + group.pause(); + + // Current time = 1751 + group.setCurrentTime(1751); + QCOMPARE(group.currentTime(), 1751); + QCOMPARE(sequence->currentTime(), 751); + QCOMPARE(sequence->currentLoop(), 1); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 1); + QCOMPARE(a3_s_o1->currentLoop(), 0); + QCOMPARE(a3_s_o1->currentTime(), 1); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a3_s_o1->state(), QAnimationGroup::Paused); + + QCOMPARE(a1StateChangedSpy.count(), 5); // Running,Paused,Stopped,Running,Stopped + QCOMPARE(seqStateChangedSpy.count(), 2); // Running,Paused + + QVERIFY(compareStates(a1StateChangedSpy, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Paused + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running + << QAbstractAnimation::Stopped))); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(1).at(1)), + QAnimationGroup::Paused); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(2).at(1)), + QAnimationGroup::Stopped); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(3).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(4).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).at(1)), + QAnimationGroup::Paused); + + group.resume(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(sequence->state(), QAnimationGroup::Running); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a3_s_o1->state(), QAnimationGroup::Running); + + QVERIFY(group.currentTime() >= 1751); + QVERIFY(sequence->currentTime() >= 751); + QCOMPARE(sequence->currentLoop(), 1); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 1); + QCOMPARE(a3_s_o1->currentLoop(), 0); + QVERIFY(a3_s_o1->currentTime() >= 1); + + QCOMPARE(seqStateChangedSpy.count(), 3); // Running,Paused,Running + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(2).at(1)), + QAnimationGroup::Running); + + group.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a3_s_o1->state(), QAnimationGroup::Paused); + + QVERIFY(group.currentTime() >= 1751); + QVERIFY(sequence->currentTime() >= 751); + QCOMPARE(sequence->currentLoop(), 1); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 1); + QCOMPARE(a3_s_o1->currentLoop(), 0); + QVERIFY(a3_s_o1->currentTime() >= 1); + + QCOMPARE(seqStateChangedSpy.count(), 4); // Running,Paused,Running,Paused + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(3).at(1)), + QAnimationGroup::Paused); + + group.stop(); + + QCOMPARE(seqStateChangedSpy.count(), 5); // Running,Paused,Running,Paused,Stopped + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(4).at(1)), + QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::restart() +{ + AnimationObject s_o1; + + // sequence operating on same object/property + QAnimationGroup *sequence = new QSequentialAnimationGroup(); + QSignalSpy seqCurrentAnimChangedSpy(sequence, SIGNAL(currentAnimationChanged(QAbstractAnimation*))); + QSignalSpy seqStateChangedSpy(sequence, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QVariantAnimation *anims[3]; + QSignalSpy *animsStateChanged[3]; + + for (int i = 0; i < 3; i++) { + anims[i] = new QPropertyAnimation(&s_o1, "value"); + anims[i]->setDuration(100); + animsStateChanged[i] = new QSignalSpy(anims[i], SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + } + + anims[1]->setLoopCount(2); + sequence->addAnimation(anims[0]); + sequence->addAnimation(anims[1]); + sequence->addAnimation(anims[2]); + sequence->setLoopCount(2); + + QSequentialAnimationGroup group; + group.addAnimation(sequence); + + group.start(); + + QTest::qWait(500); + + QCOMPARE(group.state(), QAnimationGroup::Running); + + QTest::qWait(300); + QTRY_COMPARE(group.state(), QAnimationGroup::Stopped); + + for (int i = 0; i < 3; i++) { + QCOMPARE(animsStateChanged[i]->count(), 4); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(1).at(1)), + QAnimationGroup::Stopped); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(2).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(3).at(1)), + QAnimationGroup::Stopped); + } + + QCOMPARE(seqStateChangedSpy.count(), 2); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(seqCurrentAnimChangedSpy.count(), 6); + for(int i=0; i<seqCurrentAnimChangedSpy.count(); i++) + QCOMPARE(static_cast<QAbstractAnimation*>(anims[i%3]), qVariantValue<QAbstractAnimation*>(seqCurrentAnimChangedSpy.at(i).at(0))); + + group.start(); + + QCOMPARE(animsStateChanged[0]->count(), 5); + QCOMPARE(animsStateChanged[1]->count(), 4); + QCOMPARE(animsStateChanged[2]->count(), 4); + QCOMPARE(seqStateChangedSpy.count(), 3); +} + +void tst_QSequentialAnimationGroup::looping() +{ + AnimationObject s_o1; + AnimationObject s_o2; + AnimationObject s_o3; + + // sequence operating on same object/property + QSequentialAnimationGroup *sequence = new QSequentialAnimationGroup(); + QAbstractAnimation *a1_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QAbstractAnimation *a2_s_o1 = new QPropertyAnimation(&s_o1, "value"); + QAbstractAnimation *a3_s_o1 = new QPropertyAnimation(&s_o1, "value"); + + QSignalSpy a1Spy(a1_s_o1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy a2Spy(a2_s_o1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy a3Spy(a3_s_o1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy seqSpy(sequence, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + a2_s_o1->setLoopCount(2); + sequence->addAnimation(a1_s_o1); + sequence->addAnimation(a2_s_o1); + sequence->addAnimation(a3_s_o1); + sequence->setLoopCount(2); + + QSequentialAnimationGroup group; + QSignalSpy groupSpy(&group, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + group.addAnimation(sequence); + group.setLoopCount(2); + + group.start(); + group.pause(); + + // Current time = 1750 + group.setCurrentTime(1750); + QCOMPARE(group.currentTime(), 1750); + QCOMPARE(sequence->currentTime(), 750); + QCOMPARE(sequence->currentLoop(), 1); + QCOMPARE(a1_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 1); + // this animation is at the beginning because it is the current one inside sequence + QCOMPARE(a3_s_o1->currentLoop(), 0); + QCOMPARE(a3_s_o1->currentTime(), 0); + QCOMPARE(sequence->currentAnimation(), a3_s_o1); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a3_s_o1->state(), QAnimationGroup::Paused); + + QCOMPARE(a1Spy.count(), 5); // Running,Paused,Stopped,Running,Stopped + QVERIFY(compareStates(a1Spy, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Paused + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running + << QAbstractAnimation::Stopped))); + + QCOMPARE(a2Spy.count(), 4); // Running,Stopped,Running,Stopped + QVERIFY(compareStates(a3Spy, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running + << QAbstractAnimation::Paused))); + + QCOMPARE(seqSpy.count(), 2); // Running,Paused + QCOMPARE(groupSpy.count(), 2); // Running,Paused + + // Looping, current time = duration + 1 + group.setCurrentTime(group.duration() + 1); + QCOMPARE(group.currentTime(), 1); + QCOMPARE(group.currentLoop(), 1); + QCOMPARE(sequence->currentTime(), 1); + QCOMPARE(sequence->currentLoop(), 0); + QCOMPARE(a1_s_o1->currentTime(), 1); + QCOMPARE(a2_s_o1->currentTime(), 250); + QCOMPARE(a2_s_o1->currentLoop(), 1); + // this animation is at the end because it was run on the previous loop + QCOMPARE(a3_s_o1->currentLoop(), 0); + QCOMPARE(a3_s_o1->currentTime(), 250); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(sequence->state(), QAnimationGroup::Paused); + QCOMPARE(a1_s_o1->state(), QAnimationGroup::Paused); + QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped); + QCOMPARE(a3_s_o1->state(), QAnimationGroup::Stopped); + + QCOMPARE(a1Spy.count(), 7); // Running,Paused,Stopped,Running,Stopped,Running,Stopped + QCOMPARE(a2Spy.count(), 4); // Running, Stopped, Running, Stopped + QVERIFY(compareStates(a3Spy, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running + << QAbstractAnimation::Paused + << QAbstractAnimation::Stopped))); + QVERIFY(compareStates(seqSpy, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Paused + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running + << QAbstractAnimation::Paused))); + QCOMPARE(groupSpy.count(), 2); +} + +void tst_QSequentialAnimationGroup::startDelay() +{ + QSequentialAnimationGroup group; + group.addPause(250); + group.addPause(125); + QCOMPARE(group.totalDuration(), 375); + + QEventLoop loop; + QObject::connect(&group, SIGNAL(finished()), &loop, SLOT(quit())); + + QTime time; + time.start(); + group.start(); + loop.exec(); + + QVERIFY(time.elapsed() >= 375); + QVERIFY(time.elapsed() < 1000); +} + +void tst_QSequentialAnimationGroup::clearGroup() +{ + QSequentialAnimationGroup group; + + static const int animationCount = 20; + + for (int i = 0; i < animationCount/2; ++i) { + QSequentialAnimationGroup *subGroup = new QSequentialAnimationGroup(&group); + group.addPause(100); + subGroup->addPause(10); + } + + QCOMPARE(group.animationCount(), animationCount); + + QPointer<QAbstractAnimation> children[animationCount]; + for (int i = 0; i < animationCount; ++i) { + QVERIFY(group.animationAt(i) != 0); + children[i] = group.animationAt(i); + } + + group.clearAnimations(); + QCOMPARE(group.animationCount(), 0); + QCOMPARE(group.currentTime(), 0); + for (int i = 0; i < animationCount; ++i) + QVERIFY(children[i].isNull()); +} + +void tst_QSequentialAnimationGroup::groupWithZeroDurationAnimations() +{ + QObject o; + QObject o2; + + o.setProperty("myProperty", 42); + o.setProperty("myOtherProperty", 13); + o2.setProperty("myProperty", 42); + o2.setProperty("myOtherProperty", 13); + + QSequentialAnimationGroup group; + + QVariantAnimation *a1 = new QPropertyAnimation(&o, "myProperty"); + a1->setDuration(0); + a1->setEndValue(43); + group.addAnimation(a1); + + //this should just run fine and change nothing + group.setCurrentTime(0); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(a1)); + + QVariantAnimation *a2 = new QPropertyAnimation(&o2, "myOtherProperty"); + a2->setDuration(500); + a2->setEndValue(31); + group.addAnimation(a2); + + QVariantAnimation *a3 = new QPropertyAnimation(&o, "myProperty"); + a3->setDuration(0); + a3->setEndValue(44); + group.addAnimation(a3); + + QVariantAnimation *a4 = new QPropertyAnimation(&o, "myOtherProperty"); + a4->setDuration(250); + a4->setEndValue(75); + group.addAnimation(a4); + + QVariantAnimation *a5 = new QPropertyAnimation(&o2, "myProperty"); + a5->setDuration(0); + a5->setEndValue(12); + group.addAnimation(a5); + + QCOMPARE(o.property("myProperty").toInt(), 42); + QCOMPARE(o.property("myOtherProperty").toInt(), 13); + QCOMPARE(o2.property("myProperty").toInt(), 42); + QCOMPARE(o2.property("myOtherProperty").toInt(), 13); + + + group.start(); + + QCOMPARE(o.property("myProperty").toInt(), 43); + QCOMPARE(o.property("myOtherProperty").toInt(), 13); + QCOMPARE(o2.property("myProperty").toInt(), 42); + QCOMPARE(o2.property("myOtherProperty").toInt(), 13); + + QTest::qWait(50); + + int o2val = o2.property("myOtherProperty").toInt(); + QVERIFY(o2val > 13); + QVERIFY(o2val < 31); + QCOMPARE(o.property("myProperty").toInt(), 43); + QCOMPARE(o.property("myOtherProperty").toInt(), 13); + + QTest::qWait(500); + + QCOMPARE(o.property("myProperty").toInt(), 44); + QCOMPARE(o2.property("myProperty").toInt(), 42); + QCOMPARE(o2.property("myOtherProperty").toInt(), 31); + QCOMPARE(a1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2->state(), QAnimationGroup::Stopped); + QCOMPARE(a3->state(), QAnimationGroup::Stopped); + QCOMPARE(a4->state(), QAnimationGroup::Running); + QCOMPARE(a5->state(), QAnimationGroup::Stopped); + QCOMPARE(group.state(), QAnimationGroup::Running); + QTest::qWait(500); + + QTRY_COMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(o.property("myProperty").toInt(), 44); + QCOMPARE(o.property("myOtherProperty").toInt(), 75); + QCOMPARE(o2.property("myProperty").toInt(), 12); + QCOMPARE(o2.property("myOtherProperty").toInt(), 31); + QCOMPARE(a1->state(), QAnimationGroup::Stopped); + QCOMPARE(a2->state(), QAnimationGroup::Stopped); + QCOMPARE(a3->state(), QAnimationGroup::Stopped); + QCOMPARE(a4->state(), QAnimationGroup::Stopped); + QCOMPARE(a5->state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::propagateGroupUpdateToChildren() +{ + // this test verifies if group state changes are updating its children correctly + QSequentialAnimationGroup group; + + QObject o; + o.setProperty("ole", 42); + QCOMPARE(o.property("ole").toInt(), 42); + + QPropertyAnimation anim1(&o, "ole"); + anim1.setEndValue(43); + anim1.setDuration(100); + QVERIFY(!anim1.currentValue().isValid()); + QCOMPARE(anim1.currentValue().toInt(), 0); + QCOMPARE(o.property("ole").toInt(), 42); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QVERIFY(anim2.currentValue().isValid()); + QCOMPARE(anim2.currentValue().toInt(), 0); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + group.start(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Paused); + QCOMPARE(anim1.state(), QAnimationGroup::Paused); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::updateChildrenWithRunningGroup() +{ + // assert that its possible to modify a child's state directly while their group is running + QSequentialAnimationGroup group; + + TestAnimation anim; + anim.setStartValue(0); + anim.setEndValue(100); + anim.setDuration(200); + + QSignalSpy groupStateChangedSpy(&group, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy childStateChangedSpy(&anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QCOMPARE(groupStateChangedSpy.count(), 0); + QCOMPARE(childStateChangedSpy.count(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim); + + group.start(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Running); + + QCOMPARE(groupStateChangedSpy.count(), 1); + QCOMPARE(childStateChangedSpy.count(), 1); + + QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + + // starting directly a running child will not have any effect + anim.start(); + + QCOMPARE(groupStateChangedSpy.count(), 1); + QCOMPARE(childStateChangedSpy.count(), 1); + + anim.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Paused); + + // in the animation stops directly, the group will still be running + anim.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::deleteChildrenWithRunningGroup() +{ + // test if children can be activated when their group is stopped + QSequentialAnimationGroup group; + + QVariantAnimation *anim1 = new TestAnimation; + anim1->setStartValue(0); + anim1->setEndValue(100); + anim1->setDuration(200); + group.addAnimation(anim1); + + QCOMPARE(group.duration(), anim1->duration()); + + group.start(); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1->state(), QAnimationGroup::Running); + + QTest::qWait(50); + QVERIFY(group.currentTime() > 0); + + delete anim1; + QCOMPARE(group.animationCount(), 0); + QCOMPARE(group.duration(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(group.currentTime(), 0); //that's the invariant +} + +void tst_QSequentialAnimationGroup::startChildrenWithStoppedGroup() +{ + // test if children can be activated when their group is stopped + QSequentialAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(200); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + anim1.start(); + anim2.start(); + anim2.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); +} + +void tst_QSequentialAnimationGroup::stopGroupWithRunningChild() +{ + // children that started independently will not be affected by a group stop + QSequentialAnimationGroup group; + + TestAnimation anim1; + anim1.setStartValue(0); + anim1.setEndValue(100); + anim1.setDuration(200); + + TestAnimation anim2; + anim2.setStartValue(0); + anim2.setEndValue(100); + anim2.setDuration(200); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + anim1.start(); + anim2.start(); + anim2.pause(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Running); + QCOMPARE(anim2.state(), QAnimationGroup::Paused); + + anim1.stop(); + anim2.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1.state(), QAnimationGroup::Stopped); + QCOMPARE(anim2.state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::startGroupWithRunningChild() +{ + // as the group has precedence over its children, starting a group will restart all the children + QSequentialAnimationGroup group; + + TestAnimation *anim1 = new TestAnimation(); + anim1->setStartValue(0); + anim1->setEndValue(100); + anim1->setDuration(200); + + TestAnimation *anim2 = new TestAnimation(); + anim2->setStartValue(0); + anim2->setEndValue(100); + anim2->setDuration(200); + + QSignalSpy stateChangedSpy1(anim1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + QSignalSpy stateChangedSpy2(anim2, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + QCOMPARE(stateChangedSpy1.count(), 0); + QCOMPARE(stateChangedSpy2.count(), 0); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1->state(), QAnimationGroup::Stopped); + QCOMPARE(anim2->state(), QAnimationGroup::Stopped); + + group.addAnimation(anim1); + group.addAnimation(anim2); + + anim1->start(); + anim2->start(); + anim2->pause(); + + QVERIFY(compareStates(stateChangedSpy1, (StateList() << QAbstractAnimation::Running))); + + QVERIFY(compareStates(stateChangedSpy2, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Paused))); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1->state(), QAnimationGroup::Running); + QCOMPARE(anim2->state(), QAnimationGroup::Paused); + + group.start(); + + QVERIFY(compareStates(stateChangedSpy1, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Stopped + << QAbstractAnimation::Running))); + QVERIFY(compareStates(stateChangedSpy2, (StateList() << QAbstractAnimation::Running + << QAbstractAnimation::Paused))); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1->state(), QAnimationGroup::Running); + QCOMPARE(anim2->state(), QAnimationGroup::Paused); + + QTest::qWait(300); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim1->state(), QAnimationGroup::Stopped); + QCOMPARE(anim2->state(), QAnimationGroup::Running); + + QCOMPARE(stateChangedSpy2.count(), 4); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).at(1)), + QAnimationGroup::Stopped); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).at(1)), + QAnimationGroup::Running); + + group.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(anim1->state(), QAnimationGroup::Stopped); + QCOMPARE(anim2->state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::zeroDurationAnimation() +{ + QSequentialAnimationGroup group; + + TestAnimation *anim1 = new TestAnimation(); + anim1->setStartValue(0); + anim1->setEndValue(100); + anim1->setDuration(0); + + TestAnimation *anim2 = new TestAnimation(); + anim2->setStartValue(0); + anim2->setEndValue(100); + anim2->setDuration(100); + + AnimationObject o1; + QPropertyAnimation *anim3 = new QPropertyAnimation(&o1, "value"); + anim3->setEndValue(100); + anim3->setDuration(0); + + QSignalSpy stateChangedSpy(anim1, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + group.addAnimation(anim1); + group.addAnimation(anim2); + group.addAnimation(anim3); + group.setLoopCount(2); + group.start(); + + QCOMPARE(stateChangedSpy.count(), 2); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).at(1)), + QAnimationGroup::Running); + QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).at(1)), + QAnimationGroup::Stopped); + + QCOMPARE(anim1->state(), QAnimationGroup::Stopped); + QCOMPARE(anim2->state(), QAnimationGroup::Running); + QCOMPARE(group.state(), QAnimationGroup::Running); + + //now let's try to seek to the next loop + group.setCurrentTime(group.duration() + 1); + QCOMPARE(anim1->state(), QAnimationGroup::Stopped); + QCOMPARE(anim2->state(), QAnimationGroup::Running); + QCOMPARE(anim3->state(), QAnimationGroup::Stopped); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(o1.value(), 100); //anim3 should have been run +} + +void tst_QSequentialAnimationGroup::stopUncontrolledAnimations() +{ + QSequentialAnimationGroup group; + + AnimationObject o1; + UncontrolledAnimation notTimeDriven(&o1, "value"); + QCOMPARE(notTimeDriven.totalDuration(), -1); + + TestAnimation loopsForever; + loopsForever.setStartValue(0); + loopsForever.setEndValue(100); + loopsForever.setDuration(100); + loopsForever.setLoopCount(-1); + + group.addAnimation(¬TimeDriven); + group.addAnimation(&loopsForever); + + group.start(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running); + QCOMPARE(loopsForever.state(), QAnimationGroup::Stopped); + + notTimeDriven.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever.state(), QAnimationGroup::Running); + + loopsForever.stop(); + + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + QCOMPARE(loopsForever.state(), QAnimationGroup::Stopped); +} + +void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation() +{ + AnimationObject o1; + + //1st case: + //first we test a group with one uncontrolled animation + QSequentialAnimationGroup group; + UncontrolledAnimation notTimeDriven(&o1, "value", &group); + QSignalSpy spy(&group, SIGNAL(finished())); + + group.start(); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running); + QCOMPARE(group.currentTime(), 0); + QCOMPARE(notTimeDriven.currentTime(), 0); + + QTest::qWait(300); //wait for the end of notTimeDriven + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + const int actualDuration = notTimeDriven.currentTime(); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(group.currentTime(), actualDuration); + QCOMPARE(spy.count(), 1); + + //2nd case: + // lets make sure the seeking will work again + spy.clear(); + QPropertyAnimation anim(&group); + QSignalSpy animStateChangedSpy(&anim, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State))); + + group.setCurrentTime(300); + QCOMPARE(group.state(), QAnimationGroup::Stopped); + QCOMPARE(notTimeDriven.currentTime(), actualDuration); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim)); + + //3rd case: + //now let's add a perfectly defined animation at the end + QCOMPARE(animStateChangedSpy.count(), 0); + group.start(); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running); + QCOMPARE(group.currentTime(), 0); + QCOMPARE(notTimeDriven.currentTime(), 0); + + QCOMPARE(animStateChangedSpy.count(), 0); + + QTest::qWait(300); //wait for the end of notTimeDriven + QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped); + QCOMPARE(group.state(), QAnimationGroup::Running); + QCOMPARE(anim.state(), QAnimationGroup::Running); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim)); + QCOMPARE(animStateChangedSpy.count(), 1); + QTest::qWait(300); //wait for the end of anim + + QCOMPARE(anim.state(), QAnimationGroup::Stopped); + QCOMPARE(anim.currentTime(), anim.duration()); + + //we should simply be at the end + QCOMPARE(spy.count(), 1); + QCOMPARE(animStateChangedSpy.count(), 2); + QCOMPARE(group.currentTime(), notTimeDriven.currentTime() + anim.currentTime()); +} + +void tst_QSequentialAnimationGroup::addRemoveAnimation() +{ + //this test is specific to the sequential animation group + QSequentialAnimationGroup group; + + QCOMPARE(group.duration(), 0); + QCOMPARE(group.currentTime(), 0); + QAbstractAnimation *anim1 = new QPropertyAnimation; + group.addAnimation(anim1); + QCOMPARE(group.duration(), 250); + QCOMPARE(group.currentTime(), 0); + QCOMPARE(group.currentAnimation(), anim1); + + //let's append an animation + QAbstractAnimation *anim2 = new QPropertyAnimation; + group.addAnimation(anim2); + QCOMPARE(group.duration(), 500); + QCOMPARE(group.currentTime(), 0); + QCOMPARE(group.currentAnimation(), anim1); + + //let's prepend an animation + QAbstractAnimation *anim0 = new QPropertyAnimation; + group.insertAnimationAt(0, anim0); + QCOMPARE(group.duration(), 750); + QCOMPARE(group.currentTime(), 0); + QCOMPARE(group.currentAnimation(), anim0); //anim0 has become the new currentAnimation + + group.setCurrentTime(300); //anim0 | anim1 | anim2 + QCOMPARE(group.currentTime(), 300); + QCOMPARE(group.currentAnimation(), anim1); + QCOMPARE(anim1->currentTime(), 50); + + group.removeAnimation(anim0); //anim1 | anim2 + QCOMPARE(group.currentTime(), 50); + QCOMPARE(group.currentAnimation(), anim1); + QCOMPARE(anim1->currentTime(), 50); + + group.setCurrentTime(0); + group.insertAnimationAt(0, anim0); //anim0 | anim1 | anim2 + group.setCurrentTime(300); + QCOMPARE(group.currentTime(), 300); + QCOMPARE(group.currentAnimation(), anim1); + QCOMPARE(anim1->currentTime(), 50); + + group.removeAnimation(anim1); //anim0 | anim2 + QCOMPARE(group.currentTime(), 250); + QCOMPARE(group.currentAnimation(), anim2); + QCOMPARE(anim0->currentTime(), 250); +} + +void tst_QSequentialAnimationGroup::currentAnimation() +{ + QSequentialAnimationGroup group; + QVERIFY(group.currentAnimation() == 0); + + QPropertyAnimation anim; + anim.setDuration(0); + group.addAnimation(&anim); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim)); +} + +void tst_QSequentialAnimationGroup::currentAnimationWithZeroDuration() +{ + QSequentialAnimationGroup group; + QVERIFY(group.currentAnimation() == 0); + + QPropertyAnimation zero1; + zero1.setDuration(0); + QPropertyAnimation zero2; + zero2.setDuration(0); + + QPropertyAnimation anim; + + QPropertyAnimation zero3; + zero3.setDuration(0); + QPropertyAnimation zero4; + zero4.setDuration(0); + + + group.addAnimation(&zero1); + group.addAnimation(&zero2); + group.addAnimation(&anim); + group.addAnimation(&zero3); + group.addAnimation(&zero4); + + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&zero1)); + + group.setCurrentTime(0); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim)); + + group.setCurrentTime(group.duration()); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&zero4)); + + group.setDirection(QAbstractAnimation::Backward); + + group.setCurrentTime(0); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&zero1)); + + group.setCurrentTime(group.duration()); + QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim)); +} + +void tst_QSequentialAnimationGroup::insertAnimation() +{ + QSequentialAnimationGroup group; + group.setLoopCount(2); + QPropertyAnimation *anim = new QPropertyAnimation(&group); + QCOMPARE(group.duration(), anim->duration()); + group.setCurrentTime(300); + QCOMPARE(group.currentLoop(), 1); + + //this will crash if the sequential group calls duration on the created animation + new QPropertyAnimation(&group); +} + + +class SequentialAnimationGroup : public QSequentialAnimationGroup +{ + Q_OBJECT +public slots: + void clearAnimations() + { + QSequentialAnimationGroup::clearAnimations(); + } + + void refill() + { + stop(); + clearAnimations(); + new QPropertyAnimation(this); + start(); + } + +}; + + +void tst_QSequentialAnimationGroup::clearAnimations() +{ + SequentialAnimationGroup group; + QPointer<QAbstractAnimation> anim1 = new QPropertyAnimation(&group); + group.connect(anim1, SIGNAL(finished()), SLOT(clearAnimations())); + new QPropertyAnimation(&group); + QCOMPARE(group.animationCount(), 2); + + group.start(); + QTest::qWait(anim1->duration() + 100); + QCOMPARE(group.animationCount(), 0); + QCOMPARE(group.state(), QAbstractAnimation::Stopped); + QCOMPARE(group.currentTime(), 0); + + anim1 = new QPropertyAnimation(&group); + group.connect(anim1, SIGNAL(finished()), SLOT(refill())); + group.start(); + QTest::qWait(anim1->duration() + 100); + QVERIFY(anim1 == 0); //anim1 should have been deleted + QCOMPARE(group.state(), QAbstractAnimation::Running); +} + +QTEST_MAIN(tst_QSequentialAnimationGroup) +#include "tst_qsequentialanimationgroup.moc" diff --git a/tests/auto/qset/tst_qset.cpp b/tests/auto/qset/tst_qset.cpp index 50c9bd6..5ed0010 100644 --- a/tests/auto/qset/tst_qset.cpp +++ b/tests/auto/qset/tst_qset.cpp @@ -74,6 +74,7 @@ private slots: void clear(); void remove(); void contains(); + void containsSet(); void begin(); void end(); void insert(); @@ -347,6 +348,40 @@ void tst_QSet::contains() } } +void tst_QSet::containsSet() +{ + QSet<QString> set1; + QSet<QString> set2; + + // empty set contains the empty set + QVERIFY(set1.contains(set2)); + + for (int i = 0; i < 500; ++i) { + set1.insert(QString::number(i)); + set2.insert(QString::number(i)); + } + QVERIFY(set1.contains(set2)); + + set2.remove(QString::number(19)); + set2.remove(QString::number(82)); + set2.remove(QString::number(7)); + QVERIFY(set1.contains(set2)); + + set1.remove(QString::number(23)); + QVERIFY(!set1.contains(set2)); + + // filled set contains the empty set as well + QSet<QString> set3; + QVERIFY(set1.contains(set3)); + + // the empty set doesn't contain a filled set + QVERIFY(!set3.contains(set1)); + + // verify const signature + const QSet<QString> set4; + QVERIFY(set3.contains(set4)); +} + void tst_QSet::begin() { QSet<int> set1; diff --git a/tests/auto/qsettings/tst_qsettings.cpp b/tests/auto/qsettings/tst_qsettings.cpp index f682d37..5b9e9e1 100644 --- a/tests/auto/qsettings/tst_qsettings.cpp +++ b/tests/auto/qsettings/tst_qsettings.cpp @@ -713,8 +713,12 @@ void tst_QSettings::testErrorHandling_data() void tst_QSettings::testErrorHandling() { +#ifdef QT_BUILD_INTERNAL #ifdef Q_OS_WIN QSKIP("Windows doesn't support most file modes, including read-only directories, so this test is moot.", SkipAll); +#elif defined(Q_OS_UNIX) + if (::getuid() == 0) + QSKIP("Running this test as root doesn't work, since file perms do not bother him", SkipAll); #else QFETCH(int, filePerms); QFETCH(int, dirPerms); @@ -723,8 +727,7 @@ void tst_QSettings::testErrorHandling() QFETCH(int, statusAfterGet); QFETCH(int, statusAfterSetAndSync); - - system(QString("chmod 700 %1 2>/dev/null").arg(settingsPath("someDir")).toLatin1()); + system(QString("chmod 700 %1 2>/dev/null").arg(settingsPath("someDir")).toLatin1()); system(QString("chmod -R u+rwx %1 2>/dev/null").arg(settingsPath("someDir")).toLatin1()); system(QString("rm -fr %1").arg(settingsPath("someDir")).toLatin1()); @@ -776,6 +779,7 @@ void tst_QSettings::testErrorHandling() QCOMPARE((int)settings.status(), statusAfterSetAndSync); } #endif // !Q_OS_WIN +#endif } Q_DECLARE_METATYPE(QVariant) @@ -821,6 +825,7 @@ void tst_QSettings::testIniParsing_data() void tst_QSettings::testIniParsing() { +#ifdef QT_BUILD_INTERNAL qRegisterMetaType<QVariant>("QVariant"); qRegisterMetaType<QSettings::Status>("QSettings::Status"); @@ -854,6 +859,7 @@ void tst_QSettings::testIniParsing() } QCOMPARE(settings.status(), status); +#endif } /* @@ -1058,6 +1064,7 @@ void tst_QSettings::testVariantTypes_data() void tst_QSettings::testVariantTypes() { +#ifdef QT_BUILD_INTERNAL #define testVal(key, val, tp, rtype) \ { \ QSettings settings1(format, QSettings::UserScope, "software.org", "KillerAPP"); \ @@ -1141,6 +1148,7 @@ void tst_QSettings::testVariantTypes() } #undef testVal +#endif } void tst_QSettings::remove() @@ -1801,9 +1809,7 @@ void tst_QSettings::testNormalizedKey_data() void tst_QSettings::testNormalizedKey() { -#ifdef QTEST_REDUCED_EXPORTS - QSKIP("We can't test QSettingsPrivate on Windows", SkipAll); -#else +#ifdef QT_BUILD_INTERNAL QFETCH(QString, inKey); QFETCH(QString, outKey); @@ -1981,6 +1987,7 @@ void tst_QSettings::fromFile() void tst_QSettings::setIniCodec() { +#ifdef QT_BUILD_INTERNAL QByteArray expeContents4, expeContents5; QByteArray actualContents4, actualContents5; @@ -2040,6 +2047,7 @@ void tst_QSettings::setIniCodec() QCOMPARE(settings4.allKeys().first(), settings5.allKeys().first()); QCOMPARE(settings4.value(settings4.allKeys().first()).toString(), settings5.value(settings5.allKeys().first()).toString()); +#endif } static bool containsSubList(QStringList mom, QStringList son) @@ -2316,6 +2324,7 @@ void tst_QSettings::testArrays() settings1.endArray(); } +#ifdef QT_BUILD_INTERNAL static QByteArray iniEscapedKey(const QString &str) { QByteArray result; @@ -2360,6 +2369,7 @@ static QStringList iniUnescapedStringList(const QByteArray &ba) #endif return result; } +#endif QString escapeWeirdChars(const QString &s) { @@ -2383,6 +2393,7 @@ QString escapeWeirdChars(const QString &s) void tst_QSettings::testEscapes() { +#ifdef QT_BUILD_INTERNAL QSettings settings(QSettings::UserScope, "software.org", "KillerAPP"); #define testEscapedKey(plainKey, escKey) \ @@ -2505,6 +2516,7 @@ void tst_QSettings::testEscapes() testBadEscape("@Rect)", "@Rect)"); testBadEscape("@Rect(1 2 3)", "@Rect(1 2 3)"); testBadEscape("@@Rect(1 2 3)", "@Rect(1 2 3)"); +#endif } void tst_QSettings::testCompatFunctions() @@ -3010,12 +3022,6 @@ void tst_QSettings::oldWriteEntry_QString_QString() QSettings readSettings("software.org", "KillerAPP"); QFETCH( QString, s ); bool ok = FALSE; -#ifdef Q_OS_WIN - if (qWinVersion() & Qt::WV_DOS_based) { - QEXPECT_FAIL("data2", "Windows 9x does not support unicode characters in the registry", Abort); - QEXPECT_FAIL("data5", "Windows 9x does not support unicode characters in the registry", Abort); - } -#endif QCOMPARE( readSettings.readEntry( "/Trolltech/QSettingsTesting/String", QString::null, &ok ), s ); QVERIFY( ok ); } @@ -3361,6 +3367,7 @@ void tst_QSettings::childGroups_data() void tst_QSettings::childGroups() { +#ifdef QT_BUILD_INTERNAL QFETCH(QSettings::Format, format); { @@ -3414,6 +3421,7 @@ void tst_QSettings::childGroups() QCOMPARE(settings.childGroups(), QStringList() << "alpha" << "gamma" << "omicron" << "zeta"); } +#endif } void tst_QSettings::childKeys_data() @@ -3423,6 +3431,7 @@ void tst_QSettings::childKeys_data() void tst_QSettings::childKeys() { +#ifdef QT_BUILD_INTERNAL QFETCH(QSettings::Format, format); { @@ -3476,6 +3485,7 @@ void tst_QSettings::childKeys() QCOMPARE(settings.childKeys(), QStringList() << "alpha" << "beta" << "gamma"); } +#endif } void tst_QSettings::allKeys_data() @@ -3485,6 +3495,7 @@ void tst_QSettings::allKeys_data() void tst_QSettings::allKeys() { +#ifdef QT_BUILD_INTERNAL QFETCH(QSettings::Format, format); QStringList allKeys; @@ -3533,6 +3544,7 @@ void tst_QSettings::allKeys() QCOMPARE(settings.allKeys(), allKeys); } +#endif } void tst_QSettings::registerFormat() diff --git a/tests/auto/qsharedmemory/src/qsystemlock_win.cpp b/tests/auto/qsharedmemory/src/qsystemlock_win.cpp index 94d90ce..a50b77b 100644 --- a/tests/auto/qsharedmemory/src/qsystemlock_win.cpp +++ b/tests/auto/qsharedmemory/src/qsystemlock_win.cpp @@ -75,32 +75,24 @@ HANDLE QSystemLockPrivate::handle() // Create it if it doesn't already exists. if (semaphore == 0) { QString safeName = makeKeyFileName(); - QT_WA({ - semaphore = CreateSemaphoreW(0, MAX_LOCKS, MAX_LOCKS, (TCHAR*)safeName.utf16()); - }, { - semaphore = CreateSemaphoreA(0, MAX_LOCKS, MAX_LOCKS, safeName.toLocal8Bit().constData()); - }); + semaphore = CreateSemaphore(0, MAX_LOCKS, MAX_LOCKS, (wchar_t*)safeName.utf16()); if (semaphore == 0) { setErrorString(QLatin1String("QSystemLockPrivate::handle")); - return 0; - } + return 0; + } } if (semaphoreLock == 0) { - QString safeLockName = QSharedMemoryPrivate::makePlatformSafeKey(key + QLatin1String("lock"), QLatin1String("qipc_systemlock_")); - QT_WA({ - semaphoreLock = CreateSemaphoreW(0, - 1, 1, (TCHAR*)safeLockName.utf16()); - }, { - semaphoreLock = CreateSemaphoreA(0, - 1, 1, safeLockName.toLocal8Bit().constData()); - }); + QString safeLockName = QSharedMemoryPrivate::makePlatformSafeKey(key + QLatin1String("lock"), QLatin1String("qipc_systemlock_")); + semaphoreLock = CreateSemaphore(0, 1, 1, (wchar_t*)safeLockName.utf16()); + if (semaphoreLock == 0) { setErrorString(QLatin1String("QSystemLockPrivate::handle")); - return 0; - } + return 0; + } } + return semaphore; } diff --git a/tests/auto/qsharedpointer/externaltests.cpp b/tests/auto/qsharedpointer/externaltests.cpp index 75ac5f1..8077b84 100644 --- a/tests/auto/qsharedpointer/externaltests.cpp +++ b/tests/auto/qsharedpointer/externaltests.cpp @@ -59,7 +59,7 @@ static QString makespec() { static const char default_makespec[] = DEFAULT_MAKESPEC; const char *p; - for (p = default_makespec + sizeof(default_makespec); p >= default_makespec; --p) + for (p = default_makespec + sizeof(default_makespec) - 1; p >= default_makespec; --p) if (*p == '/' || *p == '\\') break; @@ -122,6 +122,7 @@ namespace QTest { enum Target { Compile, Link, Run }; QList<QByteArray> qmakeLines; + QStringList extraProgramSources; QByteArray programHeader; QExternalTest::QtModules qtModules; QExternalTest::ApplicationType appType; @@ -199,6 +200,16 @@ namespace QTest { d->appType = type; } + QStringList QExternalTest::extraProgramSources() const + { + return d->extraProgramSources; + } + + void QExternalTest::setExtraProgramSources(const QStringList &extra) + { + d->extraProgramSources = extra; + } + QByteArray QExternalTest::programHeader() const { return d->programHeader; @@ -483,6 +494,13 @@ namespace QTest { else projectFile.write("\nCONFIG += release\n"); + QByteArray extraSources = QFile::encodeName(extraProgramSources.join(" ")); + if (!extraSources.isEmpty()) { + projectFile.write("SOURCES += "); + projectFile.write(extraSources); + projectFile.putChar('\n'); + } + // Add Qt modules if (qtModules & QExternalTest::QtCore) projectFile.write("QT += core\n"); diff --git a/tests/auto/qsharedpointer/externaltests.h b/tests/auto/qsharedpointer/externaltests.h index 24a3236..ecc107e 100644 --- a/tests/auto/qsharedpointer/externaltests.h +++ b/tests/auto/qsharedpointer/externaltests.h @@ -45,6 +45,7 @@ #include <QList> #include <QByteArray> +#include <QStringList> QT_BEGIN_NAMESPACE namespace QTest { @@ -102,6 +103,9 @@ namespace QTest { ApplicationType applicationType() const; void setApplicationType(ApplicationType type); + QStringList extraProgramSources() const; + void setExtraProgramSources(const QStringList &list); + QByteArray programHeader() const; void setProgramHeader(const QByteArray &header); diff --git a/tests/auto/qsharedpointer/externaltests.pri b/tests/auto/qsharedpointer/externaltests.pri index 717acac..1fdcf65 100644 --- a/tests/auto/qsharedpointer/externaltests.pri +++ b/tests/auto/qsharedpointer/externaltests.pri @@ -1,4 +1,5 @@ SOURCES += $$PWD/externaltests.cpp +HEADERS += $$PWD/externaltests.h cleanedQMAKESPEC = $$replace(QMAKESPEC, \\\\, /) DEFINES += DEFAULT_MAKESPEC=\\\"$$cleanedQMAKESPEC\\\" diff --git a/tests/auto/qsharedpointer/forwarddeclaration.cpp b/tests/auto/qsharedpointer/forwarddeclaration.cpp new file mode 100644 index 0000000..1dbbeec --- /dev/null +++ b/tests/auto/qsharedpointer/forwarddeclaration.cpp @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#define QT_SHAREDPOINTER_TRACK_POINTERS +#include "qsharedpointer.h" + +class ForwardDeclared; +ForwardDeclared *forwardPointer(); + +void externalForwardDeclaration() +{ + struct Wrapper { QSharedPointer<ForwardDeclared> pointer; }; +} + diff --git a/tests/auto/qsharedpointer/forwarddeclared.cpp b/tests/auto/qsharedpointer/forwarddeclared.cpp new file mode 100644 index 0000000..4ab467a --- /dev/null +++ b/tests/auto/qsharedpointer/forwarddeclared.cpp @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "forwarddeclared.h" + +ForwardDeclared *forwardPointer() +{ + return new ForwardDeclared; +} + +int forwardDeclaredDestructorRunCount; +ForwardDeclared::~ForwardDeclared() +{ + ++forwardDeclaredDestructorRunCount; +} diff --git a/tests/auto/qsharedpointer/forwarddeclared.h b/tests/auto/qsharedpointer/forwarddeclared.h new file mode 100644 index 0000000..a4cc2b4 --- /dev/null +++ b/tests/auto/qsharedpointer/forwarddeclared.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FORWARDDECLARED_H +#define FORWARDDECLARED_H + +extern int forwardDeclaredDestructorRunCount; +class ForwardDeclared +{ +public: + ~ForwardDeclared(); +}; + +ForwardDeclared *forwardPointer(); + +#endif // FORWARDDECLARED_H diff --git a/tests/auto/qsharedpointer/qsharedpointer.pro b/tests/auto/qsharedpointer/qsharedpointer.pro index e329803..90fde06 100644 --- a/tests/auto/qsharedpointer/qsharedpointer.pro +++ b/tests/auto/qsharedpointer/qsharedpointer.pro @@ -1,7 +1,9 @@ load(qttest_p4) - -SOURCES += tst_qsharedpointer.cpp +SOURCES += tst_qsharedpointer.cpp \ + forwarddeclaration.cpp \ + forwarddeclared.cpp QT = core -DEFINES += SRCDIR=\\\"$$PWD\\\" - +DEFINES += SRCDIR=\\\"$$PWD/\\\" +requires(contains(QT_CONFIG,private_tests)) include(externaltests.pri) +HEADERS += forwarddeclared.h diff --git a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp index a11164f..5cb435a 100644 --- a/tests/auto/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/qsharedpointer/tst_qsharedpointer.cpp @@ -56,6 +56,7 @@ private slots: void memoryManagement(); void downCast(); void upCast(); + void objectCast(); void differentPointers(); void virtualBaseDifferentPointers(); #ifndef QTEST_NO_RTTI @@ -221,16 +222,37 @@ void tst_QSharedPointer::basics() } class ForwardDeclared; +ForwardDeclared *forwardPointer(); +void externalForwardDeclaration(); +extern int forwardDeclaredDestructorRunCount; + void tst_QSharedPointer::forwardDeclaration1() { - class Wrapper { QSharedPointer<ForwardDeclared> pointer; }; + externalForwardDeclaration(); + + struct Wrapper { QSharedPointer<ForwardDeclared> pointer; }; + + forwardDeclaredDestructorRunCount = 0; + { + Wrapper w; + w.pointer = QSharedPointer<ForwardDeclared>(forwardPointer()); + QVERIFY(!w.pointer.isNull()); + } + QCOMPARE(forwardDeclaredDestructorRunCount, 1); } -class ForwardDeclared { }; +#include "forwarddeclared.h" + void tst_QSharedPointer::forwardDeclaration2() { - class Wrapper { QSharedPointer<ForwardDeclared> pointer; }; - Wrapper w; + forwardDeclaredDestructorRunCount = 0; + { + struct Wrapper { QSharedPointer<ForwardDeclared> pointer; }; + Wrapper w1, w2; + w1.pointer = QSharedPointer<ForwardDeclared>(forwardPointer()); + QVERIFY(!w1.pointer.isNull()); + } + QCOMPARE(forwardDeclaredDestructorRunCount, 1); } void tst_QSharedPointer::memoryManagement() @@ -424,6 +446,109 @@ void tst_QSharedPointer::upCast() QCOMPARE(int(baseptr.d->strongref), 1); } +class OtherObject: public QObject +{ + Q_OBJECT +}; + +void tst_QSharedPointer::objectCast() +{ + { + OtherObject *data = new OtherObject; + QSharedPointer<QObject> baseptr = QSharedPointer<QObject>(data); + QVERIFY(baseptr == data); + QVERIFY(data == baseptr); + + // perform object cast + QSharedPointer<OtherObject> ptr = qSharedPointerObjectCast<OtherObject>(baseptr); + QVERIFY(!ptr.isNull()); + QCOMPARE(ptr.data(), data); + QVERIFY(ptr == data); + + // again: + ptr = baseptr.objectCast<OtherObject>(); + QVERIFY(ptr == data); + +#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION + // again: + ptr = qobject_cast<OtherObject *>(baseptr); + QVERIFY(ptr == data); + + // again: + ptr = qobject_cast<QSharedPointer<OtherObject> >(baseptr); + QVERIFY(ptr == data); +#endif + } + + { + const OtherObject *data = new OtherObject; + QSharedPointer<const QObject> baseptr = QSharedPointer<const QObject>(data); + QVERIFY(baseptr == data); + QVERIFY(data == baseptr); + + // perform object cast + QSharedPointer<const OtherObject> ptr = qSharedPointerObjectCast<const OtherObject>(baseptr); + QVERIFY(!ptr.isNull()); + QCOMPARE(ptr.data(), data); + QVERIFY(ptr == data); + + // again: + ptr = baseptr.objectCast<const OtherObject>(); + QVERIFY(ptr == data); + +#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION + // again: + ptr = qobject_cast<const OtherObject *>(baseptr); + QVERIFY(ptr == data); + + // again: + ptr = qobject_cast<QSharedPointer<const OtherObject> >(baseptr); + QVERIFY(ptr == data); +#endif + } + + { + OtherObject *data = new OtherObject; + QPointer<OtherObject> qptr = data; + QSharedPointer<OtherObject> ptr = QSharedPointer<OtherObject>(data); + QWeakPointer<QObject> weakptr = ptr; + + { + // perform object cast + QSharedPointer<OtherObject> otherptr = qSharedPointerObjectCast<OtherObject>(weakptr); + QVERIFY(otherptr == ptr); + + // again: + otherptr = qobject_cast<OtherObject *>(weakptr); + QVERIFY(otherptr == ptr); + + // again: + otherptr = qobject_cast<QSharedPointer<OtherObject> >(weakptr); + QVERIFY(otherptr == ptr); + } + + // drop the reference: + ptr.clear(); + QVERIFY(ptr.isNull()); + QVERIFY(qptr.isNull()); + QVERIFY(weakptr.toStrongRef().isNull()); + + // verify that the object casts fail without crash + QSharedPointer<OtherObject> otherptr = qSharedPointerObjectCast<OtherObject>(weakptr); + QVERIFY(otherptr.isNull()); + +#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION + // again: + otherptr = qobject_cast<OtherObject *>(weakptr); + QVERIFY(otherptr.isNull()); + + // again: + otherptr = qobject_cast<QSharedPointer<OtherObject> >(weakptr); + QVERIFY(otherptr.isNull()); +#endif + } +} + void tst_QSharedPointer::differentPointers() { { @@ -908,15 +1033,17 @@ void tst_QSharedPointer::invalidConstructs_data() QTest::newRow("implicit-initialization3") << &QTest::QExternalTest::tryCompileFail << "QWeakPointer<Data> ptr = new Data;"; - QTest::newRow("implicit-initialization1") + QTest::newRow("implicit-initialization4") << &QTest::QExternalTest::tryCompileFail << "QWeakPointer<Data> ptr;" "ptr = new Data;"; // use of forward-declared class QTest::newRow("forward-declaration") - << &QTest::QExternalTest::tryCompileFail - << "QSharedPointer<ForwardDeclared> ptr;"; + << &QTest::QExternalTest::tryRun + << "forwardDeclaredDestructorRunCount = 0;\n" + "{ QSharedPointer<ForwardDeclared> ptr = QSharedPointer<ForwardDeclared>(forwardPointer()); }\n" + "exit(forwardDeclaredDestructorRunCount);"; // upcast without cast operator: QTest::newRow("upcast1") @@ -939,6 +1066,20 @@ void tst_QSharedPointer::invalidConstructs_data() << "QSharedPointer<const Data> baseptr = QSharedPointer<const Data>(new Data);\n" "QSharedPointer<Data> ptr;" "ptr = baseptr;"; + QTest::newRow("const-dropping-static-cast") + << &QTest::QExternalTest::tryCompileFail + << "QSharedPointer<const Data> baseptr = QSharedPointer<const Data>(new Data);\n" + "qSharedPointerCast<DerivedData>(baseptr);"; +#ifndef QTEST_NO_RTTI + QTest::newRow("const-dropping-dynamic-cast") + << &QTest::QExternalTest::tryCompileFail + << "QSharedPointer<const Data> baseptr = QSharedPointer<const Data>(new Data);\n" + "qSharedPointerDynamicCast<DerivedData>(baseptr);"; +#endif + QTest::newRow("const-dropping-object-cast") + << &QTest::QExternalTest::tryCompileFail + << "QSharedPointer<const QObject> baseptr = QSharedPointer<const QObject>(new QObject);\n" + "qSharedPointerObjectCast<QCoreApplication>(baseptr);"; // arithmethics through automatic cast operators QTest::newRow("arithmethic1") @@ -972,14 +1113,20 @@ void tst_QSharedPointer::invalidConstructs_data() << &QTest::QExternalTest::tryCompileFail << "QSharedPointer<Data> ptr1;\n" "QSharedPointer<int> ptr2 = qSharedPointerCast<int>(ptr1);"; +#ifndef QTEST_NO_RTTI QTest::newRow("invalid-cast2") << &QTest::QExternalTest::tryCompileFail << "QSharedPointer<Data> ptr1;\n" "QSharedPointer<int> ptr2 = qSharedPointerDynamicCast<int>(ptr1);"; - QTest::newRow("implicit-initialization1") +#endif + QTest::newRow("invalid-cast3") << &QTest::QExternalTest::tryCompileFail << "QSharedPointer<Data> ptr1;\n" "QSharedPointer<int> ptr2 = qSharedPointerConstCast<int>(ptr1);"; + QTest::newRow("invalid-cast4") + << &QTest::QExternalTest::tryCompileFail + << "QSharedPointer<Data> ptr1;\n" + "QSharedPointer<int> ptr2 = qSharedPointerObjectCast<int>(ptr1);"; } void tst_QSharedPointer::invalidConstructs() @@ -994,13 +1141,19 @@ void tst_QSharedPointer::invalidConstructs() QTest::QExternalTest test; test.setDebugMode(true); test.setQtModules(QTest::QExternalTest::QtCore); + test.setExtraProgramSources(QStringList() << SRCDIR "forwarddeclared.cpp"); test.setProgramHeader( "#define QT_SHAREDPOINTER_TRACK_POINTERS\n" "#include <QtCore/qsharedpointer.h>\n" + "#include <QtCore/qcoreapplication.h>\n" "\n" "struct Data { int i; };\n" "struct DerivedData: public Data { int j; };\n" - "struct ForwardDeclared;"); + "\n" + "extern int forwardDeclaredDestructorRunCount;\n" + "struct ForwardDeclared;\n" + "ForwardDeclared *forwardPointer();\n" + ); QFETCH(QString, code); static bool sane = true; @@ -1024,7 +1177,12 @@ void tst_QSharedPointer::invalidConstructs() QByteArray body = code.toLatin1(); - if (!(test.*testFunction)(body)) { + bool result = (test.*testFunction)(body); + if (qgetenv("QTEST_EXTERNAL_DEBUG").toInt() > 0) { + qDebug("External test output:"); + printf("%s\n", test.standardError().constData()); + } + if (!result) { qWarning("External code testing failed\nCode:\n%s\n", body.constData()); QFAIL("Fail"); } diff --git a/tests/auto/qsocketnotifier/qsocketnotifier.pro b/tests/auto/qsocketnotifier/qsocketnotifier.pro index 10ed3a5..ec924c1 100644 --- a/tests/auto/qsocketnotifier/qsocketnotifier.pro +++ b/tests/auto/qsocketnotifier/qsocketnotifier.pro @@ -2,6 +2,8 @@ load(qttest_p4) SOURCES += tst_qsocketnotifier.cpp QT = core network +requires(contains(QT_CONFIG,private_tests)) + include(../qnativesocketengine/qsocketengine.pri) diff --git a/tests/auto/qsocks5socketengine/qsocks5socketengine.pro b/tests/auto/qsocks5socketengine/qsocks5socketengine.pro index 2949ee2..d19b732 100644 --- a/tests/auto/qsocks5socketengine/qsocks5socketengine.pro +++ b/tests/auto/qsocks5socketengine/qsocks5socketengine.pro @@ -11,3 +11,4 @@ QT = core network +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp index 5fc5bd4..de239fb 100644 --- a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp @@ -134,6 +134,7 @@ private slots: void task250023_fetchMore(); void task251296_hiddenChildren(); void task252507_mapFromToSource(); + void task255652_removeRowsRecursive(); protected: void buildHierarchy(const QStringList &data, QAbstractItemModel *model); @@ -390,7 +391,7 @@ void tst_QSortFilterProxyModel::sort() QModelIndex index = m_proxy->index(row, 0, QModelIndex()); QCOMPARE(m_proxy->data(index, Qt::DisplayRole).toString(), initial.at(row)); } - + } void tst_QSortFilterProxyModel::sortHierarchy_data() @@ -411,7 +412,7 @@ void tst_QSortFilterProxyModel::sortHierarchy_data() << static_cast<int>(Qt::AscendingOrder) << (QStringList() << "a" << "<" << "b" << "<" << "c" << ">" << ">") << (QStringList() << "a" << "<" << "b" << "<" << "c" << ">" << ">"); - + #if 1 QTest::newRow("hierarchical ascending") << static_cast<int>(Qt::AscendingOrder) @@ -571,7 +572,7 @@ void tst_QSortFilterProxyModel::insertRows() QModelIndex index = m_proxy->index(row, 0, QModelIndex()); QCOMPARE(m_proxy->data(index, Qt::DisplayRole).toString(), initial.at(row)); } - + // insert the row m_proxy->insertRows(position, insert.count(), QModelIndex()); QCOMPARE(m_model->rowCount(QModelIndex()), expected.count()); @@ -615,7 +616,7 @@ void tst_QSortFilterProxyModel::prependRow() QStandardItem sub2("sub2"); sub2.appendRow(new QStandardItem("sub3")); item.insertRow(0, &sub2); - + QModelIndex index_sub2 = proxy.mapFromSource(model.indexFromItem(&sub2)); QCOMPARE(sub2.rowCount(), proxy.rowCount(index_sub2)); @@ -626,7 +627,7 @@ void tst_QSortFilterProxyModel::prependRow() /* void tst_QSortFilterProxyModel::insertColumns_data() { - + } void tst_QSortFilterProxyModel::insertColumns() @@ -923,7 +924,7 @@ void tst_QSortFilterProxyModel::removeRows() // prepare model foreach (QString s, initial) model.appendRow(new QStandardItem(s)); - + // remove the rows QCOMPARE(proxy.removeRows(position, count, QModelIndex()), success); QCOMPARE(model.rowCount(QModelIndex()), expectedSource.count()); @@ -1164,10 +1165,10 @@ void tst_QSortFilterProxyModel::removeColumns() proxy.setSourceModel(&model); if (!filter.isEmpty()) proxy.setFilterRegExp(QRegExp(filter)); - + // prepare model model.setHorizontalHeaderLabels(initial); - + // remove the columns QCOMPARE(proxy.removeColumns(position, count, QModelIndex()), success); QCOMPARE(model.columnCount(QModelIndex()), expectedSource.count()); @@ -1266,7 +1267,7 @@ void tst_QSortFilterProxyModel::filter_data() << "golf" << "quebec" << "foxtrot" - << "india" + << "india" << "romeo" << "november" << "oskar" @@ -1274,9 +1275,9 @@ void tst_QSortFilterProxyModel::filter_data() << "kilo" << "whiskey" << "mike" - << "papa" + << "papa" << "sierra" - << "xray" + << "xray" << "viktor") << (QStringList() << "delta" @@ -1334,7 +1335,7 @@ void tst_QSortFilterProxyModel::filterHierarchy_data() << "foo" << "boo" << "baz" << "moo" << "laa" << "haa") << (QStringList() << "foo" << "boo" << "moo"); - + QTest::newRow("simple hierarchy") << "b.*z" << (QStringList() << "baz" << "<" << "boz" << "<" << "moo" << ">" << ">") << (QStringList() << "baz" << "<" << "boz" << ">"); @@ -1671,7 +1672,7 @@ void tst_QSortFilterProxyModel::removeSourceRows() QSignalSpy insertSpy(&proxy, SIGNAL(rowsInserted(QModelIndex, int, int))); QSignalSpy aboutToRemoveSpy(&proxy, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int))); QSignalSpy aboutToInsertSpy(&proxy, SIGNAL(rowsAboutToBeInserted(QModelIndex, int, int))); - + model.removeRows(start, count, QModelIndex()); QCOMPARE(aboutToRemoveSpy.count(), expectedRemovedProxyIntervals.count()); @@ -1827,7 +1828,7 @@ void tst_QSortFilterProxyModel::changeFilter() QFETCH(IntPairList, finalRemoveIntervals); QFETCH(IntPairList, insertIntervals); QFETCH(QStringList, finalProxyItems); - + QStandardItemModel model; QSortFilterProxyModel proxy; @@ -1880,7 +1881,7 @@ void tst_QSortFilterProxyModel::changeFilter() #ifdef Q_OS_IRIX QEXPECT_FAIL("filter (2)", "Not reliable on IRIX", Abort); -#endif +#endif QCOMPARE(finalInsertSpy.count(), insertIntervals.count()); for (int i = 0; i < finalInsertSpy.count(); ++i) { QList<QVariant> args = finalInsertSpy.at(i); @@ -2068,7 +2069,7 @@ void tst_QSortFilterProxyModel::sortFilterRole() model.setData(index, sourceItems.at(i).first, Qt::DisplayRole); model.setData(index, sourceItems.at(i).second, Qt::UserRole); } - + proxy.setFilterRegExp("2"); QCOMPARE(proxy.rowCount(), 0); // Qt::DisplayRole is default role @@ -2358,7 +2359,7 @@ void tst_QSortFilterProxyModel::sourceInsertRows() model.insertColumns(0, 1, parent); model.insertRows(0, 1, parent); } - + model.insertRows(0, 1, QModelIndex()); model.insertRows(0, 1, QModelIndex()); @@ -2462,7 +2463,7 @@ void tst_QSortFilterProxyModel::task236755_hiddenColumns() QVERIFY(view.isColumnHidden(0)); } -void tst_QSortFilterProxyModel::task247867_insertRowsSort() +void tst_QSortFilterProxyModel::task247867_insertRowsSort() { QStandardItemModel model(2,2); QSortFilterProxyModel proxyModel; @@ -2567,7 +2568,7 @@ void tst_QSortFilterProxyModel::task248868_dynamicSorting() QStringList initial2 = initial; initial2.replaceInStrings("bateau", "girafe"); model1.setStringList(initial2); //this will cause a reset - + QStringList expected2 = initial2; expected2.sort(); @@ -2648,7 +2649,7 @@ class QtTestModel: public QAbstractItemModel { if (!idx.isValid()) return QVariant(); - + if (role == Qt::DisplayRole) { if (idx.row() < 0 || idx.column() < 0 || idx.column() >= cols || idx.row() >= rows) { wrongIndex = true; @@ -2727,6 +2728,16 @@ void tst_QSortFilterProxyModel::task251296_hiddenChildren() QCOMPARE(proxy.rowCount(indexA) , 1); QModelIndex indexC = proxy.index(0, 0, indexA); QCOMPARE(proxy.data(indexC).toString(), QString::fromLatin1("C VISIBLE")); + + proxy.setFilterRegExp("C"); + QCOMPARE(proxy.rowCount(QModelIndex()), 0); + itemC->setText("invisible"); + itemA->setText("AC"); + + QCOMPARE(proxy.rowCount(QModelIndex()), 1); + indexA = proxy.index(0,0); + QCOMPARE(proxy.data(indexA).toString(), QString::fromLatin1("AC")); + QCOMPARE(proxy.rowCount(indexA) , 0); } void tst_QSortFilterProxyModel::task252507_mapFromToSource() @@ -2746,5 +2757,63 @@ void tst_QSortFilterProxyModel::task252507_mapFromToSource() QCOMPARE(proxy.mapFromSource(proxy.index(6, 2)), QModelIndex()); } +static QStandardItem *addEntry(QStandardItem* pParent, const QString &description) +{ + QStandardItem* pItem = new QStandardItem(description); + pParent->appendRow(pItem); + return pItem; +} + + +void tst_QSortFilterProxyModel::task255652_removeRowsRecursive() +{ + QStandardItemModel pModel; + QStandardItem *pItem1 = new QStandardItem("root"); + pModel.appendRow(pItem1); + QList<QStandardItem *> items; + + QStandardItem *pItem11 = addEntry(pItem1,"Sub-heading"); + items << pItem11; + QStandardItem *pItem111 = addEntry(pItem11,"A"); + items << pItem111; + items << addEntry(pItem111,"A1"); + items << addEntry(pItem111,"A2"); + QStandardItem *pItem112 = addEntry(pItem11,"B"); + items << pItem112; + items << addEntry(pItem112,"B1"); + items << addEntry(pItem112,"B2"); + QStandardItem *pItem1123 = addEntry(pItem112,"B3"); + items << pItem1123; + items << addEntry(pItem1123,"B3-"); + + QSortFilterProxyModel proxy; + proxy.setSourceModel(&pModel); + + QList<QPersistentModelIndex> sourceIndexes; + QList<QPersistentModelIndex> proxyIndexes; + foreach (QStandardItem *item, items) { + QModelIndex idx = item->index(); + sourceIndexes << idx; + proxyIndexes << proxy.mapFromSource(idx); + } + + foreach (const QPersistentModelIndex &pidx, sourceIndexes) + QVERIFY(pidx.isValid()); + foreach (const QPersistentModelIndex &pidx, proxyIndexes) + QVERIFY(pidx.isValid()); + + QList<QStandardItem*> itemRow = pItem1->takeRow(0); + + QCOMPARE(itemRow.count(), 1); + QCOMPARE(itemRow.first(), pItem11); + + foreach (const QPersistentModelIndex &pidx, sourceIndexes) + QVERIFY(!pidx.isValid()); + foreach (const QPersistentModelIndex &pidx, proxyIndexes) + QVERIFY(!pidx.isValid()); + + delete pItem11; +} + QTEST_MAIN(tst_QSortFilterProxyModel) #include "tst_qsortfilterproxymodel.moc" diff --git a/tests/auto/qspinbox/tst_qspinbox.cpp b/tests/auto/qspinbox/tst_qspinbox.cpp index 88c3f65..d6a208d 100644 --- a/tests/auto/qspinbox/tst_qspinbox.cpp +++ b/tests/auto/qspinbox/tst_qspinbox.cpp @@ -65,6 +65,7 @@ #include <QDoubleSpinBox> #include <QVBoxLayout> #include <QKeySequence> +#include <QStackedWidget> #include <QDebug> #include "../../shared/util.h" @@ -142,6 +143,9 @@ private slots: void specialValue(); void textFromValue(); + + void sizeHint(); + public slots: void valueChangedHelper(const QString &); void valueChangedHelper(int); @@ -241,6 +245,12 @@ void tst_QSpinBox::getSetCheck() QCOMPARE(0.0, obj2.value()); obj2.setValue(1.0); QCOMPARE(1.0, obj2.value()); + + // Make sure we update line edit geometry when updating + // buttons - see task 235747 + QRect oldEditGeometry = obj1.childrenRect(); + obj1.setButtonSymbols(QAbstractSpinBox::NoButtons); + QVERIFY(obj1.childrenRect() != oldEditGeometry); } tst_QSpinBox::tst_QSpinBox() @@ -950,5 +960,45 @@ void tst_QSpinBox::textFromValue() QCOMPARE(spinBox.textFromValue(INT_MIN), QString::number(INT_MIN)); } +class sizeHint_SpinBox : public QSpinBox +{ +public: + QSize sizeHint() const + { + ++sizeHintRequests; + return QSpinBox::sizeHint(); + } + mutable int sizeHintRequests; +}; + +void tst_QSpinBox::sizeHint() +{ + QWidget *widget = new QWidget; + QHBoxLayout *layout = new QHBoxLayout(widget); + sizeHint_SpinBox *spinBox = new sizeHint_SpinBox; + layout->addWidget(spinBox); + widget->show(); + QTest::qWait(100); + + // Prefix + spinBox->sizeHintRequests = 0; + spinBox->setPrefix(QLatin1String("abcdefghij")); + qApp->processEvents(); + QVERIFY(spinBox->sizeHintRequests > 0); + + // Suffix + spinBox->sizeHintRequests = 0; + spinBox->setSuffix(QLatin1String("abcdefghij")); + qApp->processEvents(); + QVERIFY(spinBox->sizeHintRequests > 0); + + // Range + spinBox->sizeHintRequests = 0; + spinBox->setRange(0, 1234567890); + spinBox->setValue(spinBox->maximum()); + qApp->processEvents(); + QVERIFY(spinBox->sizeHintRequests > 0); +} + QTEST_MAIN(tst_QSpinBox) #include "tst_qspinbox.moc" diff --git a/tests/auto/qsplitter/qsplitter.pro b/tests/auto/qsplitter/qsplitter.pro index 99f27b4..a7ff0a6 100644 --- a/tests/auto/qsplitter/qsplitter.pro +++ b/tests/auto/qsplitter/qsplitter.pro @@ -8,4 +8,7 @@ wince*: { addFiles.sources = extradata.txt setSizes3.dat addFiles.path = . DEPLOYMENT += addFiles + DEFINES += SRCDIR=\\\"./\\\" +} else { + DEFINES += SRCDIR=\\\"$$PWD/\\\" } diff --git a/tests/auto/qsplitter/tst_qsplitter.cpp b/tests/auto/qsplitter/tst_qsplitter.cpp index 9930a78..a44e25d 100644 --- a/tests/auto/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/qsplitter/tst_qsplitter.cpp @@ -214,7 +214,7 @@ void tst_QSplitter::setSizes3_data() QTest::addColumn<IntList>("collapsibleStates"); QTest::addColumn<bool>("childrenCollapse"); - QFile file("setSizes3.dat"); + QFile file(SRCDIR "setSizes3.dat"); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "Can't open file, reason:" << file.errorString(); return; diff --git a/tests/auto/qsqldatabase/qsqldatabase.pro b/tests/auto/qsqldatabase/qsqldatabase.pro index 534a2d3..3bca79a 100644 --- a/tests/auto/qsqldatabase/qsqldatabase.pro +++ b/tests/auto/qsqldatabase/qsqldatabase.pro @@ -5,7 +5,10 @@ QT += sql contains(QT_CONFIG, qt3support): QT += qt3support -win32:!wince*: LIBS += -lws2_32 +win32: { + !wince*: LIBS += -lws2_32 + else: LIBS += -lws2 +} wince*: { DEPLOYMENT_PLUGIN += qsqlite diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h index 8ee74df..9c8c313 100644 --- a/tests/auto/qsqldatabase/tst_databases.h +++ b/tests/auto/qsqldatabase/tst_databases.h @@ -211,7 +211,7 @@ public: // This requires a local ODBC data source to be configured( pointing to a MySql database ) // addDb( "QODBC", "mysqlodbc", "troll", "trond" ); // addDb( "QODBC", "SqlServer", "troll", "trond" ); -// addDb( "QTDS7", "testdb", "troll", "trondk", "horsehead.nokia.troll.no" ); +// addDb( "QTDS7", "testdb", "troll", "trondk", "horsehead" ); // addDb( "QODBC", "silencetestdb", "troll", "trond", "silence" ); // addDb( "QODBC", "horseheadtestdb", "troll", "trondk", "horsehead" ); @@ -243,7 +243,7 @@ public: // use in-memory database to prevent local files // addDb("QSQLITE", ":memory:"); - addDb( "QSQLITE", QDir::toNativeSeparators(QDir::tempPath()+"/foo.db") ); + addDb( "QSQLITE", QDir::toNativeSeparators(QDir::tempPath()+"/foo.db") ); // addDb( "QSQLITE2", QDir::toNativeSeparators(QDir::tempPath()+"/foo2.db") ); // addDb( "QODBC3", "DRIVER={SQL SERVER};SERVER=iceblink.nokia.troll.no\\ICEBLINK", "troll", "trond", "" ); // addDb( "QODBC3", "DRIVER={SQL Native Client};SERVER=silence.nokia.troll.no\\SQLEXPRESS", "troll", "trond", "" ); @@ -323,42 +323,75 @@ public: QSqlQuery q( db ); QStringList dbtables=db.tables(); - foreach(const QString &tableName, tableNames) { + foreach(const QString &tableName, tableNames) + { wasDropped = true; - foreach(const QString dbtablesName, dbtables) { - if(dbtablesName.toUpper() == tableName.toUpper()) { - dbtables.removeAll(dbtablesName); - wasDropped = q.exec("drop table " + db.driver()->escapeIdentifier( dbtablesName, QSqlDriver::TableName )); - if(!wasDropped) - wasDropped = q.exec("drop table " + dbtablesName); + QString table=tableName; + if ( db.driver()->isIdentifierEscaped(table, QSqlDriver::TableName)) + table = db.driver()->stripDelimiters(table, QSqlDriver::TableName); + + if ( dbtables.contains( table, Qt::CaseInsensitive ) ) { + foreach(const QString &table2, dbtables.filter(table, Qt::CaseInsensitive)) { + if(table2.compare(table.section('.', -1, -1), Qt::CaseInsensitive) == 0) { + table=db.driver()->escapeIdentifier(table2, QSqlDriver::TableName); + wasDropped = q.exec( "drop table " + table); + dbtables.removeAll(table); + } } } - if ( !wasDropped ) - qWarning() << dbToString(db) << "unable to drop table" << tableName << ':' << q.lastError().text() << "tables:" << dbtables; + if ( !wasDropped ) { + qWarning() << dbToString(db) << "unable to drop table" << tableName << ':' << q.lastError(); +// qWarning() << "last query:" << q.lastQuery(); +// qWarning() << "dbtables:" << dbtables; +// qWarning() << "db.tables():" << db.tables(); + } } } + static void safeDropTable( QSqlDatabase db, const QString& tableName ) + { + safeDropTables(db, QStringList() << tableName); + } + static void safeDropViews( QSqlDatabase db, const QStringList &viewNames ) { if ( isMSAccess( db ) ) // Access is sooo stupid. safeDropTables( db, viewNames ); + bool wasDropped; + QSqlQuery q( db ); QStringList dbtables=db.tables(QSql::Views); foreach(QString viewName, viewNames) { - if ( dbtables.contains( viewName, Qt::CaseInsensitive ) ) { - QSqlQuery q( "drop view " + viewName, db ); - - if ( !q.isActive() ) - qWarning() << "unable to drop view" << viewName << ':' << q.lastError().text(); - } else if ( db.driverName().startsWith( "QMYSQL" ) - && dbtables.contains( viewName, Qt::CaseInsensitive ) ) { // MySql is a bit stupid too - QSqlQuery q( "drop view " + viewName, db ); + wasDropped = true; + QString view=viewName; + if ( db.driver()->isIdentifierEscaped(view, QSqlDriver::TableName)) + view = db.driver()->stripDelimiters(view, QSqlDriver::TableName); + + if ( dbtables.contains( view, Qt::CaseInsensitive ) ) { + foreach(const QString &view2, dbtables.filter(view, Qt::CaseInsensitive)) { + if(view2.compare(view.section('.', -1, -1), Qt::CaseInsensitive) == 0) { + view=db.driver()->escapeIdentifier(view2, QSqlDriver::TableName); + wasDropped = q.exec( "drop view " + view); + dbtables.removeAll(view); + } + } } + + if ( !wasDropped ) + qWarning() << dbToString(db) << "unable to drop view" << viewName << ':' << q.lastError(); +// << "\nlast query:" << q.lastQuery() +// << "\ndbtables:" << dbtables +// << "\ndb.tables(QSql::Views):" << db.tables(QSql::Views); } } + static void safeDropView( QSqlDatabase db, const QString& tableName ) + { + safeDropViews(db, QStringList() << tableName); + } + // returns the type name of the blob datatype for the database db. // blobSize is only used if the db doesn't have a generic blob type static QString blobTypeName( QSqlDatabase db, int blobSize = 10000 ) diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp index 025e895..e1f1d3c 100644 --- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp +++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp @@ -249,7 +249,7 @@ struct FieldDef { // excluding the primary key field static int createFieldTable(const FieldDef fieldDefs[], QSqlDatabase db) { - tst_Databases::safeDropTables(db, QStringList() << qTableName("qtestfields")); + tst_Databases::safeDropTable(db, qTableName("qtestfields")); QSqlQuery q(db); // construct a create table statement consisting of all fieldtypes QString qs = "create table " + qTableName("qtestfields"); @@ -353,11 +353,13 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db) << qTableName("bug_249059"); QSqlQuery q(0, db); - if (db.driverName().startsWith("QPSQL")) + if (db.driverName().startsWith("QPSQL")) { q.exec("drop schema " + qTableName("qtestschema") + " cascade"); + q.exec("drop schema " + qTableName("qtestScHeMa") + " cascade"); + } if (testWhiteSpaceNames(db.driverName())) - tableNames << (qTableName("qtest") + " test"); + tableNames << db.driver()->escapeIdentifier(qTableName("qtest") + " test", QSqlDriver::TableName); tst_Databases::safeDropTables(db, tableNames); } @@ -543,11 +545,6 @@ void tst_QSqlDatabase::tables() QVERIFY(tables.contains(qTableName("temp_tab"), Qt::CaseInsensitive)); QVERIFY(tables.contains(qTableName("qtest"), Qt::CaseInsensitive)); - if (tst_Databases::isMSAccess(db)) - QSqlQuery("drop table " + qTableName("qtest_view"), db); - else - QSqlQuery("drop view " + qTableName("qtest_view"), db); - if (db.driverName().startsWith("QPSQL")) { QVERIFY(tables.contains(qTableName("qtest") + " test")); } @@ -563,19 +560,19 @@ void tst_QSqlDatabase::whitespaceInIdentifiers() QString tableName = qTableName("qtest") + " test"; QVERIFY(db.tables().contains(tableName, Qt::CaseInsensitive)); - QSqlRecord rec = db.record(tableName); + QSqlRecord rec = db.record(db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName)); QCOMPARE(rec.count(), 1); QCOMPARE(rec.fieldName(0), QString("test test")); if(db.driverName().startsWith("QOCI")) - QCOMPARE(rec.field(0).type(), QVariant::String); + QCOMPARE(rec.field(0).type(), QVariant::Double); else QCOMPARE(rec.field(0).type(), QVariant::Int); - QSqlIndex idx = db.primaryIndex(tableName); + QSqlIndex idx = db.primaryIndex(db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName)); QCOMPARE(idx.count(), 1); QCOMPARE(idx.fieldName(0), QString("test test")); if(db.driverName().startsWith("QOCI")) - QCOMPARE(idx.field(0).type(), QVariant::String); + QCOMPARE(idx.field(0).type(), QVariant::Double); else QCOMPARE(idx.field(0).type(), QVariant::Int); } else { @@ -923,7 +920,7 @@ void tst_QSqlDatabase::recordOCI() FieldDef("varchar(20)", QVariant::String, QString("blah2")), FieldDef("nchar(20)", QVariant::String, QString("blah3")), FieldDef("nvarchar2(20)", QVariant::String, QString("blah4")), - FieldDef("number(10,5)", QVariant::String, 1.1234567), + FieldDef("number(10,5)", QVariant::Double, 1.1234567), FieldDef("date", QVariant::DateTime, dt), #ifdef QT3_SUPPORT //X? FieldDef("long raw", QVariant::ByteArray, QByteArray(Q3CString("blah5"))), @@ -1084,8 +1081,8 @@ void tst_QSqlDatabase::recordMySQL() FieldDef("bigint unsigned", QVariant::ULongLong, Q_UINT64_C(18446744073709551615)), FieldDef("float", QVariant::Double, 1.12345), FieldDef("double", QVariant::Double, 1.123456789), - FieldDef("decimal(10, 9)", QVariant::String,1.123456789), - FieldDef("numeric(5, 2)", QVariant::String, 123.67), + FieldDef("decimal(10, 9)", QVariant::Double,1.123456789), + FieldDef("numeric(5, 2)", QVariant::Double, 123.67), FieldDef("date", QVariant::Date, QDate::currentDate()), FieldDef("datetime", QVariant::DateTime, dt), FieldDef("timestamp", QVariant::DateTime, dt, false), @@ -1527,7 +1524,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() QSqlQuery q(db); QString schemaName = qTableName("qtestScHeMa"); - QString tableName = qTableName("qtestTaBlE"); + QString tableName = qTableName("qtest"); QString field1Name = QString("fIeLdNaMe"); QString field2Name = QString("ZuLu"); @@ -1545,7 +1542,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() rec.append(fld1); rec.append(fld2); - QVERIFY_SQL(q, exec(drv->sqlStatement(QSqlDriver::SelectStatement, schemaName + '.' + tableName, rec, false))); + QVERIFY_SQL(q, exec(drv->sqlStatement(QSqlDriver::SelectStatement, db.driver()->escapeIdentifier(schemaName, QSqlDriver::TableName) + '.' + db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName), rec, false))); rec = q.record(); QCOMPARE(rec.count(), 2); @@ -1635,62 +1632,84 @@ void tst_QSqlDatabase::precisionPolicy() QSKIP("Driver or database doesn't support setting precision policy", SkipSingle); // Create a test table with some data - QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id smallint, num numeric(20,0))").arg(tableName))); + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id smallint, num numeric(18,5))").arg(tableName))); QVERIFY_SQL(q, prepare(QString("INSERT INTO %1 VALUES (?, ?)").arg(tableName))); q.bindValue(0, 1); q.bindValue(1, 123); QVERIFY_SQL(q, exec()); q.bindValue(0, 2); - q.bindValue(1, QString("18500000000000000000")); + q.bindValue(1, 1850000000000.0001); QVERIFY_SQL(q, exec()); // These are expected to pass + q.setNumericalPrecisionPolicy(QSql::HighPrecision); QString query = QString("SELECT num FROM %1 WHERE id = 1").arg(tableName); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::String); q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt64); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); + if(q.value(0).type() != QVariant::LongLong) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::LongLong); QCOMPARE(q.value(0).toLongLong(), (qlonglong)123); q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt32); QVERIFY_SQL(q, exec(query)); + if(db.driverName().startsWith("QOCI")) + QEXPECT_FAIL("", "Oracle fails to move to next when data columns are oversize", Abort); QVERIFY_SQL(q, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::Int); QCOMPARE(q.value(0).toInt(), 123); q.setNumericalPrecisionPolicy(QSql::LowPrecisionDouble); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::Double); QCOMPARE(q.value(0).toDouble(), (double)123); query = QString("SELECT num FROM %1 WHERE id = 2").arg(tableName); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::Double); - QCOMPARE(q.value(0).toDouble(), QString("18500000000000000000").toDouble()); + QCOMPARE(q.value(0).toDouble(), QString("1850000000000.0001").toDouble()); // Postgres returns invalid QVariants on overflow q.setNumericalPrecisionPolicy(QSql::HighPrecision); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); QCOMPARE(q.value(0).type(), QVariant::String); q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt64); + QEXPECT_FAIL("QOCI", "Oracle fails here, to retrieve next", Continue); QVERIFY_SQL(q, exec(query)); QVERIFY_SQL(q, next()); - QCOMPARE(q.value(0).type(), QVariant::Invalid); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); + QCOMPARE(q.value(0).type(), QVariant::LongLong); - q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt32); - QVERIFY_SQL(q, exec(query)); - if(db.driverName().startsWith("QOCI")) - QEXPECT_FAIL("", "Oracle fails to move to next when data columns are oversize", Abort); - QVERIFY_SQL(q, next()); - QCOMPARE(q.value(0).type(), QVariant::Invalid); + QSql::NumericalPrecisionPolicy oldPrecision= db.numericalPrecisionPolicy(); + db.setNumericalPrecisionPolicy(QSql::LowPrecisionInt64); + QSqlQuery q2(db); + q2.exec(QString("SELECT num FROM %1 WHERE id = 2").arg(tableName)); + QVERIFY_SQL(q2, exec(query)); + QVERIFY_SQL(q2, next()); + if(db.driverName().startsWith("QSQLITE")) + QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); + QCOMPARE(q2.value(0).type(), QVariant::LongLong); + db.setNumericalPrecisionPolicy(oldPrecision); } // This test needs a ODBC data source containing MYSQL in it's name @@ -2254,15 +2273,15 @@ void tst_QSqlDatabase::eventNotificationPSQL() QSqlQuery query(db); QString procedureName = qTableName("posteventProc"); - QSqlDriver *driver=db.driver(); - QVERIFY_SQL(*driver, subscribeToNotification(procedureName)); + QSqlDriver &driver=*(db.driver()); + QVERIFY_SQL(driver, subscribeToNotification(procedureName)); QSignalSpy spy(db.driver(), SIGNAL(notification(const QString&))); query.exec(QString("NOTIFY \"%1\"").arg(procedureName)); QCoreApplication::processEvents(); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QVERIFY(arguments.at(0).toString() == procedureName); - QVERIFY_SQL(*driver, unsubscribeFromNotification(procedureName)); + QVERIFY_SQL(driver, unsubscribeFromNotification(procedureName)); } void tst_QSqlDatabase::sqlite_bindAndFetchUInt() diff --git a/tests/auto/qsqldriver/qsqldriver.pro b/tests/auto/qsqldriver/qsqldriver.pro new file mode 100644 index 0000000..84f1cb2 --- /dev/null +++ b/tests/auto/qsqldriver/qsqldriver.pro @@ -0,0 +1,17 @@ +load(qttest_p4) +SOURCES += tst_qsqldriver.cpp + +QT += sql + +wince*: { + plugFiles.sources = ../../../plugins/sqldrivers + plugFiles.path = . + DEPLOYMENT += plugFiles + LIBS += -lws2 +} else { + win32-g++ { + LIBS += -lws2_32 + } else:win32 { + LIBS += ws2_32.lib + } +} diff --git a/tests/auto/qsqldriver/tst_qsqldriver.cpp b/tests/auto/qsqldriver/tst_qsqldriver.cpp new file mode 100644 index 0000000..b79c093 --- /dev/null +++ b/tests/auto/qsqldriver/tst_qsqldriver.cpp @@ -0,0 +1,214 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> +#include <QtSql/QtSql> + +#include "../qsqldatabase/tst_databases.h" + + + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QSqlDriver : public QObject +{ + Q_OBJECT + +public: + void recreateTestTables(QSqlDatabase); + + tst_Databases dbs; + +public slots: + void initTestCase_data(); + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void record(); + void primaryIndex(); +}; + + +void tst_QSqlDriver::initTestCase_data() +{ + dbs.open(); + if (dbs.fillTestTable() == 0) { + qWarning("NO DATABASES"); + QSKIP("No database drivers are available in this Qt configuration", SkipAll); + } +} + +void tst_QSqlDriver::recreateTestTables(QSqlDatabase db) +{ + QSqlQuery q(db); + + tst_Databases::safeDropTable( db, qTableName( "relTEST1" ) ); + + QVERIFY_SQL( q, exec("create table " + qTableName("relTEST1") + + " (id int not null primary key, name varchar(20), title_key int, another_title_key int)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(1, 'harry', 1, 2)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(2, 'trond', 2, 1)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(3, 'vohi', 1, 2)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("relTEST1") + " values(4, 'boris', 2, 2)")); +} + +void tst_QSqlDriver::initTestCase() +{ + foreach (const QString &dbname, dbs.dbNames) + recreateTestTables(QSqlDatabase::database(dbname)); +} + +void tst_QSqlDriver::cleanupTestCase() +{ + foreach (const QString &dbName, dbs.dbNames) { + QSqlDatabase db = QSqlDatabase::database(dbName); + tst_Databases::safeDropTable( db, qTableName( "relTEST1" ) ); + } + dbs.close(); +} + +void tst_QSqlDriver::init() +{ +} + +void tst_QSqlDriver::cleanup() +{ +} + +void tst_QSqlDriver::record() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + QString tablename = qTableName("relTEST1"); + QStringList fields; + fields << "id" << "name" << "title_key" << "another_title_key"; + + //check we can get records using an unquoted mixed case table name + QSqlRecord rec = db.driver()->record(tablename); + QCOMPARE(rec.count(), 4); + + if (db.driverName().startsWith("QIBASE")|| db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + for(int i = 0; i < fields.count(); ++i) + fields[i] = fields[i].toUpper(); + + for (int i = 0; i < fields.count(); ++i) + QCOMPARE(rec.fieldName(i), fields[i]); + + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + tablename = tablename.toUpper(); + else if (db.driverName().startsWith("QPSQL")) + tablename = tablename.toLower(); + + //check we can get records using a properly quoted table name + rec = db.driver()->record(db.driver()->escapeIdentifier(tablename,QSqlDriver::TableName)); + QCOMPARE(rec.count(), 4); + + for (int i = 0; i < fields.count(); ++i) + QCOMPARE(rec.fieldName(i), fields[i]); + + if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + tablename = tablename.toLower(); + else if (db.driverName().startsWith("QPSQL")) + tablename = tablename.toUpper(); + + //check that we can't get records using incorrect tablename casing that's been quoted + rec = db.driver()->record(db.driver()->escapeIdentifier(tablename,QSqlDriver::TableName)); + if (tst_Databases::isMySQL(db) || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS")) + QCOMPARE(rec.count(), 4); //mysql, sqlite and tds will match + else + QCOMPARE(rec.count(), 0); + +} + +void tst_QSqlDriver::primaryIndex() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + QString tablename = qTableName("relTEST1"); + //check that we can get primary index using unquoted mixed case table name + QSqlIndex index = db.driver()->primaryIndex(tablename); + QCOMPARE(index.count(), 1); + + if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + QCOMPARE(index.fieldName(0), QString::fromLatin1("ID")); + else + QCOMPARE(index.fieldName(0), QString::fromLatin1("id")); + + + //check that we can get the primary index using a quoted tablename + if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + tablename = tablename.toUpper(); + else if (db.driverName().startsWith("QPSQL")) + tablename = tablename.toLower(); + + index = db.driver()->primaryIndex(db.driver()->escapeIdentifier(tablename, QSqlDriver::TableName)); + QCOMPARE(index.count(), 1); + if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + QCOMPARE(index.fieldName(0), QString::fromLatin1("ID")); + else + QCOMPARE(index.fieldName(0), QString::fromLatin1("id")); + + + + //check that we can not get the primary index using a quoted but incorrect table name casing + if( db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + tablename = tablename.toLower(); + else if (db.driverName().startsWith("QPSQL")) + tablename = tablename.toUpper(); + + index = db.driver()->primaryIndex(db.driver()->escapeIdentifier(tablename, QSqlDriver::TableName)); + if (tst_Databases::isMySQL(db) || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS")) + QCOMPARE(index.count(), 1); //mysql will always find the table name regardless of casing + else + QCOMPARE(index.count(), 0); +} + +QTEST_MAIN(tst_QSqlDriver) +#include "tst_qsqldriver.moc" diff --git a/tests/auto/qsqlquery/qsqlquery.pro b/tests/auto/qsqlquery/qsqlquery.pro index d70ede3..7996637 100644 --- a/tests/auto/qsqlquery/qsqlquery.pro +++ b/tests/auto/qsqlquery/qsqlquery.pro @@ -10,5 +10,6 @@ QT = core sql wince*: { plugFiles.sources = ../../../plugins/sqldrivers plugFiles.path = . - DEPLOYMENT += plugFiles + DEPLOYMENT += plugFiles + LIBS += -lws2 } diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp index 0e30873..f3dd920 100644 --- a/tests/auto/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp @@ -293,7 +293,8 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) << qTableName( "bindtest" ) << qTableName( "more_results" ) << qTableName( "blobstest" ) - << qTableName( "oraRowId" ); + << qTableName( "oraRowId" ) + << qTableName( "qtest_batch" ); if ( db.driverName().startsWith("QPSQL") ) tablenames << qTableName("task_233829"); @@ -309,6 +310,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) tablenames << qTableName( "Planet" ); tablenames << qTableName( "task_250026" ); + tablenames << qTableName( "task_234422" ); tst_Databases::safeDropTables( db, tablenames ); } @@ -493,7 +495,9 @@ void tst_QSqlQuery::mysqlOutValues() QVERIFY_SQL( q, exec( "create procedure " + qTableName( "qtestproc" ) + " () " "BEGIN select * from " + qTableName( "qtest" ) + " order by id; END" ) ); QVERIFY_SQL( q, exec( "call " + qTableName( "qtestproc" ) + "()" ) ); + QEXPECT_FAIL("", "There's a mysql bug that means only selects think they return data when running in prepared mode", Continue); QVERIFY_SQL( q, next() ); + QEXPECT_FAIL("", "There's a mysql bug that means only selects think they return data when running in prepared mode", Continue); QCOMPARE( q.value( 1 ).toString(), QString( "VarChar1" ) ); QVERIFY_SQL( q, exec( "drop procedure " + qTableName( "qtestproc" ) ) ); @@ -1911,71 +1915,48 @@ void tst_QSqlQuery::batchExec() QSKIP( "Database can't do BatchOperations", SkipSingle ); QSqlQuery q( db ); + QString tableName = qTableName( "qtest_batch" ); - q.exec( "drop table " + qTableName( "qtest_batch" ) ); - - QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_batch" ) + " (id int, name varchar(20), dt date, num numeric(8, 4))" ) ); - - QVERIFY_SQL( q, prepare( "insert into " + qTableName( "qtest_batch" ) + " (id, name, dt, num) values (?, ?, ?, ?)" ) ); + QVERIFY_SQL( q, exec( "create table " + tableName + " (id int, name varchar(20), dt date, num numeric(8, 4))" ) ); + QVERIFY_SQL( q, prepare( "insert into " + tableName + " (id, name, dt, num) values (?, ?, ?, ?)" ) ); QVariantList intCol; - intCol << 1 << 2 << QVariant( QVariant::Int ); QVariantList charCol; - charCol << QLatin1String( "harald" ) << QLatin1String( "boris" ) << QVariant( QVariant::String ); QVariantList dateCol; - QDateTime dt = QDateTime( QDate::currentDate(), QTime( 1, 2, 3 ) ); - dateCol << dt << dt.addDays( -1 ) << QVariant( QVariant::DateTime ); QVariantList numCol; - numCol << 2.3 << 3.4 << QVariant( QVariant::Double ); q.addBindValue( intCol ); - q.addBindValue( charCol ); - q.addBindValue( dateCol ); - q.addBindValue( numCol ); QVERIFY_SQL( q, execBatch() ); - - QVERIFY_SQL( q, exec( "select id, name, dt, num from " + qTableName( "qtest_batch" ) + " order by id" ) ); + QVERIFY_SQL( q, exec( "select id, name, dt, num from " + tableName + " order by id" ) ); QVERIFY( q.next() ); - QCOMPARE( q.value( 0 ).toInt(), 1 ); - QCOMPARE( q.value( 1 ).toString(), QString( "harald" ) ); - QCOMPARE( q.value( 2 ).toDateTime(), dt ); - QCOMPARE( q.value( 3 ).toDouble(), 2.3 ); QVERIFY( q.next() ); - QCOMPARE( q.value( 0 ).toInt(), 2 ); - QCOMPARE( q.value( 1 ).toString(), QString( "boris" ) ); - QCOMPARE( q.value( 2 ).toDateTime(), dt.addDays( -1 ) ); - QCOMPARE( q.value( 3 ).toDouble(), 3.4 ); QVERIFY( q.next() ); - QVERIFY( q.value( 0 ).isNull() ); - QVERIFY( q.value( 1 ).isNull() ); - QVERIFY( q.value( 2 ).isNull() ); - QVERIFY( q.value( 3 ).isNull() ); } @@ -2353,6 +2334,8 @@ void tst_QSqlQuery::sqlite_finish() QString tableName = qTableName( "qtest_lockedtable" ); QSqlQuery q( db ); + + tst_Databases::safeDropTable( db2, tableName ); q.exec( "CREATE TABLE " + tableName + " (pk_id INTEGER PRIMARY KEY, whatever TEXT)" ); q.exec( "INSERT INTO " + tableName + " values(1, 'whatever')" ); q.exec( "INSERT INTO " + tableName + " values(2, 'whatever more')" ); @@ -2370,7 +2353,8 @@ void tst_QSqlQuery::sqlite_finish() q.finish(); QVERIFY_SQL( q2, exec( "DELETE FROM " + tableName + " WHERE pk_id=2" ) ); QCOMPARE( q2.numRowsAffected(), 1 ); - q.exec( "DROP TABLE " + tableName ); + + tst_Databases::safeDropTable( db2, tableName ); } QSqlDatabase::removeDatabase( "sqlite_finish_sqlite" ); @@ -2583,71 +2567,47 @@ void tst_QSqlQuery::blobsPreparedQuery() QString tableName = qTableName( "blobstest" ); QSqlQuery q( db ); - q.setForwardOnly( true ); // This is needed to make the test work with DB2. - QString shortBLOB( "abc" ); - QString longerBLOB( "abcdefghijklmnopqrstuvxyz¿äëïöü¡ " ); // In PostgreSQL a BLOB is not called a BLOB, but a BYTEA! :-) // ... and in SQL Server it can be called a lot, but IMAGE will do. QString typeName( "BLOB" ); - if ( db.driverName().startsWith( "QPSQL" ) ) typeName = "BYTEA"; else if ( db.driverName().startsWith( "QODBC" ) && tst_Databases::isSqlServer( db )) typeName = "IMAGE"; QVERIFY_SQL( q, exec( QString( "CREATE TABLE %1(id INTEGER, data %2)" ).arg( tableName ).arg( typeName ) ) ); - q.prepare( QString( "INSERT INTO %1(id, data) VALUES(:id, :data)" ).arg( tableName ) ); - q.bindValue( ":id", 1 ); - q.bindValue( ":data", shortBLOB.toAscii() ); - QVERIFY_SQL( q, exec() ); q.bindValue( ":id", 2 ); - q.bindValue( ":data", longerBLOB.toAscii() ); - QVERIFY_SQL( q, exec() ); // Two executions and result sets q.prepare( QString( "SELECT data FROM %1 WHERE id = ?" ).arg( tableName ) ); - q.bindValue( 0, QVariant( 1 ) ); - QVERIFY_SQL( q, exec() ); - QVERIFY_SQL( q, next() ); - QCOMPARE( q.value( 0 ).toString(), shortBLOB ); q.bindValue( 0, QVariant( 2 ) ); - QVERIFY_SQL( q, exec() ); - QVERIFY_SQL( q, next() ); - QCOMPARE( q.value( 0 ).toString(), longerBLOB ); // Only one execution and result set q.prepare( QString( "SELECT id, data FROM %1 ORDER BY id" ).arg( tableName ) ); - QVERIFY_SQL( q, exec() ); - QVERIFY_SQL( q, next() ); - QCOMPARE( q.value( 1 ).toString(), shortBLOB ); - QVERIFY_SQL( q, next() ); - QCOMPARE( q.value( 1 ).toString(), longerBLOB ); - - q.exec( QString( "DROP TABLE %1" ).arg( tableName ) ); } // There were problems with navigating past the end of a table returning an error on mysql @@ -2799,7 +2759,6 @@ void tst_QSqlQuery::task_234422() QString tableName = qTableName( "task_234422" ); - query.exec("DROP TABLE " + tableName); QVERIFY_SQL(query,exec("CREATE TABLE " + tableName + " (id int primary key, " "name varchar(20), homecountry varchar(2))")); for (int i = 0; i < m_airlines.count(); ++i) { diff --git a/tests/auto/qsqlquerymodel/qsqlquerymodel.pro b/tests/auto/qsqlquerymodel/qsqlquerymodel.pro index 669db6e..6004ab0 100644 --- a/tests/auto/qsqlquerymodel/qsqlquerymodel.pro +++ b/tests/auto/qsqlquerymodel/qsqlquerymodel.pro @@ -5,6 +5,7 @@ QT += sql wince*: { DEPLOYMENT_PLUGIN += qsqlite + LIBS += -lws2 } else { win32:LIBS += -lws2_32 } diff --git a/tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro b/tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro index a35a56c..a25cb93 100644 --- a/tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro +++ b/tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro @@ -7,6 +7,7 @@ wince*: { plugFiles.sources = ../../../plugins/sqldrivers plugFiles.path = . DEPLOYMENT += plugFiles + LIBS += -lws2 } else { win32-g++ { LIBS += -lws2_32 diff --git a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index 5725548..1e23d3d 100644 --- a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -82,6 +82,13 @@ private slots: void insertRecordDuplicateFieldNames(); void invalidData(); void relationModel(); + void casing(); + void escapedRelations(); + void escapedTableName(); + void whiteSpaceInIdentifiers(); + +private: + void dropTestTables( QSqlDatabase db ); }; @@ -96,16 +103,9 @@ void tst_QSqlRelationalTableModel::initTestCase_data() void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db) { - QSqlQuery q(db); - - QStringList tableNames; - tableNames << qTableName( "reltest1" ) - << qTableName( "reltest2" ) - << qTableName( "reltest3" ) - << qTableName( "reltest4" ) - << qTableName( "reltest5" ); - tst_Databases::safeDropTables( db, tableNames ); + dropTestTables(db); + QSqlQuery q(db); QVERIFY_SQL( q, exec("create table " + qTableName("reltest1") + " (id int not null primary key, name varchar(20), title_key int, another_title_key int)")); QVERIFY_SQL( q, exec("insert into " + qTableName("reltest1") + " values(1, 'harry', 1, 2)")); @@ -128,28 +128,61 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db) QVERIFY_SQL( q, exec("create table " + qTableName("reltest5") + " (title varchar(20) not null primary key, abbrev varchar(20))")); QVERIFY_SQL( q, exec("insert into " + qTableName("reltest5") + " values('herr', 'Hr')")); QVERIFY_SQL( q, exec("insert into " + qTableName("reltest5") + " values('mister', 'Mr')")); + + if (testWhiteSpaceNames(db.driverName())) { + QString reltest6 = db.driver()->escapeIdentifier(qTableName("rel test6"), QSqlDriver::TableName); + QVERIFY_SQL( q, exec("create table " + reltest6 + " (id int not null primary key, " + db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName) + + " int, " + db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName) + " int)")); + QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(1, 1,9)")); + QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(2, 2,8)")); + + QString reltest7 = db.driver()->escapeIdentifier(qTableName("rel test7"), QSqlDriver::TableName); + QVERIFY_SQL( q, exec("create table " + reltest7 + " (" + db.driver()->escapeIdentifier("city id", QSqlDriver::TableName) + " int not null primary key, " + db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName) + " varchar(20))")); + QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(1, 'New York')")); + QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(2, 'Washington')")); + } } void tst_QSqlRelationalTableModel::initTestCase() { - foreach (const QString &dbname, dbs.dbNames) - recreateTestTables(QSqlDatabase::database(dbname)); + foreach (const QString &dbname, dbs.dbNames) { + QSqlDatabase db=QSqlDatabase::database(dbname); + if (db.driverName().startsWith("QIBASE")) + db.exec("SET DIALECT 3"); + else if (tst_Databases::isSqlServer(db)) { + QSqlQuery q(db); + QVERIFY_SQL(q, exec("SET ANSI_DEFAULTS ON")); + QVERIFY_SQL(q, exec("SET IMPLICIT_TRANSACTIONS OFF")); + } + recreateTestTables(db); + } } void tst_QSqlRelationalTableModel::cleanupTestCase() { - QStringList tableNames; - tableNames << qTableName( "reltest1" ) - << qTableName( "reltest2" ) - << qTableName( "reltest3" ) - << qTableName( "reltest4" ); foreach (const QString &dbName, dbs.dbNames) { QSqlDatabase db = QSqlDatabase::database(dbName); - tst_Databases::safeDropTables( db, tableNames ); + CHECK_DATABASE( db ); + dropTestTables( QSqlDatabase::database(dbName) ); } dbs.close(); } +void tst_QSqlRelationalTableModel::dropTestTables( QSqlDatabase db ) +{ + QStringList tableNames; + tableNames << qTableName( "reltest1" ) + << qTableName( "reltest2" ) + << qTableName( "reltest3" ) + << qTableName( "reltest4" ) + << qTableName( "reltest5" ) + << qTableName( "rel test6" ) + << qTableName( "rel test7" ) + << qTableName("CASETEST1" ) + << qTableName("casetest1" ); + tst_Databases::safeDropTables( db, tableNames ); +} + void tst_QSqlRelationalTableModel::init() { } @@ -273,7 +306,12 @@ void tst_QSqlRelationalTableModel::setData() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + + //sybase doesn't allow tables with the same alias used twice as col names + //so don't set up an identical relation when using the tds driver + if (!db.driverName().startsWith("QTDS")) + model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setEditStrategy(QSqlTableModel::OnManualSubmit); model.setSort(0, Qt::AscendingOrder); QVERIFY_SQL(model, select()); @@ -284,7 +322,10 @@ void tst_QSqlRelationalTableModel::setData() QCOMPARE(model.data(model.index(2, 1)).toString(), QString("vohi2")); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); QVERIFY_SQL(model, submitAll()); } @@ -299,10 +340,15 @@ void tst_QSqlRelationalTableModel::setData() QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + if (!db.driverName().startsWith("QTDS")) + model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); QVERIFY_SQL(model, select()); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); } //check setting of data when the relational key is a non-integer type @@ -336,7 +382,8 @@ void tst_QSqlRelationalTableModel::multipleRelation() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name")); + model.setSort(0, Qt::AscendingOrder); QVERIFY_SQL(model, select()); QCOMPARE(model.data(model.index(2, 0)).toInt(), 3); @@ -344,7 +391,7 @@ void tst_QSqlRelationalTableModel::multipleRelation() QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0, 3)).toString(), QString("mister")); + QCOMPARE(model.data(model.index(0, 3)).toString(), QString("Trondheim")); } void tst_QSqlRelationalTableModel::insertRecord() @@ -357,6 +404,7 @@ void tst_QSqlRelationalTableModel::insertRecord() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setSort(0, Qt::AscendingOrder); QVERIFY_SQL(model, select()); QSqlRecord rec; @@ -398,6 +446,7 @@ void tst_QSqlRelationalTableModel::setRecord() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setSort(0, Qt::AscendingOrder); QVERIFY_SQL(model, select()); QSqlRecord rec; @@ -450,13 +499,19 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setSort(0, Qt::AscendingOrder); + + if (!db.driverName().startsWith("QTDS")) + model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); QVERIFY_SQL(model, select()); QCOMPARE(model.data(model.index(0,0)).toInt(), 1); QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); + else + QCOMPARE(model.data(model.index(0,3)).toInt(), 2); model.insertRows(0, 1); model.setData(model.index(0, 0), 1011); @@ -467,12 +522,20 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,0)).toInt(), 1011); QCOMPARE(model.data(model.index(0,1)).toString(), QString("test")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister")); - QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(0,3)).toInt(), 1); QCOMPARE(model.data(model.index(1,0)).toInt(), 1); QCOMPARE(model.data(model.index(1,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(1,2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(1,3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(1,3)).toString(), QString("mister")); + else + QCOMPARE(model.data(model.index(1,3)).toInt(), 2); + + QVERIFY_SQL(model, submitAll()); @@ -481,9 +544,16 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,0)).toInt(), 1); QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); - model.setData(model.index(0,3),1); - QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); + + if (!db.driverName().startsWith("QTDS")) { + QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); + model.setData(model.index(0,3),1); + QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); + } else { + QCOMPARE(model.data(model.index(0,3)).toInt(), 2); + model.setData(model.index(0,3),1); + QCOMPARE(model.data(model.index(0,3)).toInt(), 1); + } model.insertRows(0, 2); model.setData(model.index(0, 0), 1012); @@ -499,17 +569,27 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,0)).toInt(),1012); QCOMPARE(model.data(model.index(0,1)).toString(), QString("george")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister")); - QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); + else + QCOMPARE(model.data(model.index(0,3)).toInt(), 2); + QCOMPARE(model.data(model.index(1,0)).toInt(),1013); QCOMPARE(model.data(model.index(1,1)).toString(), QString("kramer")); QCOMPARE(model.data(model.index(1,2)).toString(), QString("mister")); - QCOMPARE(model.data(model.index(1,3)).toString(), QString("herr")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(1,3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(1,3)).toInt(), 1); QCOMPARE(model.data(model.index(2,0)).toInt(), 1); QCOMPARE(model.data(model.index(2,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(2,2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(2,3)).toString(), QString("herr")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(2,3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(2,3)).toInt(), 1); QVERIFY_SQL(model, submitAll()); } @@ -574,7 +654,8 @@ void tst_QSqlRelationalTableModel::sort() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + if (!db.driverName().startsWith("QTDS")) + model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); model.setSort(2, Qt::DescendingOrder); QVERIFY_SQL(model, select()); @@ -589,11 +670,19 @@ void tst_QSqlRelationalTableModel::sort() model.setSort(3, Qt::AscendingOrder); QVERIFY_SQL(model, select()); - QCOMPARE(model.rowCount(), 4); - QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(1, 3)).toString(), QString("mister")); - QCOMPARE(model.data(model.index(2, 3)).toString(), QString("mister")); - QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) { + QCOMPARE(model.rowCount(), 4); + QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + QCOMPARE(model.data(model.index(1, 3)).toString(), QString("mister")); + QCOMPARE(model.data(model.index(2, 3)).toString(), QString("mister")); + QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister")); + } else { + QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); + QCOMPARE(model.data(model.index(1, 3)).toInt(), 2); + QCOMPARE(model.data(model.index(2, 3)).toInt(), 2); + QCOMPARE(model.data(model.index(3, 3)).toInt(), 2); + } + } static void testRevert(QSqlRelationalTableModel &model) @@ -663,7 +752,7 @@ void tst_QSqlRelationalTableModel::revert() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name")); model.setSort(0, Qt::AscendingOrder); @@ -689,7 +778,9 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() model.setTable(qTableName("reltest1")); model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + + if (!db.driverName().startsWith("QTDS")) + model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); model.setSort(1, Qt::AscendingOrder); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -698,7 +789,10 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QCOMPARE(model.data(model.index(3, 0)).toInt(), 3); QCOMPARE(model.data(model.index(3, 1)).toString(), QString("vohi")); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister")); + else + QCOMPARE(model.data(model.index(3, 3)).toInt(), 2 ); model.insertRow(model.rowCount()); QVERIFY(model.setData(model.index(4, 0), 5, Qt::EditRole)); @@ -710,11 +804,18 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QCOMPARE(model.data(model.index(0, 0)).toInt(), 5); QCOMPARE(model.data(model.index(0, 1)).toString(), QString("anders")); QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); + else + QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); + QCOMPARE(model.data(model.index(4, 0)).toInt(), 3); QCOMPARE(model.data(model.index(4, 1)).toString(), QString("vohi")); QCOMPARE(model.data(model.index(4, 2)).toString(), QString("herr")); - QCOMPARE(model.data(model.index(4, 3)).toString(), QString("mister")); + if (!db.driverName().startsWith("QTDS")) + QCOMPARE(model.data(model.index(4, 3)).toString(), QString("mister")); + else + QCOMPARE(model.data(model.index(4, 3)).toInt(), 2); } // For task 140782 and 176374: If the main table and the the related tables uses the same @@ -729,27 +830,38 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() QSqlRelationalTableModel model(0, db); model.setTable(qTableName("reltest3")); model.setEditStrategy(QSqlTableModel::OnManualSubmit); + model.setSort(0, Qt::AscendingOrder); // Duplication of "name", used in both reltest3 and reltest4. model.setRelation(2, QSqlRelation(qTableName("reltest4"), "id", "name")); QVERIFY_SQL(model, select()); - QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name"))).toString(), + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name")).toUpper()).toString(), QString("Trondheim")); + } else { + QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name"))).toString(), + QString("Trondheim")); + } QSqlRecord rec = model.record(); rec.setValue(0, 3); rec.setValue(1, "Berge"); rec.setValue(2, 1); // Must insert the key value - QCOMPARE(rec.fieldName(0), QLatin1String("id")); - QCOMPARE(rec.fieldName(1), QLatin1String("name")); // This comes from main table + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + QCOMPARE(rec.fieldName(0), QLatin1String("ID")); + QCOMPARE(rec.fieldName(1), QLatin1String("NAME")); // This comes from main table + } else { + QCOMPARE(rec.fieldName(0), QLatin1String("id")); + QCOMPARE(rec.fieldName(1), QLatin1String("name")); + } // The duplicate field names is aliased because it's comes from the relation's display column. - if(!db.driverName().startsWith("QIBASE")) - QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name"))); - else + if(db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) QCOMPARE(rec.fieldName(2), (qTableName("reltest4").append(QLatin1String("_name"))).toUpper()); + else + QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name"))); QVERIFY(model.insertRecord(-1, rec)); QCOMPARE(model.data(model.index(2, 2)).toString(), QString("Oslo")); @@ -793,7 +905,7 @@ void tst_QSqlRelationalTableModel::relationModel() QVERIFY(model.relationModel(3) == NULL); QVERIFY(model.relationModel(4) == NULL); - model.setRelation(3, QSqlRelation(qTableName("reltest2"), "tid", "title")); + model.setRelation(3, QSqlRelation(qTableName("reltest4"), "id", "name")); QVERIFY_SQL(model, select()); QVERIFY(model.relationModel(0) == NULL); @@ -806,5 +918,278 @@ void tst_QSqlRelationalTableModel::relationModel() QCOMPARE(rel_model->data(rel_model->index(0,1)).toString(), QString("herr")); } +void tst_QSqlRelationalTableModel::casing() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + if (db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QIBASE") || tst_Databases::isSqlServer(db)) + QSKIP("The casing test for this database is irrelevant since this database does not treat different cases as separate entities", SkipAll); + + QSqlQuery q(db); + QVERIFY_SQL( q, exec("create table " + qTableName("CASETEST1", db.driver()).toUpper() + + " (id int not null primary key, name varchar(20), title_key int, another_title_key int)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(1, 'harry', 1, 2)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(2, 'trond', 2, 1)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(3, 'vohi', 1, 2)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("CASETEST1", db.driver()).toUpper() + " values(4, 'boris', 2, 2)")); + + QVERIFY_SQL( q, exec("create table " + qTableName("casetest1", db.driver()) + + " (ident int not null primary key, name varchar(20), title_key int)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(1, 'jerry', 1)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(2, 'george', 2)")); + QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db.driver()) + " values(4, 'kramer', 2)")); + + if (db.driverName().startsWith("QOCI")) { + //try an owner that doesn't exist + QSqlRecord rec = db.driver()->record("doug." + qTableName("CASETEST1", db.driver()).toUpper()); + QCOMPARE( rec.count(), 0); + + //try an owner that does exist + rec = db.driver()->record(db.userName() + "." + qTableName("CASETEST1", db.driver()).toUpper()); + QCOMPARE( rec.count(), 4); + } + QSqlRecord rec = db.driver()->record(qTableName("CASETEST1", db.driver()).toUpper()); + QCOMPARE( rec.count(), 4); + + rec = db.driver()->record(qTableName("casetest1", db.driver())); + QCOMPARE( rec.count(), 3); + + QSqlTableModel upperCaseModel(0, db); + upperCaseModel.setTable(qTableName("CASETEST1", db.driver()).toUpper()); + + QCOMPARE(upperCaseModel.tableName(),qTableName("CASETEST1",db.driver()).toUpper()); + + QVERIFY_SQL(upperCaseModel, select()); + + QCOMPARE(upperCaseModel.rowCount(), 4); + + QSqlTableModel lowerCaseModel(0, db); + lowerCaseModel.setTable(qTableName("casetest1", db.driver())); + QCOMPARE(lowerCaseModel.tableName(), qTableName("casetest1",db.driver())); + QVERIFY_SQL(lowerCaseModel, select()); + + QCOMPARE(lowerCaseModel.rowCount(), 3); + + QSqlRelationalTableModel model(0, db); + model.setTable(qTableName("CASETEST1", db.driver()).toUpper()); + model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); +} + +void tst_QSqlRelationalTableModel::escapedRelations() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + recreateTestTables(db); + + QSqlRelationalTableModel model(0, db); + model.setTable(qTableName("reltest1")); + + //try with relation table name quoted + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + model.setRelation(2, QSqlRelation(db.driver()->escapeIdentifier(qTableName("reltest2").toUpper(),QSqlDriver::TableName), + "tid", + "title")); + } else { + model.setRelation(2, QSqlRelation(db.driver()->escapeIdentifier(qTableName("reltest2"),QSqlDriver::TableName), + "tid", + "title")); + + } + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); + + //try with index column quoted + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + db.driver()->escapeIdentifier("tid", QSqlDriver::FieldName).toUpper(), + "title")); + } else { + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + db.driver()->escapeIdentifier("tid", QSqlDriver::FieldName), + "title")); + } + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); + + //try with display column quoted + + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + "tid", + db.driver()->escapeIdentifier("title", QSqlDriver::FieldName).toUpper())); + } else { + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + "tid", + db.driver()->escapeIdentifier("title", QSqlDriver::FieldName))); + } + + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); + + //try with tablename and index and display columns quoted in the relation + + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + "tid", + db.driver()->escapeIdentifier("title", QSqlDriver::FieldName).toUpper())); + } else { + model.setRelation(2, QSqlRelation(qTableName("reltest2"), + "tid", + db.driver()->escapeIdentifier("title", QSqlDriver::FieldName))); + } + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 1); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); +} + +void tst_QSqlRelationalTableModel::escapedTableName() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + // set the values using OnRowChange Strategy with an escaped tablename + { + QSqlRelationalTableModel model(0, db); + + if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + model.setTable(db.driver()->escapeIdentifier(qTableName("reltest1").toUpper(), QSqlDriver::TableName)); + } else { + model.setTable(db.driver()->escapeIdentifier(qTableName("reltest1"), QSqlDriver::TableName)); + } + model.setSort(0, Qt::AscendingOrder); + model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); + QVERIFY_SQL(model, select()); + + QVERIFY(model.setData(model.index(0, 1), QString("harry2"))); + QVERIFY(model.setData(model.index(0, 2), 2)); + + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry2")); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("mister")); + + model.submit(); + + QVERIFY(model.setData(model.index(3,1), QString("boris2"))); + QVERIFY(model.setData(model.index(3, 2), 1)); + + QCOMPARE(model.data(model.index(3,1)).toString(), QString("boris2")); + QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); + + model.submit(); + } + { //verify values + QSqlRelationalTableModel model(0, db); + model.setTable(qTableName("reltest1")); + model.setSort(0, Qt::AscendingOrder); + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry2")); + QCOMPARE(model.data(model.index(0, 2)).toInt(), 2); + QCOMPARE(model.data(model.index(3, 1)).toString(), QString("boris2")); + QCOMPARE(model.data(model.index(3, 2)).toInt(), 1); + + model.setRelation(2, QSqlRelation(qTableName("reltest2"), "tid", "title")); + QVERIFY_SQL(model, select()); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("mister")); + QCOMPARE(model.data(model.index(3,2)).toString(), QString("herr")); + + } +} + +void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() { + + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + if (!testWhiteSpaceNames(db.driverName())) + QSKIP("White space test irrelevant for driver", SkipAll); + QSqlRelationalTableModel model(0, db); + model.setTable(db.driver()->escapeIdentifier(qTableName("rel test6"), QSqlDriver::TableName)); + model.setSort(0, Qt::DescendingOrder); + model.setRelation(1, QSqlRelation(db.driver()->escapeIdentifier(qTableName("rel test7"), QSqlDriver::TableName), + db.driver()->escapeIdentifier("city id", QSqlDriver::FieldName), + db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName))); + QVERIFY_SQL(model, select()); + + QCOMPARE(model.data(model.index(0,1)).toString(), QString("Washington")); + QCOMPARE(model.data(model.index(1,1)).toString(), QString("New York")); + + QSqlRecord rec; + QSqlField f1("id", QVariant::Int); + QSqlField f2(db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName), QVariant::Int); + QSqlField f3(db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName), QVariant::Int); + + f1.setValue(3); + f2.setValue(2); + f3.setValue(7); + + f1.setGenerated(true); + f2.setGenerated(true); + f3.setGenerated(true); + + rec.append(f1); + rec.append(f2); + rec.append(f3); + + QVERIFY_SQL(model, insertRecord(-1, rec)); + model.submitAll(); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 3); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("Washington")); + QCOMPARE(model.data(model.index(0, 2)).toInt(), 7); + + //TODO: For some reson setting a record using manual submit fails + //model.setEditStrategy(QSqlTableModel::OnManualSubmit); + + QSqlRecord recNew; + QSqlField f1New("id", QVariant::Int); + QSqlField f2New(db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName), QVariant::Int); + QSqlField f3New(db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName), QVariant::Int); + + f1New.setValue(4); + f2New.setValue(1); + f3New.setValue(6); + + f1New.setGenerated(true); + f2New.setGenerated(true); + f3New.setGenerated(true); + + recNew.append(f1New); + recNew.append(f2New); + recNew.append(f3New); + + QVERIFY_SQL(model, setRecord(0, recNew)); + + QCOMPARE(model.data(model.index(0, 0)).toInt(), 4); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York")); + QCOMPARE(model.data(model.index(0, 2)).toInt(), 6); + + QVERIFY_SQL(model, submitAll()); + QCOMPARE(model.data(model.index(0, 0)).toInt(), 4); + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York")); + QCOMPARE(model.data(model.index(0, 2)).toInt(), 6); +} + QTEST_MAIN(tst_QSqlRelationalTableModel) #include "tst_qsqlrelationaltablemodel.moc" diff --git a/tests/auto/qsqltablemodel/qsqltablemodel.pro b/tests/auto/qsqltablemodel/qsqltablemodel.pro index cf5fbea..170862e 100644 --- a/tests/auto/qsqltablemodel/qsqltablemodel.pro +++ b/tests/auto/qsqltablemodel/qsqltablemodel.pro @@ -6,7 +6,8 @@ QT += sql wince*: { plugFiles.sources = ../../../plugins/sqldrivers plugFiles.path = . - DEPLOYMENT += plugFiles + DEPLOYMENT += plugFiles + LIBS += -lws2 } else { win32:LIBS += -lws2_32 } diff --git a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp index ded29d7..576c190 100644 --- a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp +++ b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp @@ -148,7 +148,7 @@ void tst_QSqlTableModel::dropTestTables() << qTableName("bigtable") << qTableName("foo"); if (testWhiteSpaceNames(db.driverName())) - tableNames << qTableName("qtestw hitespace"); + tableNames << qTableName("qtestw hitespace", db.driver()); tst_Databases::safeDropTables(db, tableNames); @@ -282,6 +282,7 @@ void tst_QSqlTableModel::setRecord() QList<QSqlTableModel::EditStrategy> policies = QList<QSqlTableModel::EditStrategy>() << QSqlTableModel::OnFieldChange << QSqlTableModel::OnRowChange << QSqlTableModel::OnManualSubmit; + QString Xsuffix; foreach( QSqlTableModel::EditStrategy submitpolicy, policies) { QSqlTableModel model(0, db); @@ -300,6 +301,8 @@ void tst_QSqlTableModel::setRecord() if ((QSqlTableModel::EditStrategy)submitpolicy == QSqlTableModel::OnManualSubmit) QVERIFY(model.submitAll()); + else if ((QSqlTableModel::EditStrategy)submitpolicy == QSqlTableModel::OnRowChange && i == model.rowCount() -1) + model.submit(); else { // dataChanged() is not emitted when submitAll() is called QCOMPARE(spy.count(), 2); @@ -309,10 +312,12 @@ void tst_QSqlTableModel::setRecord() } } - QCOMPARE(model.data(model.index(0, 1)).toString(), QString("fooX")); - QCOMPARE(model.data(model.index(0, 2)).toString(), QString("barX")); - QCOMPARE(model.data(model.index(1, 1)).toString(), QString("bazX")); - QCOMPARE(model.data(model.index(1, 2)).toString(), QString("joeX")); + Xsuffix.append('X'); + + QCOMPARE(model.data(model.index(0, 1)).toString(), QString("foo").append(Xsuffix)); + QCOMPARE(model.data(model.index(0, 2)).toString(), QString("bar").append(Xsuffix)); + QCOMPARE(model.data(model.index(1, 1)).toString(), QString("baz").append(Xsuffix)); + QCOMPARE(model.data(model.index(1, 2)).toString(), QString("joe").append(Xsuffix)); } } @@ -899,7 +904,7 @@ void tst_QSqlTableModel::sqlite_attachedDatabase() QVERIFY_SQL( q, exec("INSERT INTO atest2 VALUES(2, 'attached-atest2')")); QSqlQuery q2(db); - tst_Databases::safeDropTables(db, QStringList() << "atest"); + tst_Databases::safeDropTable(db, "atest"); QVERIFY_SQL(q2, exec("CREATE TABLE atest(id int, text varchar(20))")); QVERIFY_SQL(q2, exec("INSERT INTO atest VALUES(3, 'main')")); QVERIFY_SQL(q2, exec("ATTACH DATABASE \""+attachedDb.databaseName()+"\" as adb")); diff --git a/tests/auto/qsqlthread/qsqlthread.pro b/tests/auto/qsqlthread/qsqlthread.pro index 23aa598..9049f4c 100644 --- a/tests/auto/qsqlthread/qsqlthread.pro +++ b/tests/auto/qsqlthread/qsqlthread.pro @@ -7,7 +7,8 @@ QT = core sql wince*: { plugFiles.sources = ../../../plugins/sqldrivers plugFiles.path = . - DEPLOYMENT += plugFiles + DEPLOYMENT += plugFiles + LIBS += -lws2 } else { win32:LIBS += -lws2_32 } diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index 6cc6c00..23eee29 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -133,6 +133,7 @@ private slots: void addCaCertificates2(); void ciphers(); void connectToHostEncrypted(); + void connectToHostEncryptedWithVerificationPeerName(); void sessionCipher(); void flush(); void isEncrypted(); @@ -172,6 +173,10 @@ private slots: void disconnectFromHostWhenConnecting(); void disconnectFromHostWhenConnected(); void resetProxy(); + void ignoreSslErrorsList_data(); + void ignoreSslErrorsList(); + void ignoreSslErrorsListWithSlot_data(); + void ignoreSslErrorsListWithSlot(); static void exitLoop() { @@ -193,9 +198,11 @@ protected slots: if (errors.size() == 1 && errors.first().error() == QSslError::CertificateUntrusted) socket->ignoreSslErrors(); } + void ignoreErrorListSlot(const QList<QSslError> &errors); private: QSslSocket *socket; + QList<QSslError> storedExpectedSslErrors; #endif // QT_NO_OPENSSL private: static int loopLevel; @@ -600,6 +607,32 @@ void tst_QSslSocket::connectToHostEncrypted() QVERIFY(socket->waitForDisconnected()); } +void tst_QSslSocket::connectToHostEncryptedWithVerificationPeerName() +{ + if (!QSslSocket::supportsSsl()) + return; + + QSslSocketPtr socket = newSocket(); + this->socket = socket; + + socket->addCaCertificates(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); +#ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND + connect(&socket, SIGNAL(sslErrors(QList<QSslError>)), + this, SLOT(untrustedWorkaroundSlot(QList<QSslError>))); +#endif + + // connect to the server with its local name, but use the full name for verification. + socket->connectToHostEncrypted(QtNetworkSettings::serverLocalName(), 443, QtNetworkSettings::serverName()); + + // This should pass unconditionally when using fluke's CA certificate. + QVERIFY2(socket->waitForEncrypted(10000), qPrintable(socket->errorString())); + + socket->disconnectFromHost(); + QVERIFY(socket->waitForDisconnected()); + + QCOMPARE(socket->mode(), QSslSocket::SslClientMode); +} + void tst_QSslSocket::sessionCipher() { if (!QSslSocket::supportsSsl()) @@ -1262,6 +1295,8 @@ protected: // delayed start of encryption QTest::qSleep(100); QSslSocket *socket = server.socket; + Q_ASSERT(socket); + Q_ASSERT(socket->isValid()); socket->ignoreSslErrors(); socket->startServerEncryption(); if (!socket->waitForEncrypted(2000)) @@ -1508,6 +1543,82 @@ void tst_QSslSocket::resetProxy() QVERIFY2(socket2.waitForConnected(10000), qPrintable(socket.errorString())); } +void tst_QSslSocket::ignoreSslErrorsList_data() +{ + QTest::addColumn<QList<QSslError> >("expectedSslErrors"); + QTest::addColumn<int>("expectedSslErrorSignalCount"); + + // construct the list of errors that we will get with the SSL handshake and that we will ignore + QList<QSslError> expectedSslErrors; + // fromPath gives us a list of certs, but it actually only contains one + QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + QSslError rightError(QSslError::SelfSignedCertificate, certs.at(0)); + QSslError wrongError(QSslError::SelfSignedCertificate); + + + QTest::newRow("SSL-failure-empty-list") << expectedSslErrors << 1; + expectedSslErrors.append(wrongError); + QTest::newRow("SSL-failure-wrong-error") << expectedSslErrors << 1; + expectedSslErrors.append(rightError); + QTest::newRow("allErrorsInExpectedList1") << expectedSslErrors << 0; + expectedSslErrors.removeAll(wrongError); + QTest::newRow("allErrorsInExpectedList2") << expectedSslErrors << 0; + expectedSslErrors.removeAll(rightError); + QTest::newRow("SSL-failure-empty-list-again") << expectedSslErrors << 1; +} + +void tst_QSslSocket::ignoreSslErrorsList() +{ + QSslSocket socket; + connect(&socket, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), + this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + +// this->socket = &socket; + QSslCertificate cert; + + QFETCH(QList<QSslError>, expectedSslErrors); + socket.ignoreSslErrors(expectedSslErrors); + + QFETCH(int, expectedSslErrorSignalCount); + QSignalSpy sslErrorsSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError))); + + socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 443); + + bool expectEncryptionSuccess = (expectedSslErrorSignalCount == 0); + QCOMPARE(socket.waitForEncrypted(10000), expectEncryptionSuccess); + QCOMPARE(sslErrorsSpy.count(), expectedSslErrorSignalCount); +} + +void tst_QSslSocket::ignoreSslErrorsListWithSlot_data() +{ + ignoreSslErrorsList_data(); +} + +// this is not a test, just a slot called in the test below +void tst_QSslSocket::ignoreErrorListSlot(const QList<QSslError> &) +{ + socket->ignoreSslErrors(storedExpectedSslErrors); +} + +void tst_QSslSocket::ignoreSslErrorsListWithSlot() +{ + QSslSocket socket; + this->socket = &socket; + + QFETCH(QList<QSslError>, expectedSslErrors); + // store the errors to ignore them later in the slot connected below + storedExpectedSslErrors = expectedSslErrors; + connect(&socket, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), + this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); + connect(&socket, SIGNAL(sslErrors(const QList<QSslError> &)), + this, SLOT(ignoreErrorListSlot(const QList<QSslError> &))); + socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 443); + + QFETCH(int, expectedSslErrorSignalCount); + bool expectEncryptionSuccess = (expectedSslErrorSignalCount == 0); + QCOMPARE(socket.waitForEncrypted(10000), expectEncryptionSuccess); +} + #endif // QT_NO_OPENSSL QTEST_MAIN(tst_QSslSocket) diff --git a/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp index c23cfc0..fba7b1b 100644 --- a/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp +++ b/tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp @@ -135,6 +135,7 @@ private slots: void rootItemFlags(); void treeDragAndDrop(); + void removeRowsAndColumns(); private: QAbstractItemModel *m_model; @@ -1403,7 +1404,7 @@ bool tst_QStandardItemModel::compareItems(QStandardItem *item1, QStandardItem *i return true; if (!item1 || !item2) return false; - if (item1->text() != item2->text()){ + if (item1->text() != item2->text()){ qDebug() << item1->text() << item2->text(); return false; } @@ -1453,6 +1454,7 @@ static QStandardItem *itemFromText(QStandardItem *parent, const QString &text) return item; } +#ifdef QT_BUILD_INTERNAL static QModelIndex indexFromText(QStandardItemModel *model, const QString &text) { QStandardItem *item = itemFromText(model->invisibleRootItem(), text); @@ -1466,9 +1468,11 @@ struct FriendlyTreeView : public QTreeView friend class tst_QStandardItemModel; Q_DECLARE_PRIVATE(QTreeView) }; +#endif void tst_QStandardItemModel::treeDragAndDrop() { +#ifdef QT_BUILD_INTERNAL const int nRow = 5; const int nCol = 3; @@ -1604,6 +1608,53 @@ void tst_QStandardItemModel::treeDragAndDrop() QVERIFY(compareModels(&model, &checkModel)); } +#endif +} + +void tst_QStandardItemModel::removeRowsAndColumns() +{ +#define VERIFY_MODEL \ + for (int c = 0; c < col_list.count(); c++) \ + for (int r = 0; r < row_list.count(); r++) \ + QCOMPARE(model.item(r,c)->text() , row_list[r] + "x" + col_list[c]); + + QVector<QString> row_list = QString("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20").split(',').toVector(); + QVector<QString> col_list = row_list; + QStandardItemModel model; + for (int c = 0; c < col_list.count(); c++) + for (int r = 0; r < row_list.count(); r++) + model.setItem(r, c, new QStandardItem(row_list[r] + "x" + col_list[c])); + VERIFY_MODEL + + row_list.remove(3); + model.removeRow(3); + VERIFY_MODEL + + col_list.remove(5); + model.removeColumn(5); + VERIFY_MODEL + + row_list.remove(2, 5); + model.removeRows(2, 5); + VERIFY_MODEL + + col_list.remove(1, 6); + model.removeColumns(1, 6); + VERIFY_MODEL + + QList<QStandardItem *> row_taken = model.takeRow(6); + QCOMPARE(row_taken.count(), col_list.count()); + for (int c = 0; c < col_list.count(); c++) + QCOMPARE(row_taken[c]->text() , row_list[6] + "x" + col_list[c]); + row_list.remove(6); + VERIFY_MODEL + + QList<QStandardItem *> col_taken = model.takeColumn(10); + QCOMPARE(col_taken.count(), row_list.count()); + for (int r = 0; r < row_list.count(); r++) + QCOMPARE(col_taken[r]->text() , row_list[r] + "x" + col_list[10]); + col_list.remove(10); + VERIFY_MODEL } diff --git a/tests/auto/qstate/qstate.pro b/tests/auto/qstate/qstate.pro new file mode 100644 index 0000000..9131fa8 --- /dev/null +++ b/tests/auto/qstate/qstate.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +QT = core +SOURCES += tst_qstate.cpp + + diff --git a/tests/auto/qstate/tst_qstate.cpp b/tests/auto/qstate/tst_qstate.cpp new file mode 100644 index 0000000..78b9853 --- /dev/null +++ b/tests/auto/qstate/tst_qstate.cpp @@ -0,0 +1,340 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include "qstate.h" +#include "qstatemachine.h" +#include "qsignaltransition.h" + +// Will try to wait for the condition while allowing event processing +#define QTRY_COMPARE(__expr, __expected) \ + do { \ + const int __step = 50; \ + const int __timeout = 5000; \ + if ((__expr) != (__expected)) { \ + QTest::qWait(0); \ + } \ + for (int __i = 0; __i < __timeout && ((__expr) != (__expected)); __i+=__step) { \ + QTest::qWait(__step); \ + } \ + QCOMPARE(__expr, __expected); \ + } while(0) + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QState : public QObject +{ + Q_OBJECT + +public: + tst_QState(); + virtual ~tst_QState(); + +private slots: +#if 0 + void test(); +#endif + void assignProperty(); + void assignPropertyTwice(); + void historyInitialState(); + +private: + bool functionCalled; +}; + +tst_QState::tst_QState() : functionCalled(false) +{ +} + +tst_QState::~tst_QState() +{ +} + +#if 0 +void tst_QState::test() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + + QCOMPARE(s1->machine(), &machine); + QCOMPARE(s1->parentState(), &machine); + QCOMPARE(s1->initialState(), (QState*)0); + QVERIFY(s1->childStates().isEmpty()); + QVERIFY(s1->transitions().isEmpty()); + + QCOMPARE(s1->isFinal(), false); + s1->setFinal(true); + QCOMPARE(s1->isFinal(), true); + s1->setFinal(false); + QCOMPARE(s1->isFinal(), false); + + QCOMPARE(s1->isParallel(), false); + s1->setParallel(true); + QCOMPARE(s1->isParallel(), true); + s1->setParallel(false); + QCOMPARE(s1->isParallel(), false); + + QCOMPARE(s1->isAtomic(), true); + QCOMPARE(s1->isCompound(), false); + QCOMPARE(s1->isComplex(), false); + + QState *s11 = new QState(s1); + QCOMPARE(s11->parentState(), s1); + QCOMPARE(s11->isAtomic(), true); + QCOMPARE(s11->isCompound(), false); + QCOMPARE(s11->isComplex(), false); + QCOMPARE(s11->machine(), s1->machine()); + QVERIFY(s11->isDescendantOf(s1)); + + QCOMPARE(s1->initialState(), (QState*)0); + QCOMPARE(s1->childStates().size(), 1); + QCOMPARE(s1->childStates().at(0), s11); + + QCOMPARE(s1->isAtomic(), false); + QCOMPARE(s1->isCompound(), true); + QCOMPARE(s1->isComplex(), true); + + s1->setParallel(true); + QCOMPARE(s1->isAtomic(), false); + QCOMPARE(s1->isCompound(), false); + QCOMPARE(s1->isComplex(), true); + + QState *s12 = new QState(s1); + QCOMPARE(s12->parentState(), s1); + QCOMPARE(s12->isAtomic(), true); + QCOMPARE(s12->isCompound(), false); + QCOMPARE(s12->isComplex(), false); + QCOMPARE(s12->machine(), s1->machine()); + QVERIFY(s12->isDescendantOf(s1)); + QVERIFY(!s12->isDescendantOf(s11)); + + QCOMPARE(s1->initialState(), (QState*)0); + QCOMPARE(s1->childStates().size(), 2); + QCOMPARE(s1->childStates().at(0), s11); + QCOMPARE(s1->childStates().at(1), s12); + + QCOMPARE(s1->isAtomic(), false); + QCOMPARE(s1->isCompound(), false); + QCOMPARE(s1->isComplex(), true); + + s1->setParallel(false); + QCOMPARE(s1->isAtomic(), false); + QCOMPARE(s1->isCompound(), true); + QCOMPARE(s1->isComplex(), true); + + s1->setInitialState(s11); + QCOMPARE(s1->initialState(), s11); + + s1->setInitialState(0); + QCOMPARE(s1->initialState(), (QState*)0); + + s1->setInitialState(s12); + QCOMPARE(s1->initialState(), s12); + + QState *s13 = new QState(); + s1->setInitialState(s13); + QCOMPARE(s13->parentState(), s1); + QCOMPARE(s1->childStates().size(), 3); + QCOMPARE(s1->childStates().at(0), s11); + QCOMPARE(s1->childStates().at(1), s12); + QCOMPARE(s1->childStates().at(2), s13); + QVERIFY(s13->isDescendantOf(s1)); + + QVERIFY(s12->childStates().isEmpty()); + + QState *s121 = new QState(s12); + QCOMPARE(s121->parentState(), s12); + QCOMPARE(s121->isAtomic(), true); + QCOMPARE(s121->isCompound(), false); + QCOMPARE(s121->isComplex(), false); + QCOMPARE(s121->machine(), s12->machine()); + QVERIFY(s121->isDescendantOf(s12)); + QVERIFY(s121->isDescendantOf(s1)); + QVERIFY(!s121->isDescendantOf(s11)); + + QCOMPARE(s12->childStates().size(), 1); + QCOMPARE(s12->childStates().at(0), (QState*)s121); + + QCOMPARE(s1->childStates().size(), 3); + QCOMPARE(s1->childStates().at(0), s11); + QCOMPARE(s1->childStates().at(1), s12); + QCOMPARE(s1->childStates().at(2), s13); + + s11->addTransition(s12); + QCOMPARE(s11->transitions().size(), 1); + QCOMPARE(s11->transitions().at(0)->sourceState(), s11); + QCOMPARE(s11->transitions().at(0)->targetStates().size(), 1); + QCOMPARE(s11->transitions().at(0)->targetStates().at(0), s12); + QCOMPARE(s11->transitions().at(0)->eventType(), QEvent::None); + + QState *s14 = new QState(); + s12->addTransition(QList<QState*>() << s13 << s14); + QCOMPARE(s12->transitions().size(), 1); + QCOMPARE(s12->transitions().at(0)->sourceState(), s12); + QCOMPARE(s12->transitions().at(0)->targetStates().size(), 2); + QCOMPARE(s12->transitions().at(0)->targetStates().at(0), s13); + QCOMPARE(s12->transitions().at(0)->targetStates().at(1), s14); + QCOMPARE(s12->transitions().at(0)->eventType(), QEvent::None); + + s13->addTransition(this, SIGNAL(destroyed()), s14); + QCOMPARE(s13->transitions().size(), 1); + QCOMPARE(s13->transitions().at(0)->sourceState(), s13); + QCOMPARE(s13->transitions().at(0)->targetStates().size(), 1); + QCOMPARE(s13->transitions().at(0)->targetStates().at(0), s14); + QCOMPARE(s13->transitions().at(0)->eventType(), QEvent::Signal); + QVERIFY(qobject_cast<QSignalTransition*>(s13->transitions().at(0)) != 0); + + delete s13->transitions().at(0); + QCOMPARE(s13->transitions().size(), 0); + + s12->addTransition(this, SIGNAL(destroyed()), s11); + QCOMPARE(s12->transitions().size(), 2); +} +#endif + +class TestClass: public QObject +{ + Q_OBJECT +public: + TestClass() : called(false) {} + bool called; + +public slots: + void slot() { called = true; } + + +}; + +void tst_QState::assignProperty() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("fooBar", 10); + + QState *s1 = new QState(&machine); + s1->assignProperty(object, "fooBar", 20); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("fooBar").toInt(), 20); +} + +void tst_QState::assignPropertyTwice() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("fooBar", 10); + + QState *s1 = new QState(&machine); + s1->assignProperty(object, "fooBar", 20); + s1->assignProperty(object, "fooBar", 30); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("fooBar").toInt(), 30); +} + +class EventTestTransition: public QAbstractTransition +{ +public: + EventTestTransition(QEvent::Type type, QState *targetState) + : QAbstractTransition(QList<QAbstractState*>() << targetState), m_type(type) + { + } + +protected: + bool eventTest(QEvent *e) + { + return e->type() == m_type; + } + + void onTransition(QEvent *) {} + +private: + QEvent::Type m_type; + +}; + +void tst_QState::historyInitialState() +{ + QStateMachine machine; + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + QHistoryState *h1 = new QHistoryState(s2); + + s2->setInitialState(h1); + + QState *s3 = new QState(s2); + h1->setDefaultState(s3); + + QState *s4 = new QState(s2); + + s1->addTransition(new EventTestTransition(QEvent::User, s2)); + s2->addTransition(new EventTestTransition(QEvent::User, s1)); + s3->addTransition(new EventTestTransition(QEvent::Type(QEvent::User+1), s4)); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s3)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s3)); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User+1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s4)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s4)); +} + + +QTEST_MAIN(tst_QState) +#include "tst_qstate.moc" diff --git a/tests/auto/qstatemachine/qstatemachine.pro b/tests/auto/qstatemachine/qstatemachine.pro new file mode 100644 index 0000000..e5b32b5 --- /dev/null +++ b/tests/auto/qstatemachine/qstatemachine.pro @@ -0,0 +1,4 @@ +load(qttest_p4) +QT = core gui +SOURCES += tst_qstatemachine.cpp + diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp new file mode 100644 index 0000000..7f4d9f5 --- /dev/null +++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp @@ -0,0 +1,3904 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtCore/QCoreApplication> +#include <QtGui/QPushButton> + +#include "qstatemachine.h" +#include "qstate.h" +#include "qhistorystate.h" +#include "qkeyeventtransition.h" +#include "qmouseeventtransition.h" +#include "private/qstate_p.h" +#include "private/qstatemachine_p.h" + +// Will try to wait for the condition while allowing event processing +#define QTRY_COMPARE(__expr, __expected) \ + do { \ + const int __step = 50; \ + const int __timeout = 5000; \ + if ((__expr) != (__expected)) { \ + QTest::qWait(0); \ + } \ + for (int __i = 0; __i < __timeout && ((__expr) != (__expected)); __i+=__step) { \ + QTest::qWait(__step); \ + } \ + QCOMPARE(__expr, __expected); \ + } while(0) + +//TESTED_CLASS= +//TESTED_FILES= + +static int globalTick; + +// Run exec for a maximum of TIMEOUT msecs +#define QCOREAPPLICATION_EXEC(TIMEOUT) \ +{ \ + QTimer timer; \ + timer.setSingleShot(true); \ + timer.setInterval(TIMEOUT); \ + timer.start(); \ + connect(&timer, SIGNAL(timeout()), QCoreApplication::instance(), SLOT(quit())); \ + QCoreApplication::exec(); \ +} + +class SignalEmitter : public QObject +{ +Q_OBJECT + public: + SignalEmitter(QObject *parent = 0) + : QObject(parent) {} + void emitSignalWithNoArg() + { emit signalWithNoArg(); } + void emitSignalWithIntArg(int arg) + { emit signalWithIntArg(arg); } + void emitSignalWithStringArg(const QString &arg) + { emit signalWithStringArg(arg); } +Q_SIGNALS: + void signalWithNoArg(); + void signalWithIntArg(int); + void signalWithStringArg(const QString &); +}; + +class tst_QStateMachine : public QObject +{ + Q_OBJECT +public: + tst_QStateMachine(); + virtual ~tst_QStateMachine(); + +private slots: + void init(); + void cleanup(); + + void rootState(); + void addAndRemoveState(); + void stateEntryAndExit(); + void assignProperty(); + void assignPropertyWithAnimation(); + void postEvent(); + void stateFinished(); + void parallelStates(); + void parallelRootState(); + void allSourceToTargetConfigurations(); + void signalTransitions(); + void eventTransitions(); + void historyStates(); + void startAndStop(); + void targetStateWithNoParent(); + void targetStateDeleted(); + void transitionToRootState(); + void transitionFromRootState(); + void transitionEntersParent(); + + void defaultErrorState(); + void customGlobalErrorState(); + void customLocalErrorStateInBrokenState(); + void customLocalErrorStateInOtherState(); + void customLocalErrorStateInParentOfBrokenState(); + void customLocalErrorStateOverridesParent(); + void errorStateHasChildren(); + void errorStateHasErrors(); + void errorStateIsRootState(); + void errorStateEntersParentFirst(); + void customErrorStateIsNull(); + void clearError(); + void historyStateHasNowhereToGo(); + void historyStateAsInitialState(); + void brokenStateIsNeverEntered(); + void customErrorStateNotInGraph(); + void transitionToStateNotInGraph(); + void restoreProperties(); + + void defaultGlobalRestorePolicy(); + void globalRestorePolicySetToRestore(); + void globalRestorePolicySetToDoNotRestore(); + + void noInitialStateForInitialState(); + + //void restorePolicyNotInherited(); + //void mixedRestoreProperties(); + //void setRestorePolicyToDoNotRestore(); + //void setGlobalRestorePolicyToGlobalRestore(); + //void restorePolicyOnChildState(); + + void transitionWithParent(); + void transitionsFromParallelStateWithNoChildren(); + void parallelStateTransition(); + void parallelStateAssignmentsDone(); + void nestedRestoreProperties(); + void nestedRestoreProperties2(); + + void simpleAnimation(); + void twoAnimations(); + void twoAnimatedTransitions(); + void playAnimationTwice(); + void nestedTargetStateForAnimation(); + void animatedGlobalRestoreProperty(); + void specificTargetValueOfAnimation(); + + void addDefaultAnimation(); + void addDefaultAnimationWithUnusedAnimation(); + void removeDefaultAnimation(); + void overrideDefaultAnimationWithSpecific(); + +// void addDefaultAnimationForSource(); +// void addDefaultAnimationForTarget(); +// void removeDefaultAnimationForSource(); +// void removeDefaultAnimationForTarget(); +// void overrideDefaultAnimationWithSource(); +// void overrideDefaultAnimationWithTarget(); +// void overrideDefaultSourceAnimationWithSpecific(); +// void overrideDefaultTargetAnimationWithSpecific(); +// void overrideDefaultTargetAnimationWithSource(); + + void nestedStateMachines(); +}; + +tst_QStateMachine::tst_QStateMachine() +{ +} + +tst_QStateMachine::~tst_QStateMachine() +{ +} + +class TestState : public QState +{ +public: + enum Event { + Entry, + Exit + }; + TestState(QState *parent) + : QState(parent) {} + QList<QPair<int, Event> > events; +protected: + virtual void onEntry(QEvent *) { + events.append(qMakePair(globalTick++, Entry)); + } + virtual void onExit(QEvent *) { + events.append(qMakePair(globalTick++, Exit)); + } +}; + +class TestTransition : public QAbstractTransition +{ +public: + TestTransition(QAbstractState *target) + : QAbstractTransition(QList<QAbstractState*>() << target) {} + QList<int> triggers; +protected: + virtual bool eventTest(QEvent *) { + return true; + } + virtual void onTransition(QEvent *) { + triggers.append(globalTick++); + } +}; + +void tst_QStateMachine::init() +{ +} + +void tst_QStateMachine::cleanup() +{ +} + +class EventTransition : public QAbstractTransition +{ +public: + EventTransition(QEvent::Type type, QAbstractState *target, QState *parent = 0) + : QAbstractTransition(QList<QAbstractState*>() << target, parent), m_type(type) {} +protected: + virtual bool eventTest(QEvent *e) { + return (e->type() == m_type); + } + virtual void onTransition(QEvent *) {} +private: + QEvent::Type m_type; +}; + +void tst_QStateMachine::transitionToRootState() +{ + QStateMachine machine; + machine.setObjectName("machine"); + + QState *initialState = new QState(); + initialState->setObjectName("initial"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QAbstractTransition *trans = initialState->addTransition(new EventTransition(QEvent::User, &machine)); + QVERIFY(trans != 0); + QCOMPARE(trans->sourceState(), initialState); + QCOMPARE(trans->targetState(), &machine); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(initialState)); + + machine.postEvent(new QEvent(QEvent::User)); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: No common ancestor for targets and source of transition from state 'initial'"); + QCoreApplication::processEvents(); + QVERIFY(machine.configuration().isEmpty()); + QVERIFY(!machine.isRunning()); +} + +void tst_QStateMachine::transitionFromRootState() +{ + QStateMachine machine; + QState *root = &machine; + QState *s1 = new QState(root); + EventTransition *trans = new EventTransition(QEvent::User, s1); + QCOMPARE(root->addTransition(trans), trans); + QCOMPARE(trans->sourceState(), root); + QCOMPARE(trans->targetState(), s1); +} + +void tst_QStateMachine::transitionEntersParent() +{ + QStateMachine machine; + + QObject *entryController = new QObject(&machine); + entryController->setObjectName("entryController"); + entryController->setProperty("greatGrandParentEntered", false); + entryController->setProperty("grandParentEntered", false); + entryController->setProperty("parentEntered", false); + entryController->setProperty("stateEntered", false); + + QState *greatGrandParent = new QState(); + greatGrandParent->setObjectName("grandParent"); + greatGrandParent->assignProperty(entryController, "greatGrandParentEntered", true); + machine.addState(greatGrandParent); + machine.setInitialState(greatGrandParent); + + QState *grandParent = new QState(greatGrandParent); + grandParent->setObjectName("grandParent"); + grandParent->assignProperty(entryController, "grandParentEntered", true); + + QState *parent = new QState(grandParent); + parent->setObjectName("parent"); + parent->assignProperty(entryController, "parentEntered", true); + + QState *state = new QState(parent); + state->setObjectName("state"); + state->assignProperty(entryController, "stateEntered", true); + + QState *initialStateOfGreatGrandParent = new QState(greatGrandParent); + initialStateOfGreatGrandParent->setObjectName("initialStateOfGreatGrandParent"); + greatGrandParent->setInitialState(initialStateOfGreatGrandParent); + + initialStateOfGreatGrandParent->addTransition(new EventTransition(QEvent::User, state)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(entryController->property("greatGrandParentEntered").toBool(), true); + QCOMPARE(entryController->property("grandParentEntered").toBool(), false); + QCOMPARE(entryController->property("parentEntered").toBool(), false); + QCOMPARE(entryController->property("stateEntered").toBool(), false); + QCOMPARE(machine.configuration().count(), 2); + QVERIFY(machine.configuration().contains(greatGrandParent)); + QVERIFY(machine.configuration().contains(initialStateOfGreatGrandParent)); + + entryController->setProperty("greatGrandParentEntered", false); + entryController->setProperty("grandParentEntered", false); + entryController->setProperty("parentEntered", false); + entryController->setProperty("stateEntered", false); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(entryController->property("greatGrandParentEntered").toBool(), false); + QCOMPARE(entryController->property("grandParentEntered").toBool(), true); + QCOMPARE(entryController->property("parentEntered").toBool(), true); + QCOMPARE(entryController->property("stateEntered").toBool(), true); + QCOMPARE(machine.configuration().count(), 4); + QVERIFY(machine.configuration().contains(greatGrandParent)); + QVERIFY(machine.configuration().contains(grandParent)); + QVERIFY(machine.configuration().contains(parent)); + QVERIFY(machine.configuration().contains(state)); +} + +void tst_QStateMachine::defaultErrorState() +{ + QStateMachine machine; + QCOMPARE(machine.errorState(), reinterpret_cast<QAbstractState *>(0)); + + QState *brokenState = new QState(); + brokenState->setObjectName("MyInitialState"); + + machine.addState(brokenState); + machine.setInitialState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state 'MyInitialState'"); + + // initialState has no initial state + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.error(), QStateMachine::NoInitialStateError); + QCOMPARE(machine.errorString(), QString::fromLatin1("Missing initial state in compound state 'MyInitialState'")); + QCOMPARE(machine.isRunning(), false); +} + +class CustomErrorState: public QState +{ +public: + CustomErrorState(QStateMachine *machine, QState *parent = 0) + : QState(parent), error(QStateMachine::NoError), m_machine(machine) + { + } + + void onEntry(QEvent *) + { + error = m_machine->error(); + errorString = m_machine->errorString(); + } + + QStateMachine::Error error; + QString errorString; + +private: + QStateMachine *m_machine; +}; + +void tst_QStateMachine::customGlobalErrorState() +{ + QStateMachine machine; + + CustomErrorState *customErrorState = new CustomErrorState(&machine); + customErrorState->setObjectName("customErrorState"); + machine.addState(customErrorState); + machine.setErrorState(customErrorState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + machine.addState(brokenState); + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.errorState(), static_cast<QAbstractState*>(customErrorState)); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(initialState)); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(initialState)); + + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(customErrorState)); + QCOMPARE(customErrorState->error, QStateMachine::NoInitialStateError); + QCOMPARE(customErrorState->errorString, QString::fromLatin1("Missing initial state in compound state 'brokenState'")); + QCOMPARE(machine.error(), QStateMachine::NoInitialStateError); + QCOMPARE(machine.errorString(), QString::fromLatin1("Missing initial state in compound state 'brokenState'")); +} + +void tst_QStateMachine::customLocalErrorStateInBrokenState() +{ + QStateMachine machine; + CustomErrorState *customErrorState = new CustomErrorState(&machine); + machine.addState(customErrorState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + machine.addState(brokenState); + brokenState->setErrorState(customErrorState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(customErrorState)); + QCOMPARE(customErrorState->error, QStateMachine::NoInitialStateError); +} + +void tst_QStateMachine::customLocalErrorStateInOtherState() +{ + QStateMachine machine; + CustomErrorState *customErrorState = new CustomErrorState(&machine); + machine.addState(customErrorState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + QTest::ignoreMessage(QtWarningMsg, "QState::setErrorState: error state cannot belong to a different state machine"); + initialState->setErrorState(customErrorState); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + + machine.addState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state 'brokenState'"); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); +} + +void tst_QStateMachine::customLocalErrorStateInParentOfBrokenState() +{ + QStateMachine machine; + CustomErrorState *customErrorState = new CustomErrorState(&machine); + machine.addState(customErrorState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *parentOfBrokenState = new QState(); + machine.addState(parentOfBrokenState); + parentOfBrokenState->setObjectName("parentOfBrokenState"); + parentOfBrokenState->setErrorState(customErrorState); + + QState *brokenState = new QState(parentOfBrokenState); + brokenState->setObjectName("brokenState"); + parentOfBrokenState->setInitialState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(customErrorState)); +} + +void tst_QStateMachine::customLocalErrorStateOverridesParent() +{ + QStateMachine machine; + CustomErrorState *customErrorStateForParent = new CustomErrorState(&machine); + machine.addState(customErrorStateForParent); + + CustomErrorState *customErrorStateForBrokenState = new CustomErrorState(&machine); + machine.addState(customErrorStateForBrokenState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *parentOfBrokenState = new QState(); + machine.addState(parentOfBrokenState); + parentOfBrokenState->setObjectName("parentOfBrokenState"); + parentOfBrokenState->setErrorState(customErrorStateForParent); + + QState *brokenState = new QState(parentOfBrokenState); + brokenState->setObjectName("brokenState"); + brokenState->setErrorState(customErrorStateForBrokenState); + parentOfBrokenState->setInitialState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(customErrorStateForBrokenState)); + QCOMPARE(customErrorStateForBrokenState->error, QStateMachine::NoInitialStateError); + QCOMPARE(customErrorStateForParent->error, QStateMachine::NoError); +} + +void tst_QStateMachine::errorStateHasChildren() +{ + QStateMachine machine; + CustomErrorState *customErrorState = new CustomErrorState(&machine); + customErrorState->setObjectName("customErrorState"); + machine.addState(customErrorState); + + machine.setErrorState(customErrorState); + + QState *childOfErrorState = new QState(customErrorState); + childOfErrorState->setObjectName("childOfErrorState"); + customErrorState->setInitialState(childOfErrorState); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + machine.addState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.configuration().count(), 2); + QVERIFY(machine.configuration().contains(customErrorState)); + QVERIFY(machine.configuration().contains(childOfErrorState)); +} + + +void tst_QStateMachine::errorStateHasErrors() +{ + QStateMachine machine; + CustomErrorState *customErrorState = new CustomErrorState(&machine); + customErrorState->setObjectName("customErrorState"); + machine.addState(customErrorState); + + machine.setErrorState(customErrorState); + + QState *childOfErrorState = new QState(customErrorState); + childOfErrorState->setObjectName("childOfErrorState"); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + machine.addState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state 'customErrorState'"); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); + QCOMPARE(machine.error(), QStateMachine::NoInitialStateError); + QCOMPARE(machine.errorString(), QString::fromLatin1("Missing initial state in compound state 'customErrorState'")); +} + +void tst_QStateMachine::errorStateIsRootState() +{ + QStateMachine machine; + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::setErrorState: root state cannot be error state"); + machine.setErrorState(&machine); + + QState *initialState = new QState(); + initialState->setObjectName("initialState"); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + brokenState->setObjectName("brokenState"); + machine.addState(brokenState); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialState->addTransition(new EventTransition(QEvent::Type(QEvent::User + 1), brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::Type(QEvent::User + 1))); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state 'brokenState'"); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); +} + +void tst_QStateMachine::errorStateEntersParentFirst() +{ + QStateMachine machine; + + QObject *entryController = new QObject(&machine); + entryController->setObjectName("entryController"); + entryController->setProperty("greatGrandParentEntered", false); + entryController->setProperty("grandParentEntered", false); + entryController->setProperty("parentEntered", false); + entryController->setProperty("errorStateEntered", false); + + QState *greatGrandParent = new QState(); + greatGrandParent->setObjectName("greatGrandParent"); + greatGrandParent->assignProperty(entryController, "greatGrandParentEntered", true); + machine.addState(greatGrandParent); + machine.setInitialState(greatGrandParent); + + QState *grandParent = new QState(greatGrandParent); + grandParent->setObjectName("grandParent"); + grandParent->assignProperty(entryController, "grandParentEntered", true); + + QState *parent = new QState(grandParent); + parent->setObjectName("parent"); + parent->assignProperty(entryController, "parentEntered", true); + + QState *errorState = new QState(parent); + errorState->setObjectName("errorState"); + errorState->assignProperty(entryController, "errorStateEntered", true); + machine.setErrorState(errorState); + + QState *initialStateOfGreatGrandParent = new QState(greatGrandParent); + initialStateOfGreatGrandParent->setObjectName("initialStateOfGreatGrandParent"); + greatGrandParent->setInitialState(initialStateOfGreatGrandParent); + + QState *brokenState = new QState(greatGrandParent); + brokenState->setObjectName("brokenState"); + + QState *childState = new QState(brokenState); + childState->setObjectName("childState"); + + initialStateOfGreatGrandParent->addTransition(new EventTransition(QEvent::User, brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(entryController->property("greatGrandParentEntered").toBool(), true); + QCOMPARE(entryController->property("grandParentEntered").toBool(), false); + QCOMPARE(entryController->property("parentEntered").toBool(), false); + QCOMPARE(entryController->property("errorStateEntered").toBool(), false); + QCOMPARE(machine.configuration().count(), 2); + QVERIFY(machine.configuration().contains(greatGrandParent)); + QVERIFY(machine.configuration().contains(initialStateOfGreatGrandParent)); + + entryController->setProperty("greatGrandParentEntered", false); + entryController->setProperty("grandParentEntered", false); + entryController->setProperty("parentEntered", false); + entryController->setProperty("errorStateEntered", false); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(entryController->property("greatGrandParentEntered").toBool(), false); + QCOMPARE(entryController->property("grandParentEntered").toBool(), true); + QCOMPARE(entryController->property("parentEntered").toBool(), true); + QCOMPARE(entryController->property("errorStateEntered").toBool(), true); + QCOMPARE(machine.configuration().count(), 4); + QVERIFY(machine.configuration().contains(greatGrandParent)); + QVERIFY(machine.configuration().contains(grandParent)); + QVERIFY(machine.configuration().contains(parent)); + QVERIFY(machine.configuration().contains(errorState)); +} + +void tst_QStateMachine::customErrorStateIsNull() +{ + QStateMachine machine; + machine.setErrorState(0); + + QState *initialState = new QState(); + machine.addState(initialState); + machine.setInitialState(initialState); + + QState *brokenState = new QState(); + machine.addState(brokenState); + + new QState(brokenState); + initialState->addTransition(new EventTransition(QEvent::User, brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state ''"); + QCoreApplication::processEvents(); + + QCOMPARE(machine.errorState(), reinterpret_cast<QAbstractState *>(0)); + QCOMPARE(machine.isRunning(), false); +} + +void tst_QStateMachine::clearError() +{ + QStateMachine machine; + machine.setErrorState(new QState(&machine)); // avoid warnings + + QState *brokenState = new QState(&machine); + brokenState->setObjectName("brokenState"); + machine.setInitialState(brokenState); + new QState(brokenState); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.error(), QStateMachine::NoInitialStateError); + QCOMPARE(machine.errorString(), QString::fromLatin1("Missing initial state in compound state 'brokenState'")); + + machine.clearError(); + + QCOMPARE(machine.error(), QStateMachine::NoError); + QVERIFY(machine.errorString().isEmpty()); +} + +void tst_QStateMachine::historyStateAsInitialState() +{ + QStateMachine machine; + + QHistoryState *hs = new QHistoryState(&machine); + machine.setInitialState(hs); + + QState *s1 = new QState(&machine); + hs->setDefaultState(s1); + + QState *s2 = new QState(&machine); + + QHistoryState *s2h = new QHistoryState(s2); + s2->setInitialState(s2h); + + QState *s21 = new QState(s2); + s2h->setDefaultState(s21); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s21)); +} + +void tst_QStateMachine::historyStateHasNowhereToGo() +{ + QStateMachine machine; + + QState *initialState = new QState(&machine); + machine.setInitialState(initialState); + machine.setErrorState(new QState(&machine)); // avoid warnings + + QState *brokenState = new QState(&machine); + brokenState->setObjectName("brokenState"); + brokenState->setInitialState(new QState(brokenState)); + + QHistoryState *historyState = new QHistoryState(brokenState); + historyState->setObjectName("historyState"); + initialState->addTransition(new EventTransition(QEvent::User, historyState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), true); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(machine.errorState())); + QCOMPARE(machine.error(), QStateMachine::NoDefaultStateInHistoryStateError); + QCOMPARE(machine.errorString(), QString::fromLatin1("Missing default state in history state 'historyState'")); +} + +void tst_QStateMachine::brokenStateIsNeverEntered() +{ + QStateMachine machine; + + QObject *entryController = new QObject(&machine); + entryController->setProperty("brokenStateEntered", false); + entryController->setProperty("childStateEntered", false); + entryController->setProperty("errorStateEntered", false); + + QState *initialState = new QState(&machine); + machine.setInitialState(initialState); + + QState *errorState = new QState(&machine); + errorState->assignProperty(entryController, "errorStateEntered", true); + machine.setErrorState(errorState); + + QState *brokenState = new QState(&machine); + brokenState->assignProperty(entryController, "brokenStateEntered", true); + brokenState->setObjectName("brokenState"); + + QState *childState = new QState(brokenState); + childState->assignProperty(entryController, "childStateEntered", true); + + initialState->addTransition(new EventTransition(QEvent::User, brokenState)); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(entryController->property("errorStateEntered").toBool(), true); + QCOMPARE(entryController->property("brokenStateEntered").toBool(), false); + QCOMPARE(entryController->property("childStateEntered").toBool(), false); +} + +void tst_QStateMachine::transitionToStateNotInGraph() +{ + QStateMachine machine; + + QState *initialState = new QState(&machine); + initialState->setObjectName("initialState"); + machine.setInitialState(initialState); + + QState independentState; + independentState.setObjectName("independentState"); + initialState->addTransition(&independentState); + + machine.start(); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: No common ancestor for targets and source of transition from state 'initialState'"); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); +} + +void tst_QStateMachine::customErrorStateNotInGraph() +{ + QStateMachine machine; + + QState errorState; + errorState.setObjectName("errorState"); + QTest::ignoreMessage(QtWarningMsg, "QState::setErrorState: error state cannot belong to a different state machine"); + machine.setErrorState(&errorState); + QCOMPARE(machine.errorState(), reinterpret_cast<QAbstractState *>(0)); + + QState *initialBrokenState = new QState(&machine); + initialBrokenState->setObjectName("initialBrokenState"); + machine.setInitialState(initialBrokenState); + new QState(initialBrokenState); + + machine.start(); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: Missing initial state in compound state 'initialBrokenState'"); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); +} + +void tst_QStateMachine::restoreProperties() +{ + QStateMachine machine; + QCOMPARE(machine.globalRestorePolicy(), QStateMachine::DoNotRestoreProperties); + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + + QObject *object = new QObject(&machine); + object->setProperty("a", 1); + object->setProperty("b", 2); + + QState *S1 = new QState(); + S1->setObjectName("S1"); + S1->assignProperty(object, "a", 3); + machine.addState(S1); + + QState *S2 = new QState(); + S2->setObjectName("S2"); + S2->assignProperty(object, "b", 5); + machine.addState(S2); + + QState *S3 = new QState(); + S3->setObjectName("S3"); + machine.addState(S3); + + QFinalState *S4 = new QFinalState(); + machine.addState(S4); + + S1->addTransition(new EventTransition(QEvent::User, S2)); + S2->addTransition(new EventTransition(QEvent::User, S3)); + S3->addTransition(S4); + + machine.setInitialState(S1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 3); + QCOMPARE(object->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 1); + QCOMPARE(object->property("b").toInt(), 5); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 1); + QCOMPARE(object->property("b").toInt(), 2); +} + +void tst_QStateMachine::rootState() +{ + QStateMachine machine; + QCOMPARE(qobject_cast<QState*>(machine.parentState()), (QState*)0); + QCOMPARE(machine.machine(), (QStateMachine*)0); + + QState *s1 = new QState(&machine); + QCOMPARE(s1->parentState(), &machine); + + QState *s2 = new QState(); + s2->setParent(&machine); + QCOMPARE(s2->parentState(), &machine); +} + +void tst_QStateMachine::addAndRemoveState() +{ +#ifdef QT_BUILD_INTERNAL + QStateMachine machine; + QStatePrivate *root_d = QStatePrivate::get(&machine); + QCOMPARE(root_d->childStates().size(), 0); + + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::addState: cannot add null state"); + machine.addState(0); + + QState *s1 = new QState(); + QCOMPARE(s1->parentState(), (QState*)0); + QCOMPARE(s1->machine(), (QStateMachine*)0); + machine.addState(s1); + QCOMPARE(s1->machine(), &machine); + QCOMPARE(s1->parentState(), &machine); + QCOMPARE(root_d->childStates().size(), 1); + QCOMPARE(root_d->childStates().at(0), (QAbstractState*)s1); + + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::addState: state has already been added to this machine"); + machine.addState(s1); + + QState *s2 = new QState(); + QCOMPARE(s2->parentState(), (QState*)0); + machine.addState(s2); + QCOMPARE(s2->parentState(), &machine); + QCOMPARE(root_d->childStates().size(), 2); + QCOMPARE(root_d->childStates().at(0), (QAbstractState*)s1); + QCOMPARE(root_d->childStates().at(1), (QAbstractState*)s2); + + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::addState: state has already been added to this machine"); + machine.addState(s2); + + machine.removeState(s1); + QCOMPARE(s1->parentState(), (QState*)0); + QCOMPARE(root_d->childStates().size(), 1); + QCOMPARE(root_d->childStates().at(0), (QAbstractState*)s2); + + machine.removeState(s2); + QCOMPARE(s2->parentState(), (QState*)0); + QCOMPARE(root_d->childStates().size(), 0); + + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::removeState: cannot remove null state"); + machine.removeState(0); + + { + QStateMachine machine2; + { + QString warning; + warning.sprintf("QStateMachine::removeState: state %p's machine (%p) is different from this machine (%p)", + &machine2, (void*)0, &machine); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + machine.removeState(&machine2); + } + // ### check this behavior + machine.addState(&machine2); + QCOMPARE(machine2.parent(), (QObject*)&machine); + } + + delete s1; + delete s2; + // ### how to deal with this? + // machine.removeState(machine.errorState()); +#endif +} + +void tst_QStateMachine::stateEntryAndExit() +{ + // Two top-level states + { + QStateMachine machine; + + TestState *s1 = new TestState(&machine); + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: cannot add transition to null state"); + s1->addTransition((QAbstractState*)0); + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: cannot add null transition"); + s1->addTransition((QAbstractTransition*)0); + QTest::ignoreMessage(QtWarningMsg, "QState::removeTransition: cannot remove null transition"); + s1->removeTransition((QAbstractTransition*)0); + + TestState *s2 = new TestState(&machine); + QFinalState *s3 = new QFinalState(&machine); + + TestTransition *t = new TestTransition(s2); + QCOMPARE(t->machine(), (QStateMachine*)0); + QCOMPARE(t->sourceState(), (QState*)0); + QCOMPARE(t->targetState(), (QAbstractState*)s2); + QCOMPARE(t->targetStates().size(), 1); + QCOMPARE(t->targetStates().at(0), (QAbstractState*)s2); + t->setTargetState(0); + QCOMPARE(t->targetState(), (QAbstractState*)0); + QVERIFY(t->targetStates().isEmpty()); + t->setTargetState(s2); + QCOMPARE(t->targetState(), (QAbstractState*)s2); + QTest::ignoreMessage(QtWarningMsg, "QAbstractTransition::setTargetStates: target state(s) cannot be null"); + t->setTargetStates(QList<QAbstractState*>() << 0); + QCOMPARE(t->targetState(), (QAbstractState*)s2); + t->setTargetStates(QList<QAbstractState*>() << s2); + QCOMPARE(t->targetState(), (QAbstractState*)s2); + QCOMPARE(t->targetStates().size(), 1); + QCOMPARE(t->targetStates().at(0), (QAbstractState*)s2); + QCOMPARE(s1->addTransition(t), (QAbstractTransition*)t); + QCOMPARE(t->sourceState(), (QState*)s1); + QCOMPARE(t->machine(), &machine); + + { + QAbstractTransition *trans = s2->addTransition(s3); + QVERIFY(trans != 0); + QCOMPARE(trans->sourceState(), (QState*)s2); + QCOMPARE(trans->targetState(), (QAbstractState*)s3); + { + QString warning; + warning.sprintf("QState::removeTransition: transition %p's source state (%p) is different from this state (%p)", trans, s2, s1); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + s1->removeTransition(trans); + } + s2->removeTransition(trans); + QCOMPARE(trans->sourceState(), (QState*)0); + QCOMPARE(trans->targetState(), (QAbstractState*)s3); + QCOMPARE(s2->addTransition(trans), trans); + QCOMPARE(trans->sourceState(), (QState*)s2); + } + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy stoppedSpy(&machine, SIGNAL(stopped())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s1); + QCOMPARE(machine.initialState(), (QAbstractState*)s1); + { + QString warning; + warning.sprintf("QState::setInitialState: state %p is not a child of this state (%p)", &machine, &machine); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + machine.setInitialState(&machine); + QCOMPARE(machine.initialState(), (QAbstractState*)s1); + } + QVERIFY(machine.configuration().isEmpty()); + globalTick = 0; + QVERIFY(!machine.isRunning()); + QSignalSpy s1EnteredSpy(s1, SIGNAL(entered())); + QSignalSpy s1ExitedSpy(s1, SIGNAL(exited())); + QSignalSpy tTriggeredSpy(t, SIGNAL(triggered())); + QSignalSpy s2EnteredSpy(s2, SIGNAL(entered())); + QSignalSpy s2ExitedSpy(s2, SIGNAL(exited())); + machine.start(); + + QTRY_COMPARE(startedSpy.count(), 1); + QTRY_COMPARE(finishedSpy.count(), 1); + QTRY_COMPARE(stoppedSpy.count(), 0); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(s3)); + + // s1 is entered + QCOMPARE(s1->events.count(), 2); + QCOMPARE(s1->events.at(0).first, 0); + QCOMPARE(s1->events.at(0).second, TestState::Entry); + // s1 is exited + QCOMPARE(s1->events.at(1).first, 1); + QCOMPARE(s1->events.at(1).second, TestState::Exit); + // t is triggered + QCOMPARE(t->triggers.count(), 1); + QCOMPARE(t->triggers.at(0), 2); + // s2 is entered + QCOMPARE(s2->events.count(), 2); + QCOMPARE(s2->events.at(0).first, 3); + QCOMPARE(s2->events.at(0).second, TestState::Entry); + // s2 is exited + QCOMPARE(s2->events.at(1).first, 4); + QCOMPARE(s2->events.at(1).second, TestState::Exit); + + QCOMPARE(s1EnteredSpy.count(), 1); + QCOMPARE(s1ExitedSpy.count(), 1); + QCOMPARE(tTriggeredSpy.count(), 1); + QCOMPARE(s2EnteredSpy.count(), 1); + QCOMPARE(s2ExitedSpy.count(), 1); + } + // Two top-level states, one has two child states + { + QStateMachine machine; + + TestState *s1 = new TestState(&machine); + TestState *s11 = new TestState(s1); + TestState *s12 = new TestState(s1); + TestState *s2 = new TestState(&machine); + QFinalState *s3 = new QFinalState(&machine); + s1->setInitialState(s11); + TestTransition *t1 = new TestTransition(s12); + s11->addTransition(t1); + TestTransition *t2 = new TestTransition(s2); + s12->addTransition(t2); + s2->addTransition(s3); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s1); + globalTick = 0; + machine.start(); + + QTRY_COMPARE(startedSpy.count(), 1); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(s3)); + + // s1 is entered + QCOMPARE(s1->events.count(), 2); + QCOMPARE(s1->events.at(0).first, 0); + QCOMPARE(s1->events.at(0).second, TestState::Entry); + // s11 is entered + QCOMPARE(s11->events.count(), 2); + QCOMPARE(s11->events.at(0).first, 1); + QCOMPARE(s11->events.at(0).second, TestState::Entry); + // s11 is exited + QCOMPARE(s11->events.at(1).first, 2); + QCOMPARE(s11->events.at(1).second, TestState::Exit); + // t1 is triggered + QCOMPARE(t1->triggers.count(), 1); + QCOMPARE(t1->triggers.at(0), 3); + // s12 is entered + QCOMPARE(s12->events.count(), 2); + QCOMPARE(s12->events.at(0).first, 4); + QCOMPARE(s12->events.at(0).second, TestState::Entry); + // s12 is exited + QCOMPARE(s12->events.at(1).first, 5); + QCOMPARE(s12->events.at(1).second, TestState::Exit); + // s1 is exited + QCOMPARE(s1->events.at(1).first, 6); + QCOMPARE(s1->events.at(1).second, TestState::Exit); + // t2 is triggered + QCOMPARE(t2->triggers.count(), 1); + QCOMPARE(t2->triggers.at(0), 7); + // s2 is entered + QCOMPARE(s2->events.count(), 2); + QCOMPARE(s2->events.at(0).first, 8); + QCOMPARE(s2->events.at(0).second, TestState::Entry); + // s2 is exited + QCOMPARE(s2->events.at(1).first, 9); + QCOMPARE(s2->events.at(1).second, TestState::Exit); + } +} + +void tst_QStateMachine::assignProperty() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + + QTest::ignoreMessage(QtWarningMsg, "QState::assignProperty: cannot assign property 'foo' of null object"); + s1->assignProperty(0, "foo", QVariant()); + + s1->assignProperty(s1, "objectName", "s1"); + QFinalState *s2 = new QFinalState(&machine); + s1->addTransition(s2); + machine.setInitialState(s1); + machine.start(); + QTRY_COMPARE(s1->objectName(), QString::fromLatin1("s1")); + + s1->assignProperty(s1, "objectName", "foo"); + machine.start(); + QTRY_COMPARE(s1->objectName(), QString::fromLatin1("foo")); + + s1->assignProperty(s1, "noSuchProperty", 123); + machine.start(); + QTRY_COMPARE(s1->dynamicPropertyNames().size(), 1); + QCOMPARE(s1->dynamicPropertyNames().at(0), QByteArray("noSuchProperty")); + QCOMPARE(s1->objectName(), QString::fromLatin1("foo")); + + { + QSignalSpy polishedSpy(s1, SIGNAL(polished())); + machine.start(); + QTRY_COMPARE(polishedSpy.count(), 1); + } + + // nested states + { + QState *s11 = new QState(s1); + QString str = QString::fromLatin1("set by nested state"); + s11->assignProperty(s11, "objectName", str); + s1->setInitialState(s11); + machine.start(); + QTRY_COMPARE(s11->objectName(), str); + } +} + +void tst_QStateMachine::assignPropertyWithAnimation() +{ + // Single animation + { + QStateMachine machine; + QVERIFY(machine.animationsEnabled()); + machine.setAnimationsEnabled(false); + QVERIFY(!machine.animationsEnabled()); + machine.setAnimationsEnabled(true); + QVERIFY(machine.animationsEnabled()); + QObject obj; + obj.setProperty("foo", 321); + obj.setProperty("bar", 654); + QState *s1 = new QState(&machine); + s1->assignProperty(&obj, "foo", 123); + QState *s2 = new QState(&machine); + s2->assignProperty(&obj, "foo", 456); + s2->assignProperty(&obj, "bar", 789); + QAbstractTransition *trans = s1->addTransition(s2); + QVERIFY(trans->animations().isEmpty()); + QTest::ignoreMessage(QtWarningMsg, "QAbstractTransition::addAnimation: cannot add null animation"); + trans->addAnimation(0); + QPropertyAnimation anim(&obj, "foo"); + anim.setDuration(250); + trans->addAnimation(&anim); + QCOMPARE(trans->animations().size(), 1); + QCOMPARE(trans->animations().at(0), (QAbstractAnimation*)&anim); + QCOMPARE(anim.parent(), (QObject*)0); + QTest::ignoreMessage(QtWarningMsg, "QAbstractTransition::removeAnimation: cannot remove null animation"); + trans->removeAnimation(0); + trans->removeAnimation(&anim); + QVERIFY(trans->animations().isEmpty()); + trans->addAnimation(&anim); + QCOMPARE(trans->animations().size(), 1); + QCOMPARE(trans->animations().at(0), (QAbstractAnimation*)&anim); + QFinalState *s3 = new QFinalState(&machine); + s2->addTransition(s2, SIGNAL(polished()), s3); + + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(obj.property("foo").toInt(), 456); + QCOMPARE(obj.property("bar").toInt(), 789); + } + // Two animations + { + QStateMachine machine; + QObject obj; + obj.setProperty("foo", 321); + obj.setProperty("bar", 654); + QState *s1 = new QState(&machine); + s1->assignProperty(&obj, "foo", 123); + QState *s2 = new QState(&machine); + s2->assignProperty(&obj, "foo", 456); + s2->assignProperty(&obj, "bar", 789); + QAbstractTransition *trans = s1->addTransition(s2); + QPropertyAnimation anim(&obj, "foo"); + anim.setDuration(150); + trans->addAnimation(&anim); + QPropertyAnimation anim2(&obj, "bar"); + anim2.setDuration(150); + trans->addAnimation(&anim2); + QFinalState *s3 = new QFinalState(&machine); + s2->addTransition(s2, SIGNAL(polished()), s3); + + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(obj.property("foo").toInt(), 456); + QCOMPARE(obj.property("bar").toInt(), 789); + } + // Animation group + { + QStateMachine machine; + QObject obj; + obj.setProperty("foo", 321); + obj.setProperty("bar", 654); + QState *s1 = new QState(&machine); + s1->assignProperty(&obj, "foo", 123); + s1->assignProperty(&obj, "bar", 321); + QState *s2 = new QState(&machine); + s2->assignProperty(&obj, "foo", 456); + s2->assignProperty(&obj, "bar", 654); + s2->assignProperty(&obj, "baz", 789); + QAbstractTransition *trans = s1->addTransition(s2); + QSequentialAnimationGroup group; + group.addAnimation(new QPropertyAnimation(&obj, "foo")); + group.addAnimation(new QPropertyAnimation(&obj, "bar")); + trans->addAnimation(&group); + QFinalState *s3 = new QFinalState(&machine); + s2->addTransition(s2, SIGNAL(polished()), s3); + + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(obj.property("foo").toInt(), 456); + QCOMPARE(obj.property("bar").toInt(), 654); + QCOMPARE(obj.property("baz").toInt(), 789); + } + // Nested states + { + QStateMachine machine; + QObject obj; + obj.setProperty("foo", 321); + obj.setProperty("bar", 654); + QState *s1 = new QState(&machine); + QCOMPARE(s1->childMode(), QState::ExclusiveStates); + s1->setChildMode(QState::ParallelStates); + QCOMPARE(s1->childMode(), QState::ParallelStates); + s1->setChildMode(QState::ExclusiveStates); + QCOMPARE(s1->childMode(), QState::ExclusiveStates); + QCOMPARE(s1->initialState(), (QAbstractState*)0); + s1->setObjectName("s1"); + s1->assignProperty(&obj, "foo", 123); + s1->assignProperty(&obj, "bar", 456); + QState *s2 = new QState(&machine); + s2->setObjectName("s2"); + s2->assignProperty(&obj, "foo", 321); + QState *s21 = new QState(s2); + s21->setObjectName("s21"); + s21->assignProperty(&obj, "bar", 654); + QState *s22 = new QState(s2); + s22->setObjectName("s22"); + s22->assignProperty(&obj, "bar", 789); + s2->setInitialState(s21); + QCOMPARE(s2->initialState(), (QAbstractState*)s21); + + QAbstractTransition *trans = s1->addTransition(s2); + QPropertyAnimation anim(&obj, "foo"); + anim.setDuration(500); + trans->addAnimation(&anim); + QPropertyAnimation anim2(&obj, "bar"); + anim2.setDuration(250); + trans->addAnimation(&anim2); + + s21->addTransition(s21, SIGNAL(polished()), s22); + + QFinalState *s3 = new QFinalState(&machine); + s22->addTransition(s2, SIGNAL(polished()), s3); + + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(obj.property("foo").toInt(), 321); + QCOMPARE(obj.property("bar").toInt(), 789); + } + // Aborted animation + { + QStateMachine machine; + SignalEmitter emitter; + QObject obj; + obj.setProperty("foo", 321); + obj.setProperty("bar", 654); + QState *group = new QState(&machine); + QState *s1 = new QState(group); + group->setInitialState(s1); + s1->assignProperty(&obj, "foo", 123); + QState *s2 = new QState(group); + s2->assignProperty(&obj, "foo", 456); + s2->assignProperty(&obj, "bar", 789); + QAbstractTransition *trans = s1->addTransition(&emitter, SIGNAL(signalWithNoArg()), s2); + QPropertyAnimation anim(&obj, "foo"); + anim.setDuration(8000); + trans->addAnimation(&anim); + QPropertyAnimation anim2(&obj, "bar"); + anim2.setDuration(8000); + trans->addAnimation(&anim2); + QState *s3 = new QState(group); + s3->assignProperty(&obj, "foo", 911); + s2->addTransition(&emitter, SIGNAL(signalWithNoArg()), s3); + + machine.setInitialState(group); + machine.start(); + QTRY_COMPARE(machine.configuration().contains(s1), true); + QSignalSpy polishedSpy(s2, SIGNAL(polished())); + emitter.emitSignalWithNoArg(); + QTRY_COMPARE(machine.configuration().contains(s2), true); + QVERIFY(polishedSpy.isEmpty()); + emitter.emitSignalWithNoArg(); // will cause animations from s1-->s2 to abort + QTRY_COMPARE(machine.configuration().contains(s3), true); + QVERIFY(polishedSpy.isEmpty()); + QCOMPARE(obj.property("foo").toInt(), 911); + QCOMPARE(obj.property("bar").toInt(), 789); + } +} + +struct StringEvent : public QEvent +{ +public: + StringEvent(const QString &val) + : QEvent(QEvent::Type(QEvent::User+2)), + value(val) {} + + QString value; +}; + +class StringTransition : public QAbstractTransition +{ +public: + StringTransition(const QString &value, QAbstractState *target) + : QAbstractTransition(QList<QAbstractState*>() << target), m_value(value) {} + +protected: + virtual bool eventTest(QEvent *e) + { + if (e->type() != QEvent::Type(QEvent::User+2)) + return false; + StringEvent *se = static_cast<StringEvent*>(e); + return (m_value == se->value) && (!m_cond.isValid() || (m_cond.indexIn(m_value) != -1)); + } + virtual void onTransition(QEvent *) {} + +private: + QString m_value; + QRegExp m_cond; +}; + +class StringEventPoster : public QState +{ +public: + StringEventPoster(QStateMachine *machine, const QString &value, QState *parent = 0) + : QState(parent), m_machine(machine), m_value(value), m_delay(0) {} + + void setString(const QString &value) + { m_value = value; } + void setDelay(int delay) + { m_delay = delay; } + +protected: + virtual void onEntry(QEvent *) + { + m_machine->postEvent(new StringEvent(m_value), m_delay); + } + virtual void onExit(QEvent *) {} + +private: + QStateMachine *m_machine; + QString m_value; + int m_delay; +}; + +void tst_QStateMachine::postEvent() +{ + for (int x = 0; x < 2; ++x) { + QStateMachine machine; + { + QEvent e(QEvent::None); + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::postEvent: cannot post event when the state machine is not running"); + machine.postEvent(&e); + } + StringEventPoster *s1 = new StringEventPoster(&machine, "a"); + if (x == 1) + s1->setDelay(100); + QFinalState *s2 = new QFinalState; + s1->addTransition(new StringTransition("a", s2)); + machine.addState(s1); + machine.addState(s2); + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); + + s1->setString("b"); + QFinalState *s3 = new QFinalState(); + machine.addState(s3); + s1->addTransition(new StringTransition("b", s3)); + finishedSpy.clear(); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s3)); + } +} + +void tst_QStateMachine::stateFinished() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + QState *s1_1 = new QState(s1); + QFinalState *s1_2 = new QFinalState(s1); + s1_1->addTransition(s1_2); + s1->setInitialState(s1_1); + QFinalState *s2 = new QFinalState(&machine); + s1->addTransition(s1, SIGNAL(finished()), s2); + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); +} + +void tst_QStateMachine::parallelStates() +{ + QStateMachine machine; + + QState *s1 = new QState(QState::ParallelStates); + QCOMPARE(s1->childMode(), QState::ParallelStates); + QState *s1_1 = new QState(s1); + QState *s1_1_1 = new QState(s1_1); + QFinalState *s1_1_f = new QFinalState(s1_1); + s1_1_1->addTransition(s1_1_f); + s1_1->setInitialState(s1_1_1); + QState *s1_2 = new QState(s1); + QState *s1_2_1 = new QState(s1_2); + QFinalState *s1_2_f = new QFinalState(s1_2); + s1_2_1->addTransition(s1_2_f); + s1_2->setInitialState(s1_2_1); + { + QString warning; + warning.sprintf("QState::setInitialState: ignoring attempt to set initial state of parallel state group %p", s1); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + s1->setInitialState(0); + } + machine.addState(s1); + + QFinalState *s2 = new QFinalState(); + machine.addState(s2); + + s1->addTransition(s1, SIGNAL(finished()), s2); + + machine.setInitialState(s1); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); +} + +void tst_QStateMachine::parallelRootState() +{ + QStateMachine machine; + QState *root = &machine; + QCOMPARE(root->childMode(), QState::ExclusiveStates); + root->setChildMode(QState::ParallelStates); + QCOMPARE(root->childMode(), QState::ParallelStates); + + QState *s1 = new QState(root); + QFinalState *s1_f = new QFinalState(s1); + s1->setInitialState(s1_f); + QState *s2 = new QState(root); + QFinalState *s2_f = new QFinalState(s2); + s2->setInitialState(s2_f); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::start: No initial state set for machine. Refusing to start."); + machine.start(); + QCoreApplication::processEvents(); + QEXPECT_FAIL("", "parallel root state is not supported (task 256587)", Continue); + QCOMPARE(startedSpy.count(), 1); +} + +void tst_QStateMachine::allSourceToTargetConfigurations() +{ + QStateMachine machine; + QState *s0 = new QState(&machine); + s0->setObjectName("s0"); + QState *s1 = new QState(s0); + s1->setObjectName("s1"); + QState *s11 = new QState(s1); + s11->setObjectName("s11"); + QState *s2 = new QState(s0); + s2->setObjectName("s2"); + QState *s21 = new QState(s2); + s21->setObjectName("s21"); + QState *s211 = new QState(s21); + s211->setObjectName("s211"); + QFinalState *f = new QFinalState(&machine); + f->setObjectName("f"); + + s0->setInitialState(s1); + s1->setInitialState(s11); + s2->setInitialState(s21); + s21->setInitialState(s211); + + s11->addTransition(new StringTransition("g", s211)); + s1->addTransition(new StringTransition("a", s1)); + s1->addTransition(new StringTransition("b", s11)); + s1->addTransition(new StringTransition("c", s2)); + s1->addTransition(new StringTransition("d", s0)); + s1->addTransition(new StringTransition("f", s211)); + s211->addTransition(new StringTransition("d", s21)); + s211->addTransition(new StringTransition("g", s0)); + s211->addTransition(new StringTransition("h", f)); + s21->addTransition(new StringTransition("b", s211)); + s2->addTransition(new StringTransition("c", s1)); + s2->addTransition(new StringTransition("f", s11)); + s0->addTransition(new StringTransition("e", s211)); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new StringEvent("a")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("b")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("c")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("d")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("e")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("f")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("g")); + QCoreApplication::processEvents(); + machine.postEvent(new StringEvent("h")); + QCoreApplication::processEvents(); + + QTRY_COMPARE(finishedSpy.count(), 1); +} + +class TestSignalTransition : public QSignalTransition +{ +public: + TestSignalTransition(QState *sourceState = 0) + : QSignalTransition(sourceState) {} + TestSignalTransition(QObject *sender, const char *signal, + QAbstractState *target) + : QSignalTransition(sender, signal, QList<QAbstractState*>() << target) {} + QVariantList argumentsReceived() const { + return m_args; + } +protected: + bool eventTest(QEvent *e) { + if (!QSignalTransition::eventTest(e)) + return false; + QSignalEvent *se = static_cast<QSignalEvent*>(e); + const_cast<TestSignalTransition*>(this)->m_args = se->arguments(); + return true; + } +private: + QVariantList m_args; +}; + +void tst_QStateMachine::signalTransitions() +{ + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: sender cannot be null"); + QCOMPARE(s0->addTransition(0, SIGNAL(noSuchSignal()), 0), (QSignalTransition*)0); + + SignalEmitter emitter; + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: signal cannot be null"); + QCOMPARE(s0->addTransition(&emitter, 0, 0), (QSignalTransition*)0); + + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: cannot add transition to null state"); + QCOMPARE(s0->addTransition(&emitter, SIGNAL(signalWithNoArg()), 0), (QSignalTransition*)0); + + QFinalState *s1 = new QFinalState(&machine); + QTest::ignoreMessage(QtWarningMsg, "QState::addTransition: no such signal SignalEmitter::noSuchSignal()"); + QCOMPARE(s0->addTransition(&emitter, SIGNAL(noSuchSignal()), s1), (QSignalTransition*)0); + + QSignalTransition *trans = s0->addTransition(&emitter, SIGNAL(signalWithNoArg()), s1); + QVERIFY(trans != 0); + QCOMPARE(trans->sourceState(), s0); + QCOMPARE(trans->targetState(), (QAbstractState*)s1); + QCOMPARE(trans->senderObject(), (QObject*)&emitter); + QCOMPARE(trans->signal(), QByteArray(SIGNAL(signalWithNoArg()))); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + emitter.emitSignalWithNoArg(); + + QTRY_COMPARE(finishedSpy.count(), 1); + + emitter.emitSignalWithNoArg(); + + trans->setSignal(SIGNAL(signalWithIntArg(int))); + QCOMPARE(trans->signal(), QByteArray(SIGNAL(signalWithIntArg(int)))); + machine.start(); + QCoreApplication::processEvents(); + emitter.emitSignalWithIntArg(123); + QTRY_COMPARE(finishedSpy.count(), 2); + + machine.start(); + QCoreApplication::processEvents(); + trans->setSignal(SIGNAL(signalWithNoArg())); + QCOMPARE(trans->signal(), QByteArray(SIGNAL(signalWithNoArg()))); + emitter.emitSignalWithNoArg(); + QTRY_COMPARE(finishedSpy.count(), 3); + + SignalEmitter emitter2; + machine.start(); + QCoreApplication::processEvents(); + trans->setSenderObject(&emitter2); + emitter2.emitSignalWithNoArg(); + QTRY_COMPARE(finishedSpy.count(), 4); + + machine.start(); + QCoreApplication::processEvents(); + QTest::ignoreMessage(QtWarningMsg, "QSignalTransition: no such signal: SignalEmitter::noSuchSignal()"); + trans->setSignal(SIGNAL(noSuchSignal())); + QCOMPARE(trans->signal(), QByteArray(SIGNAL(noSuchSignal()))); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + SignalEmitter emitter; + QSignalTransition *trans = s0->addTransition(&emitter, "signalWithNoArg()", s1); + QVERIFY(trans != 0); + QCOMPARE(trans->sourceState(), s0); + QCOMPARE(trans->targetState(), (QAbstractState*)s1); + QCOMPARE(trans->senderObject(), (QObject*)&emitter); + QCOMPARE(trans->signal(), QByteArray("signalWithNoArg()")); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + emitter.emitSignalWithNoArg(); + + QTRY_COMPARE(finishedSpy.count(), 1); + + trans->setSignal("signalWithIntArg(int)"); + QCOMPARE(trans->signal(), QByteArray("signalWithIntArg(int)")); + machine.start(); + QCoreApplication::processEvents(); + emitter.emitSignalWithIntArg(123); + QTRY_COMPARE(finishedSpy.count(), 2); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + SignalEmitter emitter; + TestSignalTransition *trans = new TestSignalTransition(&emitter, SIGNAL(signalWithIntArg(int)), s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + emitter.emitSignalWithIntArg(123); + + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(trans->argumentsReceived().size(), 1); + QCOMPARE(trans->argumentsReceived().at(0).toInt(), 123); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + SignalEmitter emitter; + TestSignalTransition *trans = new TestSignalTransition(&emitter, SIGNAL(signalWithStringArg(QString)), s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QString testString = QString::fromLatin1("hello"); + emitter.emitSignalWithStringArg(testString); + + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(trans->argumentsReceived().size(), 1); + QCOMPARE(trans->argumentsReceived().at(0).toString(), testString); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + TestSignalTransition *trans = new TestSignalTransition(); + QCOMPARE(trans->senderObject(), (QObject*)0); + QCOMPARE(trans->signal(), QByteArray()); + + SignalEmitter emitter; + trans->setSenderObject(&emitter); + QCOMPARE(trans->senderObject(), (QObject*)&emitter); + trans->setSignal(SIGNAL(signalWithNoArg())); + QCOMPARE(trans->signal(), QByteArray(SIGNAL(signalWithNoArg()))); + trans->setTargetState(s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + emitter.emitSignalWithNoArg(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } + // Multiple transitions for same (object,signal) + { + QStateMachine machine; + SignalEmitter emitter; + QState *s0 = new QState(&machine); + QState *s1 = new QState(&machine); + QSignalTransition *t0 = s0->addTransition(&emitter, SIGNAL(signalWithNoArg()), s1); + QSignalTransition *t1 = s1->addTransition(&emitter, SIGNAL(signalWithNoArg()), s0); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + emitter.emitSignalWithNoArg(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + s0->removeTransition(t0); + emitter.emitSignalWithNoArg(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + emitter.emitSignalWithNoArg(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + s1->removeTransition(t1); + emitter.emitSignalWithNoArg(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + s0->addTransition(t0); + s1->addTransition(t1); + emitter.emitSignalWithNoArg(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + } + // multiple signal transitions from same source + { + QStateMachine machine; + SignalEmitter emitter; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + s0->addTransition(&emitter, SIGNAL(signalWithNoArg()), s1); + QFinalState *s2 = new QFinalState(&machine); + s0->addTransition(&emitter, SIGNAL(signalWithIntArg(int)), s2); + QFinalState *s3 = new QFinalState(&machine); + s0->addTransition(&emitter, SIGNAL(signalWithStringArg(QString)), s3); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + emitter.emitSignalWithNoArg(); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 2); + emitter.emitSignalWithIntArg(123); + QTRY_COMPARE(finishedSpy.count(), 2); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 3); + emitter.emitSignalWithStringArg("hello"); + QTRY_COMPARE(finishedSpy.count(), 3); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s3)); + } + // signature normalization + { + QStateMachine machine; + SignalEmitter emitter; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + QSignalTransition *t0 = s0->addTransition(&emitter, SIGNAL( signalWithNoArg( ) ), s1); + QVERIFY(t0 != 0); + QCOMPARE(t0->signal(), QByteArray(SIGNAL( signalWithNoArg( ) ))); + + QSignalTransition *t1 = s0->addTransition(&emitter, SIGNAL( signalWithStringArg( const QString & ) ), s1); + QVERIFY(t1 != 0); + QCOMPARE(t1->signal(), QByteArray(SIGNAL( signalWithStringArg( const QString & ) ))); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + + emitter.emitSignalWithNoArg(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } +} + +void tst_QStateMachine::eventTransitions() +{ + QPushButton button; + for (int x = 0; x < 2; ++x) { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QMouseEventTransition *trans; + if (x == 0) { + trans = new QMouseEventTransition(&button, QEvent::MouseButtonPress, Qt::LeftButton); + QCOMPARE(trans->targetState(), (QAbstractState*)0); + trans->setTargetState(s1); + } else { + trans = new QMouseEventTransition(&button, QEvent::MouseButtonPress, + Qt::LeftButton, QList<QAbstractState*>() << s1); + } + QCOMPARE(trans->eventType(), QEvent::MouseButtonPress); + QCOMPARE(trans->button(), Qt::LeftButton); + QCOMPARE(trans->targetState(), (QAbstractState*)s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QTest::mousePress(&button, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 1); + + QTest::mousePress(&button, Qt::LeftButton); + + trans->setEventType(QEvent::MouseButtonRelease); + QCOMPARE(trans->eventType(), QEvent::MouseButtonRelease); + machine.start(); + QCoreApplication::processEvents(); + QTest::mouseRelease(&button, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 2); + + machine.start(); + QCoreApplication::processEvents(); + trans->setEventType(QEvent::MouseButtonPress); + QTest::mousePress(&button, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 3); + + QPushButton button2; + machine.start(); + QCoreApplication::processEvents(); + trans->setEventObject(&button2); + QTest::mousePress(&button2, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 4); + } + for (int x = 0; x < 3; ++x) { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QEventTransition *trans; + if (x == 0) { + trans = new QEventTransition(); + QCOMPARE(trans->eventObject(), (QObject*)0); + QCOMPARE(trans->eventType(), QEvent::None); + trans->setEventObject(&button); + trans->setEventType(QEvent::MouseButtonPress); + trans->setTargetState(s1); + } else if (x == 1) { + trans = new QEventTransition(&button, QEvent::MouseButtonPress); + trans->setTargetState(s1); + } else { + trans = new QEventTransition(&button, QEvent::MouseButtonPress, + QList<QAbstractState*>() << s1); + } + QCOMPARE(trans->eventObject(), (QObject*)&button); + QCOMPARE(trans->eventType(), QEvent::MouseButtonPress); + QCOMPARE(trans->targetState(), (QAbstractState*)s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QMouseEventTransition *trans = new QMouseEventTransition(); + QCOMPARE(trans->eventObject(), (QObject*)0); + QCOMPARE(trans->eventType(), QEvent::None); + QCOMPARE(trans->button(), Qt::NoButton); + trans->setEventObject(&button); + trans->setEventType(QEvent::MouseButtonPress); + trans->setButton(Qt::LeftButton); + trans->setTargetState(s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } + + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QKeyEventTransition *trans = new QKeyEventTransition(&button, QEvent::KeyPress, Qt::Key_A); + QCOMPARE(trans->eventType(), QEvent::KeyPress); + QCOMPARE(trans->key(), (int)Qt::Key_A); + trans->setTargetState(s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QTest::keyPress(&button, Qt::Key_A); + QCoreApplication::processEvents(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QKeyEventTransition *trans = new QKeyEventTransition(); + QCOMPARE(trans->eventObject(), (QObject*)0); + QCOMPARE(trans->eventType(), QEvent::None); + QCOMPARE(trans->key(), 0); + trans->setEventObject(&button); + trans->setEventType(QEvent::KeyPress); + trans->setKey(Qt::Key_A); + trans->setTargetState(s1); + s0->addTransition(trans); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + + QTest::keyPress(&button, Qt::Key_A); + QCoreApplication::processEvents(); + + QTRY_COMPARE(finishedSpy.count(), 1); + } + // Multiple transitions for same (object,event) + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QState *s1 = new QState(&machine); + QEventTransition *t0 = new QEventTransition(&button, QEvent::MouseButtonPress); + t0->setTargetState(s1); + s0->addTransition(t0); + QEventTransition *t1 = new QEventTransition(&button, QEvent::MouseButtonPress); + t1->setTargetState(s0); + s1->addTransition(t1); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + machine.start(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + s0->removeTransition(t0); + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + s1->removeTransition(t1); + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s0)); + + s0->addTransition(t0); + s1->addTransition(t1); + QTest::mousePress(&button, Qt::LeftButton); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + } + // multiple event transitions from same source + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + QFinalState *s2 = new QFinalState(&machine); + QEventTransition *t0 = new QEventTransition(&button, QEvent::MouseButtonPress); + t0->setTargetState(s1); + s0->addTransition(t0); + QEventTransition *t1 = new QEventTransition(&button, QEvent::MouseButtonRelease); + t1->setTargetState(s2); + s0->addTransition(t1); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.setInitialState(s0); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + QTest::mousePress(&button, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 1); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.start(); + QTRY_COMPARE(startedSpy.count(), 2); + QTest::mouseRelease(&button, Qt::LeftButton); + QTRY_COMPARE(finishedSpy.count(), 2); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); + } + // custom event + { + QStateMachine machine; + QState *s0 = new QState(&machine); + QFinalState *s1 = new QFinalState(&machine); + + QEventTransition *trans = new QEventTransition(&button, QEvent::Type(QEvent::User+1)); + trans->setTargetState(s1); + s0->addTransition(trans); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + machine.setInitialState(s0); + machine.start(); + QTest::ignoreMessage(QtWarningMsg, "QObject event transitions are not supported for custom types"); + QTRY_COMPARE(startedSpy.count(), 1); + } +} + +void tst_QStateMachine::historyStates() +{ + for (int x = 0; x < 2; ++x) { + QStateMachine machine; + QState *root = &machine; + QState *s0 = new QState(root); + QState *s00 = new QState(s0); + QState *s01 = new QState(s0); + QHistoryState *s0h; + if (x == 0) { + s0h = new QHistoryState(s0); + QCOMPARE(s0h->historyType(), QHistoryState::ShallowHistory); + s0h->setHistoryType(QHistoryState::DeepHistory); + } else { + s0h = new QHistoryState(QHistoryState::DeepHistory, s0); + } + QCOMPARE(s0h->historyType(), QHistoryState::DeepHistory); + s0h->setHistoryType(QHistoryState::ShallowHistory); + QCOMPARE(s0h->historyType(), QHistoryState::ShallowHistory); + QCOMPARE(s0h->defaultState(), (QAbstractState*)0); + s0h->setDefaultState(s00); + QCOMPARE(s0h->defaultState(), (QAbstractState*)s00); + QString warning; + warning.sprintf("QHistoryState::setDefaultState: state %p does not belong to this history state's group (%p)", s0, s0); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + s0h->setDefaultState(s0); + QState *s1 = new QState(root); + QFinalState *s2 = new QFinalState(root); + + s00->addTransition(new StringTransition("a", s01)); + s0->addTransition(new StringTransition("b", s1)); + s1->addTransition(new StringTransition("c", s0h)); + s0->addTransition(new StringTransition("d", s2)); + + root->setInitialState(s0); + s0->setInitialState(s00); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s0)); + QVERIFY(machine.configuration().contains(s00)); + + machine.postEvent(new StringEvent("a")); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s0)); + QVERIFY(machine.configuration().contains(s01)); + + machine.postEvent(new StringEvent("b")); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.postEvent(new StringEvent("c")); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s0)); + QVERIFY(machine.configuration().contains(s01)); + + machine.postEvent(new StringEvent("d")); + QCoreApplication::processEvents(); + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s2)); + + QTRY_COMPARE(finishedSpy.count(), 1); + } +} + +void tst_QStateMachine::startAndStop() +{ + QStateMachine machine; + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy stoppedSpy(&machine, SIGNAL(stopped())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + QVERIFY(!machine.isRunning()); + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::start: No initial state set for machine. Refusing to start."); + machine.start(); + QCOMPARE(startedSpy.count(), 0); + QCOMPARE(stoppedSpy.count(), 0); + QCOMPARE(finishedSpy.count(), 0); + QVERIFY(!machine.isRunning()); + machine.stop(); + QCOMPARE(startedSpy.count(), 0); + QCOMPARE(stoppedSpy.count(), 0); + QCOMPARE(finishedSpy.count(), 0); + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + machine.start(); + QTRY_COMPARE(machine.isRunning(), true); + QTRY_COMPARE(startedSpy.count(), 1); + QCOMPARE(stoppedSpy.count(), 0); + QCOMPARE(finishedSpy.count(), 0); + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(s1)); + + QTest::ignoreMessage(QtWarningMsg, "QStateMachine::start(): already running"); + machine.start(); + + machine.stop(); + QTRY_COMPARE(machine.isRunning(), false); + QTRY_COMPARE(stoppedSpy.count(), 1); + QCOMPARE(startedSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + + QCOMPARE(machine.configuration().count(), 1); + QVERIFY(machine.configuration().contains(s1)); + + machine.start(); + machine.stop(); + QTRY_COMPARE(startedSpy.count(), 2); + QCOMPARE(stoppedSpy.count(), 2); +} + +void tst_QStateMachine::targetStateWithNoParent() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + s1->setObjectName("s1"); + QState s2; + s1->addTransition(&s2); + machine.setInitialState(s1); + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy stoppedSpy(&machine, SIGNAL(stopped())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: No common ancestor for targets and source of transition from state 's1'"); + QTRY_COMPARE(startedSpy.count(), 1); + QCOMPARE(machine.isRunning(), false); + QCOMPARE(stoppedSpy.count(), 1); + QCOMPARE(finishedSpy.count(), 0); + QCOMPARE(machine.error(), QStateMachine::NoCommonAncestorForTransitionError); +} + +void tst_QStateMachine::targetStateDeleted() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + s1->setObjectName("s1"); + QState *s2 = new QState(&machine); + QAbstractTransition *trans = s1->addTransition(s2); + delete s2; + QCOMPARE(trans->targetState(), (QAbstractState*)0); + QVERIFY(trans->targetStates().isEmpty()); +} + +void tst_QStateMachine::defaultGlobalRestorePolicy() +{ + QStateMachine machine; + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("a", 1); + propertyHolder->setProperty("b", 2); + + QState *s1 = new QState(&machine); + s1->assignProperty(propertyHolder, "a", 3); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "b", 4); + + QState *s3 = new QState(&machine); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); +} + +void tst_QStateMachine::noInitialStateForInitialState() +{ + QStateMachine machine; + + QState *initialState = new QState(&machine); + initialState->setObjectName("initialState"); + machine.setInitialState(initialState); + + QState *childState = new QState(initialState); + (void)childState; + + QTest::ignoreMessage(QtWarningMsg, "Unrecoverable error detected in running state machine: " + "Missing initial state in compound state 'initialState'"); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.isRunning(), false); + QCOMPARE(int(machine.error()), int(QStateMachine::NoInitialStateError)); +} + +/* +void tst_QStateMachine::restorePolicyNotInherited() +{ + QStateMachine machine; + + QObject *propertyHolder = new QObject(); + propertyHolder->setProperty("a", 1); + propertyHolder->setProperty("b", 2); + + QState *parentState = new QState(&machine); + parentState->setObjectName("parentState"); + parentState->setRestorePolicy(QState::RestoreProperties); + + QState *s1 = new QState(parentState); + s1->setObjectName("s1"); + s1->assignProperty(propertyHolder, "a", 3); + parentState->setInitialState(s1); + + QState *s2 = new QState(parentState); + s2->setObjectName("s2"); + s2->assignProperty(propertyHolder, "b", 4); + + QState *s3 = new QState(parentState); + s3->setObjectName("s3"); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(parentState); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + +}*/ + +void tst_QStateMachine::globalRestorePolicySetToDoNotRestore() +{ + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::DoNotRestoreProperties); + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("a", 1); + propertyHolder->setProperty("b", 2); + + QState *s1 = new QState(&machine); + s1->assignProperty(propertyHolder, "a", 3); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "b", 4); + + QState *s3 = new QState(&machine); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 4); +} + +/* +void tst_QStateMachine::setRestorePolicyToDoNotRestore() +{ + QObject *object = new QObject(); + object->setProperty("a", 1); + object->setProperty("b", 2); + + QStateMachine machine; + + QState *S1 = new QState(); + S1->setObjectName("S1"); + S1->assignProperty(object, "a", 3); + S1->setRestorePolicy(QState::DoNotRestoreProperties); + machine.addState(S1); + + QState *S2 = new QState(); + S2->setObjectName("S2"); + S2->assignProperty(object, "b", 5); + S2->setRestorePolicy(QState::DoNotRestoreProperties); + machine.addState(S2); + + QState *S3 = new QState(); + S3->setObjectName("S3"); + S3->setRestorePolicy(QState::DoNotRestoreProperties); + machine.addState(S3); + + QFinalState *S4 = new QFinalState(); + machine.addState(S4); + + S1->addTransition(new EventTransition(QEvent::User, S2)); + S2->addTransition(new EventTransition(QEvent::User, S3)); + S3->addTransition(S4); + + machine.setInitialState(S1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 3); + QCOMPARE(object->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 3); + QCOMPARE(object->property("b").toInt(), 5); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(object->property("a").toInt(), 3); + QCOMPARE(object->property("b").toInt(), 5); +} + +void tst_QStateMachine::setGlobalRestorePolicyToGlobalRestore() +{ + s_countWarnings = false; + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::GlobalRestorePolicy); + + QCOMPARE(machine.globalRestorePolicy(), QStateMachine::DoNotRestoreProperties); + QCOMPARE(s_msgType, QtWarningMsg); + + s_msgType = QtDebugMsg; + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + machine.setGlobalRestorePolicy(QStateMachine::GlobalRestorePolicy); + + QCOMPARE(machine.globalRestorePolicy(), QStateMachine::RestoreProperties); + QCOMPARE(s_msgType, QtWarningMsg); +} + + +void tst_QStateMachine::restorePolicyOnChildState() +{ + QStateMachine machine; + + QObject *propertyHolder = new QObject(); + propertyHolder->setProperty("a", 1); + propertyHolder->setProperty("b", 2); + + QState *parentState = new QState(&machine); + parentState->setObjectName("parentState"); + + QState *s1 = new QState(parentState); + s1->setRestorePolicy(QState::RestoreProperties); + s1->setObjectName("s1"); + s1->assignProperty(propertyHolder, "a", 3); + parentState->setInitialState(s1); + + QState *s2 = new QState(parentState); + s2->setRestorePolicy(QState::RestoreProperties); + s2->setObjectName("s2"); + s2->assignProperty(propertyHolder, "b", 4); + + QState *s3 = new QState(parentState); + s3->setRestorePolicy(QState::RestoreProperties); + s3->setObjectName("s3"); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(parentState); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 1); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 1); + QCOMPARE(propertyHolder->property("b").toInt(), 2); +} +*/ + +void tst_QStateMachine::globalRestorePolicySetToRestore() +{ + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("a", 1); + propertyHolder->setProperty("b", 2); + + QState *s1 = new QState(&machine); + s1->assignProperty(propertyHolder, "a", 3); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "b", 4); + + QState *s3 = new QState(&machine); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 3); + QCOMPARE(propertyHolder->property("b").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 1); + QCOMPARE(propertyHolder->property("b").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("a").toInt(), 1); + QCOMPARE(propertyHolder->property("b").toInt(), 2); +} + +/* +void tst_QStateMachine::mixedRestoreProperties() +{ + QStateMachine machine; + + QObject *propertyHolder = new QObject(); + propertyHolder->setProperty("a", 1); + + QState *s1 = new QState(&machine); + s1->setRestorePolicy(QState::RestoreProperties); + s1->assignProperty(propertyHolder, "a", 3); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "a", 4); + + QState *s3 = new QState(&machine); + + QState *s4 = new QState(&machine); + s4->assignProperty(propertyHolder, "a", 5); + + QState *s5 = new QState(&machine); + s5->setRestorePolicy(QState::RestoreProperties); + s5->assignProperty(propertyHolder, "a", 6); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s2->addTransition(new EventTransition(QEvent::User, s3)); + s3->addTransition(new EventTransition(QEvent::User, s4)); + s4->addTransition(new EventTransition(QEvent::User, s5)); + s5->addTransition(new EventTransition(QEvent::User, s3)); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + // Enter s1, save current + QCOMPARE(propertyHolder->property("a").toInt(), 3); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + // Enter s2, restorePolicy == DoNotRestore, so restore all properties + QCOMPARE(propertyHolder->property("a").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + // Enter s3 + QCOMPARE(propertyHolder->property("a").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + // Enter s4 + QCOMPARE(propertyHolder->property("a").toInt(), 5); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + // Enter s5, save current + QCOMPARE(propertyHolder->property("a").toInt(), 6); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + // Enter s3, restore + QCOMPARE(propertyHolder->property("a").toInt(), 5); +} +*/ + +void tst_QStateMachine::transitionWithParent() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + QState *s2 = new QState(&machine); + EventTransition *trans = new EventTransition(QEvent::User, s2, s1); + QCOMPARE(trans->sourceState(), s1); + QCOMPARE(trans->targetState(), (QAbstractState*)s2); + QCOMPARE(trans->targetStates().size(), 1); + QCOMPARE(trans->targetStates().at(0), (QAbstractState*)s2); +} + +void tst_QStateMachine::simpleAnimation() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("fooBar", 1.0); + + QState *s1 = new QState(&machine); + QState *s2 = new QState(&machine); + s2->assignProperty(object, "fooBar", 2.0); + + EventTransition *et = new EventTransition(QEvent::User, s2); + QPropertyAnimation *animation = new QPropertyAnimation(object, "fooBar", s2); + et->addAnimation(animation); + s1->addTransition(et); + + QState *s3 = new QState(&machine); + s2->addTransition(animation, SIGNAL(finished()), s3); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("fooBar").toDouble(), 2.0); +} + +class SlotCalledCounter: public QObject +{ + Q_OBJECT +public: + SlotCalledCounter() : counter(0) {} + + int counter; + +public slots: + void slot() { counter++; } +}; + +void tst_QStateMachine::twoAnimations() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + object->setProperty("bar", 3.0); + + QState *s1 = new QState(&machine); + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + s2->assignProperty(object, "bar", 10.0); + + QPropertyAnimation *animationFoo = new QPropertyAnimation(object, "foo", s2); + QPropertyAnimation *animationBar = new QPropertyAnimation(object, "bar", s2); + animationBar->setDuration(900); + + SlotCalledCounter counter; + connect(animationFoo, SIGNAL(finished()), &counter, SLOT(slot())); + connect(animationBar, SIGNAL(finished()), &counter, SLOT(slot())); + + EventTransition *et = new EventTransition(QEvent::User, s2); + et->addAnimation(animationFoo); + et->addAnimation(animationBar); + s1->addTransition(et); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + s2->addTransition(s2, SIGNAL(polished()), s3); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); + QCOMPARE(object->property("bar").toDouble(), 10.0); + + QCOMPARE(counter.counter, 2); +} + +void tst_QStateMachine::twoAnimatedTransitions() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 5.0); + QPropertyAnimation *fooAnimation = new QPropertyAnimation(object, "foo", s2); + s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(fooAnimation); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + s2->addTransition(fooAnimation, SIGNAL(finished()), s3); + + QState *s4 = new QState(&machine); + s4->assignProperty(object, "foo", 2.0); + QPropertyAnimation *fooAnimation2 = new QPropertyAnimation(object, "foo", s4); + s3->addTransition(new EventTransition(QEvent::User, s4))->addAnimation(fooAnimation2); + + QState *s5 = new QState(&machine); + QObject::connect(s5, SIGNAL(entered()), QApplication::instance(), SLOT(quit())); + s4->addTransition(fooAnimation2, SIGNAL(finished()), s5); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 5.0); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s5)); + QCOMPARE(object->property("foo").toDouble(), 2.0); +} + +void tst_QStateMachine::playAnimationTwice() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 5.0); + QPropertyAnimation *fooAnimation = new QPropertyAnimation(object, "foo", s2); + s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(fooAnimation); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + s2->addTransition(fooAnimation, SIGNAL(finished()), s3); + + QState *s4 = new QState(&machine); + s4->assignProperty(object, "foo", 2.0); + s3->addTransition(new EventTransition(QEvent::User, s4))->addAnimation(fooAnimation); + + QState *s5 = new QState(&machine); + QObject::connect(s5, SIGNAL(entered()), QApplication::instance(), SLOT(quit())); + s4->addTransition(fooAnimation, SIGNAL(finished()), s5); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 5.0); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s5)); + QCOMPARE(object->property("foo").toDouble(), 2.0); +} + +void tst_QStateMachine::nestedTargetStateForAnimation() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + object->setProperty("bar", 3.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + QState *s2 = new QState(&machine); + + s2->assignProperty(object, "foo", 2.0); + + QState *s2Child = new QState(s2); + s2Child->assignProperty(object, "bar", 10.0); + s2->setInitialState(s2Child); + + QState *s2Child2 = new QState(s2); + s2Child2->assignProperty(object, "bar", 11.0); + QAbstractTransition *at = s2Child->addTransition(new EventTransition(QEvent::User, s2Child2)); + + QPropertyAnimation *animation = new QPropertyAnimation(object, "bar", s2); + animation->setDuration(2000); + connect(animation, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(animation); + + at = s1->addTransition(new EventTransition(QEvent::User, s2)); + + animation = new QPropertyAnimation(object, "foo", s2); + connect(animation, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(animation); + + animation = new QPropertyAnimation(object, "bar", s2); + connect(animation, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(animation); + + QState *s3 = new QState(&machine); + s2->addTransition(s2Child, SIGNAL(polished()), s3); + + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + machine.postEvent(new QEvent(QEvent::User)); + + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); + QCOMPARE(object->property("bar").toDouble(), 10.0); + QCOMPARE(counter.counter, 2); +} + +void tst_QStateMachine::animatedGlobalRestoreProperty() +{ + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + + QState *s4 = new QState(&machine); + QObject::connect(s4, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2)); + QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", s2); + connect(pa, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(pa); + + at = s2->addTransition(pa, SIGNAL(finished()), s3); + pa = new QPropertyAnimation(object, "foo", s3); + connect(pa, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(pa); + + at = s3->addTransition(pa, SIGNAL(finished()), s4); + pa = new QPropertyAnimation(object, "foo", s4); + connect(pa, SIGNAL(finished()), &counter, SLOT(slot())); + at->addAnimation(pa); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s4)); + QCOMPARE(object->property("foo").toDouble(), 1.0); + QCOMPARE(counter.counter, 2); +} + +void tst_QStateMachine::specificTargetValueOfAnimation() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QPropertyAnimation *anim = new QPropertyAnimation(object, "foo"); + anim->setEndValue(10.0); + s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(anim); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + s2->addTransition(anim, SIGNAL(finished()), s3); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); + QCOMPARE(anim->endValue().toDouble(), 10.0); + + delete anim; +} + +void tst_QStateMachine::addDefaultAnimation() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", &machine); + machine.addDefaultAnimation(pa); + s2->addTransition(pa, SIGNAL(finished()), s3); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); + + delete object; +} + +void tst_QStateMachine::addDefaultAnimationWithUnusedAnimation() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + object->setProperty("bar", 2.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", &machine); + connect(pa, SIGNAL(finished()), &counter, SLOT(slot())); + machine.addDefaultAnimation(pa); + s2->addTransition(pa, SIGNAL(finished()), s3); + + pa = new QPropertyAnimation(object, "bar", &machine); + connect(pa, SIGNAL(finished()), &counter, SLOT(slot())); + machine.addDefaultAnimation(pa); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); + QCOMPARE(counter.counter, 1); +} + +void tst_QStateMachine::removeDefaultAnimation() +{ + QStateMachine machine; + + QObject propertyHolder; + propertyHolder.setProperty("foo", 0); + + QCOMPARE(machine.defaultAnimations().size(), 0); + + QPropertyAnimation *anim = new QPropertyAnimation(&propertyHolder, "foo"); + + machine.addDefaultAnimation(anim); + + QCOMPARE(machine.defaultAnimations().size(), 1); + QVERIFY(machine.defaultAnimations().contains(anim)); + + machine.removeDefaultAnimation(anim); + + QCOMPARE(machine.defaultAnimations().size(), 0); + + machine.addDefaultAnimation(anim); + + QPropertyAnimation *anim2 = new QPropertyAnimation(&propertyHolder, "foo"); + machine.addDefaultAnimation(anim2); + + QCOMPARE(machine.defaultAnimations().size(), 2); + QVERIFY(machine.defaultAnimations().contains(anim)); + QVERIFY(machine.defaultAnimations().contains(anim2)); + + machine.removeDefaultAnimation(anim); + + QCOMPARE(machine.defaultAnimations().size(), 1); + QVERIFY(machine.defaultAnimations().contains(anim2)); + + machine.removeDefaultAnimation(anim2); + QCOMPARE(machine.defaultAnimations().size(), 0); + + delete anim; + delete anim2; +} + +void tst_QStateMachine::overrideDefaultAnimationWithSpecific() +{ + QStateMachine machine; + + QObject *object = new QObject(&machine); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimation(defaultAnimation); + at->addAnimation(moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped + + delete defaultAnimation; + delete moreSpecificAnimation; +} + +/* +void tst_QStateMachine::addDefaultAnimationForSource() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", &machine); + machine.addDefaultAnimationForSourceState(s1, pa); + s2->addTransition(pa, SIGNAL(finished()), s3); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); +} + +void tst_QStateMachine::addDefaultAnimationForTarget() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + QState *s1 = new QState(&machine); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", &machine); + machine.addDefaultAnimationForTargetState(s2, pa); + s2->addTransition(pa, SIGNAL(finished()), s3); + + machine.setInitialState(s1); + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(object->property("foo").toDouble(), 2.0); +} + +void tst_QStateMachine::removeDefaultAnimationForSource() +{ + QStateMachine machine; + + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 0); + + QPropertyAnimation *anim = new QPropertyAnimation(this, "foo"); + + machine.addDefaultAnimationForSourceState(&machine, anim); + + QCOMPARE(machine.defaultAnimations().size(), 0); + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 0); + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForSourceState(&machine).contains(anim)); + + machine.removeDefaultAnimationForTargetState(&machine, anim); + + QCOMPARE(machine.defaultAnimations().size(), 0); + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 0); + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForSourceState(&machine).contains(anim)); + + machine.removeDefaultAnimationForSourceState(&machine, anim); + + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 0); + + machine.addDefaultAnimationForSourceState(&machine, anim); + + QPropertyAnimation *anim2 = new QPropertyAnimation(this, "foo"); + machine.addDefaultAnimationForSourceState(&machine, anim2); + + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 2); + QVERIFY(machine.defaultAnimationsForSourceState(&machine).contains(anim)); + QVERIFY(machine.defaultAnimationsForSourceState(&machine).contains(anim2)); + + machine.removeDefaultAnimationForSourceState(&machine, anim); + + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForSourceState(&machine).contains(anim2)); + + machine.removeDefaultAnimationForSourceState(&machine, anim2); + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 0); +} + +void tst_QStateMachine::removeDefaultAnimationForTarget() +{ + QStateMachine machine; + + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 0); + + QPropertyAnimation *anim = new QPropertyAnimation(this, "foo"); + + machine.addDefaultAnimationForTargetState(&machine, anim); + + QCOMPARE(machine.defaultAnimations().size(), 0); + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 0); + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForTargetState(&machine).contains(anim)); + + machine.removeDefaultAnimationForSourceState(&machine, anim); + + QCOMPARE(machine.defaultAnimations().size(), 0); + QCOMPARE(machine.defaultAnimationsForSourceState(&machine).size(), 0); + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForTargetState(&machine).contains(anim)); + + machine.removeDefaultAnimationForTargetState(&machine, anim); + + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 0); + + machine.addDefaultAnimationForTargetState(&machine, anim); + + QPropertyAnimation *anim2 = new QPropertyAnimation(this, "foo"); + machine.addDefaultAnimationForTargetState(&machine, anim2); + + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 2); + QVERIFY(machine.defaultAnimationsForTargetState(&machine).contains(anim)); + QVERIFY(machine.defaultAnimationsForTargetState(&machine).contains(anim2)); + + machine.removeDefaultAnimationForTargetState(&machine, anim); + + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 1); + QVERIFY(machine.defaultAnimationsForTargetState(&machine).contains(anim2)); + + machine.removeDefaultAnimationForTargetState(&machine, anim2); + QCOMPARE(machine.defaultAnimationsForTargetState(&machine).size(), 0); +} + +void tst_QStateMachine::overrideDefaultAnimationWithSource() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimation(defaultAnimation); + machine.addDefaultAnimationForSourceState(s1, moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped +} + +void tst_QStateMachine::overrideDefaultAnimationWithTarget() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimation(defaultAnimation); + machine.addDefaultAnimationForTargetState(s2, moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped + +} + +void tst_QStateMachine::overrideDefaultSourceAnimationWithSpecific() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimationForSourceState(s1, defaultAnimation); + at->addAnimation(moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped +} + +void tst_QStateMachine::overrideDefaultTargetAnimationWithSpecific() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimationForTargetState(s2, defaultAnimation); + at->addAnimation(moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped +} + +void tst_QStateMachine::overrideDefaultTargetAnimationWithSource() +{ + QStateMachine machine; + + QObject *object = new QObject(); + object->setProperty("foo", 1.0); + + SlotCalledCounter counter; + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(object, "foo", 2.0); + + QState *s3 = new QState(&machine); + QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit())); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + + QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo"); + connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + QPropertyAnimation *moreSpecificAnimation = new QPropertyAnimation(object, "foo"); + s2->addTransition(moreSpecificAnimation, SIGNAL(finished()), s3); + connect(moreSpecificAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot())); + + machine.addDefaultAnimationForTargetState(s2, defaultAnimation); + machine.addDefaultAnimationForSourceState(s1, moreSpecificAnimation); + + machine.start(); + QCoreApplication::processEvents(); + + machine.postEvent(new QEvent(QEvent::User)); + QCOREAPPLICATION_EXEC(5000); + + QVERIFY(machine.configuration().contains(s3)); + QCOMPARE(counter.counter, 2); // specific animation started and stopped +} + +*/ + +void tst_QStateMachine::parallelStateAssignmentsDone() +{ + QStateMachine machine; + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("foo", 123); + propertyHolder->setProperty("bar", 456); + propertyHolder->setProperty("zoot", 789); + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *parallelState = new QState(QState::ParallelStates, &machine); + parallelState->assignProperty(propertyHolder, "foo", 321); + + QState *s2 = new QState(parallelState); + s2->assignProperty(propertyHolder, "bar", 654); + + QState *s3 = new QState(parallelState); + s3->assignProperty(propertyHolder, "zoot", 987); + + s1->addTransition(new EventTransition(QEvent::User, parallelState)); + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("foo").toInt(), 123); + QCOMPARE(propertyHolder->property("bar").toInt(), 456); + QCOMPARE(propertyHolder->property("zoot").toInt(), 789); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(propertyHolder->property("foo").toInt(), 321); + QCOMPARE(propertyHolder->property("bar").toInt(), 654); + QCOMPARE(propertyHolder->property("zoot").toInt(), 987); +} + +void tst_QStateMachine::transitionsFromParallelStateWithNoChildren() +{ + QStateMachine machine; + + QState *parallelState = new QState(QState::ParallelStates, &machine); + machine.setInitialState(parallelState); + + QState *s1 = new QState(&machine); + parallelState->addTransition(new EventTransition(QEvent::User, s1)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(1, machine.configuration().size()); + QVERIFY(machine.configuration().contains(parallelState)); + + machine.postEvent(new QEvent(QEvent::User)); + + QCoreApplication::processEvents(); + + QCOMPARE(1, machine.configuration().size()); + QVERIFY(machine.configuration().contains(s1)); +} + +void tst_QStateMachine::parallelStateTransition() +{ + QStateMachine machine; + + QState *parallelState = new QState(QState::ParallelStates, &machine); + machine.setInitialState(parallelState); + + QState *s1 = new QState(parallelState); + QState *s2 = new QState(parallelState); + + QState *s1InitialChild = new QState(s1); + s1->setInitialState(s1InitialChild); + + QState *s2InitialChild = new QState(s2); + s2->setInitialState(s2InitialChild); + + QState *s1OtherChild = new QState(s1); + + s1->addTransition(new EventTransition(QEvent::User, s1OtherChild)); + + machine.start(); + QCoreApplication::processEvents(); + + QVERIFY(machine.configuration().contains(parallelState)); + QVERIFY(machine.configuration().contains(s1)); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s1InitialChild)); + QVERIFY(machine.configuration().contains(s2InitialChild)); + QCOMPARE(machine.configuration().size(), 5); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QVERIFY(machine.configuration().contains(parallelState)); + + QVERIFY(machine.configuration().contains(s1)); + + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s1OtherChild)); + QVERIFY(machine.configuration().contains(s2InitialChild)); + QCOMPARE(machine.configuration().size(), 5); + +} + +void tst_QStateMachine::nestedRestoreProperties() +{ + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("foo", 1); + propertyHolder->setProperty("bar", 2); + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "foo", 3); + + QState *s21 = new QState(s2); + s21->assignProperty(propertyHolder, "bar", 4); + s2->setInitialState(s21); + + QState *s22 = new QState(s2); + s22->assignProperty(propertyHolder, "bar", 5); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s21->addTransition(new EventTransition(QEvent::User, s22)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + QCOMPARE(propertyHolder->property("foo").toInt(), 1); + QCOMPARE(propertyHolder->property("bar").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s21)); + QCOMPARE(propertyHolder->property("foo").toInt(), 3); + QCOMPARE(propertyHolder->property("bar").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s22)); + QCOMPARE(propertyHolder->property("foo").toInt(), 3); + QCOMPARE(propertyHolder->property("bar").toInt(), 5); +} + +void tst_QStateMachine::nestedRestoreProperties2() +{ + QStateMachine machine; + machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties); + + QObject *propertyHolder = new QObject(&machine); + propertyHolder->setProperty("foo", 1); + propertyHolder->setProperty("bar", 2); + + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + + QState *s2 = new QState(&machine); + s2->assignProperty(propertyHolder, "foo", 3); + + QState *s21 = new QState(s2); + s21->assignProperty(propertyHolder, "bar", 4); + s2->setInitialState(s21); + + QState *s22 = new QState(s2); + s22->assignProperty(propertyHolder, "foo", 6); + s22->assignProperty(propertyHolder, "bar", 5); + + s1->addTransition(new EventTransition(QEvent::User, s2)); + s21->addTransition(new EventTransition(QEvent::User, s22)); + s22->addTransition(new EventTransition(QEvent::User, s21)); + + machine.start(); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 1); + QVERIFY(machine.configuration().contains(s1)); + QCOMPARE(propertyHolder->property("foo").toInt(), 1); + QCOMPARE(propertyHolder->property("bar").toInt(), 2); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s21)); + QCOMPARE(propertyHolder->property("foo").toInt(), 3); + QCOMPARE(propertyHolder->property("bar").toInt(), 4); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s22)); + QCOMPARE(propertyHolder->property("foo").toInt(), 6); + QCOMPARE(propertyHolder->property("bar").toInt(), 5); + + machine.postEvent(new QEvent(QEvent::User)); + QCoreApplication::processEvents(); + + QCOMPARE(machine.configuration().size(), 2); + QVERIFY(machine.configuration().contains(s2)); + QVERIFY(machine.configuration().contains(s21)); + QCOMPARE(propertyHolder->property("foo").toInt(), 3); + QCOMPARE(propertyHolder->property("bar").toInt(), 4); + +} + +void tst_QStateMachine::nestedStateMachines() +{ + QStateMachine machine; + QState *group = new QState(&machine); + group->setChildMode(QState::ParallelStates); + QStateMachine *subMachines[3]; + for (int i = 0; i < 3; ++i) { + QState *subGroup = new QState(group); + QStateMachine *subMachine = new QStateMachine(subGroup); + { + QState *initial = new QState(subMachine); + QFinalState *done = new QFinalState(subMachine); + initial->addTransition(new EventTransition(QEvent::User, done)); + subMachine->setInitialState(initial); + } + QFinalState *subMachineDone = new QFinalState(subGroup); + subMachine->addTransition(subMachine, SIGNAL(finished()), subMachineDone); + subGroup->setInitialState(subMachine); + subMachines[i] = subMachine; + } + QFinalState *final = new QFinalState(&machine); + group->addTransition(group, SIGNAL(finished()), final); + machine.setInitialState(group); + + QSignalSpy startedSpy(&machine, SIGNAL(started())); + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(startedSpy.count(), 1); + QTRY_COMPARE(machine.configuration().count(), 1+2*3); + QVERIFY(machine.configuration().contains(group)); + for (int i = 0; i < 3; ++i) + QVERIFY(machine.configuration().contains(subMachines[i])); + + QCoreApplication::processEvents(); // starts the submachines + + for (int i = 0; i < 3; ++i) + subMachines[i]->postEvent(new QEvent(QEvent::User)); + + QTRY_COMPARE(finishedSpy.count(), 1); +} + +QTEST_MAIN(tst_QStateMachine) +#include "tst_qstatemachine.moc" diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp index e172c33..85dbda0 100644 --- a/tests/auto/qstring/tst_qstring.cpp +++ b/tests/auto/qstring/tst_qstring.cpp @@ -3997,15 +3997,15 @@ void tst_QString::localeAwareCompare() # if defined(Q_OS_WINCE) DWORD oldLcid = GetUserDefaultLCID(); SetUserDefaultLCID(locale); - if (locale != GetUserDefaultLCID()) { + + QCOMPARE(locale, GetUserDefaultLCID()); # else DWORD oldLcid = GetThreadLocale(); SetThreadLocale(locale); - if (locale != GetThreadLocale()) { + QCOMPARE(locale, GetThreadLocale()); # endif - QSKIP("SetThreadLocale() not supported on Win9x", SkipSingle); - } + #elif defined (Q_WS_MAC) QSKIP("Setting the locale is not supported on OS X (you can set the C locale, but that won't affect CFStringCompare which is used to compare strings)", SkipAll); #else diff --git a/tests/auto/qstringbuilder/qstringbuilder.pro b/tests/auto/qstringbuilder/qstringbuilder.pro new file mode 100644 index 0000000..c5a26d3 --- /dev/null +++ b/tests/auto/qstringbuilder/qstringbuilder.pro @@ -0,0 +1,5 @@ + +TEMPLATE = subdirs +SUBDIRS = scenario1.pro scenario2.pro scenario3.pro scenario4.pro + + diff --git a/tests/auto/qstringbuilder/scenario1.cpp b/tests/auto/qstringbuilder/scenario1.cpp new file mode 100644 index 0000000..26b4ed3 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario1.cpp @@ -0,0 +1 @@ +#include "tst_qstringbuilder.cpp" diff --git a/tests/auto/qstringbuilder/scenario1.pro b/tests/auto/qstringbuilder/scenario1.pro new file mode 100644 index 0000000..4ce7156 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario1.pro @@ -0,0 +1,8 @@ +load(qttest_p4) + +QT = core + +SOURCES += scenario1.cpp + +DEFINES += SCENARIO=1 + diff --git a/tests/auto/qstringbuilder/scenario2.cpp b/tests/auto/qstringbuilder/scenario2.cpp new file mode 100644 index 0000000..26b4ed3 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario2.cpp @@ -0,0 +1 @@ +#include "tst_qstringbuilder.cpp" diff --git a/tests/auto/qstringbuilder/scenario2.pro b/tests/auto/qstringbuilder/scenario2.pro new file mode 100644 index 0000000..64c46e2 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario2.pro @@ -0,0 +1,7 @@ +load(qttest_p4) + +QT = core + +SOURCES += scenario2.cpp + +DEFINES += SCENARIO=2 diff --git a/tests/auto/qstringbuilder/scenario3.cpp b/tests/auto/qstringbuilder/scenario3.cpp new file mode 100644 index 0000000..26b4ed3 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario3.cpp @@ -0,0 +1 @@ +#include "tst_qstringbuilder.cpp" diff --git a/tests/auto/qstringbuilder/scenario3.pro b/tests/auto/qstringbuilder/scenario3.pro new file mode 100644 index 0000000..beedffd --- /dev/null +++ b/tests/auto/qstringbuilder/scenario3.pro @@ -0,0 +1,7 @@ +load(qttest_p4) + +QT = core + +SOURCES += scenario3.cpp + +DEFINES += SCENARIO=3 diff --git a/tests/auto/qstringbuilder/scenario4.cpp b/tests/auto/qstringbuilder/scenario4.cpp new file mode 100644 index 0000000..26b4ed3 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario4.cpp @@ -0,0 +1 @@ +#include "tst_qstringbuilder.cpp" diff --git a/tests/auto/qstringbuilder/scenario4.pro b/tests/auto/qstringbuilder/scenario4.pro new file mode 100644 index 0000000..1c45a70 --- /dev/null +++ b/tests/auto/qstringbuilder/scenario4.pro @@ -0,0 +1,7 @@ +load(qttest_p4) + +QT = core + +SOURCES += scenario4.cpp + +DEFINES += SCENARIO=4 diff --git a/tests/auto/qstringbuilder/tst_qstringbuilder.cpp b/tests/auto/qstringbuilder/tst_qstringbuilder.cpp new file mode 100644 index 0000000..72889bc --- /dev/null +++ b/tests/auto/qstringbuilder/tst_qstringbuilder.cpp @@ -0,0 +1,142 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// This is included in various .cpp files as a compile test for various scenarios +// depending on NO_CAST_* and QT_USE_FAST_OPERATOR_PLUS and QT_USE_FAST_CONCATENATION + +#if SCENARIO == 1 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII +#endif + + +#if SCENARIO == 2 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII +#endif + +#if SCENARIO == 3 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * _not_ defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII +#endif + +#if SCENARIO == 4 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * _not_ defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII +#endif + +#include <QtTest/QtTest> + +//TESTED_CLASS=QStringBuilder +//TESTED_FILES=qstringbuilder.cpp + +#define LITERAL "some literal" + +class tst_QStringBuilder : public QObject +{ + Q_OBJECT + +private slots: + void scenario(); +}; + +void tst_QStringBuilder::scenario() +{ + QLatin1Literal l1literal(LITERAL); + QLatin1String l1string(LITERAL); + QString string(l1string); + QStringRef stringref(&string, 2, 10); + QLatin1Char achar('c'); + QString r2(QLatin1String(LITERAL LITERAL)); + QString r; + QByteArray ba(LITERAL); + + r = l1literal P l1literal; + QCOMPARE(r, r2); + r = string P string; + QCOMPARE(r, r2); + r = stringref P stringref; + QCOMPARE(r, QString(stringref.toString() + stringref.toString())); + r = string P l1literal; + QCOMPARE(r, r2); + r = string P l1string; + QCOMPARE(r, r2); + r = string + achar; + QCOMPARE(r, QString(string P achar)); + r = achar + string; + QCOMPARE(r, QString(achar P string)); +#ifndef QT_NO_CAST_FROM_ASCII + r = string P LITERAL; + QCOMPARE(r, r2); + r = LITERAL P string; + QCOMPARE(r, r2); + r = ba P string; + QCOMPARE(r, r2); + r = string P ba; + QCOMPARE(r, r2); +#endif +} + +QTEST_APPLESS_MAIN(tst_QStringBuilder) + +#include "tst_qstringbuilder.moc" diff --git a/tests/auto/qstyle/tst_qstyle.cpp b/tests/auto/qstyle/tst_qstyle.cpp index ed70c1d..2cb5080 100644 --- a/tests/auto/qstyle/tst_qstyle.cpp +++ b/tests/auto/qstyle/tst_qstyle.cpp @@ -58,6 +58,7 @@ #include <qcdestyle.h> #include <qmotifstyle.h> #include <qcommonstyle.h> +#include <qproxystyle.h> #include <qstylefactory.h> #include <qimagereader.h> @@ -90,7 +91,7 @@ #include <windows.h> static bool qt_wince_is_smartphone() { - TCHAR tszPlatform[64]; + wchar_t tszPlatform[64]; if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (QString::fromLatin1("Smartphone").utf16()), tszPlatform)) @@ -131,6 +132,7 @@ private slots: void testWindowsCEStyle(); void testWindowsMobileStyle(); void testStyleFactory(); + void testProxyStyle(); void pixelMetric(); void progressBarChangeStyle(); void defaultFont(); @@ -213,6 +215,44 @@ void tst_QStyle::testStyleFactory() } } +class CustomProxy : public QProxyStyle +{ + virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, + const QWidget *widget = 0) const + { + if (metric == QStyle::PM_ButtonIconSize) + return 13; + return QProxyStyle::pixelMetric(metric, option, widget); + } +}; + +void tst_QStyle::testProxyStyle() +{ + QProxyStyle *proxyStyle = new QProxyStyle(); + QVERIFY(proxyStyle->baseStyle()); + QStyle *style = new QWindowsStyle; + QVERIFY(style->proxy() == style); + + proxyStyle->setBaseStyle(style); + QVERIFY(style->proxy() == proxyStyle); + QVERIFY(style->parent() == proxyStyle); + QVERIFY(proxyStyle->baseStyle() == style); + + testAllFunctions(proxyStyle); + proxyStyle->setBaseStyle(0); + QVERIFY(proxyStyle->baseStyle()); + qApp->setStyle(proxyStyle); + + QProxyStyle doubleProxy(new QProxyStyle(new QWindowsStyle())); + testAllFunctions(&doubleProxy); + + CustomProxy customStyle; + QLineEdit edit; + edit.setStyle(&customStyle); + QVERIFY(!customStyle.parent()); + QVERIFY(edit.style()->pixelMetric(QStyle::PM_ButtonIconSize) == 13); +} + void tst_QStyle::drawItemPixmap() { testWidget->resize(300, 300); @@ -311,7 +351,7 @@ void tst_QStyle::testAllFunctions(QStyle *style) testScrollBarSubControls(style); } -void tst_QStyle::testScrollBarSubControls(QStyle *style) +void tst_QStyle::testScrollBarSubControls(QStyle *) { #ifdef Q_OS_WINCE_WM if (qobject_cast<QWindowsMobileStyle*>(style) && qt_wince_is_smartphone()) diff --git a/tests/auto/qstylesheetstyle/qstylesheetstyle.pro b/tests/auto/qstylesheetstyle/qstylesheetstyle.pro index 6acb0b4..f6101f4 100644 --- a/tests/auto/qstylesheetstyle/qstylesheetstyle.pro +++ b/tests/auto/qstylesheetstyle/qstylesheetstyle.pro @@ -13,3 +13,4 @@ contains(QT_CONFIG, qt3support): QT += qt3support # Input SOURCES += tst_qstylesheetstyle.cpp RESOURCES += resources.qrc +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp index 9917394..22b0f66 100644 --- a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp +++ b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp @@ -81,6 +81,7 @@ private slots: void onWidgetDestroyed(); void fontPrecedence(); void focusColors(); + void hoverColors(); void background(); void tabAlignement(); void attributesList(); @@ -760,6 +761,7 @@ void tst_QStyleSheetStyle::focusColors() combobox->setEditable(true); combobox->addItems(QStringList() << "TESTING"); widgets << combobox; + widgets << new QLabel("TESTING"); #ifdef Q_WS_QWS // QWS has its own special focus logic which is slightly different @@ -809,6 +811,56 @@ void tst_QStyleSheetStyle::focusColors() // } } + +void tst_QStyleSheetStyle::hoverColors() +{ + QList<QWidget *> widgets; + widgets << new QPushButton("TESTING"); + widgets << new QLineEdit("TESTING"); + widgets << new QLabel("TESTING"); + QSpinBox *spinbox = new QSpinBox; + spinbox->setValue(8888); + widgets << spinbox; + QComboBox *combobox = new QComboBox; + combobox->setEditable(true); + combobox->addItems(QStringList() << "TESTING"); + widgets << combobox; + widgets << new QLabel("<b>TESTING</b>"); + + foreach (QWidget *widget, widgets) { + QDialog frame; + QLayout* layout = new QGridLayout; + + QLineEdit* dummy = new QLineEdit; + + widget->setStyleSheet("*:hover { border:none; background: #e8ff66; color: #ff0084 }"); + + layout->addWidget(dummy); + layout->addWidget(widget); + frame.setLayout(layout); + + frame.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&frame); +#endif + QApplication::setActiveWindow(&frame); + QTest::qWait(60); + QTest::mouseMove ( widget, QPoint(5,5)); + QTest::qWait(60); + + QImage image(frame.width(), frame.height(), QImage::Format_ARGB32); + frame.render(&image); + + QVERIFY2(testForColors(image, QColor(0xe8, 0xff, 0x66)), + (QString::fromLatin1(widget->metaObject()->className()) + + " did not contain background color #e8ff66").toLocal8Bit().constData()); + QVERIFY2(testForColors(image, QColor(0xff, 0x00, 0x84)), + (QString::fromLatin1(widget->metaObject()->className()) + + " did not contain text color #ff0084").toLocal8Bit().constData()); + } + +} + class SingleInheritanceDialog : public QDialog { Q_OBJECT @@ -1378,8 +1430,6 @@ void tst_QStyleSheetStyle::task188195_baseBackground() QVERIFY(!testForColors(image, QColor(0xab, 0x12, 0x51))); } - - QTEST_MAIN(tst_QStyleSheetStyle) #include "tst_qstylesheetstyle.moc" diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp index e8cb089..2bbe897 100644 --- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp +++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp @@ -75,7 +75,14 @@ private slots: void stylePropagation() const; void matrixForElement() const; void gradientStops() const; + void gradientRefs(); void fillRule(); + void opacity(); + void paths(); + void displayMode(); + void strokeInherit(); + void testFillInheritance(); + void testStopOffsetOpacity(); #ifndef QT_NO_COMPRESS void testGzLoading(); @@ -331,7 +338,7 @@ void tst_QSvgRenderer::nestedQXmlStreamReader() const QCOMPARE(reader.readNext(), QXmlStreamReader::StartDocument); QCOMPARE(reader.readNext(), QXmlStreamReader::StartElement); QCOMPARE(reader.name().toString(), QLatin1String("bar")); - + QPicture picture; QPainter painter(&picture); QSvgRenderer renderer(&reader); @@ -533,7 +540,10 @@ void tst_QSvgRenderer::gradientStops() const QCOMPARE(image, refImage); } +} +void tst_QSvgRenderer::gradientRefs() +{ const char *svgs[] = { "<svg>" "<defs>" @@ -565,6 +575,17 @@ void tst_QSvgRenderer::gradientStops() const "</linearGradient>" "</defs>" "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>" + "</svg>", + "<svg>" + "<rect fill=\"url(#gradient)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>" + "<defs>" + "<linearGradient id=\"gradient0\">" + "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>" + "<stop offset=\"1\" stop-color=\"blue\"/>" + "</linearGradient>" + "<linearGradient id=\"gradient\" xlink:href=\"#gradient0\">" + "</linearGradient>" + "</defs>" "</svg>" }; for (int i = 0 ; i < sizeof(svgs) / sizeof(svgs[0]) ; ++i) @@ -589,6 +610,7 @@ void tst_QSvgRenderer::gradientStops() const } } + #ifndef QT_NO_COMPRESS void tst_QSvgRenderer::testGzLoading() { @@ -605,9 +627,11 @@ void tst_QSvgRenderer::testGzLoading() QVERIFY(autoDetectGzData.isValid()); } +#ifdef QT_BUILD_INTERNAL QT_BEGIN_NAMESPACE QByteArray qt_inflateGZipDataFrom(QIODevice *device); QT_END_NAMESPACE +#endif void tst_QSvgRenderer::testGzHelper_data() { @@ -640,6 +664,7 @@ void tst_QSvgRenderer::testGzHelper_data() void tst_QSvgRenderer::testGzHelper() { +#ifdef QT_BUILD_INTERNAL QFETCH(QByteArray, in); QFETCH(QByteArray, out); @@ -648,27 +673,536 @@ void tst_QSvgRenderer::testGzHelper() QVERIFY(buffer.isReadable()); QByteArray result = qt_inflateGZipDataFrom(&buffer); QCOMPARE(result, out); +#endif } #endif void tst_QSvgRenderer::fillRule() { - QByteArray data( + static const char *svgs[] = { + // Paths + // Default fill-rule (nonzero) + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <path d=\"M10 0 L30 0 L30 30 L0 30 L0 10 L20 10 L20 20 L10 20 Z\" fill=\"red\" />" + "</svg>", + // nonzero + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <path d=\"M10 0 L30 0 L30 30 L0 30 L0 10 L20 10 L20 20 L10 20 Z\" fill=\"red\" fill-rule=\"nonzero\" />" + "</svg>", + // evenodd "<svg>" - "<rect x=\"0\" y=\"0\" height=\"300\" width=\"400\" fill=\"blue\" />" - "<path d=\"M100 200 L300 200 L300 100 L100 100 M100 200 L300 200 L300 100 L100 100 Z\" fill=\"red\" stroke=\"black\" />" - "</svg>"); + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <path d=\"M10 0 L30 0 L30 30 L0 30 L0 10 L20 10 L20 20 L10 20 Z\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>", - QSvgRenderer renderer(data); + // Polygons + // Default fill-rule (nonzero) + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <polygon points=\"10 0 30 0 30 30 0 30 0 10 20 10 20 20 10 20\" fill=\"red\" />" + "</svg>", + // nonzero + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <polygon points=\"10 0 30 0 30 30 0 30 0 10 20 10 20 20 10 20\" fill=\"red\" fill-rule=\"nonzero\" />" + "</svg>", + // evenodd + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"30\" width=\"30\" fill=\"blue\" />" + " <polygon points=\"10 0 30 0 30 30 0 30 0 10 20 10 20 20 10 20\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>" + }; - QImage image(128, 128, QImage::Format_ARGB32_Premultiplied); - image.fill(0); + const int COUNT = sizeof(svgs) / sizeof(svgs[0]); + QImage refImageNonZero(30, 30, QImage::Format_ARGB32_Premultiplied); + QImage refImageEvenOdd(30, 30, QImage::Format_ARGB32_Premultiplied); + refImageNonZero.fill(0xffff0000); + refImageEvenOdd.fill(0xffff0000); + QPainter p; + p.begin(&refImageNonZero); + p.fillRect(QRectF(0, 0, 10, 10), Qt::blue); + p.end(); + p.begin(&refImageEvenOdd); + p.fillRect(QRectF(0, 0, 10, 10), Qt::blue); + p.fillRect(QRectF(10, 10, 10, 10), Qt::blue); + p.end(); + + for (int i = 0; i < COUNT; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QImage image(30, 30, QImage::Format_ARGB32_Premultiplied); + image.fill(0); + p.begin(&image); + renderer.render(&p); + p.end(); + QCOMPARE(image, i % 3 == 2 ? refImageEvenOdd : refImageNonZero); + } +} +static void opacity_drawSvgAndVerify(const QByteArray &data) +{ + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + QImage image(10, 10, QImage::Format_ARGB32_Premultiplied); + image.fill(0xffff00ff); QPainter painter(&image); renderer.render(&painter); painter.end(); + QCOMPARE(image.pixel(5, 5), 0xff7f7f7f); +} + +void tst_QSvgRenderer::opacity() +{ + static const char *opacities[] = {"-1,4641", "0", "0.5", "1", "1.337"}; + static const char *firstColors[] = {"#7f7f7f", "#7f7f7f", "#402051", "blue", "#123456"}; + static const char *secondColors[] = {"red", "#bad", "#bedead", "#7f7f7f", "#7f7f7f"}; + + // Fill-opacity + for (int i = 0; i < 5; ++i) { + QByteArray data("<svg><rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\""); + data.append(firstColors[i]); + data.append("\"/><rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\""); + data.append(secondColors[i]); + data.append("\" fill-opacity=\""); + data.append(opacities[i]); + data.append("\"/></svg>"); + opacity_drawSvgAndVerify(data); + } + // Stroke-opacity + for (int i = 0; i < 5; ++i) { + QByteArray data("<svg viewBox=\"0 0 10 10\"><polyline points=\"0 5 10 5\" fill=\"none\" stroke=\""); + data.append(firstColors[i]); + data.append("\" stroke-width=\"10\"/><line x1=\"5\" y1=\"0\" x2=\"5\" y2=\"10\" fill=\"none\" stroke=\""); + data.append(secondColors[i]); + data.append("\" stroke-width=\"10\" stroke-opacity=\""); + data.append(opacities[i]); + data.append("\"/></svg>"); + opacity_drawSvgAndVerify(data); + } + // As gradients: + // Fill-opacity + for (int i = 0; i < 5; ++i) { + QByteArray data("<svg><defs><linearGradient id=\"gradient\"><stop offset=\"0\" stop-color=\""); + data.append(secondColors[i]); + data.append("\"/><stop offset=\"1\" stop-color=\""); + data.append(secondColors[i]); + data.append("\"/></linearGradient></defs><rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\""); + data.append(firstColors[i]); + data.append("\"/><rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"url(#gradient)\" fill-opacity=\""); + data.append(opacities[i]); + data.append("\"/></svg>"); + opacity_drawSvgAndVerify(data); + } + // When support for gradients on strokes has been implemented, add the code below. + /* + // Stroke-opacity + for (int i = 0; i < 5; ++i) { + QByteArray data("<svg viewBox=\"0 0 10 10\"><defs><linearGradient id=\"grad\"><stop offset=\"0\" stop-color=\""); + data.append(secondColors[i]); + data.append("\"/><stop offset=\"1\" stop-color=\""); + data.append(secondColors[i]); + data.append("\"/></linearGradient></defs><polyline points=\"0 5 10 5\" fill=\"none\" stroke=\""); + data.append(firstColors[i]); + data.append("\" stroke-width=\"10\" /><line x1=\"5\" y1=\"0\" x2=\"5\" y2=\"10\" fill=\"none\" stroke=\"url(#grad)\" stroke-width=\"10\" stroke-opacity=\""); + data.append(opacities[i]); + data.append("\" /></svg>"); + opacity_drawSvgAndVerify(data); + } + */ +} + +void tst_QSvgRenderer::paths() +{ + static const char *svgs[] = { + // Absolute coordinates, explicit commands. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\"M50 0 V50 H0 Q0 25 25 25 T50 0 C25 0 50 50 25 50 S25 0 0 0 Z\" fill=\"red\" fill-rule=\"evenodd\"/>" + "</svg>", + // Absolute coordinates, implicit commands. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\"M50 0 50 50 0 50 Q0 25 25 25 Q50 25 50 0 C25 0 50 50 25 50 C0 50 25 0 0 0 Z\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>", + // Relative coordinates, explicit commands. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\"m50 0 v50 h-50 q0 -25 25 -25 t25 -25 c-25 0 0 50 -25 50 s0 -50 -25 -50 z\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>", + // Relative coordinates, implicit commands. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\"m50 0 0 50 -50 0 q0 -25 25 -25 25 0 25 -25 c-25 0 0 50 -25 50 -25 0 0 -50 -25 -50 z\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>", + // Absolute coordinates, explicit commands, minimal whitespace. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\"m50 0v50h-50q0-25 25-25t25-25c-25 0 0 50-25 50s0-50-25-50z\" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>", + // Absolute coordinates, explicit commands, extra whitespace. + "<svg>" + " <rect x=\"0\" y=\"0\" height=\"50\" width=\"50\" fill=\"blue\" />" + " <path d=\" M 50 0 V 50 H 0 Q 0 25 25 25 T 50 0 C 25 0 50 50 25 50 S 25 0 0 0 Z \" fill=\"red\" fill-rule=\"evenodd\" />" + "</svg>" + }; + + const int COUNT = sizeof(svgs) / sizeof(svgs[0]); + QImage images[COUNT]; + QPainter p; + + for (int i = 0; i < COUNT; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + images[i] = QImage(50, 50, QImage::Format_ARGB32_Premultiplied); + images[i].fill(0); + p.begin(&images[i]); + renderer.render(&p); + p.end(); + if (i != 0) { + QCOMPARE(images[i], images[0]); + } + } +} + +void tst_QSvgRenderer::displayMode() +{ + static const char *svgs[] = { + // All visible. + "<svg>" + " <g>" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" />" + " </g>" + "</svg>", + // Don't display svg element. + "<svg display=\"none\">" + " <g>" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" />" + " </g>" + "</svg>", + // Don't display g element. + "<svg>" + " <g display=\"none\">" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" />" + " </g>" + "</svg>", + // Don't display first rect element. + "<svg>" + " <g>" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" display=\"none\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" />" + " </g>" + "</svg>", + // Don't display second rect element. + "<svg>" + " <g>" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" display=\"none\" />" + " </g>" + "</svg>", + // Don't display svg element, but set display mode to "inline" for other elements. + "<svg display=\"none\">" + " <g display=\"inline\">" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"red\" display=\"inline\" />" + " <rect x=\"0\" y=\"0\" height=\"10\" width=\"10\" fill=\"blue\" display=\"inline\" />" + " </g>" + "</svg>" + }; + + QRgb expectedColors[] = {0xff0000ff, 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xffff0000, 0xff00ff00}; + + const int COUNT = sizeof(svgs) / sizeof(svgs[0]); + QPainter p; + + for (int i = 0; i < COUNT; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + QImage image(10, 10, QImage::Format_ARGB32_Premultiplied); + image.fill(0xff00ff00); + p.begin(&image); + renderer.render(&p); + p.end(); + QCOMPARE(image.pixel(5, 5), expectedColors[i]); + } +} + +void tst_QSvgRenderer::strokeInherit() +{ + static const char *svgs[] = { + // Reference. + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\"/>" + " </g>" + "</svg>", + // stroke + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"none\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke=\"blue\"/>" + " </g>" + " <g stroke=\"yellow\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\" stroke=\"green\"/>" + " </g>" + "</svg>", + // stroke-width + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"0\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-width=\"20\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"10\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\" stroke-width=\"0\"/>" + " </g>" + "</svg>", + // stroke-linecap + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"round\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-linecap=\"butt\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\"/>" + " </g>" + "</svg>", + // stroke-linejoin + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"round\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-linejoin=\"miter\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\"/>" + " </g>" + "</svg>", + // stroke-miterlimit + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"2\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-miterlimit=\"1\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\"/>" + " </g>" + "</svg>", + // stroke-dasharray + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"1,1,1,1,1,1,3,1,3,1,3,1,1,1,1,1,1,3\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-dasharray=\"20,10\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"none\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\" stroke-dasharray=\"3,3,1\"/>" + " </g>" + "</svg>", + // stroke-dashoffset + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"0\" stroke-opacity=\"0.5\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-dashoffset=\"10\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"0\">" + " <polyline fill=\"none\" points=\"10 25 80 25\" stroke-dashoffset=\"4.5\"/>" + " </g>" + "</svg>", + // stroke-opacity + "<svg viewBox=\"0 0 200 30\">" + " <g stroke=\"blue\" stroke-width=\"20\" stroke-linecap=\"butt\"" + " stroke-linejoin=\"miter\" stroke-miterlimit=\"1\" stroke-dasharray=\"20,10\"" + " stroke-dashoffset=\"10\" stroke-opacity=\"0\">" + " <polyline fill=\"none\" points=\"10 10 100 10 100 20 190 20\" stroke-opacity=\"0.5\"/>" + " </g>" + " <g stroke=\"green\" stroke-width=\"0\" stroke-dasharray=\"3,3,1\" stroke-dashoffset=\"4.5\">" + " <polyline fill=\"none\" points=\"10 25 80 25\"/>" + " </g>" + "</svg>" + }; + + const int COUNT = sizeof(svgs) / sizeof(svgs[0]); + QImage images[COUNT]; + QPainter p; + + for (int i = 0; i < COUNT; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + images[i] = QImage(200, 30, QImage::Format_ARGB32_Premultiplied); + images[i].fill(-1); + p.begin(&images[i]); + renderer.render(&p); + p.end(); + if (i != 0) { + QCOMPARE(images[0], images[i]); + } + } +} - QCOMPARE(image.pixel(64, 64), QColor(Qt::red).rgba()); +void tst_QSvgRenderer::testFillInheritance() +{ + static const char *svgs[] = { + //reference + "<svg viewBox = \"0 0 200 200\">" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" fill= \"red\" stroke = \"blue\" fill-opacity = \"0.5\" fill-rule = \"evenodd\"/>" + "</svg>", + "<svg viewBox = \"0 0 200 200\">" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" fill= \"red\" stroke = \"blue\" fill-opacity = \"0.5\" fill-rule = \"evenodd\"/>" + " <rect x = \"40\" y = \"40\" width = \"70\" height =\"20\" fill = \"green\" fill-opacity = \"0\"/>" + "</svg>", + "<svg viewBox = \"0 0 200 200\">" + " <g fill = \"red\" fill-opacity = \"0.5\" fill-rule = \"evenodd\">" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" stroke = \"blue\"/>" + " </g>" + " <rect x = \"40\" y = \"40\" width = \"70\" height =\"20\" fill = \"green\" fill-opacity = \"0\"/>" + "</svg>", + "<svg viewBox = \"0 0 200 200\">" + " <g fill = \"green\" fill-rule = \"nonzero\">" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" stroke = \"blue\" fill = \"red\" fill-opacity = \"0.5\" fill-rule = \"evenodd\"/>" + " </g>" + " <g fill-opacity = \"0.8\" fill = \"red\">" + " <rect x = \"40\" y = \"40\" width = \"70\" height =\"20\" fill = \"green\" fill-opacity = \"0\"/>" + " </g>" + "</svg>", + "<svg viewBox = \"0 0 200 200\">" + " <g fill = \"red\" >" + " <g fill-opacity = \"0.5\">" + " <g fill-rule = \"evenodd\">" + " <g>" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" stroke = \"blue\"/>" + " </g>" + " </g>" + " </g>" + " </g>" + " <g fill-opacity = \"0.8\" >" + " <rect x = \"40\" y = \"40\" width = \"70\" height =\"20\" fill = \"none\"/>" + " </g>" + "</svg>", + "<svg viewBox = \"0 0 200 200\">" + " <g fill = \"none\" fill-opacity = \"0\">" + " <polygon points=\"20,20 50,120 100,10 40,80 50,80\" stroke = \"blue\" fill = \"red\" fill-opacity = \"0.5\" fill-rule = \"evenodd\"/>" + " </g>" + " <g fill-opacity = \"0\" >" + " <rect x = \"40\" y = \"40\" width = \"70\" height =\"20\" fill = \"green\"/>" + " </g>" + "</svg>" + }; + + const int COUNT = sizeof(svgs) / sizeof(svgs[0]); + QImage images[COUNT]; + QPainter p; + + for (int i = 0; i < COUNT; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + images[i] = QImage(200, 200, QImage::Format_ARGB32_Premultiplied); + images[i].fill(-1); + p.begin(&images[i]); + renderer.render(&p); + p.end(); + if (i != 0) { + QCOMPARE(images[0], images[i]); + } + } +} +void tst_QSvgRenderer::testStopOffsetOpacity() +{ + static const char *svgs[] = { + //reference + "<svg viewBox=\"0 0 64 64\">" + "<radialGradient id=\"MyGradient1\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"50\" r=\"30\" fx=\"20\" fy=\"20\">" + "<stop offset=\"0.0\" style=\"stop-color:red\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:green\" stop-opacity=\"1\"/>" + "<stop offset=\"1\" style=\"stop-color:yellow\" stop-opacity=\"1\"/>" + "</radialGradient>" + "<radialGradient id=\"MyGradient2\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"70\" r=\"70\" fx=\"20\" fy=\"20\">" + "<stop offset=\"0.0\" style=\"stop-color:blue\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:violet\" stop-opacity=\"1\"/>" + "<stop offset=\"1\" style=\"stop-color:orange\" stop-opacity=\"1\"/>" + "</radialGradient>" + "<rect x=\"5\" y=\"5\" width=\"55\" height=\"55\" fill=\"url(#MyGradient1)\" stroke=\"black\" />" + "<rect x=\"20\" y=\"20\" width=\"35\" height=\"35\" fill=\"url(#MyGradient2)\"/>" + "</svg>", + //Stop Offset + "<svg viewBox=\"0 0 64 64\">" + "<radialGradient id=\"MyGradient1\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"50\" r=\"30\" fx=\"20\" fy=\"20\">" + "<stop offset=\"abc\" style=\"stop-color:red\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:green\" stop-opacity=\"1\"/>" + "<stop offset=\"1\" style=\"stop-color:yellow\" stop-opacity=\"1\"/>" + "</radialGradient>" + "<radialGradient id=\"MyGradient2\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"70\" r=\"70\" fx=\"20\" fy=\"20\">" + "<stop offset=\"-3.bc\" style=\"stop-color:blue\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:violet\" stop-opacity=\"1\"/>" + "<stop offset=\"1\" style=\"stop-color:orange\" stop-opacity=\"1\"/>" + "</radialGradient>" + "<rect x=\"5\" y=\"5\" width=\"55\" height=\"55\" fill=\"url(#MyGradient1)\" stroke=\"black\" />" + "<rect x=\"20\" y=\"20\" width=\"35\" height=\"35\" fill=\"url(#MyGradient2)\"/>" + "</svg>", + //Stop Opacity + "<svg viewBox=\"0 0 64 64\">" + "<radialGradient id=\"MyGradient1\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"50\" r=\"30\" fx=\"20\" fy=\"20\">" + "<stop offset=\"0.0\" style=\"stop-color:red\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:green\" stop-opacity=\"x.45\"/>" + "<stop offset=\"1\" style=\"stop-color:yellow\" stop-opacity=\"-3.abc\"/>" + "</radialGradient>" + "<radialGradient id=\"MyGradient2\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"70\" r=\"70\" fx=\"20\" fy=\"20\">" + "<stop offset=\"0.0\" style=\"stop-color:blue\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:violet\" stop-opacity=\"-0.xy\"/>" + "<stop offset=\"1\" style=\"stop-color:orange\" stop-opacity=\"z.5\"/>" + "</radialGradient>" + "<rect x=\"5\" y=\"5\" width=\"55\" height=\"55\" fill=\"url(#MyGradient1)\" stroke=\"black\" />" + "<rect x=\"20\" y=\"20\" width=\"35\" height=\"35\" fill=\"url(#MyGradient2)\"/>" + "</svg>", + //Stop offset and Stop opacity + "<svg viewBox=\"0 0 64 64\">" + "<radialGradient id=\"MyGradient1\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"50\" r=\"30\" fx=\"20\" fy=\"20\">" + "<stop offset=\"abc\" style=\"stop-color:red\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:green\" stop-opacity=\"x.45\"/>" + "<stop offset=\"1\" style=\"stop-color:yellow\" stop-opacity=\"-3.abc\"/>" + "</radialGradient>" + "<radialGradient id=\"MyGradient2\" gradientUnits=\"userSpaceOnUse\" cx=\"50\" cy=\"70\" r=\"70\" fx=\"20\" fy=\"20\">" + "<stop offset=\"-3.bc\" style=\"stop-color:blue\" stop-opacity=\"0.3\"/>" + "<stop offset=\"0.5\" style=\"stop-color:violet\" stop-opacity=\"-0.xy\"/>" + "<stop offset=\"1\" style=\"stop-color:orange\" stop-opacity=\"z.5\"/>" + "</radialGradient>" + "<rect x=\"5\" y=\"5\" width=\"55\" height=\"55\" fill=\"url(#MyGradient1)\" stroke=\"black\" />" + "<rect x=\"20\" y=\"20\" width=\"35\" height=\"35\" fill=\"url(#MyGradient2)\"/>" + "</svg>" + }; + + QImage images[4]; + QPainter p; + + for (int i = 0; i < 4; ++i) { + QByteArray data(svgs[i]); + QSvgRenderer renderer(data); + QVERIFY(renderer.isValid()); + images[i] = QImage(64, 64, QImage::Format_ARGB32_Premultiplied); + images[i].fill(-1); + p.begin(&images[i]); + renderer.render(&p); + p.end(); + } + QCOMPARE(images[0], images[1]); + QCOMPARE(images[0], images[2]); + QCOMPARE(images[0], images[3]); } QTEST_MAIN(tst_QSvgRenderer) diff --git a/tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp b/tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp index 22e9455..1699e72 100644 --- a/tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp +++ b/tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp @@ -99,7 +99,8 @@ private slots: void avoidUnnecessaryRehighlight(); void noContentsChangedDuringHighlight(); void rehighlight(); - + void rehighlightBlock(); + private: QTextDocument *doc; QTestDocumentLayout *lout; @@ -517,6 +518,32 @@ void tst_QSyntaxHighlighter::rehighlight() QCOMPARE(hl->callCount, 1); } +void tst_QSyntaxHighlighter::rehighlightBlock() +{ + TestHighlighter *hl = new TestHighlighter(doc); + + cursor.movePosition(QTextCursor::Start); + cursor.beginEditBlock(); + cursor.insertText("Hello"); + cursor.insertBlock(); + cursor.insertText("World"); + cursor.endEditBlock(); + + hl->callCount = 0; + hl->highlightedText.clear(); + QTextBlock block = doc->begin(); + hl->rehighlightBlock(block); + + QCOMPARE(hl->highlightedText, QString("Hello")); + QCOMPARE(hl->callCount, 1); + + hl->callCount = 0; + hl->highlightedText.clear(); + hl->rehighlightBlock(block.next()); + + QCOMPARE(hl->highlightedText, QString("World")); + QCOMPARE(hl->callCount, 1); +} QTEST_MAIN(tst_QSyntaxHighlighter) #include "tst_qsyntaxhighlighter.moc" diff --git a/tests/auto/qtabbar/tst_qtabbar.cpp b/tests/auto/qtabbar/tst_qtabbar.cpp index 29f42df..f908d3f 100644 --- a/tests/auto/qtabbar/tst_qtabbar.cpp +++ b/tests/auto/qtabbar/tst_qtabbar.cpp @@ -370,7 +370,7 @@ void tst_QTabBar::tabButton() tabbar.setTabButton(0, position, button); - QCOMPARE(tabbar.tabButton(0, position), static_cast<const QWidget *>(button)); + QCOMPARE(tabbar.tabButton(0, position), static_cast<QWidget *>(button)); QTRY_VERIFY(!button->isHidden()); QVERIFY(tabbar.tabButton(0, otherSide) == 0); QCOMPARE(button->parent(), static_cast<QObject *>(&tabbar)); diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp index 8eeaae2..6fa57f0 100644 --- a/tests/auto/qtableview/tst_qtableview.cpp +++ b/tests/auto/qtableview/tst_qtableview.cpp @@ -175,6 +175,8 @@ private slots: // task-specific tests: void task173773_updateVerticalHeader(); void task227953_setRootIndex(); + void task240266_veryBigColumn(); + void task248688_autoScrollNavigation(); void mouseWheel_data(); void mouseWheel(); @@ -586,7 +588,7 @@ void tst_QTableView::keyboardNavigation() QModelIndex index = model.index(rowCount - 1, columnCount - 1); view.setCurrentIndex(index); - QApplication::instance()->processEvents(); + QApplication::processEvents(); int row = rowCount - 1; int column = columnCount - 1; @@ -618,7 +620,7 @@ void tst_QTableView::keyboardNavigation() } QTest::keyClick(&view, key); - QApplication::instance()->processEvents(); + QApplication::processEvents(); QModelIndex index = model.index(row, column); QCOMPARE(view.currentIndex(), index); @@ -2540,6 +2542,7 @@ void tst_QTableView::span_data() << 2 << 1 << false; + /* This makes no sens. QTest::newRow("top left 2x0") << 10 << 10 << -1 << -1 @@ -2554,7 +2557,7 @@ void tst_QTableView::span_data() << 0 << 0 << 0 << 2 << 0 << 2 - << false; + << false;*/ QTest::newRow("invalid 2x2") << 10 << 10 @@ -2628,7 +2631,7 @@ void tst_QTableView::span() view.hideRow(hiddenRow); view.hideColumn(hiddenColumn); view.show(); - + QCOMPARE(view.rowSpan(row, column), expectedRowSpan); QCOMPARE(view.columnSpan(row, column), expectedColumnSpan); @@ -3126,6 +3129,56 @@ void tst_QTableView::task227953_setRootIndex() QVERIFY(!tableView.verticalHeader()->isHidden()); } +void tst_QTableView::task240266_veryBigColumn() +{ + QTableView table; + table.setFixedSize(500, 300); //just to make sure we have the 2 first columns visible + QStandardItemModel model(1, 3); + table.setModel(&model); + table.setColumnWidth(0, 100); //normal column + table.setColumnWidth(1, 100); //normal column + table.setColumnWidth(2, 9000); //very big column + table.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&view); +#endif + QTest::qWait(100); + + QScrollBar *scroll = table.horizontalScrollBar(); + QCOMPARE(scroll->minimum(), 0); + QCOMPARE(scroll->maximum(), model.columnCount() - 1); + QCOMPARE(scroll->singleStep(), 1); + + //1 is not always a very correct value for pageStep. Ideally this should be dynamic. + //Maybe something for Qt 5 ;-) + QCOMPARE(scroll->pageStep(), 1); + +} + +void tst_QTableView::task248688_autoScrollNavigation() +{ + //we make sure that when navigating with the keyboard the view is correctly scrolled + //to the current item + QStandardItemModel model(16, 16); + QTableView view; + view.setModel(&model); + + view.hideColumn(8); + view.hideRow(8); + view.show(); + for (int r = 0; r < model.rowCount(); ++r) { + if (view.isRowHidden(r)) + continue; + for (int c = 0; c < model.columnCount(); ++c) { + if (view.isColumnHidden(c)) + continue; + QModelIndex index = model.index(r, c); + view.setCurrentIndex(index); + QVERIFY(view.viewport()->rect().contains(view.visualRect(index))); + } + } +} + void tst_QTableView::mouseWheel_data() { diff --git a/tests/auto/qtcpserver/tst_qtcpserver.cpp b/tests/auto/qtcpserver/tst_qtcpserver.cpp index a06c871..5c82cbb 100644 --- a/tests/auto/qtcpserver/tst_qtcpserver.cpp +++ b/tests/auto/qtcpserver/tst_qtcpserver.cpp @@ -274,42 +274,35 @@ void tst_QTcpServer::ipv4LoopbackPerformanceTest() QTcpSocket *clientB = server.nextPendingConnection(); QVERIFY(clientB); -#if defined(Q_WS_WIN) - if (QSysInfo::WindowsVersion & QSysInfo::WV_DOS_based) { - QSKIP("Dont run performance tests on QSysInfo::WV_DOS_based systems, overloads the system", SkipAll); - } else -#endif - { - QByteArray buffer(16384, '@'); - QTime stopWatch; - stopWatch.start(); - qlonglong totalWritten = 0; - while (stopWatch.elapsed() < 5000) { - QVERIFY(clientA.write(buffer.data(), buffer.size()) > 0); - clientA.flush(); - totalWritten += buffer.size(); - while (clientB->waitForReadyRead(100)) { - if (clientB->bytesAvailable() == 16384) - break; - } - clientB->read(buffer.data(), buffer.size()); - clientB->write(buffer.data(), buffer.size()); - clientB->flush(); - totalWritten += buffer.size(); - while (clientA.waitForReadyRead(100)) { - if (clientA.bytesAvailable() == 16384) - break; - } - clientA.read(buffer.data(), buffer.size()); + QByteArray buffer(16384, '@'); + QTime stopWatch; + stopWatch.start(); + qlonglong totalWritten = 0; + while (stopWatch.elapsed() < 5000) { + QVERIFY(clientA.write(buffer.data(), buffer.size()) > 0); + clientA.flush(); + totalWritten += buffer.size(); + while (clientB->waitForReadyRead(100)) { + if (clientB->bytesAvailable() == 16384) + break; } + clientB->read(buffer.data(), buffer.size()); + clientB->write(buffer.data(), buffer.size()); + clientB->flush(); + totalWritten += buffer.size(); + while (clientA.waitForReadyRead(100)) { + if (clientA.bytesAvailable() == 16384) + break; + } + clientA.read(buffer.data(), buffer.size()); + } - qDebug("\t\t%s: %.1fMB/%.1fs: %.1fMB/s", - server.serverAddress().toString().toLatin1().constData(), - totalWritten / (1024.0 * 1024.0), - stopWatch.elapsed() / 1000.0, - (totalWritten / (stopWatch.elapsed() / 1000.0)) / (1024 * 1024)); + qDebug("\t\t%s: %.1fMB/%.1fs: %.1fMB/s", + server.serverAddress().toString().toLatin1().constData(), + totalWritten / (1024.0 * 1024.0), + stopWatch.elapsed() / 1000.0, + (totalWritten / (stopWatch.elapsed() / 1000.0)) / (1024 * 1024)); - } delete clientB; } @@ -378,42 +371,35 @@ void tst_QTcpServer::ipv4PerformanceTest() QTcpSocket *clientB = server.nextPendingConnection(); QVERIFY(clientB); -#if defined(Q_WS_WIN) - if (QSysInfo::WindowsVersion & QSysInfo::WV_DOS_based) { - QSKIP("Dont run performance tests on QSysInfo::WV_DOS_based systems, overloads the system", SkipAll); - } else -#endif - { - - QByteArray buffer(16384, '@'); - QTime stopWatch; - stopWatch.start(); - qlonglong totalWritten = 0; - while (stopWatch.elapsed() < 5000) { - qlonglong writtenA = clientA.write(buffer.data(), buffer.size()); - clientA.flush(); - totalWritten += buffer.size(); - while (clientB->waitForReadyRead(100)) { - if (clientB->bytesAvailable() == writtenA) - break; - } - clientB->read(buffer.data(), buffer.size()); - qlonglong writtenB = clientB->write(buffer.data(), buffer.size()); - clientB->flush(); - totalWritten += buffer.size(); - while (clientA.waitForReadyRead(100)) { - if (clientA.bytesAvailable() == writtenB) - break; - } - clientA.read(buffer.data(), buffer.size()); + QByteArray buffer(16384, '@'); + QTime stopWatch; + stopWatch.start(); + qlonglong totalWritten = 0; + while (stopWatch.elapsed() < 5000) { + qlonglong writtenA = clientA.write(buffer.data(), buffer.size()); + clientA.flush(); + totalWritten += buffer.size(); + while (clientB->waitForReadyRead(100)) { + if (clientB->bytesAvailable() == writtenA) + break; } - - qDebug("\t\t%s: %.1fMB/%.1fs: %.1fMB/s", - probeSocket.localAddress().toString().toLatin1().constData(), - totalWritten / (1024.0 * 1024.0), - stopWatch.elapsed() / 1000.0, - (totalWritten / (stopWatch.elapsed() / 1000.0)) / (1024 * 1024)); + clientB->read(buffer.data(), buffer.size()); + qlonglong writtenB = clientB->write(buffer.data(), buffer.size()); + clientB->flush(); + totalWritten += buffer.size(); + while (clientA.waitForReadyRead(100)) { + if (clientA.bytesAvailable() == writtenB) + break; + } + clientA.read(buffer.data(), buffer.size()); } + + qDebug("\t\t%s: %.1fMB/%.1fs: %.1fMB/s", + probeSocket.localAddress().toString().toLatin1().constData(), + totalWritten / (1024.0 * 1024.0), + stopWatch.elapsed() / 1000.0, + (totalWritten / (stopWatch.elapsed() / 1000.0)) / (1024 * 1024)); + delete clientB; } diff --git a/tests/auto/qtextcodec/test/test.pro b/tests/auto/qtextcodec/test/test.pro index e52bb7a..9c07e76 100644 --- a/tests/auto/qtextcodec/test/test.pro +++ b/tests/auto/qtextcodec/test/test.pro @@ -6,7 +6,7 @@ wince*: { addFiles.path = . DEPLOYMENT += addFiles DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs + DEFINES += SRCDIR=\\\"\\\" +} else { + DEFINES += SRCDIR=\\\"$$PWD/../\\\" } - - - diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp index 53cc971..9f51805 100644 --- a/tests/auto/qtextcodec/tst_qtextcodec.cpp +++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp @@ -74,11 +74,17 @@ private slots: void utf8Codec_data(); void utf8Codec(); + void utf8bom_data(); + void utf8bom(); + void utfHeaders_data(); void utfHeaders(); void codecForHtml(); + void codecForUtfText_data(); + void codecForUtfText(); + #ifdef Q_OS_UNIX void toLocal8Bit(); #endif @@ -89,8 +95,8 @@ void tst_QTextCodec::toUnicode_data() QTest::addColumn<QString>("fileName"); QTest::addColumn<QString>("codecName"); - QTest::newRow( "korean-eucKR" ) << "korean.txt" << "eucKR"; - QTest::newRow( "UTF-8" ) << "utf8.txt" << "UTF-8"; + QTest::newRow( "korean-eucKR" ) << SRCDIR "korean.txt" << "eucKR"; + QTest::newRow( "UTF-8" ) << SRCDIR "utf8.txt" << "UTF-8"; } void tst_QTextCodec::toUnicode() @@ -231,7 +237,7 @@ void tst_QTextCodec::fromUnicode() void tst_QTextCodec::toUnicode_codecForHtml() { - QFile file(QString("QT4-crashtest.txt")); + QFile file(QString(SRCDIR "QT4-crashtest.txt")); QVERIFY(file.open(QFile::ReadOnly)); QByteArray data = file.readAll(); @@ -1510,6 +1516,63 @@ void tst_QTextCodec::utf8Codec() QCOMPARE(str, res); } +void tst_QTextCodec::utf8bom_data() +{ + QTest::addColumn<QByteArray>("data"); + QTest::addColumn<QString>("result"); + + QTest::newRow("nobom") + << QByteArray("\302\240", 2) + << QString("\240"); + + { + static const ushort data[] = { 0x201d }; + QTest::newRow("nobom 2") + << QByteArray("\342\200\235", 3) + << QString::fromUtf16(data, sizeof(data)/sizeof(short)); + } + + { + static const ushort data[] = { 0xf000 }; + QTest::newRow("bom1") + << QByteArray("\357\200\200", 3) + << QString::fromUtf16(data, sizeof(data)/sizeof(short)); + } + + { + static const ushort data[] = { 0xfec0 }; + QTest::newRow("bom2") + << QByteArray("\357\273\200", 3) + << QString::fromUtf16(data, sizeof(data)/sizeof(short)); + } + + { + QTest::newRow("normal-bom") + << QByteArray("\357\273\277a", 4) + << QString("a"); + } + + { + static const ushort data[] = { 0x61, 0xfeff, 0x62 }; + QTest::newRow("middle-bom") + << QByteArray("a\357\273\277b", 5) + << QString::fromUtf16(data, sizeof(data)/sizeof(short)); + } +} + +void tst_QTextCodec::utf8bom() +{ + QFETCH(QByteArray, data); + QFETCH(QString, result); + + QTextCodec *const codec = QTextCodec::codecForMib(106); // UTF-8 + Q_ASSERT(codec); + + QCOMPARE(codec->toUnicode(data.constData(), data.length(), 0), result); + + QTextCodec::ConverterState state; + QCOMPARE(codec->toUnicode(data.constData(), data.length(), &state), result); +} void tst_QTextCodec::utfHeaders_data() { @@ -1753,9 +1816,68 @@ void tst_QTextCodec::codecForHtml() QCOMPARE(QTextCodec::codecForHtml(html, QTextCodec::codecForMib(106))->mibEnum(), 111); // latin 15 } +void tst_QTextCodec::codecForUtfText_data() +{ + QTest::addColumn<QByteArray>("encoded"); + QTest::addColumn<bool>("detected"); + QTest::addColumn<int>("mib"); + + + QTest::newRow("utf8 bom") + << QByteArray("\xef\xbb\xbfhello") + << true + << 106; + QTest::newRow("utf8 nobom") + << QByteArray("hello") + << false + << 0; + + QTest::newRow("utf16 bom be") + << QByteArray("\xfe\xff\0h\0e\0l", 8) + << true + << 1013; + QTest::newRow("utf16 bom le") + << QByteArray("\xff\xfeh\0e\0l\0", 8) + << true + << 1014; + QTest::newRow("utf16 nobom") + << QByteArray("\0h\0e\0l", 6) + << false + << 0; + + QTest::newRow("utf32 bom be") + << QByteArray("\0\0\xfe\xff\0\0\0h\0\0\0e\0\0\0l", 16) + << true + << 1018; + QTest::newRow("utf32 bom le") + << QByteArray("\xff\xfe\0\0h\0\0\0e\0\0\0l\0\0\0", 16) + << true + << 1019; + QTest::newRow("utf32 nobom") + << QByteArray("\0\0\0h\0\0\0e\0\0\0l", 12) + << false + << 0; +} + +void tst_QTextCodec::codecForUtfText() +{ + QFETCH(QByteArray, encoded); + QFETCH(bool, detected); + QFETCH(int, mib); + + QTextCodec *codec = QTextCodec::codecForUtfText(encoded, 0); + if (detected) + QCOMPARE(codec->mibEnum(), mib); + else + QVERIFY(codec == 0); +} + #ifdef Q_OS_UNIX void tst_QTextCodec::toLocal8Bit() { +#ifdef QT_NO_PROCESS + QSKIP("This test requires QProcess", SkipAll); +#else QProcess process; process.start("echo/echo"); QString string(QChar(0x410)); @@ -1765,6 +1887,7 @@ void tst_QTextCodec::toLocal8Bit() process.waitForFinished(); QCOMPARE(process.exitStatus(), QProcess::NormalExit); QCOMPARE(process.exitCode(), 0); +#endif } #endif diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp index 5eded52..eea3ff0 100644 --- a/tests/auto/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp @@ -161,6 +161,10 @@ private slots: void testUndoCommandAdded(); + void testUndoBlocks(); + + void receiveCursorPositionChangedAfterContentsChange(); + private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); @@ -2435,5 +2439,51 @@ void tst_QTextDocument::testUndoCommandAdded() QCOMPARE(spy.count(), 1); } +void tst_QTextDocument::testUndoBlocks() +{ + QVERIFY(doc); + cursor.insertText("Hello World"); + cursor.insertText("period"); + doc->undo(); + QCOMPARE(doc->toPlainText(), QString("")); + cursor.insertText("Hello World"); + cursor.insertText("One\nTwo\nThree"); + QCOMPARE(doc->toPlainText(), QString("Hello WorldOne\nTwo\nThree")); + doc->undo(); + QCOMPARE(doc->toPlainText(), QString("Hello World")); + doc->undo(); + QCOMPARE(doc->toPlainText(), QString("")); +} + +class Receiver : public QObject +{ + Q_OBJECT + public: + QString first; + public slots: + void cursorPositionChanged() { + if (first.isEmpty()) + first = QLatin1String("cursorPositionChanged"); + } + + void contentsChange() { + if (first.isEmpty()) + first = QLatin1String("contentsChanged"); + } +}; + +void tst_QTextDocument::receiveCursorPositionChangedAfterContentsChange() +{ + QVERIFY(doc); + doc->setDocumentLayout(new MyAbstractTextDocumentLayout(doc)); + Receiver rec; + connect(doc, SIGNAL(cursorPositionChanged(QTextCursor)), + &rec, SLOT(cursorPositionChanged())); + connect(doc, SIGNAL(contentsChange(int,int,int)), + &rec, SLOT(contentsChange())); + cursor.insertText("Hello World"); + QCOMPARE(rec.first, QString("contentsChanged")); +} + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc" diff --git a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp index 56f5e7a..4559daa 100644 --- a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp +++ b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp @@ -2758,6 +2758,16 @@ void tst_QTextDocumentFragment::css_listStyleType() QVERIFY(cursor.currentList()); QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListUpperAlpha); + doc->setHtml("<ul style=\"list-style-type: upper-roman\"><li>Blah</li></ul>"); + cursor.movePosition(QTextCursor::End); + QVERIFY(cursor.currentList()); + QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListUpperRoman); + + doc->setHtml("<ul style=\"list-style-type: lower-roman\"><li>Blah</li></ul>"); + cursor.movePosition(QTextCursor::End); + QVERIFY(cursor.currentList()); + QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListLowerRoman); + // ignore the unsupported list-style-position inside the list-style shorthand property doc->setHtml("<ul style=\"list-style: outside decimal\"><li>Blah</li></ul>"); cursor.movePosition(QTextCursor::End); diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp index 3bc1517..d54645c 100644 --- a/tests/auto/qtextedit/tst_qtextedit.cpp +++ b/tests/auto/qtextedit/tst_qtextedit.cpp @@ -1460,6 +1460,7 @@ void tst_QTextEdit::mimeDataReimplementations() QCOMPARE(ed.canInsertCallCount, 0); QCOMPARE(ed.insertCallCount, 0); +#ifdef QT_BUILD_INTERNAL QTextControl *control = qFindChild<QTextControl *>(&ed); QVERIFY(control); @@ -1474,6 +1475,7 @@ void tst_QTextEdit::mimeDataReimplementations() QCOMPARE(ed.createMimeDataCallCount, 1); QCOMPARE(ed.canInsertCallCount, 1); QCOMPARE(ed.insertCallCount, 1); +#endif } void tst_QTextEdit::ctrlEnterShouldInsertLineSeparator_NOT() @@ -2066,6 +2068,7 @@ void tst_QTextEdit::cursorRect() void tst_QTextEdit::setDocumentPreservesPalette() { +#ifdef QT_BUILD_INTERNAL QTextControl *control = qFindChild<QTextControl *>(ed); QVERIFY(control); @@ -2085,6 +2088,7 @@ void tst_QTextEdit::setDocumentPreservesPalette() QVERIFY(control->document() == newDoc); QVERIFY(whitePal.color(QPalette::Active, QPalette::Text) == control->palette().color(QPalette::Active, QPalette::Text)); +#endif } class PublicTextEdit : public QTextEdit diff --git a/tests/auto/qtextlist/tst_qtextlist.cpp b/tests/auto/qtextlist/tst_qtextlist.cpp index 658b8bb..4ab6f5a 100644 --- a/tests/auto/qtextlist/tst_qtextlist.cpp +++ b/tests/auto/qtextlist/tst_qtextlist.cpp @@ -67,6 +67,8 @@ private slots: void item(); void autoNumbering(); void autoNumberingRTL(); + void romanNumbering(); + void romanNumberingLimit(); void formatChange(); void cursorNavigation(); void partialRemoval(); @@ -75,6 +77,8 @@ private slots: void add(); void defaultIndent(); void blockUpdate(); + void numbering_data(); + void numbering(); private: QTextDocument *doc; @@ -142,6 +146,40 @@ void tst_QTextList::autoNumberingRTL() QVERIFY(cursor.currentList()->itemText(cursor.block()) == ".B"); } +void tst_QTextList::romanNumbering() +{ + QTextListFormat fmt; + fmt.setStyle(QTextListFormat::ListUpperRoman); + QTextList *list = cursor.createList(fmt); + QVERIFY(list); + + for (int i = 0; i < 4998; ++i) + cursor.insertBlock(); + + QVERIFY(list->count() == 4999); + + QVERIFY(cursor.currentList()); + QVERIFY(cursor.currentList()->itemNumber(cursor.block()) == 4998); + QVERIFY(cursor.currentList()->itemText(cursor.block()) == "MMMMCMXCIX."); +} + +void tst_QTextList::romanNumberingLimit() +{ + QTextListFormat fmt; + fmt.setStyle(QTextListFormat::ListLowerRoman); + QTextList *list = cursor.createList(fmt); + QVERIFY(list); + + for (int i = 0; i < 4999; ++i) + cursor.insertBlock(); + + QVERIFY(list->count() == 5000); + + QVERIFY(cursor.currentList()); + QVERIFY(cursor.currentList()->itemNumber(cursor.block()) == 4999); + QVERIFY(cursor.currentList()->itemText(cursor.block()) == "?."); +} + void tst_QTextList::formatChange() { // testing the formatChanged slot in QTextListManager @@ -300,5 +338,43 @@ void tst_QTextList::blockUpdate() QVERIFY(!layout->error); } +void tst_QTextList::numbering_data() +{ + QTest::addColumn<int>("format"); + QTest::addColumn<int>("number"); + QTest::addColumn<QString>("result"); + + QTest::newRow("E.") << int(QTextListFormat::ListUpperAlpha) << 5 << "E."; + QTest::newRow("abc.") << int(QTextListFormat::ListLowerAlpha) << (26 + 2) * 26 + 3 << "abc."; + QTest::newRow("12.") << int(QTextListFormat::ListDecimal) << 12 << "12."; + QTest::newRow("XXIV.") << int(QTextListFormat::ListUpperRoman) << 24 << "XXIV."; + QTest::newRow("VIII.") << int(QTextListFormat::ListUpperRoman) << 8 << "VIII."; + QTest::newRow("xxx.") << int(QTextListFormat::ListLowerRoman) << 30 << "xxx."; + QTest::newRow("xxix.") << int(QTextListFormat::ListLowerRoman) << 29 << "xxix."; +// QTest::newRow("xxx. alpha") << int(QTextListFormat::ListLowerAlpha) << (24 * 26 + 24) * 26 + 24 << "xxx."; //Too slow +} + +void tst_QTextList::numbering() +{ + QFETCH(int, format); + QFETCH(int, number); + QFETCH(QString, result); + + + QTextListFormat fmt; + fmt.setStyle(QTextListFormat::Style(format)); + QTextList *list = cursor.createList(fmt); + QVERIFY(list); + + for (int i = 1; i < number; ++i) + cursor.insertBlock(); + + QCOMPARE(list->count(), number); + + QVERIFY(cursor.currentList()); + QCOMPARE(cursor.currentList()->itemNumber(cursor.block()), number - 1); + QCOMPARE(cursor.currentList()->itemText(cursor.block()), result); +} + QTEST_MAIN(tst_QTextList) #include "tst_qtextlist.moc" diff --git a/tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp b/tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp index 589087c..1971493 100644 --- a/tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp +++ b/tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp @@ -133,7 +133,7 @@ void tst_QTextOdfWriter::testWriteParagraph_data() QTest::newRow("tab") << "word\ttab x" << "<text:p text:style-name=\"p1\"><text:span text:style-name=\"c0\">word<text:tab/>tab x</text:span></text:p>"; QTest::newRow("tab2") << "word\t\ttab\tx" << - "<text:p text:style-name=\"p1\"><text:span text:style-name=\"c0\">word<text:tab text:tab-ref=\"2\"/>tab<text:tab/>x</text:span></text:p>"; + "<text:p text:style-name=\"p1\"><text:span text:style-name=\"c0\">word<text:tab/><text:tab/>tab<text:tab/>x</text:span></text:p>"; QTest::newRow("misc") << "foobar word\ttab x" << "<text:p text:style-name=\"p1\"><text:span text:style-name=\"c0\">foobar <text:s text:c=\"2\"/>word<text:tab/>tab x</text:span></text:p>"; QTest::newRow("misc2") << "\t \tFoo" << diff --git a/tests/auto/qtextpiecetable/qtextpiecetable.pro b/tests/auto/qtextpiecetable/qtextpiecetable.pro index 318a8c7..0926b83 100644 --- a/tests/auto/qtextpiecetable/qtextpiecetable.pro +++ b/tests/auto/qtextpiecetable/qtextpiecetable.pro @@ -2,7 +2,6 @@ load(qttest_p4) SOURCES += tst_qtextpiecetable.cpp HEADERS += ../qtextdocument/common.h -!win32:DEFINES += QTEST_REDUCED_EXPORTS - - +requires(!win32) +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp b/tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp index accbabb..0e60c16 100644 --- a/tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp +++ b/tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp @@ -42,9 +42,7 @@ #include <QtTest/QtTest> -#ifdef QTEST_REDUCED_EXPORTS #define private public -#endif #include <qtextdocument.h> #include <private/qtextdocument_p.h> @@ -65,7 +63,6 @@ public: tst_QTextPieceTable(); -#ifdef QTEST_REDUCED_EXPORTS public slots: void init(); void cleanup(); @@ -112,13 +109,7 @@ private slots: void removeFrameDirect(); void removeWithChildFrame(); void clearWithFrames(); -#else -public slots: - void init(); - void cleanup(); -private slots: - void skip(); -#endif + private: QTextDocument *doc; QTextDocumentPrivate *table; @@ -130,8 +121,6 @@ tst_QTextPieceTable::tst_QTextPieceTable() { doc = 0; table = 0; } -#ifdef QTEST_REDUCED_EXPORTS - void tst_QTextPieceTable::init() { doc = new QTextDocument(0); @@ -1148,25 +1137,6 @@ void tst_QTextPieceTable::clearWithFrames() QVERIFY(true); } -#else // QTEST_REDUCED_EXPORTS - -void tst_QTextPieceTable::init() -{ -} - -void tst_QTextPieceTable::cleanup() -{ -} - -void tst_QTextPieceTable::skip() -{ - QSKIP( "Not tested on win32", SkipAll ); -} - - -#endif // QTEST_REDUCED_EXPORTS - - QTEST_MAIN(tst_QTextPieceTable) diff --git a/tests/auto/qtextstream/tst_qtextstream.cpp b/tests/auto/qtextstream/tst_qtextstream.cpp index 8f42766..d05dcf8 100644 --- a/tests/auto/qtextstream/tst_qtextstream.cpp +++ b/tests/auto/qtextstream/tst_qtextstream.cpp @@ -552,8 +552,15 @@ void tst_QTextStream::generateLineData(bool for_QString) QTest::newRow("threelines/crlf/crlf/crlf") << QByteArray("ole\r\ndole\r\ndoffen\r\n") << (QStringList() << "ole" << "dole" << "doffen"); QTest::newRow("threelines/crlf/crlf/nothing") << QByteArray("ole\r\ndole\r\ndoffen") << (QStringList() << "ole" << "dole" << "doffen"); - // utf-16 if (!for_QString) { + // utf-8 + QTest::newRow("utf8/twolines") + << QByteArray("\xef\xbb\xbf" + "\x66\x67\x65\x0a" + "\x66\x67\x65\x0a", 11) + << (QStringList() << "fge" << "fge"); + + // utf-16 // one line QTest::newRow("utf16-BE/nothing") << QByteArray("\xfe\xff" @@ -593,6 +600,18 @@ void tst_QTextStream::generateLineData(bool for_QString) "\xe5\x00\x67\x00\x65\x00\x0a\x00" "\xe5\x00\x67\x00\x65\x00\x0a\x00", 26) << (QStringList() << "\345ge" << "\345ge" << "\345ge"); + + // utf-32 + QTest::newRow("utf32-BE/twolines") + << QByteArray("\x00\x00\xfe\xff" + "\x00\x00\x00\xe5\x00\x00\x00\x67\x00\x00\x00\x65\x00\x00\x00\x0a" + "\x00\x00\x00\xe5\x00\x00\x00\x67\x00\x00\x00\x65\x00\x00\x00\x0a", 36) + << (QStringList() << "\345ge" << "\345ge"); + QTest::newRow("utf32-LE/twolines") + << QByteArray("\xff\xfe\x00\x00" + "\xe5\x00\x00\x00\x67\x00\x00\x00\x65\x00\x00\x00\x0a\x00\x00\x00" + "\xe5\x00\x00\x00\x67\x00\x00\x00\x65\x00\x00\x00\x0a\x00\x00\x00", 36) + << (QStringList() << "\345ge" << "\345ge"); } // partials diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp index 5fb62a5..43b7553 100644 --- a/tests/auto/qtimer/tst_qtimer.cpp +++ b/tests/auto/qtimer/tst_qtimer.cpp @@ -253,7 +253,7 @@ void tst_QTimer::livelock() QEXPECT_FAIL("non-zero timer", "", Continue); #elif defined(Q_OS_WIN) if (QSysInfo::WindowsVersion < QSysInfo::WV_XP) - QEXPECT_FAIL("non-zero timer", "Multimedia timers are not available on Win2K/9x", Continue); + QEXPECT_FAIL("non-zero timer", "Multimedia timers are not available on Windows 2000", Continue); #endif QVERIFY(tester.postEventAtRightTime); } diff --git a/tests/auto/qtoolbar/tst_qtoolbar.cpp b/tests/auto/qtoolbar/tst_qtoolbar.cpp index a762cba..856a935 100644 --- a/tests/auto/qtoolbar/tst_qtoolbar.cpp +++ b/tests/auto/qtoolbar/tst_qtoolbar.cpp @@ -796,6 +796,10 @@ void tst_QToolBar::toolButtonStyle() tb.setToolButtonStyle(Qt::ToolButtonTextUnderIcon); QCOMPARE(tb.toolButtonStyle(), Qt::ToolButtonTextUnderIcon); QCOMPARE(spy.count(), 0); + + tb.setToolButtonStyle(Qt::ToolButtonFollowStyle); + QCOMPARE(tb.toolButtonStyle(), Qt::ToolButtonFollowStyle); + QCOMPARE(spy.count(), 1); } { diff --git a/tests/auto/qtoolbutton/tst_qtoolbutton.cpp b/tests/auto/qtoolbutton/tst_qtoolbutton.cpp index 3c2406c..4176507 100644 --- a/tests/auto/qtoolbutton/tst_qtoolbutton.cpp +++ b/tests/auto/qtoolbutton/tst_qtoolbutton.cpp @@ -64,7 +64,9 @@ public: private slots: void getSetCheck(); void triggered(); + void collapseTextOnPriority(); void task230994_iconSize(); + void task176137_autoRepeatOfAction(); protected slots: void sendMouseClick(); @@ -159,6 +161,32 @@ void tst_QToolButton::triggered() delete menu; } +void tst_QToolButton::collapseTextOnPriority() +{ + class MyToolButton : public QToolButton + { + friend class tst_QToolButton; + public: + void initStyleOption(QStyleOptionToolButton *option) + { + QToolButton::initStyleOption(option); + } + }; + + MyToolButton button; + button.setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + QAction action(button.style()->standardIcon(QStyle::SP_ArrowBack), "test", 0); + button.setDefaultAction(&action); + + QStyleOptionToolButton option; + button.initStyleOption(&option); + QVERIFY(option.toolButtonStyle == Qt::ToolButtonTextBesideIcon); + action.setPriority(QAction::LowPriority); + button.initStyleOption(&option); + QVERIFY(option.toolButtonStyle == Qt::ToolButtonIconOnly); +} + + void tst_QToolButton::task230994_iconSize() { //we check that the iconsize returned bu initStyleOption is valid @@ -179,6 +207,25 @@ void tst_QToolButton::task230994_iconSize() QVERIFY(option.iconSize.isValid()); } +void tst_QToolButton::task176137_autoRepeatOfAction() +{ + QAction action(0); + QToolButton tb; + tb.setDefaultAction (&action); + tb.show(); + QSignalSpy spy(&action,SIGNAL(triggered())); + QTest::mousePress ( &tb, Qt::LeftButton); + QTest::mouseRelease ( &tb, Qt::LeftButton, 0, QPoint (), 2000); + QCOMPARE(spy.count(),1); + + // try again with auto repeat + tb.setAutoRepeat (true); + QSignalSpy repeatSpy(&action,SIGNAL(triggered())); // new spy + QTest::mousePress ( &tb, Qt::LeftButton); + QTest::mouseRelease ( &tb, Qt::LeftButton, 0, QPoint (), 2000); + QCOMPARE (repeatSpy.count(), (2000 - tb.autoRepeatDelay()) / tb.autoRepeatInterval() + 1); +} + void tst_QToolButton::sendMouseClick() { diff --git a/tests/auto/qtouchevent/qtouchevent.pro b/tests/auto/qtouchevent/qtouchevent.pro new file mode 100644 index 0000000..8f6aa87 --- /dev/null +++ b/tests/auto/qtouchevent/qtouchevent.pro @@ -0,0 +1,3 @@ +SOURCES=tst_qtouchevent.cpp +TARGET=tst_qtouchevent +QT+=testlib diff --git a/tests/auto/qtouchevent/tst_qtouchevent.cpp b/tests/auto/qtouchevent/tst_qtouchevent.cpp new file mode 100644 index 0000000..0d584cd --- /dev/null +++ b/tests/auto/qtouchevent/tst_qtouchevent.cpp @@ -0,0 +1,798 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the $MODULE$ 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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> +#include <QtTest> + +class tst_QTouchEventWidget : public QWidget +{ +public: + QList<QTouchEvent::TouchPoint> touchBeginPoints, touchUpdatePoints, touchEndPoints; + bool seenTouchBegin, seenTouchUpdate, seenTouchEnd; + bool acceptTouchBegin, acceptTouchUpdate, acceptTouchEnd; + + tst_QTouchEventWidget() + : QWidget() + { + reset(); + } + + void reset() + { + touchBeginPoints.clear(); + touchUpdatePoints.clear(); + touchEndPoints.clear(); + seenTouchBegin = seenTouchUpdate = seenTouchEnd = false; + acceptTouchBegin = acceptTouchUpdate = acceptTouchEnd = true; + } + + bool event(QEvent *event) + { + switch (event->type()) { + case QEvent::TouchBegin: + if (seenTouchBegin) qWarning("TouchBegin: already seen a TouchBegin"); + if (seenTouchUpdate) qWarning("TouchBegin: TouchUpdate cannot happen before TouchBegin"); + if (seenTouchEnd) qWarning("TouchBegin: TouchEnd cannot happen before TouchBegin"); + seenTouchBegin = !seenTouchBegin && !seenTouchUpdate && !seenTouchEnd; + touchBeginPoints = static_cast<QTouchEvent *>(event)->touchPoints(); + event->setAccepted(acceptTouchBegin); + break; + case QEvent::TouchUpdate: + if (!seenTouchBegin) qWarning("TouchUpdate: have not seen TouchBegin"); + if (seenTouchEnd) qWarning("TouchUpdate: TouchEnd cannot happen before TouchUpdate"); + seenTouchUpdate = seenTouchBegin && !seenTouchEnd; + touchUpdatePoints = static_cast<QTouchEvent *>(event)->touchPoints(); + event->setAccepted(acceptTouchUpdate); + break; + case QEvent::TouchEnd: + if (!seenTouchBegin) qWarning("TouchEnd: have not seen TouchBegin"); + if (seenTouchEnd) qWarning("TouchEnd: already seen a TouchEnd"); + seenTouchEnd = seenTouchBegin && !seenTouchEnd; + touchEndPoints = static_cast<QTouchEvent *>(event)->touchPoints(); + event->setAccepted(acceptTouchEnd); + break; + default: + return QWidget::event(event); + } + return true; + } +}; + +class tst_QTouchEvent : public QObject +{ + Q_OBJECT +public: + tst_QTouchEvent() { } + ~tst_QTouchEvent() { } + +private slots: + void touchDisabledByDefault(); + void touchEventAcceptedByDefault(); + void touchBeginPropagatesWhenIgnored(); + void touchUpdateAndEndNeverPropagate(); + void basicRawEventTranslation(); + void multiPointRawEventTranslationOnTouchScreen(); + void multiPointRawEventTranslationOnTouchPad(); +}; + +void tst_QTouchEvent::touchDisabledByDefault() +{ + // the widget attribute is not enabled by default + QWidget widget; + QVERIFY(!widget.testAttribute(Qt::WA_AcceptTouchEvents)); + + // events should not be accepted since they are not enabled + QList<QTouchEvent::TouchPoint> touchPoints; + touchPoints.append(QTouchEvent::TouchPoint(0)); + QTouchEvent touchEvent(QEvent::TouchBegin, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointPressed, + touchPoints); + bool res = QApplication::sendEvent(&widget, &touchEvent); + QVERIFY(!res); + QVERIFY(!touchEvent.isAccepted()); +} + +void tst_QTouchEvent::touchEventAcceptedByDefault() +{ + // enabling touch events should automatically accept touch events + QWidget widget; + widget.setAttribute(Qt::WA_AcceptTouchEvents); + + // QWidget handles touch event by converting them into a mouse event, so the event is both + // accepted and handled (res == true) + QList<QTouchEvent::TouchPoint> touchPoints; + touchPoints.append(QTouchEvent::TouchPoint(0)); + QTouchEvent touchEvent(QEvent::TouchBegin, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointPressed, + touchPoints); + bool res = QApplication::sendEvent(&widget, &touchEvent); + QVERIFY(res); + QVERIFY(touchEvent.isAccepted()); + + // tst_QTouchEventWidget does handle, sending succeeds + tst_QTouchEventWidget touchWidget; + touchWidget.setAttribute(Qt::WA_AcceptTouchEvents); + touchEvent.ignore(); + res = QApplication::sendEvent(&touchWidget, &touchEvent); + QVERIFY(res); + QVERIFY(touchEvent.isAccepted()); +} + +void tst_QTouchEvent::touchBeginPropagatesWhenIgnored() +{ + tst_QTouchEventWidget window, child, grandchild; + child.setParent(&window); + grandchild.setParent(&child); + + // all widgets accept touch events, grandchild ignores, so child sees the event, but not window + window.setAttribute(Qt::WA_AcceptTouchEvents); + child.setAttribute(Qt::WA_AcceptTouchEvents); + grandchild.setAttribute(Qt::WA_AcceptTouchEvents); + grandchild.acceptTouchBegin = false; + + QList<QTouchEvent::TouchPoint> touchPoints; + touchPoints.append(QTouchEvent::TouchPoint(0)); + QTouchEvent touchEvent(QEvent::TouchBegin, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointPressed, + touchPoints); + bool res = QApplication::sendEvent(&grandchild, &touchEvent); + QVERIFY(res); + QVERIFY(touchEvent.isAccepted()); + QVERIFY(grandchild.seenTouchBegin); + QVERIFY(child.seenTouchBegin); + QVERIFY(!window.seenTouchBegin); + + // disable touch on grandchild. even though it doesn't accept it, child should still get the + // TouchBegin + grandchild.reset(); + child.reset(); + window.reset(); + grandchild.setAttribute(Qt::WA_AcceptTouchEvents, false); + + touchEvent.ignore(); + res = QApplication::sendEvent(&grandchild, &touchEvent); + QVERIFY(res); + QVERIFY(touchEvent.isAccepted()); + QVERIFY(!grandchild.seenTouchBegin); + QVERIFY(child.seenTouchBegin); + QVERIFY(!window.seenTouchBegin); +} + +void tst_QTouchEvent::touchUpdateAndEndNeverPropagate() +{ + tst_QTouchEventWidget window, child; + child.setParent(&window); + + window.setAttribute(Qt::WA_AcceptTouchEvents); + child.setAttribute(Qt::WA_AcceptTouchEvents); + child.acceptTouchUpdate = false; + child.acceptTouchEnd = false; + + QList<QTouchEvent::TouchPoint> touchPoints; + touchPoints.append(QTouchEvent::TouchPoint(0)); + QTouchEvent touchBeginEvent(QEvent::TouchBegin, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointPressed, + touchPoints); + bool res = QApplication::sendEvent(&child, &touchBeginEvent); + QVERIFY(res); + QVERIFY(touchBeginEvent.isAccepted()); + QVERIFY(child.seenTouchBegin); + QVERIFY(!window.seenTouchBegin); + + // send the touch update to the child, but ignore it, it doesn't propagate + QTouchEvent touchUpdateEvent(QEvent::TouchUpdate, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointMoved, + touchPoints); + res = QApplication::sendEvent(&child, &touchUpdateEvent); + QVERIFY(res); + QVERIFY(!touchUpdateEvent.isAccepted()); + QVERIFY(child.seenTouchUpdate); + QVERIFY(!window.seenTouchUpdate); + + // send the touch end, same thing should happen as with touch update + QTouchEvent touchEndEvent(QEvent::TouchEnd, + QTouchEvent::TouchScreen, + Qt::NoModifier, + Qt::TouchPointReleased, + touchPoints); + res = QApplication::sendEvent(&child, &touchEndEvent); + QVERIFY(res); + QVERIFY(!touchEndEvent.isAccepted()); + QVERIFY(child.seenTouchEnd); + QVERIFY(!window.seenTouchEnd); +} + +QPointF normalized(const QPointF &pos, const QRectF &rect) +{ + return QPointF(pos.x() / rect.width(), pos.y() / rect.height()); +} + +void tst_QTouchEvent::basicRawEventTranslation() +{ + tst_QTouchEventWidget touchWidget; + touchWidget.setAttribute(Qt::WA_AcceptTouchEvents); + touchWidget.setGeometry(100, 100, 400, 300); + + QPointF pos = touchWidget.rect().center(); + QPointF screenPos = touchWidget.mapToGlobal(pos.toPoint()); + QPointF delta(10, 10); + QRectF screenGeometry = qApp->desktop()->screenGeometry(&touchWidget); + + QTouchEvent::TouchPoint rawTouchPoint; + rawTouchPoint.setId(0); + + // this should be translated to a TouchBegin + rawTouchPoint.setState(Qt::TouchPointPressed); + rawTouchPoint.setScreenPos(screenPos); + rawTouchPoint.setNormalizedPos(normalized(rawTouchPoint.pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, + QTouchEvent::TouchScreen, + QList<QTouchEvent::TouchPoint>() << rawTouchPoint); + QVERIFY(touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QCOMPARE(touchWidget.touchBeginPoints.count(), 1); + QTouchEvent::TouchPoint touchBeginPoint = touchWidget.touchBeginPoints.first(); + QCOMPARE(touchBeginPoint.id(), rawTouchPoint.id()); + QCOMPARE(touchBeginPoint.state(), rawTouchPoint.state()); + QCOMPARE(touchBeginPoint.pos(), pos); + QCOMPARE(touchBeginPoint.startPos(), pos); + QCOMPARE(touchBeginPoint.lastPos(), pos); + QCOMPARE(touchBeginPoint.scenePos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.startScenePos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.lastScenePos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.screenPos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.startScreenPos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.lastScreenPos(), rawTouchPoint.screenPos()); + QCOMPARE(touchBeginPoint.normalizedPos(), rawTouchPoint.normalizedPos()); + QCOMPARE(touchBeginPoint.startNormalizedPos(), touchBeginPoint.normalizedPos()); + QCOMPARE(touchBeginPoint.lastNormalizedPos(), touchBeginPoint.normalizedPos()); + QCOMPARE(touchBeginPoint.rect(), QRectF(pos, QSizeF(0, 0))); + QCOMPARE(touchBeginPoint.screenRect(), QRectF(rawTouchPoint.screenPos(), QSizeF(0, 0))); + QCOMPARE(touchBeginPoint.sceneRect(), touchBeginPoint.screenRect()); + QCOMPARE(touchBeginPoint.pressure(), qreal(1.)); + + // moving the point should translate to TouchUpdate + rawTouchPoint.setState(Qt::TouchPointMoved); + rawTouchPoint.setScreenPos(screenPos + delta); + rawTouchPoint.setNormalizedPos(normalized(rawTouchPoint.pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, + QTouchEvent::TouchScreen, + QList<QTouchEvent::TouchPoint>() << rawTouchPoint); + QVERIFY(touchWidget.seenTouchBegin); + QVERIFY(touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QCOMPARE(touchWidget.touchUpdatePoints.count(), 1); + QTouchEvent::TouchPoint touchUpdatePoint = touchWidget.touchUpdatePoints.first(); + QCOMPARE(touchUpdatePoint.id(), rawTouchPoint.id()); + QCOMPARE(touchUpdatePoint.state(), rawTouchPoint.state()); + QCOMPARE(touchUpdatePoint.pos(), pos + delta); + QCOMPARE(touchUpdatePoint.startPos(), pos); + QCOMPARE(touchUpdatePoint.lastPos(), pos); + QCOMPARE(touchUpdatePoint.scenePos(), rawTouchPoint.screenPos()); + QCOMPARE(touchUpdatePoint.startScenePos(), screenPos); + QCOMPARE(touchUpdatePoint.lastScenePos(), screenPos); + QCOMPARE(touchUpdatePoint.screenPos(), rawTouchPoint.screenPos()); + QCOMPARE(touchUpdatePoint.startScreenPos(), screenPos); + QCOMPARE(touchUpdatePoint.lastScreenPos(), screenPos); + QCOMPARE(touchUpdatePoint.normalizedPos(), rawTouchPoint.normalizedPos()); + QCOMPARE(touchUpdatePoint.startNormalizedPos(), touchBeginPoint.normalizedPos()); + QCOMPARE(touchUpdatePoint.lastNormalizedPos(), touchBeginPoint.normalizedPos()); + QCOMPARE(touchUpdatePoint.rect(), QRectF(pos + delta, QSizeF(0, 0))); + QCOMPARE(touchUpdatePoint.screenRect(), QRectF(rawTouchPoint.screenPos(), QSizeF(0, 0))); + QCOMPARE(touchUpdatePoint.sceneRect(), touchUpdatePoint.screenRect()); + QCOMPARE(touchUpdatePoint.pressure(), qreal(1.)); + + // releasing the point translates to TouchEnd + rawTouchPoint.setState(Qt::TouchPointReleased); + rawTouchPoint.setScreenPos(screenPos + delta + delta); + rawTouchPoint.setNormalizedPos(normalized(rawTouchPoint.pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, + QTouchEvent::TouchScreen, + QList<QTouchEvent::TouchPoint>() << rawTouchPoint); + QVERIFY(touchWidget.seenTouchBegin); + QVERIFY(touchWidget.seenTouchUpdate); + QVERIFY(touchWidget.seenTouchEnd); + QCOMPARE(touchWidget.touchEndPoints.count(), 1); + QTouchEvent::TouchPoint touchEndPoint = touchWidget.touchEndPoints.first(); + QCOMPARE(touchEndPoint.id(), rawTouchPoint.id()); + QCOMPARE(touchEndPoint.state(), rawTouchPoint.state()); + QCOMPARE(touchEndPoint.pos(), pos + delta + delta); + QCOMPARE(touchEndPoint.startPos(), pos); + QCOMPARE(touchEndPoint.lastPos(), pos + delta); + QCOMPARE(touchEndPoint.scenePos(), rawTouchPoint.screenPos()); + QCOMPARE(touchEndPoint.startScenePos(), screenPos); + QCOMPARE(touchEndPoint.lastScenePos(), screenPos + delta); + QCOMPARE(touchEndPoint.screenPos(), rawTouchPoint.screenPos()); + QCOMPARE(touchEndPoint.startScreenPos(), screenPos); + QCOMPARE(touchEndPoint.lastScreenPos(), screenPos + delta); + QCOMPARE(touchEndPoint.normalizedPos(), rawTouchPoint.normalizedPos()); + QCOMPARE(touchEndPoint.startNormalizedPos(), touchBeginPoint.normalizedPos()); + QCOMPARE(touchEndPoint.lastNormalizedPos(), touchUpdatePoint.normalizedPos()); + QCOMPARE(touchEndPoint.rect(), QRectF(pos + delta + delta, QSizeF(0, 0))); + QCOMPARE(touchEndPoint.screenRect(), QRectF(rawTouchPoint.screenPos(), QSizeF(0, 0))); + QCOMPARE(touchEndPoint.sceneRect(), touchEndPoint.screenRect()); + QCOMPARE(touchEndPoint.pressure(), qreal(0.)); +} + +void tst_QTouchEvent::multiPointRawEventTranslationOnTouchScreen() +{ + tst_QTouchEventWidget touchWidget; + touchWidget.setAttribute(Qt::WA_AcceptTouchEvents); + touchWidget.setGeometry(100, 100, 400, 300); + + tst_QTouchEventWidget leftWidget; + leftWidget.setParent(&touchWidget); + leftWidget.setAttribute(Qt::WA_AcceptTouchEvents); + leftWidget.setGeometry(0, 100, 100, 100); + leftWidget.show(); + + tst_QTouchEventWidget rightWidget; + rightWidget.setParent(&touchWidget); + rightWidget.setAttribute(Qt::WA_AcceptTouchEvents); + rightWidget.setGeometry(300, 100, 100, 100); + rightWidget.show(); + + QPointF leftPos = leftWidget.rect().center(); + QPointF rightPos = rightWidget.rect().center(); + QPointF centerPos = touchWidget.rect().center(); + QPointF leftScreenPos = leftWidget.mapToGlobal(leftPos.toPoint()); + QPointF rightScreenPos = rightWidget.mapToGlobal(rightPos.toPoint()); + QPointF centerScreenPos = touchWidget.mapToGlobal(centerPos.toPoint()); + QPointF delta(10, 10); + QRectF screenGeometry = qApp->desktop()->screenGeometry(&touchWidget); + + QList<QTouchEvent::TouchPoint> rawTouchPoints; + rawTouchPoints.append(QTouchEvent::TouchPoint(0)); + rawTouchPoints.append(QTouchEvent::TouchPoint(1)); + + // generate TouchBegins on both leftWidget and rightWidget + rawTouchPoints[0].setState(Qt::TouchPointPressed); + rawTouchPoints[0].setScreenPos(leftScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointPressed); + rawTouchPoints[1].setScreenPos(rightScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchScreen, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(!leftWidget.seenTouchUpdate); + QVERIFY(!leftWidget.seenTouchEnd); + QVERIFY(rightWidget.seenTouchBegin); + QVERIFY(!rightWidget.seenTouchUpdate); + QVERIFY(!rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchBeginPoints.count(), 1); + QCOMPARE(rightWidget.touchBeginPoints.count(), 1); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchBeginPoints.first(); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), leftPos); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftPos); + QCOMPARE(leftTouchPoint.scenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.screenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(leftScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(leftScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(1.)); + + QTouchEvent::TouchPoint rightTouchPoint = rightWidget.touchBeginPoints.first(); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), rightPos); + QCOMPARE(rightTouchPoint.startPos(), rightPos); + QCOMPARE(rightTouchPoint.lastPos(), rightPos); + QCOMPARE(rightTouchPoint.scenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.screenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(rightPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(rightScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(rightScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(1.)); + } + + // generate TouchUpdates on both leftWidget and rightWidget + rawTouchPoints[0].setState(Qt::TouchPointMoved); + rawTouchPoints[0].setScreenPos(centerScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointMoved); + rawTouchPoints[1].setScreenPos(centerScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchScreen, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(leftWidget.seenTouchUpdate); + QVERIFY(!leftWidget.seenTouchEnd); + QVERIFY(rightWidget.seenTouchBegin); + QVERIFY(rightWidget.seenTouchUpdate); + QVERIFY(!rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchUpdatePoints.count(), 1); + QCOMPARE(rightWidget.touchUpdatePoints.count(), 1); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchUpdatePoints.first(); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftPos); + QCOMPARE(leftTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(1.)); + + QTouchEvent::TouchPoint rightTouchPoint = rightWidget.touchUpdatePoints.first(); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), QPointF(rightWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(rightTouchPoint.startPos(), rightPos); + QCOMPARE(rightTouchPoint.lastPos(), rightPos); + QCOMPARE(rightTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(rightWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(1.)); + } + + // generate TouchEnds on both leftWidget and rightWidget + rawTouchPoints[0].setState(Qt::TouchPointReleased); + rawTouchPoints[0].setScreenPos(centerScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointReleased); + rawTouchPoints[1].setScreenPos(centerScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchScreen, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(leftWidget.seenTouchUpdate); + QVERIFY(leftWidget.seenTouchEnd); + QVERIFY(rightWidget.seenTouchBegin); + QVERIFY(rightWidget.seenTouchUpdate); + QVERIFY(rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchEndPoints.count(), 1); + QCOMPARE(rightWidget.touchEndPoints.count(), 1); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchEndPoints.first(); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftTouchPoint.pos()); + QCOMPARE(leftTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftTouchPoint.scenePos()); + QCOMPARE(leftTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftTouchPoint.screenPos()); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(0.)); + + QTouchEvent::TouchPoint rightTouchPoint = rightWidget.touchEndPoints.first(); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), QPointF(rightWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(rightTouchPoint.startPos(), rightPos); + QCOMPARE(rightTouchPoint.lastPos(), rightTouchPoint.pos()); + QCOMPARE(rightTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightTouchPoint.scenePos()); + QCOMPARE(rightTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightTouchPoint.screenPos()); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(rightWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(0.)); + } +} + +void tst_QTouchEvent::multiPointRawEventTranslationOnTouchPad() +{ + tst_QTouchEventWidget touchWidget; + touchWidget.setAttribute(Qt::WA_AcceptTouchEvents); + touchWidget.setGeometry(100, 100, 400, 300); + + tst_QTouchEventWidget leftWidget; + leftWidget.setParent(&touchWidget); + leftWidget.setAttribute(Qt::WA_AcceptTouchEvents); + leftWidget.setGeometry(0, 100, 100, 100); + leftWidget.show(); + + tst_QTouchEventWidget rightWidget; + rightWidget.setParent(&touchWidget); + rightWidget.setAttribute(Qt::WA_AcceptTouchEvents); + rightWidget.setGeometry(300, 100, 100, 100); + rightWidget.show(); + + QPointF leftPos = leftWidget.rect().center(); + QPointF rightPos = rightWidget.rect().center(); + QPointF centerPos = touchWidget.rect().center(); + QPointF leftScreenPos = leftWidget.mapToGlobal(leftPos.toPoint()); + QPointF rightScreenPos = rightWidget.mapToGlobal(rightPos.toPoint()); + QPointF centerScreenPos = touchWidget.mapToGlobal(centerPos.toPoint()); + QPointF delta(10, 10); + QRectF screenGeometry = qApp->desktop()->screenGeometry(&touchWidget); + + QList<QTouchEvent::TouchPoint> rawTouchPoints; + rawTouchPoints.append(QTouchEvent::TouchPoint(0)); + rawTouchPoints.append(QTouchEvent::TouchPoint(1)); + + // generate TouchBegin on leftWidget only + rawTouchPoints[0].setState(Qt::TouchPointPressed); + rawTouchPoints[0].setScreenPos(leftScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointPressed); + rawTouchPoints[1].setScreenPos(rightScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchPad, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(!leftWidget.seenTouchUpdate); + QVERIFY(!leftWidget.seenTouchEnd); + QVERIFY(!rightWidget.seenTouchBegin); + QVERIFY(!rightWidget.seenTouchUpdate); + QVERIFY(!rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchBeginPoints.count(), 2); + QCOMPARE(rightWidget.touchBeginPoints.count(), 0); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchBeginPoints.at(0); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), leftPos); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftPos); + QCOMPARE(leftTouchPoint.scenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.screenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(leftScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(leftScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(1.)); + + QTouchEvent::TouchPoint rightTouchPoint = leftWidget.touchBeginPoints.at(1); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.startPos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.lastPos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.scenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.screenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(rightScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(rightScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(1.)); + } + + // generate TouchUpdate on leftWidget + rawTouchPoints[0].setState(Qt::TouchPointMoved); + rawTouchPoints[0].setScreenPos(centerScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointMoved); + rawTouchPoints[1].setScreenPos(centerScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchPad, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(leftWidget.seenTouchUpdate); + QVERIFY(!leftWidget.seenTouchEnd); + QVERIFY(!rightWidget.seenTouchBegin); + QVERIFY(!rightWidget.seenTouchUpdate); + QVERIFY(!rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchUpdatePoints.count(), 2); + QCOMPARE(rightWidget.touchUpdatePoints.count(), 0); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchUpdatePoints.at(0); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftPos); + QCOMPARE(leftTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(1.)); + + QTouchEvent::TouchPoint rightTouchPoint = leftWidget.touchUpdatePoints.at(1); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(rightTouchPoint.startPos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.lastPos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(1.)); + } + + // generate TouchEnd on leftWidget + rawTouchPoints[0].setState(Qt::TouchPointReleased); + rawTouchPoints[0].setScreenPos(centerScreenPos); + rawTouchPoints[0].setNormalizedPos(normalized(rawTouchPoints[0].pos(), screenGeometry)); + rawTouchPoints[1].setState(Qt::TouchPointReleased); + rawTouchPoints[1].setScreenPos(centerScreenPos); + rawTouchPoints[1].setNormalizedPos(normalized(rawTouchPoints[1].pos(), screenGeometry)); + qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchPad, rawTouchPoints); + QVERIFY(!touchWidget.seenTouchBegin); + QVERIFY(!touchWidget.seenTouchUpdate); + QVERIFY(!touchWidget.seenTouchEnd); + QVERIFY(leftWidget.seenTouchBegin); + QVERIFY(leftWidget.seenTouchUpdate); + QVERIFY(leftWidget.seenTouchEnd); + QVERIFY(!rightWidget.seenTouchBegin); + QVERIFY(!rightWidget.seenTouchUpdate); + QVERIFY(!rightWidget.seenTouchEnd); + QCOMPARE(leftWidget.touchEndPoints.count(), 2); + QCOMPARE(rightWidget.touchEndPoints.count(), 0); + { + QTouchEvent::TouchPoint leftTouchPoint = leftWidget.touchEndPoints.at(0); + QCOMPARE(leftTouchPoint.id(), rawTouchPoints[0].id()); + QCOMPARE(leftTouchPoint.state(), rawTouchPoints[0].state()); + QCOMPARE(leftTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(leftTouchPoint.startPos(), leftPos); + QCOMPARE(leftTouchPoint.lastPos(), leftTouchPoint.pos()); + QCOMPARE(leftTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScenePos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScenePos(), leftTouchPoint.scenePos()); + QCOMPARE(leftTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(leftTouchPoint.startScreenPos(), leftScreenPos); + QCOMPARE(leftTouchPoint.lastScreenPos(), leftTouchPoint.screenPos()); + QCOMPARE(leftTouchPoint.normalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.startNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.lastNormalizedPos(), rawTouchPoints[0].normalizedPos()); + QCOMPARE(leftTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(leftTouchPoint.pressure(), qreal(0.)); + + QTouchEvent::TouchPoint rightTouchPoint = leftWidget.touchEndPoints.at(1); + QCOMPARE(rightTouchPoint.id(), rawTouchPoints[1].id()); + QCOMPARE(rightTouchPoint.state(), rawTouchPoints[1].state()); + QCOMPARE(rightTouchPoint.pos(), QPointF(leftWidget.mapFromParent(centerPos.toPoint()))); + QCOMPARE(rightTouchPoint.startPos(), QPointF(leftWidget.mapFromGlobal(rightScreenPos.toPoint()))); + QCOMPARE(rightTouchPoint.lastPos(), rightTouchPoint.pos()); + QCOMPARE(rightTouchPoint.scenePos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScenePos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScenePos(), rightTouchPoint.scenePos()); + QCOMPARE(rightTouchPoint.screenPos(), centerScreenPos); + QCOMPARE(rightTouchPoint.startScreenPos(), rightScreenPos); + QCOMPARE(rightTouchPoint.lastScreenPos(), rightTouchPoint.screenPos()); + QCOMPARE(rightTouchPoint.normalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.startNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.lastNormalizedPos(), rawTouchPoints[1].normalizedPos()); + QCOMPARE(rightTouchPoint.rect(), QRectF(leftWidget.mapFromParent(centerPos.toPoint()), QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.sceneRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.screenRect(), QRectF(centerScreenPos, QSizeF(0, 0))); + QCOMPARE(rightTouchPoint.pressure(), qreal(0.)); + } +} + +QTEST_MAIN(tst_QTouchEvent) + +#include "tst_qtouchevent.moc" diff --git a/tests/auto/qtransform/tst_qtransform.cpp b/tests/auto/qtransform/tst_qtransform.cpp index c603058..4ef68bc 100644 --- a/tests/auto/qtransform/tst_qtransform.cpp +++ b/tests/auto/qtransform/tst_qtransform.cpp @@ -603,6 +603,13 @@ void tst_QTransform::types() 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f); QCOMPARE(m3.type(), QTransform::TxProject); + + QTransform m4; + m4.scale(5, 5); + m4.translate(4, 2); + m4.rotate(45); + + QCOMPARE(m4.type(), QTransform::TxRotate); } @@ -647,7 +654,7 @@ void tst_QTransform::transform() d.rotate(30); e.shear(0.5, 0.5); - QCOMPARE(t, e * d * c * b * a); + QVERIFY(qFuzzyCompare(t, e * d * c * b * a)); } void tst_QTransform::mapEmptyPath() diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp index a827ba2..b21a973 100644 --- a/tests/auto/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/qtreeview/tst_qtreeview.cpp @@ -208,8 +208,8 @@ private slots: void indexRowSizeHint(); void addRowsWhileSectionsAreHidden(); - void filterProxyModelCrash(); + void styleOptionViewItem(); // task-specific tests: void task174627_moveLeftToRoot(); @@ -225,6 +225,8 @@ private slots: void task238873_avoidAutoReopening(); void task244304_clickOnDecoration(); void task246536_scrollbarsNotWorking(); + void task250683_wrongSectionSize(); + void task239271_addRowsWithFirstColumnHidden(); void task254234_proxySort(); }; @@ -2027,6 +2029,8 @@ void tst_QTreeView::scrollTo() // view.show(); + view.setVerticalScrollMode(QAbstractItemView::ScrollPerItem); //some styles change that in Polish + view.resize(300, 200); //view.verticalScrollBar()->setValue(0); @@ -2039,6 +2043,7 @@ void tst_QTreeView::scrollTo() QCOMPARE(view.verticalScrollBar()->value(), 5); view.scrollTo(model.index(60, 60, QModelIndex())); + CHECK_VISIBLE(60,60); view.scrollTo(model.index(60, 30, QModelIndex())); CHECK_VISIBLE(60,30); @@ -2847,6 +2852,75 @@ void tst_QTreeView::filterProxyModelCrash() view.repaint(); //used to crash } +void tst_QTreeView::styleOptionViewItem() +{ + class MyDelegate : public QStyledItemDelegate + { + public: + void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const + { + QVERIFY(qstyleoption_cast<const QStyleOptionViewItemV4 *>(&option)); + QStyleOptionViewItemV4 opt(option); + initStyleOption(&opt, index); + + QVERIFY(!opt.text.isEmpty()); + QCOMPARE(opt.index, index); + QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2)); + QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable")); + + if (opt.text.contains("Beginning")) + QCOMPARE(opt.viewItemPosition, QStyleOptionViewItemV4::Beginning); + + if (opt.text.contains("Middle")) + QCOMPARE(opt.viewItemPosition, QStyleOptionViewItemV4::Middle); + + if (opt.text.contains("End")) + QCOMPARE(opt.viewItemPosition, QStyleOptionViewItemV4::End); + + if (opt.text.contains("OnlyOne")) + QCOMPARE(opt.viewItemPosition, QStyleOptionViewItemV4::OnlyOne); + + if (opt.text.contains("Checked")) + QCOMPARE(opt.checkState, Qt::Checked); + else + QCOMPARE(opt.checkState, Qt::Unchecked); + + QVERIFY(!opt.text.contains("Assert")); + + QStyledItemDelegate::paint(painter, option, index); + count++; + } + mutable int count; + }; + + QTreeView view; + QStandardItemModel model; + view.setModel(&model); + MyDelegate delegate; + view.setItemDelegate(&delegate); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning") << new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") ); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("OnlyOne") << new QStandardItem("Assert") << new QStandardItem("Assert") << new QStandardItem("Assert") ); + QStandardItem *checkable = new QStandardItem("Checkable"); + checkable->setCheckable(true); + QStandardItem *checked = new QStandardItem("Checkable Checked"); + checkable->setCheckable(true); + checked->setCheckState(Qt::Checked); + model.appendRow(QList<QStandardItem*>() + << new QStandardItem("Beginning") << checkable << checked << new QStandardItem("End") ); + + view.setFirstColumnSpanned(2, QModelIndex(), true); + view.setAlternatingRowColors(true); + + delegate.count = 0; + view.showMaximized(); + QTest::qWait(30); + QVERIFY(delegate.count >= 13); +} + class task174627_TreeView : public QTreeView { Q_OBJECT @@ -3272,6 +3346,59 @@ void tst_QTreeView::task246536_scrollbarsNotWorking() QVERIFY(o.count > 0); } +void tst_QTreeView::task250683_wrongSectionSize() +{ + QDirModel model; + QTreeView treeView; + treeView.header()->setResizeMode(QHeaderView::ResizeToContents); + treeView.setModel(&model); + treeView.setColumnHidden(2, true); + treeView.setColumnHidden(3, true); + + treeView.show(); + QTest::qWait(100); + + QCOMPARE(treeView.header()->sectionSize(0) + treeView.header()->sectionSize(1), treeView.viewport()->width()); +} + +void tst_QTreeView::task239271_addRowsWithFirstColumnHidden() +{ + class MyDelegate : public QStyledItemDelegate + { + public: + void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const + { + paintedIndexes << index; + QStyledItemDelegate::paint(painter, option, index); + } + + mutable QSet<QModelIndex> paintedIndexes; + }; + + QTreeView view; + QStandardItemModel model; + view.setModel(&model); + MyDelegate delegate; + view.setItemDelegate(&delegate); + QStandardItem root0("root0"), root1("root1"); + model.invisibleRootItem()->appendRow(QList<QStandardItem*>() << &root0 << &root1); + QStandardItem sub0("sub0"), sub00("sub00"); + root0.appendRow(QList<QStandardItem*>() << &sub0 << &sub00); + view.expand(root0.index()); + + view.hideColumn(0); + view.show(); + QTest::qWait(200); + delegate.paintedIndexes.clear(); + QStandardItem sub1("sub1"), sub11("sub11"); + root0.appendRow(QList<QStandardItem*>() << &sub1 << &sub11); + + QTest::qWait(200); + //items in the 2nd column should have been painted + QVERIFY(delegate.paintedIndexes.contains(sub00.index())); + QVERIFY(delegate.paintedIndexes.contains(sub11.index())); +} + void tst_QTreeView::task254234_proxySort() { //based on tst_QTreeView::sortByColumn diff --git a/tests/auto/qtreewidget/tst_qtreewidget.cpp b/tests/auto/qtreewidget/tst_qtreewidget.cpp index 1b5f8bc..7d79d56 100644 --- a/tests/auto/qtreewidget/tst_qtreewidget.cpp +++ b/tests/auto/qtreewidget/tst_qtreewidget.cpp @@ -136,6 +136,7 @@ private slots: void rootItemFlags(); void task218661_setHeaderData(); void task245280_sortChildren(); + void task253109_itemHeight(); // QTreeWidgetItem void itemOperatorLessThan(); @@ -2433,6 +2434,10 @@ void tst_QTreeWidget::itemOperatorLessThan() item1.setText(0, "b"); item2.setText(0, "a"); QCOMPARE(item1 < item2, true); + tw.sortItems(0, Qt::AscendingOrder); + item1.setData(0, Qt::DisplayRole, 11); + item2.setData(0, Qt::DisplayRole, 2); + QCOMPARE(item1 < item2, false); } } @@ -2879,6 +2884,25 @@ void tst_QTreeWidget::task245280_sortChildren() QCOMPARE(top.child(i)->text(1), QString::number(i)); } +void tst_QTreeWidget::task253109_itemHeight() +{ + QTreeWidget treeWidget; + treeWidget.setColumnCount(1); + treeWidget.show(); + QTest::qWait(200); + + QTreeWidgetItem item(&treeWidget); + class MyWidget : public QWidget + { + virtual QSize sizeHint() const { return QSize(200,100); } + } w; + treeWidget.setItemWidget(&item, 0, &w); + + QTest::qWait(200); + QCOMPARE(w.geometry(), treeWidget.visualItemRect(&item)); + +} + void tst_QTreeWidget::task206367_duplication() { QTreeWidget treeWidget; diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp index 60d7391..78ea146 100644 --- a/tests/auto/qurl/tst_qurl.cpp +++ b/tests/auto/qurl/tst_qurl.cpp @@ -162,6 +162,8 @@ private slots: void nameprep_testsuite(); void ace_testsuite_data(); void ace_testsuite(); + void std3violations_data(); + void std3violations(); void tldRestrictions_data(); void tldRestrictions(); void emptyQueryOrFragment(); @@ -608,18 +610,6 @@ void tst_QUrl::setUrl() } { - QString bigStr(QLatin1String("abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ")); - QUrl url; - url.setHost(bigStr); - QVERIFY(url.isValid()); - QCOMPARE(url.host().toLower(), bigStr.toLower()); - } - - { QUrl url; url.setUrl("hello.com#?"); QVERIFY(url.isValid()); @@ -1398,8 +1388,6 @@ void tst_QUrl::i18n_data() QTest::newRow("øl") << QString::fromLatin1("http://ole:passord@www.øl.no/index.html?ole=æsemann&ilder gud=hei#top") << QByteArray("http://ole:passord@www.xn--l-4ga.no/index.html?ole=%C3%A6semann&ilder%20gud=hei#top"); - QTest::newRow("øl") << QString::fromLatin1("http://ole:passord@www.øl.no/index.html?ole=æsemann&ilder gud=hei#top") - << QByteArray("http://ole:passord@www.xn--l-4ga.no/index.html?ole=%C3%A6semann&ilder%20gud=hei#top"); QTest::newRow("räksmörgås") << QString::fromLatin1("http://www.räksmörgås.no/") << QByteArray("http://www.xn--rksmrgs-5wao1o.no/"); QTest::newRow("bühler") << QString::fromLatin1("http://www.bühler.no/") @@ -2412,9 +2400,7 @@ void tst_QUrl::hasQueryItem() void tst_QUrl::nameprep() { QUrl url(QString::fromUtf8("http://www.fu""\xc3""\x9f""ball.de/")); - QUrl url2 = QUrl::fromEncoded("http://www.xn--fuball-cta.de/"); - QCOMPARE(url2.toString(), QString::fromLatin1("http://www.fussball.de/")); - QCOMPARE(url.toString(), url2.toString()); // should be identical + QCOMPARE(url.toString(), QString::fromLatin1("http://www.fussball.de/")); } void tst_QUrl::isValid() @@ -2425,19 +2411,18 @@ void tst_QUrl::isValid() QCOMPARE(url.path(), QString("A=B")); } { - QUrl url = QUrl::fromEncoded("http://strange<username>@ok_hostname/", QUrl::StrictMode); + QUrl url = QUrl::fromEncoded("http://strange<username>@ok-hostname/", QUrl::StrictMode); QVERIFY(!url.isValid()); // < and > are not allowed in userinfo in strict mode } { - QUrl url = QUrl::fromEncoded("http://strange<username>@ok_hostname/"); + QUrl url = QUrl::fromEncoded("http://strange<username>@ok-hostname/"); QVERIFY(url.isValid()); // < and > are allowed in tolerant mode } { QUrl url = QUrl::fromEncoded("http://strange;hostname/here"); - QVERIFY(url.isValid()); - QCOMPARE(url.host(), QString("strange;hostname")); + QVERIFY(!url.isValid()); QCOMPARE(url.path(), QString("/here")); } } @@ -3074,12 +3059,16 @@ void tst_QUrl::nameprep_testsuite_data() << QString() << 0 << 0; } +#ifdef QT_BUILD_INTERNAL QT_BEGIN_NAMESPACE -extern QString qt_nameprep(const QString &source); +extern void qt_nameprep(QString *source, int from); +extern bool qt_check_std3rules(const QChar *, int); QT_END_NAMESPACE +#endif void tst_QUrl::nameprep_testsuite() { +#ifdef QT_BUILD_INTERNAL QFETCH(QString, in); QFETCH(QString, out); QFETCH(QString, profile); @@ -3098,7 +3087,9 @@ void tst_QUrl::nameprep_testsuite() "Investigate further", Continue); QEXPECT_FAIL("Larger test (expanding)", "Investigate further", Continue); - QCOMPARE(qt_nameprep(in), out); + qt_nameprep(&in, 0); + QCOMPARE(in, out); +#endif } void tst_QUrl::ace_testsuite_data() @@ -3113,6 +3104,11 @@ void tst_QUrl::ace_testsuite_data() QTest::newRow("ascii-upper") << "FLUKE" << "fluke" << "fluke" << "fluke"; QTest::newRow("asciifolded") << QString::fromLatin1("stra\337e") << "strasse" << "." << "strasse"; + QTest::newRow("asciifolded-dotcom") << QString::fromLatin1("stra\337e.example.com") << "strasse.example.com" << "." << "strasse.example.com"; + QTest::newRow("greek-mu") << QString::fromLatin1("\265V") + <<"xn--v-lmb" + << "." + << QString::fromUtf8("\316\274v"); QTest::newRow("non-ascii-lower") << QString::fromLatin1("alqualond\353") << "xn--alqualond-34a" @@ -3145,6 +3141,9 @@ void tst_QUrl::ace_testsuite_data() QTest::newRow("idn-upper") << "XN--ALQUALOND-34A" << "xn--alqualond-34a" << QString::fromLatin1("alqualond\353") << QString::fromLatin1("alqualond\353"); + + QTest::newRow("separator-3002") << QString::fromUtf8("example\343\200\202com") + << "example.com" << "." << "example.com"; } void tst_QUrl::ace_testsuite() @@ -3155,23 +3154,83 @@ void tst_QUrl::ace_testsuite() QFETCH(QString, fromace); QFETCH(QString, unicode); - QString domain = in + canonsuffix; - QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + canonsuffix); + const char *suffix = canonsuffix; + if (toace.contains('.')) + suffix = 0; + + QString domain = in + suffix; + QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + suffix); if (fromace != ".") - QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + canonsuffix); - QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + canonsuffix); + QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + suffix); + QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + suffix); - domain = in + ".troll.No"; - QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + canonsuffix); + domain = in + (suffix ? ".troll.No" : ""); + QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + suffix); if (fromace != ".") - QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + canonsuffix); - QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + canonsuffix); + QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + suffix); + QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + suffix); - domain = in + ".troll.NO"; - QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + canonsuffix); + domain = in + (suffix ? ".troll.NO" : ""); + QCOMPARE(QString::fromLatin1(QUrl::toAce(domain)), toace + suffix); if (fromace != ".") - QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + canonsuffix); - QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + canonsuffix); + QCOMPARE(QUrl::fromAce(domain.toLatin1()), fromace + suffix); + QCOMPARE(QUrl::fromAce(QUrl::toAce(domain)), unicode + suffix); +} + +void tst_QUrl::std3violations_data() +{ + QTest::addColumn<QString>("source"); + QTest::addColumn<bool>("validUrl"); + + QTest::newRow("too-long") << "this-domain-is-far-too-long-for-its-own-good-and-should-have-been-limited-to-63-chars" << false; + QTest::newRow("dash-begin") << "-x-foo" << false; + QTest::newRow("dash-end") << "x-foo-" << false; + QTest::newRow("dash-begin-end") << "-foo-" << false; + + QTest::newRow("control") << "\033foo" << false; + QTest::newRow("bang") << "foo!" << false; + QTest::newRow("plus") << "foo+bar" << false; + QTest::newRow("dot") << "foo.bar"; + QTest::newRow("slash") << "foo/bar" << true; + QTest::newRow("colon") << "foo:80" << true; + QTest::newRow("question") << "foo?bar" << true; + QTest::newRow("at") << "foo@bar" << true; + QTest::newRow("backslash") << "foo\\bar" << false; + QTest::newRow("underline") << "foo_bar" << false; + + // these characters are transformed by NFKC to non-LDH characters + QTest::newRow("dot-like") << QString::fromUtf8("foo\342\200\244bar") << false; // U+2024 ONE DOT LEADER + QTest::newRow("slash-like") << QString::fromUtf8("foo\357\274\217bar") << false; // U+FF0F FULLWIDTH SOLIDUS + + // The following should be invalid but isn't + // the DIVISON SLASH doesn't case-fold to a slash + // is this a problem with RFC 3490? + //QTest::newRow("slash-like2") << QString::fromUtf8("foo\342\210\225bar") << false; // U+2215 DIVISION SLASH +} + +void tst_QUrl::std3violations() +{ + QFETCH(QString, source); + + { + QString prepped = source; + qt_nameprep(&prepped, 0); + QVERIFY(!qt_check_std3rules(prepped.constData(), prepped.length())); + } + + if (source.contains('.')) + return; // this test ends here + + QUrl url; + url.setHost(source); + QVERIFY(url.host().isEmpty()); + + QFETCH(bool, validUrl); + if (validUrl) + return; // test ends here for these cases + + url = QUrl("http://" + source + "/some/path"); + QVERIFY(!url.isValid()); } void tst_QUrl::tldRestrictions_data() @@ -3488,7 +3547,6 @@ void tst_QUrl::setAuthority_data() QTest::addColumn<QString>("authority"); QTest::addColumn<QString>("url"); QTest::newRow("Plain auth") << QString("62.70.27.22:21") << QString("//62.70.27.22:21"); - QTest::newRow("Auth with empty port") << QString("62.70.27.22:") << QString("//62.70.27.22:"); QTest::newRow("Yet another plain auth") << QString("192.168.1.1:21") << QString("//192.168.1.1:21"); QTest::newRow("Auth without port") << QString("192.168.1.1") << QString("//192.168.1.1"); QTest::newRow("Auth w/full hostname without port") << QString("shusaku.troll.no") << QString("//shusaku.troll.no"); @@ -3496,7 +3554,6 @@ void tst_QUrl::setAuthority_data() QTest::newRow("Auth w/full hostname that ends with number, without port") << QString("shusaku.troll.no.2") << QString("//shusaku.troll.no.2"); QTest::newRow("Auth w/hostname that ends with number, without port") << QString("shusaku2") << QString("//shusaku2"); QTest::newRow("Empty auth") << QString() << QString(); - QTest::newRow("Single") << QString(":") << QString("//:"); } void tst_QUrl::setAuthority() diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp index 9d5998b..63e47ab 100644 --- a/tests/auto/qvariant/tst_qvariant.cpp +++ b/tests/auto/qvariant/tst_qvariant.cpp @@ -255,6 +255,7 @@ private slots: void convertByteArrayToBool() const; void convertByteArrayToBool_data() const; void toIntFromQString() const; + void task256984_setValue(); }; Q_DECLARE_METATYPE(QDate) @@ -440,6 +441,9 @@ void tst_QVariant::canConvert_data() var = QVariant((double)0.1); QTest::newRow("Double") << var << N << N << Y << N << Y << Y << N << N << N << N << N << Y << N << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y; + var = QVariant(0.1f); + QTest::newRow("Float") + << var << N << N << Y << N << Y << Y << N << N << N << N << N << Y << N << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y; var = qVariantFromValue(QFont()); QTest::newRow("Font") << var << N << N << N << N << N << N << N << N << N << N << N << N << Y << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << N << Y << N << N << N << N; @@ -573,6 +577,7 @@ void tst_QVariant::canConvert() QCOMPARE(val.canConvert(QVariant::Date), DateCast); QCOMPARE(val.canConvert(QVariant::DateTime), DateTimeCast); QCOMPARE(val.canConvert(QVariant::Double), DoubleCast); + QCOMPARE(val.canConvert(QVariant::Type(QMetaType::Float)), DoubleCast); QCOMPARE(val.canConvert(QVariant::Font), FontCast); #ifdef QT3_SUPPORT QCOMPARE(val.canConvert(QVariant::IconSet), IconSetCast); @@ -615,6 +620,7 @@ void tst_QVariant::toInt_data() QTest::newRow( "invalid" ) << QVariant() << 0 << false; QTest::newRow( "int" ) << QVariant( 123 ) << 123 << true; QTest::newRow( "double" ) << QVariant( 3.1415927 ) << 3 << true; + QTest::newRow( "float" ) << QVariant( 3.1415927f ) << 3 << true; QTest::newRow( "uint" ) << QVariant( 123u ) << 123 << true; #ifdef QT3_SUPPORT QTest::newRow( "bool" ) << QVariant( true, 42 ) << 1 << true; @@ -627,6 +633,7 @@ void tst_QVariant::toInt_data() QTest::newRow( "ulonglong1" ) << QVariant( uintMax1 ) << 0 << true; QTest::newRow( "signedint" ) << QVariant( -123 ) << -123 << true; QTest::newRow( "signeddouble" ) << QVariant( -3.1415927 ) << -3 << true; + QTest::newRow( "signedfloat" ) << QVariant( -3.1415927f ) << -3 << true; QTest::newRow( "signedint-string" ) << QVariant( QString("-123") ) << -123 << true; QTest::newRow( "signedlonglong0" ) << QVariant( (qlonglong)-34 ) << -34 << true; QTest::newRow( "QChar" ) << QVariant(QChar('a')) << int('a') << true; @@ -666,6 +673,7 @@ void tst_QVariant::toUInt_data() QTest::newRow( "int" ) << QVariant( 123 ) << (uint)123 << true; QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (uint)3 << true; + QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (uint)3 << true; QTest::newRow( "uint" ) << QVariant( 123u ) << (uint)123 << true; #ifdef QT3_SUPPORT QTest::newRow( "bool" ) << QVariant( true, 42 ) << (uint)1 << true; @@ -679,6 +687,7 @@ void tst_QVariant::toUInt_data() QTest::newRow( "ulonglong1" ) << QVariant( uintMax1 ) << (uint)0 << true; QTest::newRow( "negativeint" ) << QVariant( -123 ) << (uint)-123 << true; QTest::newRow( "negativedouble" ) << QVariant( -3.1415927 ) << (uint)-3 << true; + QTest::newRow( "negativefloat" ) << QVariant( -3.1415927f ) << (uint)-3 << true; QTest::newRow( "negativeint-string" ) << QVariant( QString("-123") ) << (uint)0 << false; QTest::newRow( "negativelonglong0" ) << QVariant( (qlonglong)-34 ) << (uint)-34 << true; QTest::newRow( "QChar" ) << QVariant(QChar('a')) << uint('a') << true; @@ -860,7 +869,9 @@ void tst_QVariant::toBool_data() QTest::newRow( "uint0" ) << QVariant( 0u ) << false; QTest::newRow( "uint1" ) << QVariant( 123u ) << true; QTest::newRow( "double0" ) << QVariant( 0.0 ) << false; + QTest::newRow( "float0" ) << QVariant( 0.0f ) << false; QTest::newRow( "double1" ) << QVariant( 3.1415927 ) << true; + QTest::newRow( "float1" ) << QVariant( 3.1415927f ) << true; #ifdef QT3_SUPPORT QTest::newRow( "bool0" ) << QVariant( false, 42 ) << false; QTest::newRow( "bool1" ) << QVariant( true, 42 ) << true; @@ -1090,6 +1101,7 @@ void tst_QVariant::toLongLong_data() QTest::newRow( "int0" ) << QVariant( 123 ) << (qlonglong)123 << true; QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (qlonglong)3 << true; + QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (qlonglong)3 << true; QTest::newRow( "uint" ) << QVariant( 123u ) << (qlonglong)123 << true; #ifdef QT3_SUPPORT QTest::newRow( "bool" ) << QVariant( true, 42 ) << (qlonglong)1 << true; @@ -1130,6 +1142,7 @@ void tst_QVariant::toULongLong_data() QTest::newRow( "int0" ) << QVariant( 123 ) << (qulonglong)123 << true; QTest::newRow( "double" ) << QVariant( 3.1415927 ) << (qulonglong)3 << true; + QTest::newRow( "float" ) << QVariant( 3.1415927f ) << (qulonglong)3 << true; QTest::newRow( "uint" ) << QVariant( 123u ) << (qulonglong)123 << true; #ifdef QT3_SUPPORT QTest::newRow( "bool" ) << QVariant( true, 42 ) << (qulonglong)1 << true; @@ -1218,6 +1231,7 @@ void tst_QVariant::toByteArray_data() QTest::newRow( "int" ) << QVariant( -123 ) << QByteArray( "-123" ); QTest::newRow( "uint" ) << QVariant( (uint)123 ) << QByteArray( "123" ); QTest::newRow( "double" ) << QVariant( 123.456 ) << QByteArray( "123.456" ); + QTest::newRow( "float" ) << QVariant( 123.456f ) << QByteArray( "123.456" ); QTest::newRow( "longlong" ) << QVariant( (qlonglong)34 ) << QByteArray( "34" ); QTest::newRow( "ulonglong" ) << QVariant( (qulonglong)34 ) << QByteArray( "34" ); } @@ -1243,6 +1257,7 @@ void tst_QVariant::toString_data() QTest::newRow( "int" ) << QVariant( -123 ) << QString( "-123" ); QTest::newRow( "uint" ) << QVariant( (uint)123 ) << QString( "123" ); QTest::newRow( "double" ) << QVariant( 123.456 ) << QString( "123.456" ); + QTest::newRow( "float" ) << QVariant( 123.456f ) << QString( "123.456" ); #ifdef QT3_SUPPORT QTest::newRow( "bool" ) << QVariant( true, 0 ) << QString( "true" ); #else @@ -1450,6 +1465,7 @@ void tst_QVariant::writeToReadFromDataStream_data() QTest::newRow( "datetime_invalid" ) << QVariant( QDateTime() ) << true; QTest::newRow( "datetime_valid" ) << QVariant( QDateTime( QDate( 2002, 07, 06 ), QTime( 14, 0, 0 ) ) ) << false; QTest::newRow( "double_valid" ) << QVariant( 123.456 ) << false; + QTest::newRow( "float_valid" ) << QVariant( 123.456f ) << false; QTest::newRow( "font_valid" ) << qVariantFromValue( QFont( "times", 12 ) ) << false; QTest::newRow( "pixmap_invalid" ) << qVariantFromValue( QPixmap() ) << true; QPixmap pixmap( 10, 10 ); @@ -1476,6 +1492,7 @@ void tst_QVariant::writeToReadFromDataStream_data() vMap.insert( "int", QVariant( 1 ) ); vMap.insert( "string", QVariant( QString("Two") ) ); vMap.insert( "double", QVariant( 3.45 ) ); + vMap.insert( "float", QVariant( 3.45f ) ); QTest::newRow( "map_valid" ) << QVariant( vMap ) << false; QTest::newRow( "palette_valid" ) << qVariantFromValue(QPalette(QColor("turquoise"))) << false; QTest::newRow( "pen_valid" ) << qVariantFromValue( QPen( Qt::red ) ) << false; @@ -1669,6 +1686,10 @@ void tst_QVariant::operator_eq_eq_data() QVariant mDoubleString(QByteArray("42.11")); QVariant mDoubleQString(QString("42.11")); + QVariant mFloat(42.11f); + QVariant mFloatString(QByteArray("42.11")); + QVariant mFloatQString(QString("42.11")); + QVariant mLongLong((qlonglong)-42); QVariant mLongLongString(QByteArray("-42")); QVariant mLongLongQString(QString("-42")); @@ -1686,6 +1707,7 @@ void tst_QVariant::operator_eq_eq_data() QVariant mBoolQString(QString("false")); QTest::newRow( "double_int" ) << QVariant(42.0) << QVariant(42) << true; + QTest::newRow( "float_int" ) << QVariant(42.f) << QVariant(42) << true; QTest::newRow( "mInt_mIntString" ) << mInt << mIntString << true; QTest::newRow( "mIntString_mInt" ) << mIntString << mInt << true; QTest::newRow( "mInt_mIntQString" ) << mInt << mIntQString << true; @@ -1701,6 +1723,11 @@ void tst_QVariant::operator_eq_eq_data() QTest::newRow( "mDouble_mDoubleQString" ) << mDouble << mDoubleQString << true; QTest::newRow( "mDoubleQString_mDouble" ) << mDoubleQString << mDouble << true; + QTest::newRow( "mFloat_mFloatString" ) << mFloat << mFloatString << true; + QTest::newRow( "mFloatString_mFloat" ) << mFloatString << mFloat << true; + QTest::newRow( "mFloat_mFloatQString" ) << mFloat << mFloatQString << true; + QTest::newRow( "mFloatQString_mFloat" ) << mFloatQString << mFloat << true; + QTest::newRow( "mLongLong_mLongLongString" ) << mLongLong << mLongLongString << true; QTest::newRow( "mLongLongString_mLongLong" ) << mLongLongString << mLongLong << true; QTest::newRow( "mLongLong_mLongLongQString" ) << mLongLong << mLongLongQString << true; @@ -1900,6 +1927,7 @@ void tst_QVariant::typeName_data() QTest::newRow("17") << int(QVariant::UInt) << QByteArray("uint"); QTest::newRow("18") << int(QVariant::Bool) << QByteArray("bool"); QTest::newRow("19") << int(QVariant::Double) << QByteArray("double"); + QTest::newRow("20") << int(QMetaType::Float) << QByteArray("float"); QTest::newRow("21") << int(QVariant::Polygon) << QByteArray("QPolygon"); QTest::newRow("22") << int(QVariant::Region) << QByteArray("QRegion"); QTest::newRow("23") << int(QVariant::Bitmap) << QByteArray("QBitmap"); @@ -2233,6 +2261,13 @@ void tst_QVariant::basicUserType() QCOMPARE(v.toDouble(), 4.4); { + float f = 4.5f; + v = QVariant(QMetaType::Float, &f); + } + QCOMPARE(v.userType(), int(QMetaType::Float)); + QCOMPARE(v.toDouble(), 4.5); + + { QByteArray ba("bar"); v = QVariant(QMetaType::QByteArray, &ba); } @@ -2246,6 +2281,7 @@ void tst_QVariant::data_() QVariant i = 1; QVariant d = 1.12; + QVariant f = 1.12f; QVariant ll = (qlonglong)2; QVariant ull = (qulonglong)3; QVariant s(QString("hallo")); @@ -2259,6 +2295,10 @@ void tst_QVariant::data_() QVERIFY(v.data()); QCOMPARE(*static_cast<double *>(v.data()), d.toDouble()); + v = f; + QVERIFY(v.data()); + QCOMPARE(*static_cast<float *>(v.data()), qVariantValue<float>(v)); + v = ll; QVERIFY(v.data()); QCOMPARE(*static_cast<qlonglong *>(v.data()), ll.toLongLong()); @@ -2282,6 +2322,7 @@ void tst_QVariant::constData() int i = 1; double d = 1.12; + float f = 1.12f; qlonglong ll = 2; qulonglong ull = 3; QString s("hallo"); @@ -2295,6 +2336,10 @@ void tst_QVariant::constData() QVERIFY(v.constData()); QCOMPARE(*static_cast<const double *>(v.constData()), d); + v = QVariant(f); + QVERIFY(v.constData()); + QCOMPARE(*static_cast<const float *>(v.constData()), f); + v = QVariant(ll); QVERIFY(v.constData()); QCOMPARE(*static_cast<const qlonglong *>(v.constData()), ll); @@ -2339,6 +2384,7 @@ void tst_QVariant::variant_to() qVariantSetValue(v4, foo); QCOMPARE(qvariant_cast<double>(v1), 4.2); + QCOMPARE(qvariant_cast<float>(v1), 4.2f); QCOMPARE(qvariant_cast<int>(v2), 5); QCOMPARE(qvariant_cast<QStringList>(v3), sl); QCOMPARE(qvariant_cast<QString>(v3), QString::fromLatin1("blah")); @@ -2354,6 +2400,7 @@ void tst_QVariant::variant_to() QCOMPARE(qvariant_cast<int>(n), 42); QCOMPARE(qvariant_cast<uint>(n), 42u); QCOMPARE(qvariant_cast<double>(n), 42.0); + QCOMPARE(qvariant_cast<float>(n), 42.f); QCOMPARE(qvariant_cast<short>(n), short(42)); QCOMPARE(qvariant_cast<ushort>(n), ushort(42)); @@ -2361,6 +2408,7 @@ void tst_QVariant::variant_to() QCOMPARE(qvariant_cast<int>(n), 43); QCOMPARE(qvariant_cast<uint>(n), 43u); QCOMPARE(qvariant_cast<double>(n), 43.0); + QCOMPARE(qvariant_cast<float>(n), 43.f); QCOMPARE(qvariant_cast<long>(n), 43l); n = QLatin1String("44"); @@ -2402,14 +2450,22 @@ void tst_QVariant::saveLoadCustomTypes() void tst_QVariant::url() { - QUrl url("http://www.trolltech.com"); + QString str("http://www.trolltech.com"); + QUrl url(str); - QVariant v(url); + QVariant v(url); //built with a QUrl QVariant v2 = v; - QVERIFY(v2.toUrl() == url); + QVariant v3(str); //built with a QString + QCOMPARE(v2.toUrl(), url); + QVERIFY(qVariantCanConvert<QUrl>(v3)); + QCOMPARE(v2.toUrl(), v3.toUrl()); + + QVERIFY(qVariantCanConvert<QString>(v2)); + QCOMPARE(v2.toString(), str); + QCOMPARE(v3.toString(), str); } void tst_QVariant::globalColor() @@ -2742,6 +2798,9 @@ void tst_QVariant::task172061_invalidDate() const variant = foo; QVERIFY(!variant.convert(QVariant::Double)); + + variant = foo; + QVERIFY(!variant.convert(QVariant::Type(QMetaType::Float))); } struct WontCompare @@ -2909,5 +2968,21 @@ void tst_QVariant::toIntFromQString() const QVERIFY(ok); } +void tst_QVariant::task256984_setValue() +{ + QTransform t; //we just take a value so that we're sure that it will be shared + QVariant v1 = t; + QVERIFY( v1.isDetached() ); + QVariant v2 = v1; + QVERIFY( !v1.isDetached() ); + QVERIFY( !v2.isDetached() ); + + qVariantSetValue(v2, 3); //set an integer value + + QVERIFY( v1.isDetached() ); + QVERIFY( v2.isDetached() ); +} + + QTEST_MAIN(tst_QVariant) #include "tst_qvariant.moc" diff --git a/tests/auto/qvector/qvector.pro b/tests/auto/qvector/qvector.pro index 8138272..df3ee2d 100644 --- a/tests/auto/qvector/qvector.pro +++ b/tests/auto/qvector/qvector.pro @@ -1,5 +1,4 @@ load(qttest_p4) -QT = core SOURCES += tst_qvector.cpp diff --git a/tests/auto/qwebelement/.gitignore b/tests/auto/qwebelement/.gitignore new file mode 100644 index 0000000..01bbb96 --- /dev/null +++ b/tests/auto/qwebelement/.gitignore @@ -0,0 +1 @@ +tst_qwebpage diff --git a/tests/auto/qwebelement/dummy.cpp b/tests/auto/qwebelement/dummy.cpp new file mode 100644 index 0000000..0c034f3 --- /dev/null +++ b/tests/auto/qwebelement/dummy.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QtTest/QtTest> + +QTEST_NOOP_MAIN + diff --git a/tests/auto/qwebelement/qwebelement.pro b/tests/auto/qwebelement/qwebelement.pro new file mode 100644 index 0000000..ac809b8 --- /dev/null +++ b/tests/auto/qwebelement/qwebelement.pro @@ -0,0 +1,14 @@ +load(qttest_p4) +contains(QT_CONFIG,webkit) { + DEFINES += QTEST_WEBKIT + QT += webkit network + isEmpty(QT_BUILD_TREE):QT_BUILD_TREE=$(QTDIR) + isEmpty(QT_SOURCE_TREE):QT_SOURCE_TREE=$$fromfile($$QT_BUILD_TREE/.qmake.cache, QT_SOURCE_TREE) + + TESTDIR = $$QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/tests/qwebelement + VPATH += $$TESTDIR + include($$TESTDIR/qwebelement.pro) +} else { + SOURCES += dummy.cpp +} + diff --git a/tests/auto/qwebhistory/.gitignore b/tests/auto/qwebhistory/.gitignore new file mode 100644 index 0000000..2bdefcd --- /dev/null +++ b/tests/auto/qwebhistory/.gitignore @@ -0,0 +1 @@ +tst_qwebhistory diff --git a/tests/auto/qwebhistory/dummy.cpp b/tests/auto/qwebhistory/dummy.cpp new file mode 100644 index 0000000..0c034f3 --- /dev/null +++ b/tests/auto/qwebhistory/dummy.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QtTest/QtTest> + +QTEST_NOOP_MAIN + diff --git a/tests/auto/qwebhistory/qwebhistory.pro b/tests/auto/qwebhistory/qwebhistory.pro new file mode 100644 index 0000000..232f478 --- /dev/null +++ b/tests/auto/qwebhistory/qwebhistory.pro @@ -0,0 +1,14 @@ +load(qttest_p4) +contains(QT_CONFIG,webkit) { + DEFINES += QTEST_WEBKIT + QT += webkit network + isEmpty(QT_BUILD_TREE):QT_BUILD_TREE=$(QTDIR) + isEmpty(QT_SOURCE_TREE):QT_SOURCE_TREE=$$fromfile($$QT_BUILD_TREE/.qmake.cache, QT_SOURCE_TREE) + + TESTDIR = $$QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/tests/qwebhistory + VPATH += $$TESTDIR + include($$TESTDIR/qwebhistory.pro) +} else { + SOURCES += dummy.cpp +} + diff --git a/tests/auto/qwebhistoryinterface/.gitignore b/tests/auto/qwebhistoryinterface/.gitignore new file mode 100644 index 0000000..01bbb96 --- /dev/null +++ b/tests/auto/qwebhistoryinterface/.gitignore @@ -0,0 +1 @@ +tst_qwebpage diff --git a/tests/auto/qwebhistoryinterface/dummy.cpp b/tests/auto/qwebhistoryinterface/dummy.cpp new file mode 100644 index 0000000..0c034f3 --- /dev/null +++ b/tests/auto/qwebhistoryinterface/dummy.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QtTest/QtTest> + +QTEST_NOOP_MAIN + diff --git a/tests/auto/qwebhistoryinterface/qwebhistoryinterface.pro b/tests/auto/qwebhistoryinterface/qwebhistoryinterface.pro new file mode 100644 index 0000000..7218f52 --- /dev/null +++ b/tests/auto/qwebhistoryinterface/qwebhistoryinterface.pro @@ -0,0 +1,14 @@ +load(qttest_p4) +contains(QT_CONFIG,webkit) { + DEFINES += QTEST_WEBKIT + QT += webkit network + isEmpty(QT_BUILD_TREE):QT_BUILD_TREE=$(QTDIR) + isEmpty(QT_SOURCE_TREE):QT_SOURCE_TREE=$$fromfile($$QT_BUILD_TREE/.qmake.cache, QT_SOURCE_TREE) + + TESTDIR = $$QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface + VPATH += $$TESTDIR + include($$TESTDIR/qwebhistoryinterface.pro) +} else { + SOURCES += dummy.cpp +} + diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 1db6eb2..0f0a1af 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -106,7 +106,7 @@ // taken from qguifunctions_wce.cpp #define SPI_GETPLATFORMTYPE 257 bool qt_wince_is_platform(const QString &platformString) { - TCHAR tszPlatform[64]; + wchar_t tszPlatform[64]; if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (platformString.utf16()), tszPlatform)) @@ -289,6 +289,7 @@ private slots: void render_systemClip3_data(); void render_systemClip3(); void render_task252837(); + void render_worldTransform(); void setContentsMargins(); @@ -352,6 +353,9 @@ private slots: void toplevelLineEditFocus(); void inputFocus_task257832(); + void focusWidget_task254563(); + void rectOutsideCoordinatesLimit_task144779(); + private: bool ensureScreenSize(int width, int height); QWidget *testWidget; @@ -1551,6 +1555,10 @@ void tst_QWidget::focusChainOnReparent() QCOMPARE(w, expectedOriginalChain[i]); w = w->nextInFocusChain(); } + for (int i = 7; i >= 0; --i) { + w = w->previousInFocusChain(); + QCOMPARE(w, expectedOriginalChain[i]); + } QWidget window2; child2->setParent(&window2); @@ -1561,6 +1569,10 @@ void tst_QWidget::focusChainOnReparent() QCOMPARE(w, expectedNewChain[i]); w = w->nextInFocusChain(); } + for (int i = 4; i >= 0; --i) { + w = w->previousInFocusChain(); + QCOMPARE(w, expectedNewChain[i]); + } QWidget *expectedOldChain[5] = {&window, child1, child3, child4, &window}; w = &window; @@ -1568,6 +1580,10 @@ void tst_QWidget::focusChainOnReparent() QCOMPARE(w, expectedOldChain[i]); w = w->nextInFocusChain(); } + for (int i = 4; i >= 0; --i) { + w = w->previousInFocusChain(); + QCOMPARE(w, expectedOldChain[i]); + } } @@ -3419,9 +3435,9 @@ static QString visibleWindowTitle(QWidget *window, Qt::WindowState state = Qt::W #ifdef Q_WS_WIN Q_UNUSED(state); const size_t maxTitleLength = 256; - WCHAR title[maxTitleLength]; - GetWindowTextW(window->winId(), title, maxTitleLength); - vTitle = QString::fromUtf16((ushort *)title); + wchar_t title[maxTitleLength]; + GetWindowText(window->winId(), title, maxTitleLength); + vTitle = QString::fromWCharArray(title); #elif defined(Q_WS_X11) /* We can't check what the window manager displays, but we can @@ -5810,6 +5826,35 @@ void tst_QWidget::setToolTip() widget.setToolTip(QString()); QCOMPARE(widget.toolTip(), QString()); QCOMPARE(spy.count(), 2); + + + + for (int pass = 0; pass < 2; ++pass) { + QWidget *popup = new QWidget(0, Qt::Popup); + popup->resize(150, 50); + QFrame *frame = new QFrame(popup); + frame->setGeometry(0, 0, 50, 50); + frame->setFrameStyle(QFrame::Box | QFrame::Plain); + EventSpy spy1(frame, QEvent::ToolTip); + EventSpy spy2(popup, QEvent::ToolTip); + frame->setMouseTracking(pass == 0 ? false : true); + frame->setToolTip(QLatin1String("TOOLTIP FRAME")); + popup->setToolTip(QLatin1String("TOOLTIP POPUP")); + popup->show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(popup); +#endif + QTest::qWait(100); + QTest::mouseMove(frame); + QTest::qWait(900); // delay is 700 + + QCOMPARE(spy1.count(), 1); + QCOMPARE(spy2.count(), 0); + if (pass == 0) + QTest::qWait(2200); // delay is 2000 + QTest::mouseMove(popup); + delete popup; + } } void tst_QWidget::testWindowIconChangeEventPropagation() @@ -7138,6 +7183,99 @@ void tst_QWidget::render_task252837() // Please do not crash. widget.render(&painter); } + +void tst_QWidget::render_worldTransform() +{ + class MyWidget : public QWidget + { public: + void paintEvent(QPaintEvent *) + { + QPainter painter(this); + // Make sure world transform is identity. + QCOMPARE(painter.worldTransform(), QTransform()); + + // Make sure device transform is correct. + const QPoint widgetOffset = geometry().topLeft(); + QTransform expectedDeviceTransform = QTransform::fromTranslate(105, 5); + expectedDeviceTransform.rotate(90); + expectedDeviceTransform.translate(widgetOffset.x(), widgetOffset.y()); + QCOMPARE(painter.deviceTransform(), expectedDeviceTransform); + + // Set new world transform. + QTransform newWorldTransform = QTransform::fromTranslate(10, 10); + newWorldTransform.rotate(90); + painter.setWorldTransform(newWorldTransform); + QCOMPARE(painter.worldTransform(), newWorldTransform); + + // Again, check device transform. + expectedDeviceTransform.translate(10, 10); + expectedDeviceTransform.rotate(90); + QCOMPARE(painter.deviceTransform(), expectedDeviceTransform); + + painter.fillRect(QRect(0, 0, 20, 10), Qt::green); + } + }; + + MyWidget widget; + widget.setFixedSize(100, 100); + widget.setPalette(Qt::red); + widget.setAutoFillBackground(true); + + MyWidget child; + child.setParent(&widget); + child.move(50, 50); + child.setFixedSize(50, 50); + child.setPalette(Qt::blue); + child.setAutoFillBackground(true); + + QImage image(QSize(110, 110), QImage::Format_RGB32); + image.fill(QColor(Qt::black).rgb()); + + QPainter painter(&image); + painter.translate(105, 5); + painter.rotate(90); + + const QTransform worldTransform = painter.worldTransform(); + const QTransform deviceTransform = painter.deviceTransform(); + + // Render widgets onto image. + widget.render(&painter); +#ifdef RENDER_DEBUG + image.save("render_worldTransform_image.png"); +#endif + + // Ensure the transforms are unchanged after render. + QCOMPARE(painter.worldTransform(), painter.worldTransform()); + QCOMPARE(painter.deviceTransform(), painter.deviceTransform()); + painter.end(); + + // Paint expected image. + QImage expected(QSize(110, 110), QImage::Format_RGB32); + expected.fill(QColor(Qt::black).rgb()); + + QPainter expectedPainter(&expected); + expectedPainter.translate(105, 5); + expectedPainter.rotate(90); + expectedPainter.save(); + expectedPainter.fillRect(widget.rect(),Qt::red); + expectedPainter.translate(10, 10); + expectedPainter.rotate(90); + expectedPainter.fillRect(QRect(0, 0, 20, 10), Qt::green); + expectedPainter.restore(); + expectedPainter.translate(50, 50); + expectedPainter.fillRect(child.rect(),Qt::blue); + expectedPainter.translate(10, 10); + expectedPainter.rotate(90); + expectedPainter.fillRect(QRect(0, 0, 20, 10), Qt::green); + expectedPainter.end(); + +#ifdef RENDER_DEBUG + expected.save("render_worldTransform_expected.png"); +#endif + + QCOMPARE(image, expected); +} + void tst_QWidget::setContentsMargins() { QLabel label("why does it always rain on me?"); @@ -8966,6 +9104,55 @@ void tst_QWidget::toplevelLineEditFocus() QCOMPARE(QApplication::focusWidget(), &w); } +void tst_QWidget::focusWidget_task254563() +{ + //having different visibility for widget is important + QWidget top; + top.show(); + QWidget container(&top); + QWidget *widget = new QWidget(&container); + widget->show(); + + widget->setFocus(); //set focus (will set the focus widget up to the toplevel to be 'widget') + container.setFocus(); + delete widget; // will call clearFocus but that doesn't help + QVERIFY(top.focusWidget() != widget); //dangling pointer +} + +void tst_QWidget::rectOutsideCoordinatesLimit_task144779() +{ + QWidget main; + QPalette palette; + palette.setColor(QPalette::Window, Qt::red); + main.setPalette(palette); + main.resize(400, 400); + + QWidget *offsetWidget = new QWidget(&main); + offsetWidget->setGeometry(0, -14600, 400, 15000); + + // big widget is too big for the coordinates, it must be limited by wrect + // if wrect is not at the right position because of offsetWidget, bigwidget + // is not painted correctly + QWidget *bigWidget = new QWidget(offsetWidget); + bigWidget->setGeometry(0, 0, 400, 50000); + palette.setColor(QPalette::Window, Qt::green); + bigWidget->setPalette(palette); + bigWidget->setAutoFillBackground(true); + + main.show(); +#ifdef Q_WS_X11 + qt_x11_wait_for_window_manager(&main); +#endif + QTest::qWait(100); + QPixmap pixmap = QPixmap::grabWindow(main.winId()); + + QPixmap correct(main.size()); + correct.fill(Qt::green); + + QRect center(100, 100, 200, 200); // to avoid the decorations + QCOMPARE(pixmap.toImage().copy(center), correct.toImage().copy(center)); +} + void tst_QWidget::inputFocus_task257832() { QLineEdit *widget = new QLineEdit; diff --git a/tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp b/tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp index 24d28c5..4b00773 100644 --- a/tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp +++ b/tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp @@ -110,12 +110,9 @@ void tst_QWinEventNotifier::simple_timerSet() void tst_QWinEventNotifier::simple() { - QT_WA({ - simpleHEvent = CreateEventW(0, TRUE, FALSE, 0); - }, { - simpleHEvent = CreateEventA(0, TRUE, FALSE, 0); - }); + simpleHEvent = CreateEvent(0, TRUE, FALSE, 0); QVERIFY(simpleHEvent); + QWinEventNotifier n(simpleHEvent); QObject::connect(&n, SIGNAL(activated(HANDLE)), this, SLOT(simple_activated())); simpleActivated = false; diff --git a/tests/auto/qxmlquery/tst_qxmlquery.cpp b/tests/auto/qxmlquery/tst_qxmlquery.cpp index b273311..5c14329 100644 --- a/tests/auto/qxmlquery/tst_qxmlquery.cpp +++ b/tests/auto/qxmlquery/tst_qxmlquery.cpp @@ -155,6 +155,9 @@ private Q_SLOTS: void setFocusQIODeviceAvoidVariableClash() const; void setFocusQIODeviceFailure() const; void setFocusQIODeviceTriggerWarnings() const; + void setFocusQString() const; + void setFocusQStringFailure() const; + void setFocusQStringSignature() const; void recompilationWithEvaluateToResultFailing() const; void secondEvaluationWithEvaluateToResultFailing() const; void recompilationWithEvaluateToReceiver() const; @@ -221,6 +224,10 @@ private Q_SLOTS: void bindVariableQXmlQueryInvalidate() const; void unknownSourceLocation() const; + void identityConstraintSuccess() const; + void identityConstraintFailure() const; + void identityConstraintFailure_data() const; + // TODO call all URI resolving functions where 1) the URI resolver return a null QUrl(); 2) resolves into valid, existing URI, 3) invalid, non-existing URI. // TODO bind stringlists, variant lists, both ways. // TODO trigger serialization error, or any error in evaluateToushCallback(). @@ -1895,6 +1902,55 @@ void tst_QXmlQuery::setFocusQIODeviceFailure() const } } +void tst_QXmlQuery::setFocusQString() const +{ + QXmlQuery query; + + /* Basic use of focus. */ + { + QVERIFY(query.setFocus(QLatin1String("<e>textNode</e>"))); + query.setQuery(QLatin1String("string()")); + QVERIFY(query.isValid()); + QString out; + query.evaluateTo(&out); + QCOMPARE(out, QString::fromLatin1("textNode\n")); + } + + /* Set to a new focus, make sure it changes and works. */ + { + QVERIFY(query.setFocus(QLatin1String("<e>newFocus</e>"))); + QString out; + query.evaluateTo(&out); + QCOMPARE(out, QString::fromLatin1("newFocus\n")); + } +} + +void tst_QXmlQuery::setFocusQStringFailure() const +{ + QXmlQuery query; + MessageSilencer silencer; + + query.setMessageHandler(&silencer); + QVERIFY(!query.setFocus(QLatin1String("<notWellformed"))); + + /* Let's try the slight special case of a null string. */ + QVERIFY(!query.setFocus(QString())); +} + +void tst_QXmlQuery::setFocusQStringSignature() const +{ + QXmlQuery query; + MessageSilencer silencer; + query.setMessageHandler(&silencer); + + const QString argument; + /* We should take a const ref. */ + query.setFocus(argument); + + /* We should return a bool. */ + static_cast<bool>(query.setFocus(QString())); +} + void tst_QXmlQuery::setFocusQIODeviceTriggerWarnings() const { /* A null pointer. */ @@ -2921,6 +2977,9 @@ void tst_QXmlQuery::enumQueryLanguage() const /* These enum values should be possible to OR for future plans. */ QCOMPARE(int(QXmlQuery::XQuery10), 1); QCOMPARE(int(QXmlQuery::XSLT20), 2); + QCOMPARE(int(QXmlQuery::XmlSchema11IdentityConstraintSelector), 1024); + QCOMPARE(int(QXmlQuery::XmlSchema11IdentityConstraintField), 2048); + QCOMPARE(int(QXmlQuery::XPath20), 4096); } void tst_QXmlQuery::setInitialTemplateNameQXmlName() const @@ -3240,6 +3299,157 @@ void tst_QXmlQuery::unknownSourceLocation() const query.evaluateTo(&output); } +void tst_QXmlQuery::identityConstraintSuccess() const +{ + QXmlQuery::QueryLanguage queryLanguage = QXmlQuery::XmlSchema11IdentityConstraintSelector; + + /* We run this code for Selector and Field. */ + for(int i = 0; i < 3; ++i) + { + QXmlNamePool namePool; + QXmlResultItems result; + QXmlItem node; + + { + QXmlQuery nodeSource(namePool); + nodeSource.setQuery(QLatin1String("<e/>")); + + nodeSource.evaluateTo(&result); + node = result.next(); + } + + /* Basic use: + * 1. The focus is undefined, but it's still valid. + * 2. We never evaluate. */ + { + QXmlQuery query(queryLanguage); + query.setQuery(QLatin1String("a")); + QVERIFY(query.isValid()); + } + + /* Basic use: + * 1. The focus is undefined, but it's still valid. + * 2. We afterwards set the focus. */ + { + QXmlQuery query(queryLanguage, namePool); + query.setQuery(QLatin1String("a")); + query.setFocus(node); + QVERIFY(query.isValid()); + } + + /* Basic use: + * 1. The focus is undefined, but it's still valid. + * 2. We afterwards set the focus. + * 3. We evaluate. */ + { + QXmlQuery query(queryLanguage, namePool); + query.setQuery(QString(QLatin1Char('.'))); + query.setFocus(node); + QVERIFY(query.isValid()); + + QString result; + QVERIFY(query.evaluateTo(&result)); + QCOMPARE(result, QString::fromLatin1("<e/>\n")); + } + + /* A slightly more complex Field. */ + { + QXmlQuery query(queryLanguage); + query.setQuery(QLatin1String("* | .//xml:*/.")); + QVERIFY(query.isValid()); + } + + /* @ is only allowed in Field. */ + if(queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintField) + { + QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintField); + query.setQuery(QLatin1String("@abc")); + QVERIFY(query.isValid()); + } + + /* Field allows attribute:: and child:: .*/ + if(queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintField) + { + QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintField); + query.setQuery(QLatin1String("attribute::name | child::name")); + QVERIFY(query.isValid()); + } + + /* Selector allows only child:: .*/ + { + QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintSelector); + query.setQuery(QLatin1String("child::name")); + QVERIFY(query.isValid()); + } + + if(i == 0) + queryLanguage = QXmlQuery::XmlSchema11IdentityConstraintField; + else if(i == 1) + queryLanguage = QXmlQuery::XPath20; + } +} + +Q_DECLARE_METATYPE(QXmlQuery::QueryLanguage); + +/*! + We just do some basic tests for boot strapping and sanity checking. The actual regression + testing is in the Schema suite. + */ +void tst_QXmlQuery::identityConstraintFailure() const +{ + QFETCH(QXmlQuery::QueryLanguage, queryLanguage); + QFETCH(QString, inputQuery); + + QXmlQuery query(queryLanguage); + MessageSilencer silencer; + query.setMessageHandler(&silencer); + + query.setQuery(inputQuery); + QVERIFY(!query.isValid()); +} + +void tst_QXmlQuery::identityConstraintFailure_data() const +{ + QTest::addColumn<QXmlQuery::QueryLanguage>("queryLanguage"); + QTest::addColumn<QString>("inputQuery"); + + QTest::newRow("We don't have element constructors in identity constraint pattern, " + "it's an XQuery feature(Selector).") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("<e/>"); + + QTest::newRow("We don't have functions in identity constraint pattern, " + "it's an XPath feature(Selector).") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("current-time()"); + + QTest::newRow("We don't have element constructors in identity constraint pattern, " + "it's an XQuery feature(Field).") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("<e/>"); + + QTest::newRow("We don't have functions in identity constraint pattern, " + "it's an XPath feature(Field).") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("current-time()"); + + QTest::newRow("@attributeName is disallowed for the selector.") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("@abc"); + + QTest::newRow("attribute:: is disallowed for the selector.") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("attribute::name"); + + QTest::newRow("ancestor::name is disallowed for the selector.") + << QXmlQuery::XmlSchema11IdentityConstraintSelector + << QString::fromLatin1("ancestor::name"); + + QTest::newRow("ancestor::name is disallowed for the field.") + << QXmlQuery::XmlSchema11IdentityConstraintField + << QString::fromLatin1("ancestor::name"); +} + QTEST_MAIN(tst_QXmlQuery) #include "tst_qxmlquery.moc" diff --git a/tests/auto/qxmlschema/.gitignore b/tests/auto/qxmlschema/.gitignore new file mode 100644 index 0000000..5cf52a0 --- /dev/null +++ b/tests/auto/qxmlschema/.gitignore @@ -0,0 +1 @@ +tst_qxmlschema diff --git a/tests/auto/qxmlschema/qxmlschema.pro b/tests/auto/qxmlschema/qxmlschema.pro new file mode 100644 index 0000000..9dd7469 --- /dev/null +++ b/tests/auto/qxmlschema/qxmlschema.pro @@ -0,0 +1,4 @@ +load(qttest_p4) +SOURCES += tst_qxmlschema.cpp + +include (../xmlpatterns.pri) diff --git a/tests/auto/qxmlschema/tst_qxmlschema.cpp b/tests/auto/qxmlschema/tst_qxmlschema.cpp new file mode 100644 index 0000000..33978e8 --- /dev/null +++ b/tests/auto/qxmlschema/tst_qxmlschema.cpp @@ -0,0 +1,372 @@ +/**************************************************************************** +** +** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include <QAbstractMessageHandler> +#include <QAbstractUriResolver> +#include <QtNetwork/QNetworkAccessManager> +#include <QXmlName> +#include <QXmlSchema> + +#include "../qabstracturiresolver/TestURIResolver.h" +#include "../qxmlquery/MessageSilencer.h" + +/*! + \class tst_QXmlSchema + \internal + \brief Tests class QXmlSchema. + + This test is not intended for testing the engine, but the functionality specific + to the QXmlSchema class. + */ +class tst_QXmlSchema : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void defaultConstructor() const; + void copyConstructor() const; + void constructorQXmlNamePool() const; + void copyMutationTest() const; + + void isValid() const; + void documentUri() const; + + void loadSchemaUrlSuccess() const; + void loadSchemaUrlFail() const; + void loadSchemaDeviceSuccess() const; + void loadSchemaDeviceFail() const; + void loadSchemaDataSuccess() const; + void loadSchemaDataFail() const; + + void networkAccessManagerSignature() const; + void networkAccessManagerDefaultValue() const; + void networkAccessManager() const; + + void messageHandlerSignature() const; + void messageHandlerDefaultValue() const; + void messageHandler() const; + + void uriResolverSignature() const; + void uriResolverDefaultValue() const; + void uriResolver() const; +}; + +void tst_QXmlSchema::defaultConstructor() const +{ + /* Allocate instance in different orders. */ + { + QXmlSchema schema; + } + + { + QXmlSchema schema1; + QXmlSchema schema2; + } + + { + QXmlSchema schema1; + QXmlSchema schema2; + QXmlSchema schema3; + } +} + +void tst_QXmlSchema::copyConstructor() const +{ + /* Verify that we can take a const reference, and simply do a copy of a default constructed object. */ + { + const QXmlSchema schema1; + QXmlSchema schema2(schema1); + } + + /* Copy twice. */ + { + const QXmlSchema schema1; + QXmlSchema schema2(schema1); + QXmlSchema schema3(schema2); + } + + /* Verify that copying default values works. */ + { + const QXmlSchema schema1; + const QXmlSchema schema2(schema1); + QCOMPARE(schema2.messageHandler(), schema1.messageHandler()); + QCOMPARE(schema2.uriResolver(), schema1.uriResolver()); + QCOMPARE(schema2.networkAccessManager(), schema1.networkAccessManager()); + QCOMPARE(schema2.isValid(), schema1.isValid()); + } +} + +void tst_QXmlSchema::constructorQXmlNamePool() const +{ + QXmlSchema schema; + + QXmlNamePool np = schema.namePool(); + + const QXmlName name(np, QLatin1String("localName"), + QLatin1String("http://example.com/"), + QLatin1String("prefix")); + + QXmlNamePool np2(schema.namePool()); + QCOMPARE(name.namespaceUri(np2), QString::fromLatin1("http://example.com/")); + QCOMPARE(name.localName(np2), QString::fromLatin1("localName")); + QCOMPARE(name.prefix(np2), QString::fromLatin1("prefix")); + + // make sure namePool() is const + const QXmlSchema constSchema; + np = constSchema.namePool(); +} + +void tst_QXmlSchema::copyMutationTest() const +{ + QXmlSchema schema1; + QXmlSchema schema2(schema1); + + // check that everything is equal + QVERIFY(schema2.messageHandler() == schema1.messageHandler()); + QVERIFY(schema2.uriResolver() == schema1.uriResolver()); + QVERIFY(schema2.networkAccessManager() == schema1.networkAccessManager()); + + MessageSilencer handler; + const TestURIResolver resolver; + QNetworkAccessManager manager; + + // modify schema1 + schema1.setMessageHandler(&handler); + schema1.setUriResolver(&resolver); + schema1.setNetworkAccessManager(&manager); + + // check that schema2 is not effected by the modifications of schema1 + QVERIFY(schema2.messageHandler() != schema1.messageHandler()); + QVERIFY(schema2.uriResolver() != schema1.uriResolver()); + QVERIFY(schema2.networkAccessManager() != schema1.networkAccessManager()); + + // modify schema1 further + const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + "</xsd:schema>" ); + + const QUrl documentUri("http://www.qtsoftware.com/xmlschematest"); + schema1.load(data, documentUri); + + QVERIFY(schema2.isValid() != schema1.isValid()); +} + +void tst_QXmlSchema::isValid() const +{ + /* Check default value. */ + QXmlSchema schema; + QVERIFY(!schema.isValid()); +} + +void tst_QXmlSchema::documentUri() const +{ + const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + "</xsd:schema>" ); + + const QUrl documentUri("http://www.qtsoftware.com/xmlschematest"); + QXmlSchema schema; + schema.load(data, documentUri); + + QCOMPARE(documentUri, schema.documentUri()); +} + +void tst_QXmlSchema::loadSchemaUrlSuccess() const +{ +/** + TODO: put valid schema file on given url and enable test + const QUrl url("http://notavailable/"); + + QXmlSchema schema; + QVERIFY(!schema.load(url)); +*/ +} + +void tst_QXmlSchema::loadSchemaUrlFail() const +{ + const QUrl url("http://notavailable/"); + + QXmlSchema schema; + QVERIFY(!schema.load(url)); +} + +void tst_QXmlSchema::loadSchemaDeviceSuccess() const +{ + QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + "</xsd:schema>" ); + + QBuffer buffer(&data); + buffer.open(QIODevice::ReadOnly); + + QXmlSchema schema; + QVERIFY(schema.load(&buffer)); +} + +void tst_QXmlSchema::loadSchemaDeviceFail() const +{ + QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + "</xsd:schema>" ); + + QBuffer buffer(&data); + // a closed device can not be loaded + + QXmlSchema schema; + QVERIFY(!schema.load(&buffer)); +} + +void tst_QXmlSchema::loadSchemaDataSuccess() const +{ + const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + "</xsd:schema>" ); + QXmlSchema schema; + QVERIFY(schema.load(data)); +} + +void tst_QXmlSchema::loadSchemaDataFail() const +{ + // empty schema can not be loaded + const QByteArray data; + + QXmlSchema schema; + QVERIFY(!schema.load(data)); +} + + +void tst_QXmlSchema::networkAccessManagerSignature() const +{ + /* Const object. */ + const QXmlSchema schema; + + /* The function should be const. */ + schema.networkAccessManager(); +} + +void tst_QXmlSchema::networkAccessManagerDefaultValue() const +{ + /* Test that the default value of network access manager is not empty. */ + { + QXmlSchema schema; + QVERIFY(schema.networkAccessManager() != static_cast<QNetworkAccessManager*>(0)); + } +} + +void tst_QXmlSchema::networkAccessManager() const +{ + /* Test that we return the network manager that was set. */ + { + QNetworkAccessManager manager; + QXmlSchema schema; + schema.setNetworkAccessManager(&manager); + QCOMPARE(schema.networkAccessManager(), &manager); + } +} + +void tst_QXmlSchema::messageHandlerSignature() const +{ + /* Const object. */ + const QXmlSchema schema; + + /* The function should be const. */ + schema.messageHandler(); +} + +void tst_QXmlSchema::messageHandlerDefaultValue() const +{ + /* Test that the default value of message handler is not empty. */ + { + QXmlSchema schema; + QVERIFY(schema.messageHandler() != static_cast<QAbstractMessageHandler*>(0)); + } +} + +void tst_QXmlSchema::messageHandler() const +{ + /* Test that we return the message handler that was set. */ + { + MessageSilencer handler; + + QXmlSchema schema; + schema.setMessageHandler(&handler); + QCOMPARE(schema.messageHandler(), &handler); + } +} + +void tst_QXmlSchema::uriResolverSignature() const +{ + /* Const object. */ + const QXmlSchema schema; + + /* The function should be const. */ + schema.uriResolver(); + + /* Const object. */ + const TestURIResolver resolver; + + /* This should compile */ + QXmlSchema schema2; + schema2.setUriResolver(&resolver); +} + +void tst_QXmlSchema::uriResolverDefaultValue() const +{ + /* Test that the default value of uri resolver is empty. */ + { + QXmlSchema schema; + QVERIFY(schema.uriResolver() == static_cast<QAbstractUriResolver*>(0)); + } +} + +void tst_QXmlSchema::uriResolver() const +{ + /* Test that we return the uri resolver that was set. */ + { + TestURIResolver resolver; + + QXmlSchema schema; + schema.setUriResolver(&resolver); + QCOMPARE(schema.uriResolver(), &resolver); + } +} + +QTEST_MAIN(tst_QXmlSchema) + +#include "tst_qxmlschema.moc" +#else //QTEST_PATTERNIST +QTEST_NOOP_MAIN +#endif diff --git a/tests/auto/qxmlschemavalidator/.gitignore b/tests/auto/qxmlschemavalidator/.gitignore new file mode 100644 index 0000000..8857212 --- /dev/null +++ b/tests/auto/qxmlschemavalidator/.gitignore @@ -0,0 +1 @@ +tst_qxmlschemavalidator diff --git a/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro b/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro new file mode 100644 index 0000000..88ef317 --- /dev/null +++ b/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro @@ -0,0 +1,4 @@ +load(qttest_p4) +SOURCES += tst_qxmlschemavalidator.cpp + +include (../xmlpatterns.pri) diff --git a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp new file mode 100644 index 0000000..0f15bc8 --- /dev/null +++ b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp @@ -0,0 +1,445 @@ +/**************************************************************************** +** +** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include <QAbstractMessageHandler> +#include <QAbstractUriResolver> +#include <QtNetwork/QNetworkAccessManager> +#include <QXmlName> +#include <QXmlSchema> +#include <QXmlSchemaValidator> + +#include "../qabstracturiresolver/TestURIResolver.h" +#include "../qxmlquery/MessageSilencer.h" + +/*! + \class tst_QXmlSchemaValidatorValidator + \internal + \brief Tests class QXmlSchemaValidator. + + This test is not intended for testing the engine, but the functionality specific + to the QXmlSchemaValidator class. + */ +class tst_QXmlSchemaValidator : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void defaultConstructor() const; + void constructorQXmlNamePool() const; + void propertyInitialization() const; + void resetSchemaNamePool() const; + + void loadInstanceUrlSuccess() const; + void loadInstanceUrlFail() const; + void loadInstanceDeviceSuccess() const; + void loadInstanceDeviceFail() const; + void loadInstanceDataSuccess() const; + void loadInstanceDataFail() const; + + void networkAccessManagerSignature() const; + void networkAccessManagerDefaultValue() const; + void networkAccessManager() const; + + void messageHandlerSignature() const; + void messageHandlerDefaultValue() const; + void messageHandler() const; + + void uriResolverSignature() const; + void uriResolverDefaultValue() const; + void uriResolver() const; +}; + +static QXmlSchema createValidSchema() +{ + const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<xsd:schema" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" + " xmlns=\"http://www.qtsoftware.com/xmlschematest\"" + " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\"" + " version=\"1.0\"" + " elementFormDefault=\"qualified\">" + " <xsd:element name=\"myRoot\" type=\"xsd:string\"/>" + "</xsd:schema>" ); + + const QUrl documentUri("http://www.qtsoftware.com/xmlschematest"); + + QXmlSchema schema; + schema.load(data, documentUri); + + return schema; +} + +void tst_QXmlSchemaValidator::defaultConstructor() const +{ + /* Allocate instance in different orders. */ + { + QXmlSchema schema; + QXmlSchemaValidator validator(schema); + } + + { + QXmlSchema schema1; + QXmlSchema schema2; + + QXmlSchemaValidator validator1(schema1); + QXmlSchemaValidator validator2(schema2); + } + + { + QXmlSchema schema; + + QXmlSchemaValidator validator1(schema); + QXmlSchemaValidator validator2(schema); + } +} + +void tst_QXmlSchemaValidator::propertyInitialization() const +{ + /* Verify that properties set in the schema are used as default values for the validator */ + { + MessageSilencer handler; + TestURIResolver resolver; + QNetworkAccessManager manager; + + QXmlSchema schema; + schema.setMessageHandler(&handler); + schema.setUriResolver(&resolver); + schema.setNetworkAccessManager(&manager); + + QXmlSchemaValidator validator(schema); + QCOMPARE(validator.messageHandler(), &handler); + QCOMPARE(validator.uriResolver(), &resolver); + QCOMPARE(validator.networkAccessManager(), &manager); + } +} + +void tst_QXmlSchemaValidator::constructorQXmlNamePool() const +{ + // test that the name pool from the schema is used by + // the schema validator as well + QXmlSchema schema; + + QXmlNamePool np = schema.namePool(); + + const QXmlName name(np, QLatin1String("localName"), + QLatin1String("http://example.com/"), + QLatin1String("prefix")); + + QXmlSchemaValidator validator(schema); + + QXmlNamePool np2(validator.namePool()); + QCOMPARE(name.namespaceUri(np2), QString::fromLatin1("http://example.com/")); + QCOMPARE(name.localName(np2), QString::fromLatin1("localName")); + QCOMPARE(name.prefix(np2), QString::fromLatin1("prefix")); + + // make sure namePool() is const + const QXmlSchemaValidator constValidator(schema); + np = constValidator.namePool(); +} + +void tst_QXmlSchemaValidator::resetSchemaNamePool() const +{ + QXmlSchema schema1; + QXmlNamePool np1 = schema1.namePool(); + + const QXmlName name1(np1, QLatin1String("localName"), + QLatin1String("http://example.com/"), + QLatin1String("prefix")); + + QXmlSchemaValidator validator(schema1); + + { + QXmlNamePool compNamePool(validator.namePool()); + QCOMPARE(name1.namespaceUri(compNamePool), QString::fromLatin1("http://example.com/")); + QCOMPARE(name1.localName(compNamePool), QString::fromLatin1("localName")); + QCOMPARE(name1.prefix(compNamePool), QString::fromLatin1("prefix")); + } + + QXmlSchema schema2; + QXmlNamePool np2 = schema2.namePool(); + + const QXmlName name2(np2, QLatin1String("remoteName"), + QLatin1String("http://trolltech.com/"), + QLatin1String("suffix")); + + // make sure that after re-setting the schema, the new namepool is used + validator.setSchema(schema2); + + { + QXmlNamePool compNamePool(validator.namePool()); + QCOMPARE(name2.namespaceUri(compNamePool), QString::fromLatin1("http://trolltech.com/")); + QCOMPARE(name2.localName(compNamePool), QString::fromLatin1("remoteName")); + QCOMPARE(name2.prefix(compNamePool), QString::fromLatin1("suffix")); + } +} + +void tst_QXmlSchemaValidator::loadInstanceUrlSuccess() const +{ +/* + TODO: put valid schema file on given url and enable test + const QXmlSchema schema(createValidSchema()); + const QUrl url("http://notavailable/"); + + QXmlSchemaValidator validator(schema); + QVERIFY(!validator.validate(url)); +*/ +} + +void tst_QXmlSchemaValidator::loadInstanceUrlFail() const +{ + const QXmlSchema schema(createValidSchema()); + const QUrl url("http://notavailable/"); + + QXmlSchemaValidator validator(schema); + QVERIFY(!validator.validate(url)); +} + +void tst_QXmlSchemaValidator::loadInstanceDeviceSuccess() const +{ + const QXmlSchema schema(createValidSchema()); + + QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" ); + QBuffer buffer(&data); + buffer.open(QIODevice::ReadOnly); + + QXmlSchemaValidator validator(schema); + QVERIFY(validator.validate(&buffer)); +} + +void tst_QXmlSchemaValidator::loadInstanceDeviceFail() const +{ + const QXmlSchema schema(createValidSchema()); + + QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" ); + QBuffer buffer(&data); + // a closed device can not be loaded + + QXmlSchemaValidator validator(schema); + QVERIFY(!validator.validate(&buffer)); +} + +void tst_QXmlSchemaValidator::loadInstanceDataSuccess() const +{ + const QXmlSchema schema(createValidSchema()); + + const QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" ); + + QXmlSchemaValidator validator(schema); + QVERIFY(validator.validate(data)); +} + +void tst_QXmlSchemaValidator::loadInstanceDataFail() const +{ + const QXmlSchema schema(createValidSchema()); + + // empty instance can not be loaded + const QByteArray data; + + QXmlSchemaValidator validator(schema); + QVERIFY(!validator.validate(data)); +} + +void tst_QXmlSchemaValidator::networkAccessManagerSignature() const +{ + const QXmlSchema schema; + + /* Const object. */ + const QXmlSchemaValidator validator(schema); + + /* The function should be const. */ + validator.networkAccessManager(); +} + +void tst_QXmlSchemaValidator::networkAccessManagerDefaultValue() const +{ + /* Test that the default value of network access manager is equal to the one from the schema. */ + { + const QXmlSchema schema; + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.networkAccessManager() == schema.networkAccessManager()); + } + + /* Test that the default value of network access manager is equal to the one from the schema. */ + { + QXmlSchema schema; + + QNetworkAccessManager manager; + schema.setNetworkAccessManager(&manager); + + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.networkAccessManager() == schema.networkAccessManager()); + } +} + +void tst_QXmlSchemaValidator::networkAccessManager() const +{ + /* Test that we return the network access manager that was set. */ + { + QNetworkAccessManager manager; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setNetworkAccessManager(&manager); + QCOMPARE(validator.networkAccessManager(), &manager); + } + + /* Test that we return the network access manager that was set, even if the schema changed in between. */ + { + QNetworkAccessManager manager; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setNetworkAccessManager(&manager); + + const QXmlSchema schema2; + validator.setSchema(schema2); + + QCOMPARE(validator.networkAccessManager(), &manager); + } +} + +void tst_QXmlSchemaValidator::messageHandlerSignature() const +{ + const QXmlSchema schema; + + /* Const object. */ + const QXmlSchemaValidator validator(schema); + + /* The function should be const. */ + validator.messageHandler(); +} + +void tst_QXmlSchemaValidator::messageHandlerDefaultValue() const +{ + /* Test that the default value of message handler is equal to the one from the schema. */ + { + const QXmlSchema schema; + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.messageHandler() == schema.messageHandler()); + } + + /* Test that the default value of network access manager is equal to the one from the schema. */ + { + QXmlSchema schema; + + MessageSilencer handler; + schema.setMessageHandler(&handler); + + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.messageHandler() == schema.messageHandler()); + } +} + +void tst_QXmlSchemaValidator::messageHandler() const +{ + /* Test that we return the message handler that was set. */ + { + MessageSilencer handler; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setMessageHandler(&handler); + QCOMPARE(validator.messageHandler(), &handler); + } + + /* Test that we return the message handler that was set, even if the schema changed in between. */ + { + MessageSilencer handler; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setMessageHandler(&handler); + + const QXmlSchema schema2; + validator.setSchema(schema2); + + QCOMPARE(validator.messageHandler(), &handler); + } +} + +void tst_QXmlSchemaValidator::uriResolverSignature() const +{ + const QXmlSchema schema; + + /* Const object. */ + const QXmlSchemaValidator validator(schema); + + /* The function should be const. */ + validator.uriResolver(); + + /* Const object. */ + const TestURIResolver resolver; + + /* This should compile */ + QXmlSchema schema2; + schema2.setUriResolver(&resolver); +} + +void tst_QXmlSchemaValidator::uriResolverDefaultValue() const +{ + /* Test that the default value of uri resolver is equal to the one from the schema. */ + { + const QXmlSchema schema; + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.uriResolver() == schema.uriResolver()); + } + + /* Test that the default value of uri resolver is equal to the one from the schema. */ + { + QXmlSchema schema; + + TestURIResolver resolver; + schema.setUriResolver(&resolver); + + const QXmlSchemaValidator validator(schema); + QVERIFY(validator.uriResolver() == schema.uriResolver()); + } +} + +void tst_QXmlSchemaValidator::uriResolver() const +{ + /* Test that we return the uri resolver that was set. */ + { + TestURIResolver resolver; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setUriResolver(&resolver); + QCOMPARE(validator.uriResolver(), &resolver); + } + + /* Test that we return the uri resolver that was set, even if the schema changed in between. */ + { + TestURIResolver resolver; + + const QXmlSchema schema; + QXmlSchemaValidator validator(schema); + + validator.setUriResolver(&resolver); + + const QXmlSchema schema2; + validator.setSchema(schema2); + + QCOMPARE(validator.uriResolver(), &resolver); + } +} + +QTEST_MAIN(tst_QXmlSchemaValidator) + +#include "tst_qxmlschemavalidator.moc" +#else //QTEST_PATTERNIST +QTEST_NOOP_MAIN +#endif diff --git a/tests/auto/qxmlstream/tst_qxmlstream.cpp b/tests/auto/qxmlstream/tst_qxmlstream.cpp index 32fdb91..1533913 100644 --- a/tests/auto/qxmlstream/tst_qxmlstream.cpp +++ b/tests/auto/qxmlstream/tst_qxmlstream.cpp @@ -561,6 +561,8 @@ private slots: void garbageInXMLPrologDefaultCodec() const; void garbageInXMLPrologUTF8Explicitly() const; void clear() const; + void checkCommentIndentation() const; + void checkCommentIndentation_data() const; private: static QByteArray readFile(const QString &filename); @@ -1392,5 +1394,55 @@ void tst_QXmlStream::clear() const // task 228768 QCOMPARE(reader.tokenType(), QXmlStreamReader::EndDocument); } +void tst_QXmlStream::checkCommentIndentation_data() const +{ + + QTest::addColumn<QString>("input"); + QTest::addColumn<QString>("expectedOutput"); + + QString simpleInput = "<a><!-- bla --></a>"; + QString simpleOutput = "<?xml version=\"1.0\"?>\n" + "<a>\n" + " <!-- bla -->\n" + "</a>\n"; + QTest::newRow("simple-comment") << simpleInput << simpleOutput; + + QString advancedInput = "<a><!-- bla --><!-- bla --><b><!-- bla --><c><!-- bla --></c><!-- bla --></b></a>"; + QString advancedOutput = "<?xml version=\"1.0\"?>\n" + "<a>\n" + " <!-- bla -->\n" + " <!-- bla -->\n" + " <b>\n" + " <!-- bla -->\n" + " <c>\n" + " <!-- bla -->\n" + " </c>\n" + " <!-- bla -->\n" + " </b>\n" + "</a>\n"; + QTest::newRow("advanced-comment") << advancedInput << advancedOutput; +} + +void tst_QXmlStream::checkCommentIndentation() const // task 256468 +{ + QFETCH(QString, input); + QFETCH(QString, expectedOutput); + QString output; + QXmlStreamReader reader(input); + QXmlStreamWriter writer(&output); + writer.setAutoFormatting(true); + writer.setAutoFormattingIndent(3); + + while (!reader.atEnd()) { + reader.readNext(); + if (reader.error()) { + QFAIL("error reading XML input"); + } else { + writer.writeCurrentToken(reader); + } + } + QCOMPARE(output, expectedOutput); +} + #include "tst_qxmlstream.moc" // vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/runQtXmlPatternsTests.sh b/tests/auto/runQtXmlPatternsTests.sh index 49ea840..41d6c83 100755 --- a/tests/auto/runQtXmlPatternsTests.sh +++ b/tests/auto/runQtXmlPatternsTests.sh @@ -34,6 +34,8 @@ qxmlserializer \ xmlpatterns \ xmlpatternsxqts \ xmlpatternsdiagnosticsts \ +xmlpatternsschema \ +xmlpatternsschemats \ xmlpatternsview \ xmlpatternsxslts" diff --git a/tests/auto/selftests/badxml/badxml.pro b/tests/auto/selftests/badxml/badxml.pro new file mode 100644 index 0000000..323791a --- /dev/null +++ b/tests/auto/selftests/badxml/badxml.pro @@ -0,0 +1,11 @@ +load(qttest_p4) + +SOURCES += tst_badxml.cpp +QT = core + +mac:CONFIG -= app_bundle +CONFIG -= debug_and_release_target +!win32:CONFIG += debug + +TARGET = badxml + diff --git a/tests/auto/selftests/badxml/tst_badxml.cpp b/tests/auto/selftests/badxml/tst_badxml.cpp new file mode 100644 index 0000000..9fa1929 --- /dev/null +++ b/tests/auto/selftests/badxml/tst_badxml.cpp @@ -0,0 +1,206 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtCore> +#include <QtTest/QtTest> + +/* + This test makes a testlog containing lots of characters which have a special meaning in + XML, with the purpose of exposing bugs in testlib's XML output code. +*/ +class tst_BadXml : public QObject +{ + Q_OBJECT + +private slots: + void badDataTag() const; + void badDataTag_data() const; + + void badMessage() const; + void badMessage_data() const; + + void failWithNoFile() const; + +public: + static QList<QByteArray> const& badStrings(); +}; + +/* + Custom metaobject to make it possible to change class name at runtime. +*/ +class EmptyClass : public tst_BadXml +{ Q_OBJECT }; + +class tst_BadXmlSub : public tst_BadXml +{ +public: + const QMetaObject* metaObject() const; + + static char const* className; +}; +char const* tst_BadXmlSub::className = "tst_BadXml"; + +const QMetaObject* tst_BadXmlSub::metaObject() const +{ + const QMetaObject& empty = EmptyClass::staticMetaObject; + static QMetaObject mo = { + { empty.d.superdata, empty.d.stringdata, empty.d.data, empty.d.extradata } + }; + static char currentClassName[1024]; + qstrcpy(currentClassName, className); + int len = qstrlen(className); + currentClassName[len] = 0; + currentClassName[len+1] = 0; + + mo.d.stringdata = currentClassName; + + return &mo; +} + +/* + Outputs incidents and benchmark results with the current data tag set to a bad string. +*/ +void tst_BadXml::badDataTag() const +{ + qDebug("a message"); + + QBENCHMARK { + } + + QFAIL("a failure"); +} + +void tst_BadXml::badDataTag_data() const +{ + QTest::addColumn<int>("dummy"); + + foreach (char const* str, badStrings()) { + QTest::newRow(str) << 0; + } +} + +void tst_BadXml::failWithNoFile() const +{ + QTest::qFail("failure message", 0, 0); +} + +/* + Outputs a message containing a bad string. +*/ +void tst_BadXml::badMessage() const +{ + QFETCH(QByteArray, message); + qDebug("%s", message.constData()); +} + +void tst_BadXml::badMessage_data() const +{ + QTest::addColumn<QByteArray>("message"); + + int i = 0; + foreach (QByteArray const& str, badStrings()) { + QTest::newRow(qPrintable(QString::fromLatin1("string %1").arg(i++))) << str; + } +} + +/* + Returns a list of strings likely to expose bugs in XML output code. +*/ +QList<QByteArray> const& tst_BadXml::badStrings() +{ + static QList<QByteArray> out; + if (out.isEmpty()) { + out << "end cdata ]]> text ]]> more text"; + out << "quotes \" text\" more text"; + out << "xml close > open < tags < text"; + out << "all > \" mixed ]]> up > \" in < the ]]> hopes < of triggering \"< ]]> bugs"; + } + return out; +} + +int main(int argc, char** argv) +{ + QCoreApplication app(argc, argv); + + /* + tst_selftests can't handle multiple XML documents in a single testrun, so we'll + decide before we begin which of our "bad strings" we want to use for our testcase + name. + */ + int badstring = -1; + QVector<char const*> args; + for (int i = 0; i < argc; ++i) { + if (!strcmp(argv[i], "-badstring")) { + bool ok = false; + if (i < argc-1) { + badstring = QByteArray(argv[i+1]).toInt(&ok); + ++i; + } + if (!ok) { + qFatal("Bad `-badstring' option"); + } + } + else { + args << argv[i]; + } + } + /* + We just want testlib to output a benchmark result, we don't actually care about the value, + so just do one iteration to save time. + */ + args << "-iterations" << "1"; + + if (badstring == -1) { + tst_BadXml test; + return QTest::qExec(&test, args.count(), const_cast<char**>(args.data())); + } + + QList<QByteArray> badstrings = tst_BadXml::badStrings(); + if (badstring >= badstrings.count()) + qFatal("`-badstring %d' is out of range", badstring); + + tst_BadXmlSub test; + test.className = badstrings[badstring].constData(); + return QTest::qExec(&test, args.count(), const_cast<char**>(args.data())); +} + +#include "tst_badxml.moc" diff --git a/tests/auto/selftests/exception/exception.pro b/tests/auto/selftests/exceptionthrow/exceptionthrow.pro index 65705c6..641818c 100644 --- a/tests/auto/selftests/exception/exception.pro +++ b/tests/auto/selftests/exceptionthrow/exceptionthrow.pro @@ -1,9 +1,9 @@ load(qttest_p4) -SOURCES += tst_exception.cpp +SOURCES += tst_exceptionthrow.cpp QT = core mac:CONFIG -= app_bundle CONFIG -= debug_and_release_target -TARGET = exception +TARGET = exceptionthrow diff --git a/tests/auto/selftests/exception/tst_exception.cpp b/tests/auto/selftests/exceptionthrow/tst_exceptionthrow.cpp index a54bfbe..7a65c2d 100644 --- a/tests/auto/selftests/exception/tst_exception.cpp +++ b/tests/auto/selftests/exceptionthrow/tst_exceptionthrow.cpp @@ -66,4 +66,4 @@ void tst_Exception::throwException() const QTEST_MAIN(tst_Exception) -#include "tst_exception.moc" +#include "tst_exceptionthrow.moc" diff --git a/tests/auto/selftests/expected_crashes_3.txt b/tests/auto/selftests/expected_crashes_3.txt new file mode 100644 index 0000000..55cd0b4 --- /dev/null +++ b/tests/auto/selftests/expected_crashes_3.txt @@ -0,0 +1,8 @@ +********* Start testing of tst_Crashes ********* +Config: Using QTest library 4.6.0, Qt 4.6.0 +PASS : tst_Crashes::initTestCase() +QFATAL : tst_Crashes::crash() Received signal 11 +FAIL! : tst_Crashes::crash() Received a fatal error. + Loc: [Unknown file(0)] +Totals: 1 passed, 1 failed, 0 skipped +********* Finished testing of tst_Crashes ********* diff --git a/tests/auto/selftests/expected_exception.txt b/tests/auto/selftests/expected_exceptionthrow.txt index 141ea8b..141ea8b 100644 --- a/tests/auto/selftests/expected_exception.txt +++ b/tests/auto/selftests/expected_exceptionthrow.txt diff --git a/tests/auto/selftests/expected_maxwarnings.txt b/tests/auto/selftests/expected_maxwarnings.txt index bb5e54f..8dae5f7 100644 --- a/tests/auto/selftests/expected_maxwarnings.txt +++ b/tests/auto/selftests/expected_maxwarnings.txt @@ -1,5 +1,5 @@ ********* Start testing of MaxWarnings ********* -Config: Using QTest library 4.1.0, Qt 4.1.0 +Config: Using QTest library 4.6.0, Qt 4.6.0 PASS : MaxWarnings::initTestCase() QWARN : MaxWarnings::warn() 0 QWARN : MaxWarnings::warn() 1 @@ -2002,7 +2002,7 @@ QWARN : MaxWarnings::warn() 1997 QWARN : MaxWarnings::warn() 1998 QWARN : MaxWarnings::warn() 1999 QWARN : MaxWarnings::warn() 2000 -QSYSTEM: MaxWarnings::warn() Maximum amount of warnings exceeded. +QSYSTEM: MaxWarnings::warn() Maximum amount of warnings exceeded. Use -maxwarnings to override. PASS : MaxWarnings::warn() PASS : MaxWarnings::cleanupTestCase() Totals: 3 passed, 0 failed, 0 skipped diff --git a/tests/auto/selftests/expected_skip.txt b/tests/auto/selftests/expected_skip.txt index f3be5b5..88c0426 100644 --- a/tests/auto/selftests/expected_skip.txt +++ b/tests/auto/selftests/expected_skip.txt @@ -1,12 +1,12 @@ ********* Start testing of tst_Skip ********* -Config: Using QTest library 4.3.0, Qt 4.3.0 +Config: Using QTest library 4.6.0, Qt 4.6.0 PASS : tst_Skip::initTestCase() SKIP : tst_Skip::test() skipping all - Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(35)] + Loc: [/home/rmcgover/depot/qt-git/mainline/tests/auto/selftests/skip/tst_skip.cpp(68)] SKIP : tst_Skip::emptytest() skipping all - Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(45)] + Loc: [/home/rmcgover/depot/qt-git/mainline/tests/auto/selftests/skip/tst_skip.cpp(78)] SKIP : tst_Skip::singleSkip(local 1) skipping one - Loc: [/home/fenglich/dev/qt-4.3/tests/auto/selftests/skip/tst_skip.cpp(64)] + Loc: [/home/rmcgover/depot/qt-git/mainline/tests/auto/selftests/skip/tst_skip.cpp(97)] QDEBUG : tst_Skip::singleSkip(local 2) this line should only be reached once (true) PASS : tst_Skip::singleSkip() PASS : tst_Skip::cleanupTestCase() diff --git a/tests/auto/selftests/expected_xunit.txt b/tests/auto/selftests/expected_xunit.txt new file mode 100644 index 0000000..cb74491 --- /dev/null +++ b/tests/auto/selftests/expected_xunit.txt @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<testsuite errors="5" failures="3" tests="9" name="tst_Xunit"> + <properties> + <property value="4.6.0" name="QTestVersion"/> + <property value="4.6.0" name="QtVersion"/> + </properties> + <testcase result="pass" name="initTestCase"/> + <testcase result="pass" name="testFunc1"> + <!-- message="just a QWARN() !" type="warn" --> + </testcase> + <testcase result="fail" name="testFunc2"> + <!-- message="a qDebug() call with comment-ending stuff -->" type="qdebug" --> + <failure message="Compared values are not the same + Actual (2): 2 + Expected (3): 3" result="fail"/> + </testcase> + <testcase name="testFunc3"> + <!-- message="skipping this function!" type="skip" --> + </testcase> + <testcase result="fail" name="testFunc4"> + <failure message="a forced failure!" result="fail"/> + </testcase> + <testcase result="xfail" name="testFunc5"> + <!-- message="this failure is expected" type="info" --> + </testcase> + <testcase result="xfail" name="testFunc6"> + <!-- message="this failure is also expected" type="info" --> + </testcase> + <testcase result="xpass" name="testFunc7"> + <failure message="'true' returned FALSE. ()" result="xpass"/> + </testcase> + <testcase result="pass" name="cleanupTestCase"/> + <system-err> +<![CDATA[just a QWARN() !]]> +<![CDATA[a qDebug() call with comment-ending stuff -->]]> +<![CDATA[skipping this function!]]> +<![CDATA[this failure is expected]]> +<![CDATA[this failure is also expected]]> + </system-err> +</testsuite> diff --git a/tests/auto/selftests/selftests.pro b/tests/auto/selftests/selftests.pro index 2fa1d50..45de658 100644 --- a/tests/auto/selftests/selftests.pro +++ b/tests/auto/selftests/selftests.pro @@ -3,9 +3,9 @@ TEMPLATE = subdirs SUBDIRS = subtest test warnings maxwarnings cmptest globaldata skipglobal skip \ strcmp expectfail sleep fetchbogus crashes multiexec failinit failinitdata \ skipinit skipinitdata datetime singleskip assert waitwithoutgui differentexec \ - exception qexecstringlist datatable commandlinedata\ + exceptionthrow qexecstringlist datatable commandlinedata\ benchlibwalltime benchlibcallgrind benchlibeventcounter benchlibtickcounter \ - benchliboptions + benchliboptions xunit badxml INSTALLS = diff --git a/tests/auto/selftests/selftests.qrc b/tests/auto/selftests/selftests.qrc index 125619e..3d78bf5 100644 --- a/tests/auto/selftests/selftests.qrc +++ b/tests/auto/selftests/selftests.qrc @@ -14,6 +14,7 @@ <file>expected_fetchbogus.txt</file> <file>expected_crashes_1.txt</file> <file>expected_crashes_2.txt</file> + <file>expected_crashes_3.txt</file> <file>expected_multiexec.txt</file> <file>expected_failinit.txt</file> <file>expected_failinitdata.txt</file> @@ -25,7 +26,7 @@ <file>expected_fatal.txt</file> <file>expected_waitwithoutgui.txt</file> <file>expected_differentexec.txt</file> - <file>expected_exception.txt</file> + <file>expected_exceptionthrow.txt</file> <file>expected_qexecstringlist.txt</file> <file>expected_datatable.txt</file> <file>expected_commandlinedata.txt</file> @@ -34,5 +35,6 @@ <file>expected_benchlibeventcounter.txt</file> <file>expected_benchliboptions.txt</file> <file>expected_benchlibtickcounter.txt</file> + <file>expected_xunit.txt</file> </qresource> </RCC> diff --git a/tests/auto/selftests/tst_selftests.cpp b/tests/auto/selftests/tst_selftests.cpp index 30fe853..8eb7fe1 100644 --- a/tests/auto/selftests/tst_selftests.cpp +++ b/tests/auto/selftests/tst_selftests.cpp @@ -54,9 +54,13 @@ private slots: void runSubTest(); void checkXML() const; void checkXML_data(); + void checkXunitxml() const; + void checkXunitxml_data(); private: QStringList m_checkXMLBlacklist; + QStringList m_checkXunitBlacklist; + void doRunSubTest(QString &subdir, QStringList &arguments ); }; struct BenchmarkResult @@ -166,7 +170,7 @@ void tst_Selftests::runSubTest_data() // with a warning that an uncaught exception was thrown. // This will time out and falsely fail, therefore we disable the test for that platform. # if !defined(Q_CC_INTEL) || !defined(Q_OS_WIN) - QTest::newRow("exception") << "exception" << QStringList(); + QTest::newRow("exceptionthrow") << "exceptionthrow" << QStringList(); # endif #endif QTest::newRow("qexecstringlist") << "qexecstringlist" << QStringList(); @@ -186,17 +190,16 @@ void tst_Selftests::runSubTest_data() QTest::newRow("benchlibtickcounter") << "benchlibtickcounter" << QStringList("-tickcounter"); #endif + QTest::newRow("xunit") << "xunit" << QStringList("-xunitxml"); + } -void tst_Selftests::runSubTest() +void tst_Selftests::doRunSubTest(QString &subdir, QStringList &arguments ) { - QFETCH(QString, subdir); - QFETCH(QStringList, arguments); - QProcess proc; proc.setEnvironment(QStringList("")); proc.start(subdir + "/" + subdir, arguments); - QVERIFY(proc.waitForFinished()); + QVERIFY2(proc.waitForFinished(), qPrintable(proc.errorString())); const QByteArray out(proc.readAllStandardOutput()); const QByteArray err(proc.readAllStandardError()); @@ -204,10 +207,10 @@ void tst_Selftests::runSubTest() /* Windows-MSVC decide to output an error message when exceptions are thrown, * so let's not check stderr for those. */ #if defined(Q_OS_WIN) - if(subdir != QLatin1String("exception") && subdir != QLatin1String("fetchbogus")) + if(subdir != QLatin1String("exceptionthrow") && subdir != QLatin1String("fetchbogus")) #endif - QVERIFY2(err.isEmpty(), err.constData()); - + if(subdir != QLatin1String("xunit")) + QVERIFY2(err.isEmpty(), err.constData()); QList<QByteArray> res = splitLines(out); QList<QByteArray> exp = expectedResult(subdir); @@ -255,8 +258,8 @@ void tst_Selftests::runSubTest() { if(output != expected && qstrcmp(QTest::currentDataTag(), "subtest") == 0) { - /* The floating point formatting differs between platforms, so let's just skip it. */ - continue; + /* The floating point formatting differs between platforms, so let's just skip it. */ + continue; } else { /* @@ -284,9 +287,19 @@ void tst_Selftests::runSubTest() } } +void tst_Selftests::runSubTest() +{ + QFETCH(QString, subdir); + QFETCH(QStringList, arguments); + + doRunSubTest(subdir, arguments); +} + void tst_Selftests::initTestCase() { - m_checkXMLBlacklist.append("crashes"); // This test crashes +#ifndef Q_OS_UNIX + m_checkXMLBlacklist.append("crashes"); // This test crashes (XML valid on Unix only) +#endif m_checkXMLBlacklist.append("waitwithoutgui"); // This test is not a QTestLib test. /* Output from several tests is broken with the XML output method, @@ -300,6 +313,8 @@ void tst_Selftests::initTestCase() m_checkXMLBlacklist.append("subtest"); m_checkXMLBlacklist.append("globaldata"); m_checkXMLBlacklist.append("warnings"); + + m_checkXunitBlacklist = m_checkXMLBlacklist; } void tst_Selftests::checkXML() const @@ -310,7 +325,53 @@ void tst_Selftests::checkXML() const if(m_checkXMLBlacklist.contains(subdir)) return; - arguments.prepend("-xml"); + QStringList args; + /* Test both old (-flush) and new XML logger implementation */ + for (int i = 0; i < 2; ++i) { + bool flush = i; + args = arguments; + args.prepend("-xml"); + if (flush) args.prepend("-flush"); + + QProcess proc; + proc.setEnvironment(QStringList("")); + proc.start(subdir + "/" + subdir, args); + QVERIFY(proc.waitForFinished()); + + QByteArray out(proc.readAllStandardOutput()); + QByteArray err(proc.readAllStandardError()); + + /* Some platforms decides to output a message for uncaught exceptions. For instance, + * this is what windows platforms says: + * "This application has requested the Runtime to terminate it in an unusual way. + * Please contact the application's support team for more information." */ + if(subdir != QLatin1String("exceptionthrow") && subdir != QLatin1String("fetchbogus")) + QVERIFY2(err.isEmpty(), err.constData()); + + QXmlStreamReader reader(out); + + while(!reader.atEnd()) + reader.readNext(); + + QVERIFY2(!reader.error(), qPrintable(QString("(flush %0) line %1, col %2: %3") + .arg(flush) + .arg(reader.lineNumber()) + .arg(reader.columnNumber()) + .arg(reader.errorString()) + )); + } +} + +void tst_Selftests::checkXunitxml() const +{ + QFETCH(QString, subdir); + QFETCH(QStringList, arguments); + + if(m_checkXunitBlacklist.contains(subdir)) + return; + + arguments.prepend("-xunitxml"); + arguments.prepend("-flush"); QProcess proc; proc.setEnvironment(QStringList("")); @@ -320,11 +381,13 @@ void tst_Selftests::checkXML() const QByteArray out(proc.readAllStandardOutput()); QByteArray err(proc.readAllStandardError()); +// qDebug()<<out; + /* Some platforms decides to output a message for uncaught exceptions. For instance, * this is what windows platforms says: * "This application has requested the Runtime to terminate it in an unusual way. * Please contact the application's support team for more information." */ - if(subdir != QLatin1String("exception") && subdir != QLatin1String("fetchbogus")) + if(subdir != QLatin1String("exceptionthrow") && subdir != QLatin1String("fetchbogus")) QVERIFY2(err.isEmpty(), err.constData()); QXmlStreamReader reader(out); @@ -332,12 +395,26 @@ void tst_Selftests::checkXML() const while(!reader.atEnd()) reader.readNext(); - QVERIFY(!reader.error()); + QVERIFY2(!reader.error(), qPrintable(QString("line %1, col %2: %3") + .arg(reader.lineNumber()) + .arg(reader.columnNumber()) + .arg(reader.errorString()) + )); +} + +void tst_Selftests::checkXunitxml_data() +{ + checkXML_data(); } void tst_Selftests::checkXML_data() { runSubTest_data(); + QTest::newRow("badxml 1") << "badxml" << QStringList(); + QTest::newRow("badxml 2") << "badxml" << (QStringList() << "-badstring" << "0"); + QTest::newRow("badxml 3") << "badxml" << (QStringList() << "-badstring" << "1"); + QTest::newRow("badxml 4") << "badxml" << (QStringList() << "-badstring" << "2"); + QTest::newRow("badxml 5") << "badxml" << (QStringList() << "-badstring" << "3"); } /* Parse line into the BenchmarkResult it represents. */ diff --git a/tests/auto/selftests/xunit/tst_xunit b/tests/auto/selftests/xunit/tst_xunit Binary files differnew file mode 100755 index 0000000..31d03a8 --- /dev/null +++ b/tests/auto/selftests/xunit/tst_xunit diff --git a/tests/auto/selftests/xunit/tst_xunit.cpp b/tests/auto/selftests/xunit/tst_xunit.cpp new file mode 100644 index 0000000..df9b8af --- /dev/null +++ b/tests/auto/selftests/xunit/tst_xunit.cpp @@ -0,0 +1,115 @@ +/**************************************************************************** +** +** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> + +class tst_Xunit : public QObject +{ + Q_OBJECT + +public: + tst_Xunit(); + +private slots: + void testFunc1(); + void testFunc2(); + void testFunc3(); + void testFunc4(); + void testFunc5(); + void testFunc6(); + void testFunc7(); +}; + +tst_Xunit::tst_Xunit() +{ +} + +void tst_Xunit::testFunc1() +{ + QWARN("just a QWARN() !"); + QCOMPARE(1,1); +} + +void tst_Xunit::testFunc2() +{ + qDebug("a qDebug() call with comment-ending stuff -->"); + QCOMPARE(2, 3); +} + +void tst_Xunit::testFunc3() +{ + QSKIP("skipping this function!", SkipAll); +} + +void tst_Xunit::testFunc4() +{ + QFAIL("a forced failure!"); +} + +/* + Note there are two testfunctions which give expected failures. + This is so we can test that expected failures don't add to failure + counts and unexpected passes do. If we had one xfail and one xpass + testfunction, we couldn't test which one of them adds to the failure + count. +*/ + +void tst_Xunit::testFunc5() +{ + QEXPECT_FAIL("", "this failure is expected", Abort); + QVERIFY(false); +} + +void tst_Xunit::testFunc6() +{ + QEXPECT_FAIL("", "this failure is also expected", Abort); + QVERIFY(false); +} + +void tst_Xunit::testFunc7() +{ + QEXPECT_FAIL("", "this pass is unexpected", Abort); + QVERIFY(true); +} + + +QTEST_APPLESS_MAIN(tst_Xunit) +#include "tst_xunit.moc" diff --git a/tests/auto/selftests/xunit/xunit.pro b/tests/auto/selftests/xunit/xunit.pro new file mode 100644 index 0000000..55aca4a --- /dev/null +++ b/tests/auto/selftests/xunit/xunit.pro @@ -0,0 +1,8 @@ +load(qttest_p4) +SOURCES += tst_xunit.cpp + +mac:CONFIG -= app_bundle +CONFIG -= debug_and_release_target + +TARGET = xunit + diff --git a/tests/auto/test.pl b/tests/auto/test.pl index f2a1fe4..a9e3da8 100755 --- a/tests/auto/test.pl +++ b/tests/auto/test.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl use strict; use Cwd; @@ -179,7 +179,7 @@ print " Tests started: $totalStarted \n"; print " Tests executed: $totalExecuted \n"; print " Tests timed out: $totalTimedOut \n"; -# This procedure takes care of handling death children on due time +# This procedure takes care of handling dead children on due time sub handleDeath { $buryChildren = 1; } diff --git a/tests/auto/uic/baseline/addtorrentform.ui.h b/tests/auto/uic/baseline/addtorrentform.ui.h index 35f0fad..fafcb16 100644 --- a/tests/auto/uic/baseline/addtorrentform.ui.h +++ b/tests/auto/uic/baseline/addtorrentform.ui.h @@ -68,7 +68,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(8); + vboxLayout->setContentsMargins(8, 8, 8, 8); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(AddTorrentFile); groupBox->setObjectName(QString::fromUtf8("groupBox")); @@ -79,7 +79,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); label_4 = new QLabel(groupBox); label_4->setObjectName(QString::fromUtf8("label_4")); @@ -175,7 +175,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/batchtranslation.ui.h b/tests/auto/uic/baseline/batchtranslation.ui.h index 23030f5..4cdad44 100644 --- a/tests/auto/uic/baseline/batchtranslation.ui.h +++ b/tests/auto/uic/baseline/batchtranslation.ui.h @@ -101,7 +101,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(databaseTranslationDialog); @@ -116,7 +116,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); ckOnlyUntranslated = new QCheckBox(groupBox); @@ -146,7 +146,7 @@ public: vboxLayout2->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout2->setMargin(9); + vboxLayout2->setContentsMargins(9, 9, 9, 9); #endif vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); hboxLayout = new QHBoxLayout(); @@ -154,7 +154,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); phrasebookList = new QListView(groupBox_2); @@ -167,7 +167,7 @@ public: #ifndef Q_OS_MAC vboxLayout3->setSpacing(6); #endif - vboxLayout3->setMargin(0); + vboxLayout3->setContentsMargins(0, 0, 0, 0); vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3")); moveUpButton = new QPushButton(groupBox_2); moveUpButton->setObjectName(QString::fromUtf8("moveUpButton")); @@ -202,7 +202,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); spacerItem1 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/bookwindow.ui.h b/tests/auto/uic/baseline/bookwindow.ui.h index 9eff8ce..eae06d9 100644 --- a/tests/auto/uic/baseline/bookwindow.ui.h +++ b/tests/auto/uic/baseline/bookwindow.ui.h @@ -61,7 +61,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(centralWidget); @@ -71,7 +71,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); bookTable = new QTableView(groupBox); diff --git a/tests/auto/uic/baseline/browserwidget.ui.h b/tests/auto/uic/baseline/browserwidget.ui.h index 3bc7542..67f637f 100644 --- a/tests/auto/uic/baseline/browserwidget.ui.h +++ b/tests/auto/uic/baseline/browserwidget.ui.h @@ -60,7 +60,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(8); + vboxLayout->setContentsMargins(8, 8, 8, 8); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); splitter_2 = new QSplitter(Browser); splitter_2->setObjectName(QString::fromUtf8("splitter_2")); @@ -104,7 +104,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); sqlEdit = new QTextEdit(groupBox); @@ -123,7 +123,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(1); + hboxLayout->setContentsMargins(1, 1, 1, 1); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/calculatorform.ui.h b/tests/auto/uic/baseline/calculatorform.ui.h index 5fab91f..8e9e620 100644 --- a/tests/auto/uic/baseline/calculatorform.ui.h +++ b/tests/auto/uic/baseline/calculatorform.ui.h @@ -59,7 +59,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setObjectName(QString::fromUtf8("")); @@ -67,14 +67,14 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(1); + hboxLayout->setContentsMargins(1, 1, 1, 1); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setObjectName(QString::fromUtf8("")); vboxLayout = new QVBoxLayout(); #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(1); + vboxLayout->setContentsMargins(1, 1, 1, 1); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setObjectName(QString::fromUtf8("")); label = new QLabel(CalculatorForm); @@ -104,7 +104,7 @@ public: #ifndef Q_OS_MAC vboxLayout1->setSpacing(6); #endif - vboxLayout1->setMargin(1); + vboxLayout1->setContentsMargins(1, 1, 1, 1); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); vboxLayout1->setObjectName(QString::fromUtf8("")); label_2 = new QLabel(CalculatorForm); @@ -134,7 +134,7 @@ public: #ifndef Q_OS_MAC vboxLayout2->setSpacing(6); #endif - vboxLayout2->setMargin(1); + vboxLayout2->setContentsMargins(1, 1, 1, 1); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); vboxLayout2->setObjectName(QString::fromUtf8("")); label_2_2_2 = new QLabel(CalculatorForm); diff --git a/tests/auto/uic/baseline/chatdialog.ui.h b/tests/auto/uic/baseline/chatdialog.ui.h index 062a6be..7d19376 100644 --- a/tests/auto/uic/baseline/chatdialog.ui.h +++ b/tests/auto/uic/baseline/chatdialog.ui.h @@ -46,7 +46,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); hboxLayout = new QHBoxLayout(); @@ -54,7 +54,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); textEdit = new QTextEdit(ChatDialog); @@ -78,7 +78,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); label = new QLabel(ChatDialog); label->setObjectName(QString::fromUtf8("label")); diff --git a/tests/auto/uic/baseline/chatmainwindow.ui.h b/tests/auto/uic/baseline/chatmainwindow.ui.h index b2153e6..93ce435 100644 --- a/tests/auto/uic/baseline/chatmainwindow.ui.h +++ b/tests/auto/uic/baseline/chatmainwindow.ui.h @@ -66,7 +66,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(9); + hboxLayout->setContentsMargins(9, 9, 9, 9); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); vboxLayout = new QVBoxLayout(); @@ -74,7 +74,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); chatHistory = new QTextBrowser(centralwidget); @@ -88,7 +88,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); label = new QLabel(centralwidget); label->setObjectName(QString::fromUtf8("label")); diff --git a/tests/auto/uic/baseline/chatsetnickname.ui.h b/tests/auto/uic/baseline/chatsetnickname.ui.h index de52fed..c1fd62b 100644 --- a/tests/auto/uic/baseline/chatsetnickname.ui.h +++ b/tests/auto/uic/baseline/chatsetnickname.ui.h @@ -53,7 +53,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout1 = new QVBoxLayout(); @@ -61,7 +61,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(0); + vboxLayout1->setContentsMargins(0, 0, 0, 0); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); label = new QLabel(NicknameDialog); @@ -83,7 +83,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/config.ui.h b/tests/auto/uic/baseline/config.ui.h index 2b6eaf8..20de66f 100644 --- a/tests/auto/uic/baseline/config.ui.h +++ b/tests/auto/uic/baseline/config.ui.h @@ -139,7 +139,7 @@ public: Config->setSizeGripEnabled(true); vboxLayout = new QVBoxLayout(Config); vboxLayout->setSpacing(6); - vboxLayout->setMargin(11); + vboxLayout->setContentsMargins(11, 11, 11, 11); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setContentsMargins(8, 8, 8, 8); hboxLayout = new QHBoxLayout(); @@ -155,7 +155,7 @@ public: ButtonGroup1->setSizePolicy(sizePolicy); vboxLayout1 = new QVBoxLayout(ButtonGroup1); vboxLayout1->setSpacing(6); - vboxLayout1->setMargin(11); + vboxLayout1->setContentsMargins(11, 11, 11, 11); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); vboxLayout1->setContentsMargins(11, 11, 11, 11); size_176_220 = new QRadioButton(ButtonGroup1); @@ -230,7 +230,7 @@ public: ButtonGroup2->setObjectName(QString::fromUtf8("ButtonGroup2")); vboxLayout2 = new QVBoxLayout(ButtonGroup2); vboxLayout2->setSpacing(6); - vboxLayout2->setMargin(11); + vboxLayout2->setContentsMargins(11, 11, 11, 11); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); vboxLayout2->setContentsMargins(11, 11, 11, 11); depth_1 = new QRadioButton(ButtonGroup2); @@ -337,7 +337,7 @@ public: GroupBox1->setObjectName(QString::fromUtf8("GroupBox1")); gridLayout = new QGridLayout(GroupBox1); gridLayout->setSpacing(6); - gridLayout->setMargin(11); + gridLayout->setContentsMargins(11, 11, 11, 11); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setHorizontalSpacing(6); gridLayout->setVerticalSpacing(6); diff --git a/tests/auto/uic/baseline/controller.ui.h b/tests/auto/uic/baseline/controller.ui.h index b5f20b7..29985c1 100644 --- a/tests/auto/uic/baseline/controller.ui.h +++ b/tests/auto/uic/baseline/controller.ui.h @@ -42,7 +42,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); label = new QLabel(Controller); diff --git a/tests/auto/uic/baseline/default.ui.h b/tests/auto/uic/baseline/default.ui.h index 1769630..7717694 100644 --- a/tests/auto/uic/baseline/default.ui.h +++ b/tests/auto/uic/baseline/default.ui.h @@ -83,7 +83,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); nameLabel = new QLabel(centralwidget); diff --git a/tests/auto/uic/baseline/downloaditem.ui.h b/tests/auto/uic/baseline/downloaditem.ui.h index 1d4c92f..7df99df 100644 --- a/tests/auto/uic/baseline/downloaditem.ui.h +++ b/tests/auto/uic/baseline/downloaditem.ui.h @@ -48,7 +48,7 @@ public: DownloadItem->setObjectName(QString::fromUtf8("DownloadItem")); DownloadItem->resize(423, 110); horizontalLayout = new QHBoxLayout(DownloadItem); - horizontalLayout->setMargin(0); + horizontalLayout->setContentsMargins(0, 0, 0, 0); horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); fileIcon = new QLabel(DownloadItem); fileIcon->setObjectName(QString::fromUtf8("fileIcon")); diff --git a/tests/auto/uic/baseline/downloads.ui.h b/tests/auto/uic/baseline/downloads.ui.h index 03f3aeb..b4739f6 100644 --- a/tests/auto/uic/baseline/downloads.ui.h +++ b/tests/auto/uic/baseline/downloads.ui.h @@ -43,7 +43,7 @@ public: DownloadDialog->resize(332, 252); gridLayout = new QGridLayout(DownloadDialog); gridLayout->setSpacing(0); - gridLayout->setMargin(0); + gridLayout->setContentsMargins(0, 0, 0, 0); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); downloadsView = new EditTableView(DownloadDialog); downloadsView->setObjectName(QString::fromUtf8("downloadsView")); diff --git a/tests/auto/uic/baseline/filternamedialog.ui.h b/tests/auto/uic/baseline/filternamedialog.ui.h index ce67607..f4306ea 100644 --- a/tests/auto/uic/baseline/filternamedialog.ui.h +++ b/tests/auto/uic/baseline/filternamedialog.ui.h @@ -42,7 +42,7 @@ public: FilterNameDialogClass->resize(312, 95); gridLayout = new QGridLayout(FilterNameDialogClass); gridLayout->setSpacing(6); - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); label = new QLabel(FilterNameDialogClass); label->setObjectName(QString::fromUtf8("label")); diff --git a/tests/auto/uic/baseline/finddialog.ui.h b/tests/auto/uic/baseline/finddialog.ui.h index a0c6c78..091c54a 100644 --- a/tests/auto/uic/baseline/finddialog.ui.h +++ b/tests/auto/uic/baseline/finddialog.ui.h @@ -102,15 +102,15 @@ public: FindDialog->setSizePolicy(sizePolicy); hboxLayout = new QHBoxLayout(FindDialog); hboxLayout->setSpacing(6); - hboxLayout->setMargin(11); + hboxLayout->setContentsMargins(11, 11, 11, 11); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); vboxLayout = new QVBoxLayout(); vboxLayout->setSpacing(6); - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); hboxLayout1 = new QHBoxLayout(); hboxLayout1->setSpacing(6); - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); findWhat = new QLabel(FindDialog); findWhat->setObjectName(QString::fromUtf8("findWhat")); @@ -129,7 +129,7 @@ public: groupBox->setObjectName(QString::fromUtf8("groupBox")); gridLayout = new QGridLayout(groupBox); gridLayout->setSpacing(6); - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); sourceText = new QCheckBox(groupBox); sourceText->setObjectName(QString::fromUtf8("sourceText")); @@ -168,7 +168,7 @@ public: vboxLayout1 = new QVBoxLayout(); vboxLayout1->setSpacing(6); - vboxLayout1->setMargin(0); + vboxLayout1->setContentsMargins(0, 0, 0, 0); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); findNxt = new QPushButton(FindDialog); findNxt->setObjectName(QString::fromUtf8("findNxt")); diff --git a/tests/auto/uic/baseline/form.ui.h b/tests/auto/uic/baseline/form.ui.h index 2a79c26..3f85b03 100644 --- a/tests/auto/uic/baseline/form.ui.h +++ b/tests/auto/uic/baseline/form.ui.h @@ -51,7 +51,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(9); + hboxLayout->setContentsMargins(9, 9, 9, 9); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); worldTimeClock = new WorldTimeClock(WorldTimeForm); @@ -63,7 +63,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(1); + vboxLayout->setContentsMargins(1, 1, 1, 1); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); spacerItem = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); @@ -73,7 +73,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(1); + hboxLayout1->setContentsMargins(1, 1, 1, 1); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); label = new QLabel(WorldTimeForm); label->setObjectName(QString::fromUtf8("label")); @@ -93,7 +93,7 @@ public: #ifndef Q_OS_MAC hboxLayout2->setSpacing(6); #endif - hboxLayout2->setMargin(1); + hboxLayout2->setContentsMargins(1, 1, 1, 1); hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); label_2 = new QLabel(WorldTimeForm); label_2->setObjectName(QString::fromUtf8("label_2")); diff --git a/tests/auto/uic/baseline/formwindowsettings.ui.h b/tests/auto/uic/baseline/formwindowsettings.ui.h index 7f0baf6..9e97b48 100644 --- a/tests/auto/uic/baseline/formwindowsettings.ui.h +++ b/tests/auto/uic/baseline/formwindowsettings.ui.h @@ -130,7 +130,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); layoutDefaultGroupBox = new QGroupBox(FormWindowSettings); layoutDefaultGroupBox->setObjectName(QString::fromUtf8("layoutDefaultGroupBox")); @@ -139,7 +139,7 @@ public: #ifndef Q_OS_MAC gridLayout1->setSpacing(6); #endif - gridLayout1->setMargin(8); + gridLayout1->setContentsMargins(8, 8, 8, 8); gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); label_2 = new QLabel(layoutDefaultGroupBox); label_2->setObjectName(QString::fromUtf8("label_2")); @@ -171,7 +171,7 @@ public: #ifndef Q_OS_MAC gridLayout2->setSpacing(6); #endif - gridLayout2->setMargin(8); + gridLayout2->setContentsMargins(8, 8, 8, 8); gridLayout2->setObjectName(QString::fromUtf8("gridLayout2")); spacingFunctionLineEdit = new QLineEdit(layoutFunctionGroupBox); spacingFunctionLineEdit->setObjectName(QString::fromUtf8("spacingFunctionLineEdit")); @@ -205,7 +205,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(8); + vboxLayout->setContentsMargins(8, 8, 8, 8); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); authorLineEdit = new QLineEdit(pixmapFunctionGroupBox_2); authorLineEdit->setObjectName(QString::fromUtf8("authorLineEdit")); @@ -221,7 +221,7 @@ public: #ifndef Q_OS_MAC vboxLayout1->setSpacing(6); #endif - vboxLayout1->setMargin(8); + vboxLayout1->setContentsMargins(8, 8, 8, 8); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); includeHintsTextEdit = new QTextEdit(includeHintsGroupBox); includeHintsTextEdit->setObjectName(QString::fromUtf8("includeHintsTextEdit")); @@ -235,7 +235,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); pixmapFunctionGroupBox = new QGroupBox(FormWindowSettings); pixmapFunctionGroupBox->setObjectName(QString::fromUtf8("pixmapFunctionGroupBox")); @@ -244,7 +244,7 @@ public: #ifndef Q_OS_MAC vboxLayout2->setSpacing(6); #endif - vboxLayout2->setMargin(8); + vboxLayout2->setContentsMargins(8, 8, 8, 8); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); pixmapFunctionLineEdit = new QLineEdit(pixmapFunctionGroupBox); pixmapFunctionLineEdit->setObjectName(QString::fromUtf8("pixmapFunctionLineEdit")); diff --git a/tests/auto/uic/baseline/helpdialog.ui.h b/tests/auto/uic/baseline/helpdialog.ui.h index e0d38b3..608dba3 100644 --- a/tests/auto/uic/baseline/helpdialog.ui.h +++ b/tests/auto/uic/baseline/helpdialog.ui.h @@ -119,7 +119,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); tabWidget = new QTabWidget(HelpDialog); tabWidget->setObjectName(QString::fromUtf8("tabWidget")); @@ -129,7 +129,7 @@ public: #ifndef Q_OS_MAC vboxLayout1->setSpacing(6); #endif - vboxLayout1->setMargin(5); + vboxLayout1->setContentsMargins(5, 5, 5, 5); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); listContents = new QTreeWidget(contentPage); listContents->setObjectName(QString::fromUtf8("listContents")); @@ -146,7 +146,7 @@ public: #ifndef Q_OS_MAC vboxLayout2->setSpacing(6); #endif - vboxLayout2->setMargin(5); + vboxLayout2->setContentsMargins(5, 5, 5, 5); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); TextLabel1 = new QLabel(indexPage); TextLabel1->setObjectName(QString::fromUtf8("TextLabel1")); @@ -171,7 +171,7 @@ public: #ifndef Q_OS_MAC vboxLayout3->setSpacing(6); #endif - vboxLayout3->setMargin(5); + vboxLayout3->setContentsMargins(5, 5, 5, 5); vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3")); listBookmarks = new QTreeWidget(bookmarkPage); listBookmarks->setObjectName(QString::fromUtf8("listBookmarks")); @@ -184,7 +184,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -210,7 +210,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(5); + gridLayout->setContentsMargins(5, 5, 5, 5); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); spacerItem1 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Fixed); @@ -241,7 +241,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(1); + hboxLayout1->setContentsMargins(1, 1, 1, 1); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); helpButton = new QPushButton(searchPage); helpButton->setObjectName(QString::fromUtf8("helpButton")); @@ -273,7 +273,7 @@ public: #ifndef Q_OS_MAC hboxLayout2->setSpacing(6); #endif - hboxLayout2->setMargin(3); + hboxLayout2->setContentsMargins(3, 3, 3, 3); hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); labelPrepare = new QLabel(framePrepare); labelPrepare->setObjectName(QString::fromUtf8("labelPrepare")); diff --git a/tests/auto/uic/baseline/imagedialog.ui.h b/tests/auto/uic/baseline/imagedialog.ui.h index fedc757..001532e 100644 --- a/tests/auto/uic/baseline/imagedialog.ui.h +++ b/tests/auto/uic/baseline/imagedialog.ui.h @@ -58,7 +58,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setObjectName(QString::fromUtf8("")); @@ -66,7 +66,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(1); + gridLayout->setContentsMargins(1, 1, 1, 1); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setObjectName(QString::fromUtf8("")); widthLabel = new QLabel(dialog); @@ -164,7 +164,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(1); + hboxLayout->setContentsMargins(1, 1, 1, 1); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setObjectName(QString::fromUtf8("")); spacerItem1 = new QSpacerItem(QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/listwidgeteditor.ui.h b/tests/auto/uic/baseline/listwidgeteditor.ui.h index 316ff39..127228c 100644 --- a/tests/auto/uic/baseline/listwidgeteditor.ui.h +++ b/tests/auto/uic/baseline/listwidgeteditor.ui.h @@ -102,7 +102,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(qdesigner_internal__ListWidgetEditor); diff --git a/tests/auto/uic/baseline/mainwindow.ui.h b/tests/auto/uic/baseline/mainwindow.ui.h index 69e45f5..73a9de2 100644 --- a/tests/auto/uic/baseline/mainwindow.ui.h +++ b/tests/auto/uic/baseline/mainwindow.ui.h @@ -102,7 +102,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(centralwidget); @@ -112,7 +112,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(9); + hboxLayout->setContentsMargins(9, 9, 9, 9); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); label = new QLabel(groupBox); @@ -165,7 +165,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); chooseFromCodePoints = new QRadioButton(groupBox_2); @@ -178,7 +178,7 @@ public: #ifndef Q_OS_MAC vboxLayout2->setSpacing(6); #endif - vboxLayout2->setMargin(0); + vboxLayout2->setContentsMargins(0, 0, 0, 0); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); characterRangeView = new QListWidget(groupBox_2); characterRangeView->setObjectName(QString::fromUtf8("characterRangeView")); @@ -189,7 +189,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); selectAll = new QPushButton(groupBox_2); selectAll->setObjectName(QString::fromUtf8("selectAll")); @@ -225,7 +225,7 @@ public: #ifndef Q_OS_MAC hboxLayout2->setSpacing(6); #endif - hboxLayout2->setMargin(0); + hboxLayout2->setContentsMargins(0, 0, 0, 0); hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); label_5 = new QLabel(groupBox_2); label_5->setObjectName(QString::fromUtf8("label_5")); @@ -264,7 +264,7 @@ public: hboxLayout3->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout3->setMargin(9); + hboxLayout3->setContentsMargins(9, 9, 9, 9); #endif hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3")); preview = new QLineEdit(groupBox_3); @@ -282,7 +282,7 @@ public: hboxLayout4->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout4->setMargin(9); + hboxLayout4->setContentsMargins(9, 9, 9, 9); #endif hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4")); label_3 = new QLabel(groupBox_4); @@ -318,7 +318,7 @@ public: #ifndef Q_OS_MAC hboxLayout5->setSpacing(6); #endif - hboxLayout5->setMargin(0); + hboxLayout5->setContentsMargins(0, 0, 0, 0); hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5")); generate = new QPushButton(centralwidget); generate->setObjectName(QString::fromUtf8("generate")); diff --git a/tests/auto/uic/baseline/mainwindowbase.ui.h b/tests/auto/uic/baseline/mainwindowbase.ui.h index 3b40a5c..4a49f95 100644 --- a/tests/auto/uic/baseline/mainwindowbase.ui.h +++ b/tests/auto/uic/baseline/mainwindowbase.ui.h @@ -218,7 +218,7 @@ public: widget->setGeometry(QRect(0, 28, 724, 587)); hboxLayout = new QHBoxLayout(widget); hboxLayout->setSpacing(4); - hboxLayout->setMargin(8); + hboxLayout->setContentsMargins(8, 8, 8, 8); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setContentsMargins(0, 0, 0, 0); helpview = new QTextEdit(widget); @@ -234,13 +234,13 @@ public: tab1->setObjectName(QString::fromUtf8("tab1")); vboxLayout = new QVBoxLayout(tab1); vboxLayout->setSpacing(4); - vboxLayout->setMargin(4); + vboxLayout->setContentsMargins(4, 4, 4, 4); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); GroupBox40 = new QGroupBox(tab1); GroupBox40->setObjectName(QString::fromUtf8("GroupBox40")); hboxLayout1 = new QHBoxLayout(GroupBox40); hboxLayout1->setSpacing(4); - hboxLayout1->setMargin(8); + hboxLayout1->setContentsMargins(8, 8, 8, 8); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); gstylebuddy = new QLabel(GroupBox40); gstylebuddy->setObjectName(QString::fromUtf8("gstylebuddy")); @@ -264,7 +264,7 @@ public: groupAutoPalette->setSizePolicy(sizePolicy); hboxLayout2 = new QHBoxLayout(groupAutoPalette); hboxLayout2->setSpacing(4); - hboxLayout2->setMargin(8); + hboxLayout2->setContentsMargins(8, 8, 8, 8); hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); labelMainColor = new QLabel(groupAutoPalette); labelMainColor->setObjectName(QString::fromUtf8("labelMainColor")); @@ -317,7 +317,7 @@ public: GroupBox126->setSizePolicy(sizePolicy2); gridLayout = new QGridLayout(GroupBox126); gridLayout->setSpacing(4); - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); TextLabel1 = new QLabel(GroupBox126); TextLabel1->setObjectName(QString::fromUtf8("TextLabel1")); @@ -348,13 +348,13 @@ public: tab2->setObjectName(QString::fromUtf8("tab2")); vboxLayout1 = new QVBoxLayout(tab2); vboxLayout1->setSpacing(4); - vboxLayout1->setMargin(8); + vboxLayout1->setContentsMargins(8, 8, 8, 8); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); GroupBox1 = new QGroupBox(tab2); GroupBox1->setObjectName(QString::fromUtf8("GroupBox1")); gridLayout1 = new QGridLayout(GroupBox1); gridLayout1->setSpacing(4); - gridLayout1->setMargin(8); + gridLayout1->setContentsMargins(8, 8, 8, 8); gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); stylecombo = new QComboBox(GroupBox1); stylecombo->setObjectName(QString::fromUtf8("stylecombo")); @@ -406,12 +406,12 @@ public: GroupBox2->setObjectName(QString::fromUtf8("GroupBox2")); vboxLayout2 = new QVBoxLayout(GroupBox2); vboxLayout2->setSpacing(4); - vboxLayout2->setMargin(8); + vboxLayout2->setContentsMargins(8, 8, 8, 8); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); hboxLayout3 = new QHBoxLayout(); hboxLayout3->setSpacing(4); #ifndef Q_OS_MAC - hboxLayout3->setMargin(0); + hboxLayout3->setContentsMargins(0, 0, 0, 0); #endif hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3")); famsubbuddy = new QLabel(GroupBox2); @@ -450,7 +450,7 @@ public: hboxLayout4 = new QHBoxLayout(); hboxLayout4->setSpacing(4); - hboxLayout4->setMargin(0); + hboxLayout4->setContentsMargins(0, 0, 0, 0); hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4")); PushButton2 = new QPushButton(GroupBox2); PushButton2->setObjectName(QString::fromUtf8("PushButton2")); @@ -480,7 +480,7 @@ public: hboxLayout5 = new QHBoxLayout(); hboxLayout5->setSpacing(4); - hboxLayout5->setMargin(0); + hboxLayout5->setContentsMargins(0, 0, 0, 0); hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5")); choosebuddy = new QLabel(GroupBox2); choosebuddy->setObjectName(QString::fromUtf8("choosebuddy")); @@ -510,13 +510,13 @@ public: tab->setObjectName(QString::fromUtf8("tab")); vboxLayout3 = new QVBoxLayout(tab); vboxLayout3->setSpacing(4); - vboxLayout3->setMargin(7); + vboxLayout3->setContentsMargins(7, 7, 7, 7); vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3")); GroupBox4 = new QGroupBox(tab); GroupBox4->setObjectName(QString::fromUtf8("GroupBox4")); gridLayout2 = new QGridLayout(GroupBox4); gridLayout2->setSpacing(4); - gridLayout2->setMargin(8); + gridLayout2->setContentsMargins(8, 8, 8, 8); gridLayout2->setObjectName(QString::fromUtf8("gridLayout2")); dcispin = new QSpinBox(GroupBox4); dcispin->setObjectName(QString::fromUtf8("dcispin")); @@ -566,7 +566,7 @@ public: GroupBox3->setObjectName(QString::fromUtf8("GroupBox3")); vboxLayout4 = new QVBoxLayout(GroupBox3); vboxLayout4->setSpacing(4); - vboxLayout4->setMargin(8); + vboxLayout4->setContentsMargins(8, 8, 8, 8); vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4")); effectcheckbox = new QCheckBox(GroupBox3); effectcheckbox->setObjectName(QString::fromUtf8("effectcheckbox")); @@ -579,7 +579,7 @@ public: effectbase->setFrameShadow(QFrame::Plain); gridLayout3 = new QGridLayout(effectbase); gridLayout3->setSpacing(4); - gridLayout3->setMargin(0); + gridLayout3->setContentsMargins(0, 0, 0, 0); gridLayout3->setObjectName(QString::fromUtf8("gridLayout3")); meffectbuddy = new QLabel(effectbase); meffectbuddy->setObjectName(QString::fromUtf8("meffectbuddy")); @@ -632,7 +632,7 @@ public: GroupBox5->setObjectName(QString::fromUtf8("GroupBox5")); gridLayout4 = new QGridLayout(GroupBox5); gridLayout4->setSpacing(4); - gridLayout4->setMargin(8); + gridLayout4->setContentsMargins(8, 8, 8, 8); gridLayout4->setObjectName(QString::fromUtf8("gridLayout4")); swbuddy = new QLabel(GroupBox5); swbuddy->setObjectName(QString::fromUtf8("swbuddy")); @@ -683,7 +683,7 @@ public: tab3->setObjectName(QString::fromUtf8("tab3")); vboxLayout5 = new QVBoxLayout(tab3); vboxLayout5->setSpacing(4); - vboxLayout5->setMargin(8); + vboxLayout5->setContentsMargins(8, 8, 8, 8); vboxLayout5->setObjectName(QString::fromUtf8("vboxLayout5")); fontembeddingcheckbox = new QCheckBox(tab3); fontembeddingcheckbox->setObjectName(QString::fromUtf8("fontembeddingcheckbox")); @@ -697,12 +697,12 @@ public: GroupBox10->setSizePolicy(sizePolicy2); vboxLayout6 = new QVBoxLayout(GroupBox10); vboxLayout6->setSpacing(4); - vboxLayout6->setMargin(8); + vboxLayout6->setContentsMargins(8, 8, 8, 8); vboxLayout6->setObjectName(QString::fromUtf8("vboxLayout6")); gridLayout5 = new QGridLayout(); gridLayout5->setSpacing(4); #ifndef Q_OS_MAC - gridLayout5->setMargin(0); + gridLayout5->setContentsMargins(0, 0, 0, 0); #endif gridLayout5->setObjectName(QString::fromUtf8("gridLayout5")); PushButton11 = new QPushButton(GroupBox10); @@ -730,7 +730,7 @@ public: gridLayout6 = new QGridLayout(); gridLayout6->setSpacing(4); - gridLayout6->setMargin(0); + gridLayout6->setContentsMargins(0, 0, 0, 0); gridLayout6->setObjectName(QString::fromUtf8("gridLayout6")); spacerItem2 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/mydialog.ui.h b/tests/auto/uic/baseline/mydialog.ui.h index 12228c0..17cf6c5 100644 --- a/tests/auto/uic/baseline/mydialog.ui.h +++ b/tests/auto/uic/baseline/mydialog.ui.h @@ -40,7 +40,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); aLabel = new QLabel(MyDialog); diff --git a/tests/auto/uic/baseline/myform.ui.h b/tests/auto/uic/baseline/myform.ui.h index 9aaa709..07e1663 100644 --- a/tests/auto/uic/baseline/myform.ui.h +++ b/tests/auto/uic/baseline/myform.ui.h @@ -51,7 +51,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(8); + vboxLayout->setContentsMargins(8, 8, 8, 8); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(Form); groupBox->setObjectName(QString::fromUtf8("groupBox")); @@ -59,7 +59,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); radioButton_2 = new QRadioButton(groupBox); radioButton_2->setObjectName(QString::fromUtf8("radioButton_2")); diff --git a/tests/auto/uic/baseline/newform.ui.h b/tests/auto/uic/baseline/newform.ui.h index 46af9cb..37eb709 100644 --- a/tests/auto/uic/baseline/newform.ui.h +++ b/tests/auto/uic/baseline/newform.ui.h @@ -89,14 +89,14 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); hboxLayout = new QHBoxLayout(); #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(1); + hboxLayout->setContentsMargins(1, 1, 1, 1); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); treeWidget = new QTreeWidget(NewForm); treeWidget->setObjectName(QString::fromUtf8("treeWidget")); diff --git a/tests/auto/uic/baseline/pagefold.ui.h b/tests/auto/uic/baseline/pagefold.ui.h index adff3a3..9c2a453 100644 --- a/tests/auto/uic/baseline/pagefold.ui.h +++ b/tests/auto/uic/baseline/pagefold.ui.h @@ -87,7 +87,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); mainFrame = new QFrame(centralwidget); @@ -99,7 +99,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); nameCombo = new QComboBox(mainFrame); diff --git a/tests/auto/uic/baseline/paletteeditor.ui.h b/tests/auto/uic/baseline/paletteeditor.ui.h index 9310ab8..0dcefb3 100644 --- a/tests/auto/uic/baseline/paletteeditor.ui.h +++ b/tests/auto/uic/baseline/paletteeditor.ui.h @@ -106,7 +106,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); advancedBox = new QGroupBox(qdesigner_internal__PaletteEditor); @@ -118,7 +118,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); buildButton = new QtColorButton(advancedBox); @@ -167,7 +167,7 @@ public: #ifndef Q_OS_MAC gridLayout1->setSpacing(6); #endif - gridLayout1->setMargin(8); + gridLayout1->setContentsMargins(8, 8, 8, 8); gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); disabledRadio = new QRadioButton(GroupBox126); disabledRadio->setObjectName(QString::fromUtf8("disabledRadio")); diff --git a/tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h b/tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h index 618ddfc..bb2a959 100644 --- a/tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h +++ b/tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h @@ -114,7 +114,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(11); + vboxLayout->setContentsMargins(11, 11, 11, 11); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setObjectName(QString::fromUtf8("unnamed")); hboxLayout = new QHBoxLayout(); @@ -122,7 +122,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setObjectName(QString::fromUtf8("unnamed")); @@ -150,7 +150,7 @@ public: #ifndef Q_OS_MAC ButtonGroup1->layout()->setSpacing(6); #endif - ButtonGroup1->layout()->setMargin(11); + ButtonGroup1->layout()->setContentsMargins(11, 11, 11, 11); vboxLayout1 = new QVBoxLayout(); QBoxLayout *boxlayout = qobject_cast<QBoxLayout *>(ButtonGroup1->layout()); if (boxlayout) @@ -179,7 +179,7 @@ public: #ifndef Q_OS_MAC groupCentral->layout()->setSpacing(6); #endif - groupCentral->layout()->setMargin(11); + groupCentral->layout()->setContentsMargins(11, 11, 11, 11); vboxLayout2 = new QVBoxLayout(); QBoxLayout *boxlayout1 = qobject_cast<QBoxLayout *>(groupCentral->layout()); if (boxlayout1) @@ -196,7 +196,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); hboxLayout1->setObjectName(QString::fromUtf8("unnamed")); Horizontal_Spacing1 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -237,7 +237,7 @@ public: #ifndef Q_OS_MAC groupEffect->layout()->setSpacing(6); #endif - groupEffect->layout()->setMargin(11); + groupEffect->layout()->setContentsMargins(11, 11, 11, 11); vboxLayout3 = new QVBoxLayout(); QBoxLayout *boxlayout2 = qobject_cast<QBoxLayout *>(groupEffect->layout()); if (boxlayout2) @@ -250,7 +250,7 @@ public: hboxLayout2->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout2->setMargin(0); + hboxLayout2->setContentsMargins(0, 0, 0, 0); #endif hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); hboxLayout2->setObjectName(QString::fromUtf8("unnamed")); @@ -272,7 +272,7 @@ public: #ifndef Q_OS_MAC hboxLayout3->setSpacing(6); #endif - hboxLayout3->setMargin(0); + hboxLayout3->setContentsMargins(0, 0, 0, 0); hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3")); hboxLayout3->setObjectName(QString::fromUtf8("unnamed")); Horizontal_Spacing3 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -305,7 +305,7 @@ public: #ifndef Q_OS_MAC hboxLayout4->setSpacing(6); #endif - hboxLayout4->setMargin(0); + hboxLayout4->setContentsMargins(0, 0, 0, 0); hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4")); hboxLayout4->setObjectName(QString::fromUtf8("unnamed")); Horizontal_Spacing2 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/phrasebookbox.ui.h b/tests/auto/uic/baseline/phrasebookbox.ui.h index c87cbc2..f4abb1b 100644 --- a/tests/auto/uic/baseline/phrasebookbox.ui.h +++ b/tests/auto/uic/baseline/phrasebookbox.ui.h @@ -96,7 +96,7 @@ public: PhraseBookBox->resize(596, 454); unnamed = new QHBoxLayout(PhraseBookBox); unnamed->setSpacing(6); - unnamed->setMargin(11); + unnamed->setContentsMargins(11, 11, 11, 11); unnamed->setObjectName(QString::fromUtf8("unnamed")); inputsLayout = new QVBoxLayout(); inputsLayout->setSpacing(6); diff --git a/tests/auto/uic/baseline/previewdialogbase.ui.h b/tests/auto/uic/baseline/previewdialogbase.ui.h index af65a18..93bfb69 100644 --- a/tests/auto/uic/baseline/previewdialogbase.ui.h +++ b/tests/auto/uic/baseline/previewdialogbase.ui.h @@ -55,7 +55,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); hboxLayout = new QHBoxLayout(); @@ -63,7 +63,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); label = new QLabel(PreviewDialogBase); @@ -104,7 +104,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); pageList = new QTreeWidget(PreviewDialogBase); pageList->setObjectName(QString::fromUtf8("pageList")); @@ -133,7 +133,7 @@ public: #ifndef Q_OS_MAC hboxLayout2->setSpacing(6); #endif - hboxLayout2->setMargin(0); + hboxLayout2->setContentsMargins(0, 0, 0, 0); hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); progressBar = new QProgressBar(PreviewDialogBase); progressBar->setObjectName(QString::fromUtf8("progressBar")); diff --git a/tests/auto/uic/baseline/previewwidget.ui.h b/tests/auto/uic/baseline/previewwidget.ui.h index 71755df..b76aa56 100644 --- a/tests/auto/uic/baseline/previewwidget.ui.h +++ b/tests/auto/uic/baseline/previewwidget.ui.h @@ -118,7 +118,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); vboxLayout = new QVBoxLayout(); @@ -126,7 +126,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); LineEdit1 = new QLineEdit(qdesigner_internal__PreviewWidget); @@ -143,7 +143,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); SpinBox1 = new QSpinBox(qdesigner_internal__PreviewWidget); SpinBox1->setObjectName(QString::fromUtf8("SpinBox1")); @@ -196,7 +196,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); CheckBox1 = new QCheckBox(ButtonGroup2); @@ -220,7 +220,7 @@ public: vboxLayout2->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout2->setMargin(9); + vboxLayout2->setContentsMargins(9, 9, 9, 9); #endif vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); RadioButton1 = new QRadioButton(ButtonGroup1); diff --git a/tests/auto/uic/baseline/previewwidgetbase.ui.h b/tests/auto/uic/baseline/previewwidgetbase.ui.h index f69a785..82899b7 100644 --- a/tests/auto/uic/baseline/previewwidgetbase.ui.h +++ b/tests/auto/uic/baseline/previewwidgetbase.ui.h @@ -117,7 +117,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(11); + vboxLayout->setContentsMargins(11, 11, 11, 11); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setObjectName(QString::fromUtf8("unnamed")); hboxLayout = new QHBoxLayout(); @@ -125,7 +125,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setObjectName(QString::fromUtf8("unnamed")); @@ -134,7 +134,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(0); + vboxLayout1->setContentsMargins(0, 0, 0, 0); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); vboxLayout1->setObjectName(QString::fromUtf8("unnamed")); @@ -144,7 +144,7 @@ public: #ifndef Q_OS_MAC ButtonGroup1->layout()->setSpacing(6); #endif - ButtonGroup1->layout()->setMargin(11); + ButtonGroup1->layout()->setContentsMargins(11, 11, 11, 11); vboxLayout2 = new QVBoxLayout(); QBoxLayout *boxlayout = qobject_cast<QBoxLayout *>(ButtonGroup1->layout()); if (boxlayout) @@ -177,7 +177,7 @@ public: #ifndef Q_OS_MAC ButtonGroup2->layout()->setSpacing(6); #endif - ButtonGroup2->layout()->setMargin(11); + ButtonGroup2->layout()->setContentsMargins(11, 11, 11, 11); vboxLayout3 = new QVBoxLayout(); QBoxLayout *boxlayout1 = qobject_cast<QBoxLayout *>(ButtonGroup2->layout()); if (boxlayout1) @@ -212,7 +212,7 @@ public: #ifndef Q_OS_MAC vboxLayout4->setSpacing(6); #endif - vboxLayout4->setMargin(0); + vboxLayout4->setContentsMargins(0, 0, 0, 0); vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4")); vboxLayout4->setObjectName(QString::fromUtf8("unnamed")); LineEdit1 = new QLineEdit(PreviewWidgetBase); @@ -229,7 +229,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); hboxLayout1->setObjectName(QString::fromUtf8("unnamed")); SpinBox1 = new QSpinBox(PreviewWidgetBase); diff --git a/tests/auto/uic/baseline/qpagesetupwidget.ui.h b/tests/auto/uic/baseline/qpagesetupwidget.ui.h index 628a8eb..f2a68bd 100644 --- a/tests/auto/uic/baseline/qpagesetupwidget.ui.h +++ b/tests/auto/uic/baseline/qpagesetupwidget.ui.h @@ -76,7 +76,7 @@ public: QPageSetupWidget->setObjectName(QString::fromUtf8("QPageSetupWidget")); QPageSetupWidget->resize(416, 488); gridLayout_3 = new QGridLayout(QPageSetupWidget); - gridLayout_3->setMargin(0); + gridLayout_3->setContentsMargins(0, 0, 0, 0); gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3")); horizontalLayout_4 = new QHBoxLayout(); horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); diff --git a/tests/auto/uic/baseline/qprintpropertieswidget.ui.h b/tests/auto/uic/baseline/qprintpropertieswidget.ui.h index 75a3e6d..16148ef 100644 --- a/tests/auto/uic/baseline/qprintpropertieswidget.ui.h +++ b/tests/auto/uic/baseline/qprintpropertieswidget.ui.h @@ -42,7 +42,7 @@ public: QPrintPropertiesWidget->setObjectName(QString::fromUtf8("QPrintPropertiesWidget")); QPrintPropertiesWidget->resize(396, 288); verticalLayout_4 = new QVBoxLayout(QPrintPropertiesWidget); - verticalLayout_4->setMargin(0); + verticalLayout_4->setContentsMargins(0, 0, 0, 0); verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); tabs = new QTabWidget(QPrintPropertiesWidget); tabs->setObjectName(QString::fromUtf8("tabs")); diff --git a/tests/auto/uic/baseline/qprintsettingsoutput.ui.h b/tests/auto/uic/baseline/qprintsettingsoutput.ui.h index e51aadb..307582a 100644 --- a/tests/auto/uic/baseline/qprintsettingsoutput.ui.h +++ b/tests/auto/uic/baseline/qprintsettingsoutput.ui.h @@ -77,7 +77,7 @@ public: QPrintSettingsOutput->setObjectName(QString::fromUtf8("QPrintSettingsOutput")); QPrintSettingsOutput->resize(416, 166); horizontalLayout_2 = new QHBoxLayout(QPrintSettingsOutput); - horizontalLayout_2->setMargin(0); + horizontalLayout_2->setContentsMargins(0, 0, 0, 0); horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); tabs = new QTabWidget(QPrintSettingsOutput); tabs->setObjectName(QString::fromUtf8("tabs")); @@ -95,7 +95,7 @@ public: gbPrintRange->setSizePolicy(sizePolicy); _3 = new QVBoxLayout(gbPrintRange); _3->setSpacing(4); - _3->setMargin(6); + _3->setContentsMargins(6, 6, 6, 6); _3->setObjectName(QString::fromUtf8("_3")); printAll = new QRadioButton(gbPrintRange); printAll->setObjectName(QString::fromUtf8("printAll")); @@ -107,7 +107,7 @@ public: #ifndef Q_OS_MAC _4->setSpacing(6); #endif - _4->setMargin(0); + _4->setContentsMargins(0, 0, 0, 0); _4->setObjectName(QString::fromUtf8("_4")); printRange = new QRadioButton(gbPrintRange); printRange->setObjectName(QString::fromUtf8("printRange")); diff --git a/tests/auto/uic/baseline/qprintwidget.ui.h b/tests/auto/uic/baseline/qprintwidget.ui.h index f6c0989..7fa0b4f 100644 --- a/tests/auto/uic/baseline/qprintwidget.ui.h +++ b/tests/auto/uic/baseline/qprintwidget.ui.h @@ -53,7 +53,7 @@ public: QPrintWidget->setObjectName(QString::fromUtf8("QPrintWidget")); QPrintWidget->resize(443, 175); horizontalLayout_2 = new QHBoxLayout(QPrintWidget); - horizontalLayout_2->setMargin(0); + horizontalLayout_2->setContentsMargins(0, 0, 0, 0); horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); printerGroup = new QGroupBox(QPrintWidget); printerGroup->setObjectName(QString::fromUtf8("printerGroup")); diff --git a/tests/auto/uic/baseline/qsqlconnectiondialog.ui.h b/tests/auto/uic/baseline/qsqlconnectiondialog.ui.h index f36d0ac..846f34d 100644 --- a/tests/auto/uic/baseline/qsqlconnectiondialog.ui.h +++ b/tests/auto/uic/baseline/qsqlconnectiondialog.ui.h @@ -65,7 +65,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(8); + vboxLayout->setContentsMargins(8, 8, 8, 8); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); connGroupBox = new QGroupBox(QSqlConnectionDialogUi); connGroupBox->setObjectName(QString::fromUtf8("connGroupBox")); @@ -73,7 +73,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); comboDriver = new QComboBox(connGroupBox); comboDriver->setObjectName(QString::fromUtf8("comboDriver")); @@ -146,7 +146,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -164,7 +164,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); spacerItem1 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/qttoolbardialog.ui.h b/tests/auto/uic/baseline/qttoolbardialog.ui.h index 3b487c3..7225eda 100644 --- a/tests/auto/uic/baseline/qttoolbardialog.ui.h +++ b/tests/auto/uic/baseline/qttoolbardialog.ui.h @@ -59,7 +59,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); actionTree = new QTreeWidget(QtToolBarDialog); actionTree->setObjectName(QString::fromUtf8("actionTree")); @@ -75,7 +75,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); label_2 = new QLabel(QtToolBarDialog); label_2->setObjectName(QString::fromUtf8("label_2")); @@ -104,7 +104,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); upButton = new QToolButton(QtToolBarDialog); upButton->setObjectName(QString::fromUtf8("upButton")); diff --git a/tests/auto/uic/baseline/querywidget.ui.h b/tests/auto/uic/baseline/querywidget.ui.h index e49c197..7697328 100644 --- a/tests/auto/uic/baseline/querywidget.ui.h +++ b/tests/auto/uic/baseline/querywidget.ui.h @@ -62,7 +62,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); inputGroupBox = new QGroupBox(centralwidget); @@ -75,7 +75,7 @@ public: _2->setSpacing(6); #endif #ifndef Q_OS_MAC - _2->setMargin(0); + _2->setContentsMargins(0, 0, 0, 0); #endif _2->setObjectName(QString::fromUtf8("_2")); inputTextEdit = new QTextEdit(inputGroupBox); @@ -120,7 +120,7 @@ public: _3->setSpacing(6); #endif #ifndef Q_OS_MAC - _3->setMargin(0); + _3->setContentsMargins(0, 0, 0, 0); #endif _3->setObjectName(QString::fromUtf8("_3")); outputTextEdit = new QTextEdit(outputGroupBox); diff --git a/tests/auto/uic/baseline/remotecontrol.ui.h b/tests/auto/uic/baseline/remotecontrol.ui.h index b8acf9d..854a994 100644 --- a/tests/auto/uic/baseline/remotecontrol.ui.h +++ b/tests/auto/uic/baseline/remotecontrol.ui.h @@ -77,7 +77,7 @@ public: centralWidget->setObjectName(QString::fromUtf8("centralWidget")); gridLayout = new QGridLayout(centralWidget); gridLayout->setSpacing(6); - gridLayout->setMargin(11); + gridLayout->setContentsMargins(11, 11, 11, 11); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); label = new QLabel(centralWidget); label->setObjectName(QString::fromUtf8("label")); @@ -107,7 +107,7 @@ public: actionGroupBox->setEnabled(false); gridLayout1 = new QGridLayout(actionGroupBox); gridLayout1->setSpacing(6); - gridLayout1->setMargin(11); + gridLayout1->setContentsMargins(11, 11, 11, 11); gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); label_2 = new QLabel(actionGroupBox); label_2->setObjectName(QString::fromUtf8("label_2")); diff --git a/tests/auto/uic/baseline/signalslotdialog.ui.h b/tests/auto/uic/baseline/signalslotdialog.ui.h index 393532a..6adcf21 100644 --- a/tests/auto/uic/baseline/signalslotdialog.ui.h +++ b/tests/auto/uic/baseline/signalslotdialog.ui.h @@ -53,13 +53,13 @@ public: SignalSlotDialogClass->resize(617, 535); vboxLayout = new QVBoxLayout(SignalSlotDialogClass); vboxLayout->setSpacing(6); - vboxLayout->setMargin(11); + vboxLayout->setContentsMargins(11, 11, 11, 11); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); slotGroupBox = new QGroupBox(SignalSlotDialogClass); slotGroupBox->setObjectName(QString::fromUtf8("slotGroupBox")); vboxLayout1 = new QVBoxLayout(slotGroupBox); vboxLayout1->setSpacing(6); - vboxLayout1->setMargin(11); + vboxLayout1->setContentsMargins(11, 11, 11, 11); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); slotListView = new QListView(slotGroupBox); slotListView->setObjectName(QString::fromUtf8("slotListView")); @@ -93,7 +93,7 @@ public: signalGroupBox->setObjectName(QString::fromUtf8("signalGroupBox")); vboxLayout2 = new QVBoxLayout(signalGroupBox); vboxLayout2->setSpacing(6); - vboxLayout2->setMargin(11); + vboxLayout2->setContentsMargins(11, 11, 11, 11); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); signalListView = new QListView(signalGroupBox); signalListView->setObjectName(QString::fromUtf8("signalListView")); diff --git a/tests/auto/uic/baseline/statistics.ui.h b/tests/auto/uic/baseline/statistics.ui.h index eb24cfe..b8257c4 100644 --- a/tests/auto/uic/baseline/statistics.ui.h +++ b/tests/auto/uic/baseline/statistics.ui.h @@ -97,7 +97,7 @@ public: Statistics->resize(336, 164); gridLayout = new QGridLayout(Statistics); gridLayout->setSpacing(6); - gridLayout->setMargin(11); + gridLayout->setContentsMargins(11, 11, 11, 11); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); gridLayout->setObjectName(QString::fromUtf8("unnamed")); hboxLayout = new QHBoxLayout(); @@ -126,7 +126,7 @@ public: frame4->setFrameShadow(QFrame::Raised); gridLayout1 = new QGridLayout(frame4); gridLayout1->setSpacing(6); - gridLayout1->setMargin(11); + gridLayout1->setContentsMargins(11, 11, 11, 11); gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); gridLayout1->setObjectName(QString::fromUtf8("unnamed")); textLabel4 = new QLabel(frame4); diff --git a/tests/auto/uic/baseline/stringlisteditor.ui.h b/tests/auto/uic/baseline/stringlisteditor.ui.h index ffba0af..e6daa52 100644 --- a/tests/auto/uic/baseline/stringlisteditor.ui.h +++ b/tests/auto/uic/baseline/stringlisteditor.ui.h @@ -105,7 +105,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(qdesigner_internal__Dialog); @@ -115,7 +115,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); vboxLayout1 = new QVBoxLayout(); @@ -123,7 +123,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(0); + vboxLayout1->setContentsMargins(0, 0, 0, 0); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); hboxLayout = new QHBoxLayout(); @@ -131,7 +131,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); newButton = new QToolButton(groupBox); @@ -157,7 +157,7 @@ public: #ifndef Q_OS_MAC hboxLayout1->setSpacing(6); #endif - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); label = new QLabel(groupBox); label->setObjectName(QString::fromUtf8("label")); @@ -179,7 +179,7 @@ public: #ifndef Q_OS_MAC vboxLayout2->setSpacing(6); #endif - vboxLayout2->setMargin(0); + vboxLayout2->setContentsMargins(0, 0, 0, 0); vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); spacerItem1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); diff --git a/tests/auto/uic/baseline/stylesheeteditor.ui.h b/tests/auto/uic/baseline/stylesheeteditor.ui.h index 9f803c6..7633d5b 100644 --- a/tests/auto/uic/baseline/stylesheeteditor.ui.h +++ b/tests/auto/uic/baseline/stylesheeteditor.ui.h @@ -52,7 +52,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); spacerItem = new QSpacerItem(32, 20, QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); @@ -96,7 +96,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); spacerItem3 = new QSpacerItem(321, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uic/baseline/tabbedbrowser.ui.h b/tests/auto/uic/baseline/tabbedbrowser.ui.h index ecf9024..1106f13 100644 --- a/tests/auto/uic/baseline/tabbedbrowser.ui.h +++ b/tests/auto/uic/baseline/tabbedbrowser.ui.h @@ -96,7 +96,7 @@ public: TabbedBrowser->resize(710, 664); vboxLayout = new QVBoxLayout(TabbedBrowser); vboxLayout->setSpacing(0); - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); tab = new QTabWidget(TabbedBrowser); tab->setObjectName(QString::fromUtf8("tab")); @@ -106,7 +106,7 @@ public: #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif - gridLayout->setMargin(8); + gridLayout->setContentsMargins(8, 8, 8, 8); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); tab->addTab(frontpage, QString()); @@ -120,7 +120,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); toolClose = new QToolButton(frameFind); toolClose->setObjectName(QString::fromUtf8("toolClose")); diff --git a/tests/auto/uic/baseline/tablewidgeteditor.ui.h b/tests/auto/uic/baseline/tablewidgeteditor.ui.h index 47649ec..4769c42 100644 --- a/tests/auto/uic/baseline/tablewidgeteditor.ui.h +++ b/tests/auto/uic/baseline/tablewidgeteditor.ui.h @@ -169,7 +169,7 @@ public: sizePolicy.setHeightForWidth(widget->sizePolicy().hasHeightForWidth()); widget->setSizePolicy(sizePolicy); verticalLayout = new QVBoxLayout(widget); - verticalLayout->setMargin(0); + verticalLayout->setContentsMargins(0, 0, 0, 0); verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); columnsBox = new QGroupBox(widget); columnsBox->setObjectName(QString::fromUtf8("columnsBox")); diff --git a/tests/auto/uic/baseline/tetrixwindow.ui.h b/tests/auto/uic/baseline/tetrixwindow.ui.h index 73f1a79..a848545 100644 --- a/tests/auto/uic/baseline/tetrixwindow.ui.h +++ b/tests/auto/uic/baseline/tetrixwindow.ui.h @@ -53,7 +53,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); gridLayout = new QGridLayout(); @@ -61,7 +61,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(0); + gridLayout->setContentsMargins(0, 0, 0, 0); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); startButton = new QPushButton(TetrixWindow); diff --git a/tests/auto/uic/baseline/textfinder.ui.h b/tests/auto/uic/baseline/textfinder.ui.h index afb1bec..f1d51f9 100644 --- a/tests/auto/uic/baseline/textfinder.ui.h +++ b/tests/auto/uic/baseline/textfinder.ui.h @@ -47,7 +47,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); gridLayout = new QGridLayout(); @@ -55,7 +55,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(0); + gridLayout->setContentsMargins(0, 0, 0, 0); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); lineEdit = new QLineEdit(Form); diff --git a/tests/auto/uic/baseline/topicchooser.ui.h b/tests/auto/uic/baseline/topicchooser.ui.h index 810f11a..8404d0c 100644 --- a/tests/auto/uic/baseline/topicchooser.ui.h +++ b/tests/auto/uic/baseline/topicchooser.ui.h @@ -48,7 +48,7 @@ public: #ifndef Q_OS_MAC vboxLayout->setSpacing(6); #endif - vboxLayout->setMargin(11); + vboxLayout->setContentsMargins(11, 11, 11, 11); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); vboxLayout->setObjectName(QString::fromUtf8("unnamed")); label = new QLabel(TopicChooser); @@ -67,7 +67,7 @@ public: #ifndef Q_OS_MAC hboxLayout->setSpacing(6); #endif - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setObjectName(QString::fromUtf8("unnamed")); hboxLayout->setContentsMargins(0, 0, 0, 0); diff --git a/tests/auto/uic/baseline/translatedialog.ui.h b/tests/auto/uic/baseline/translatedialog.ui.h index ec4a0f4..b0df4b5 100644 --- a/tests/auto/uic/baseline/translatedialog.ui.h +++ b/tests/auto/uic/baseline/translatedialog.ui.h @@ -104,7 +104,7 @@ public: TranslateDialog->setSizePolicy(sizePolicy); hboxLayout = new QHBoxLayout(TranslateDialog); hboxLayout->setSpacing(6); - hboxLayout->setMargin(11); + hboxLayout->setContentsMargins(11, 11, 11, 11); hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); hboxLayout->setContentsMargins(9, 9, 9, 9); vboxLayout = new QVBoxLayout(); @@ -144,7 +144,7 @@ public: groupBox->setObjectName(QString::fromUtf8("groupBox")); vboxLayout1 = new QVBoxLayout(groupBox); vboxLayout1->setSpacing(6); - vboxLayout1->setMargin(11); + vboxLayout1->setContentsMargins(11, 11, 11, 11); vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); ckMatchCase = new QCheckBox(groupBox); ckMatchCase->setObjectName(QString::fromUtf8("ckMatchCase")); diff --git a/tests/auto/uic/baseline/translationsettings.ui.h b/tests/auto/uic/baseline/translationsettings.ui.h index 792b733..7ce0485 100644 --- a/tests/auto/uic/baseline/translationsettings.ui.h +++ b/tests/auto/uic/baseline/translationsettings.ui.h @@ -47,7 +47,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); groupBox = new QGroupBox(TranslationSettings); @@ -57,7 +57,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(9); + gridLayout->setContentsMargins(9, 9, 9, 9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); cbLanguageList = new QComboBox(groupBox); diff --git a/tests/auto/uic/baseline/trpreviewtool.ui.h b/tests/auto/uic/baseline/trpreviewtool.ui.h index e607763..2575cda 100644 --- a/tests/auto/uic/baseline/trpreviewtool.ui.h +++ b/tests/auto/uic/baseline/trpreviewtool.ui.h @@ -142,7 +142,7 @@ public: dockWidgetContents->setObjectName(QString::fromUtf8("dockWidgetContents")); vboxLayout = new QVBoxLayout(dockWidgetContents); vboxLayout->setSpacing(0); - vboxLayout->setMargin(0); + vboxLayout->setContentsMargins(0, 0, 0, 0); vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); viewForms = new QListView(dockWidgetContents); viewForms->setObjectName(QString::fromUtf8("viewForms")); diff --git a/tests/auto/uic/baseline/validators.ui.h b/tests/auto/uic/baseline/validators.ui.h index ea5d319..03bc898 100644 --- a/tests/auto/uic/baseline/validators.ui.h +++ b/tests/auto/uic/baseline/validators.ui.h @@ -87,7 +87,7 @@ public: vboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout->setMargin(9); + vboxLayout->setContentsMargins(9, 9, 9, 9); #endif vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); hboxLayout = new QHBoxLayout(); @@ -95,7 +95,7 @@ public: hboxLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout->setMargin(0); + hboxLayout->setContentsMargins(0, 0, 0, 0); #endif hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); localeSelector = new LocaleSelector(ValidatorsForm); @@ -117,7 +117,7 @@ public: vboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout1->setMargin(9); + vboxLayout1->setContentsMargins(9, 9, 9, 9); #endif vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); hboxLayout1 = new QHBoxLayout(); @@ -125,7 +125,7 @@ public: hboxLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout1->setMargin(0); + hboxLayout1->setContentsMargins(0, 0, 0, 0); #endif hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); gridLayout = new QGridLayout(); @@ -133,7 +133,7 @@ public: gridLayout->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout->setMargin(0); + gridLayout->setContentsMargins(0, 0, 0, 0); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); label = new QLabel(groupBox); @@ -182,7 +182,7 @@ public: vboxLayout2->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout2->setMargin(9); + vboxLayout2->setContentsMargins(9, 9, 9, 9); #endif vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); ledWidget = new LEDWidget(frame); @@ -227,7 +227,7 @@ public: vboxLayout3->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout3->setMargin(9); + vboxLayout3->setContentsMargins(9, 9, 9, 9); #endif vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3")); hboxLayout2 = new QHBoxLayout(); @@ -235,7 +235,7 @@ public: hboxLayout2->setSpacing(6); #endif #ifndef Q_OS_MAC - hboxLayout2->setMargin(0); + hboxLayout2->setContentsMargins(0, 0, 0, 0); #endif hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); gridLayout1 = new QGridLayout(); @@ -243,7 +243,7 @@ public: gridLayout1->setSpacing(6); #endif #ifndef Q_OS_MAC - gridLayout1->setMargin(0); + gridLayout1->setContentsMargins(0, 0, 0, 0); #endif gridLayout1->setObjectName(QString::fromUtf8("gridLayout1")); label_3 = new QLabel(groupBox_2); @@ -313,7 +313,7 @@ public: vboxLayout4->setSpacing(6); #endif #ifndef Q_OS_MAC - vboxLayout4->setMargin(9); + vboxLayout4->setContentsMargins(9, 9, 9, 9); #endif vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4")); doubleLedWidget = new LEDWidget(frame_2); @@ -354,7 +354,7 @@ public: #ifndef Q_OS_MAC hboxLayout3->setSpacing(6); #endif - hboxLayout3->setMargin(0); + hboxLayout3->setContentsMargins(0, 0, 0, 0); hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3")); spacerItem4 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); diff --git a/tests/auto/uiloader/baseline/css_borderimage.ui b/tests/auto/uiloader/baseline/css_borderimage.ui new file mode 100644 index 0000000..4a59ca2 --- /dev/null +++ b/tests/auto/uiloader/baseline/css_borderimage.ui @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>530</width> + <height>309</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">QLabel { border-width: 28; color: #0f0; background-color: white; } + +#label_repeat_repeat { + border-image: url("images/borderimage.png") 28 repeat repeat; +} + +#label_stretch_repeat { + border-image: url("images/borderimage.png") 28 stretch repeat; +} + +#label_round_repeat { + border-image: url("images/borderimage.png") 28 round repeat; +} + + +#label_repeat_round { + border-image: url("images/borderimage.png") 28 repeat round; +} + +#label_stretch_round { + border-image: url("images/borderimage.png") 28 stretch round; +} + +#label_round_round { + border-image: url("images/borderimage.png") 28 round round; +} + +#label_repeat_stretch { + border-image: url("images/borderimage.png") 28 repeat stretch; +} + +#label_stretch_stretch { + border-image: url("images/borderimage.png") 28 stretch stretch; +} + +#label_round_stretch { + border-image: url("images/borderimage.png") 28 round stretch; +} +</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label_stretch_stretch"> + <property name="text"> + <string>Strecth Stretch</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="label_stretch_round"> + <property name="text"> + <string>Stretch Round</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="label_stretch_repeat"> + <property name="text"> + <string>Stretch repeat</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_round_stretch"> + <property name="text"> + <string>Round Stretch</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLabel" name="label_round_round"> + <property name="text"> + <string>Round Round</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QLabel" name="label_round_repeat"> + <property name="text"> + <string>Round Repeat</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_repeat_stretch"> + <property name="text"> + <string>Repeat Stretch</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="label_repeat_round"> + <property name="text"> + <string>Repeat Round</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QLabel" name="label_repeat_repeat"> + <property name="text"> + <string>Repeat Repeat</string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui b/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui new file mode 100644 index 0000000..baba66b --- /dev/null +++ b/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>553</width> + <height>368</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">* { border-image: url("images/pushbutton.png") 6 6 6 6; border-width:6px; }</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QFrame" name="frame"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Each widget should have a background image. including the top level</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButton"> + <property name="text"> + <string>PushButton</string> + </property> + </widget> + </item> + <item> + <widget class="QProgressBar" name="progressBar"> + <property name="value"> + <number>24</number> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="widget" native="true"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPushButton" name="pushButton_2"> + <property name="text"> + <string>PushButton</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spinBox"/> + </item> + <item> + <widget class="QRadioButton" name="radioButton"> + <property name="text"> + <string>RadioButton</string> + </property> + </widget> + </item> + <item> + <widget class="QScrollArea" name="scrollArea"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>260</width> + <height>197</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="2" column="0" colspan="2"> + <widget class="QSlider" name="horizontalSlider"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLCDNumber" name="lcdNumber"/> + </item> + <item row="0" column="1"> + <widget class="QRadioButton" name="radioButton_2"> + <property name="text"> + <string>RadioButton</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QRadioButton" name="radioButton_3"> + <property name="text"> + <string>RadioButton</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QCheckBox" name="checkBox_2"> + <property name="text"> + <string>CheckBox</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QCheckBox" name="checkBox_3"> + <property name="text"> + <string>CheckBox</string> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>GroupBox</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="QCheckBox" name="checkBox"> + <property name="text"> + <string>CheckBox</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="lineEdit"> + <property name="text"> + <string>Line Edit</string> + </property> + </widget> + </item> + <item> + <widget class="QListWidget" name="listWidget"> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uiloader/baseline/css_scrollarea_base.ui b/tests/auto/uiloader/baseline/css_scrollarea_base.ui new file mode 100644 index 0000000..495401f --- /dev/null +++ b/tests/auto/uiloader/baseline/css_scrollarea_base.ui @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>407</width> + <height>339</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">QAbstractScrollArea { border: 2px dashed #e12; } +QHeaderView { border-color: blue; } + +</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPlainTextEdit" name="plainTextEdit"> + <property name="plainText"> + <string>Note that the task 257517 requires to scroll down, and check that the backgroud is still filled with the base color (white by default) + +x +x + +x +x + +x +x + +x +x + +</string> + </property> + </widget> + </item> + <item> + <widget class="QTableWidget" name="tableWidget"> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <row> + <property name="text"> + <string>New Row</string> + </property> + </row> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + <column> + <property name="text"> + <string>New Column</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QTextEdit" name="textEdit"> + <property name="html"> + <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">x</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uiloader/baseline/css_splitter.ui b/tests/auto/uiloader/baseline/css_splitter.ui new file mode 100644 index 0000000..99dbc18 --- /dev/null +++ b/tests/auto/uiloader/baseline/css_splitter.ui @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>424</width> + <height>364</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true"> QSplitter::handle:vertical { + image: url(images/splitter_horizontal.png); + } + + QSplitter::handle:horizontal { + image: url(images/splitter_vertical.png); + } + +#big_splitter::handle { background-color: blue; border: 3px dashed green; height:50px; } + + + QSplitter::handle:hover { + background-color: qlineargradient(spread:repeat, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 0, 0, 255), stop:0.17 rgba(255, 0, 0, 255), stop:0.18 rgba(255, 255, 255, 255), stop:0.210212 rgba(255, 255, 255, 255), stop:0.220212 rgba(0, 16, 255, 255), stop:0.279897 rgba(0, 16, 255, 255), stop:0.289897 rgba(255, 255, 255, 255), stop:0.32 rgba(255, 255, 255, 255), stop:0.33 rgba(255, 0, 0, 255), stop:1 rgba(255, 0, 0, 255)) + } + + QSplitter::handle:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(9, 41, 4, 255), stop:0.085 rgba(2, 79, 0, 255), stop:0.19 rgba(50, 147, 22, 255), stop:0.275 rgba(236, 191, 49, 255), stop:0.39 rgba(243, 61, 34, 255), stop:0.555 rgba(135, 81, 60, 255), stop:0.667 rgba(121, 75, 255, 255), stop:0.825 rgba(164, 255, 244, 255), stop:0.885 rgba(104, 222, 71, 255), stop:1 rgba(93, 128, 0, 255)); + }</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QSplitter" name="splitter_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <widget class="QSplitter" name="big_splitter"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <widget class="QTextEdit" name="textEdit"/> + <widget class="QTextEdit" name="textEdit_5"/> + <widget class="QTextEdit" name="textEdit_4"/> + </widget> + <widget class="QSplitter" name="splitter"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <widget class="QTextEdit" name="textEdit_2"/> + <widget class="QTextEdit" name="textEdit_3"/> + </widget> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uiloader/baseline/css_task255849_downarrow.ui b/tests/auto/uiloader/baseline/css_task255849_downarrow.ui new file mode 100644 index 0000000..d3e99b1 --- /dev/null +++ b/tests/auto/uiloader/baseline/css_task255849_downarrow.ui @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>275</width> + <height>175</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">/* Some widget were not displaying the arrow if only the arrow was set */ +*::down-arrow { image: url("images/arrow-down.png") } +*::up-arrow { image: url("images/arrow-up.png") } + + +</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" colspan="2"> + <widget class="QComboBox" name="comboBox"/> + </item> + <item row="0" column="2" rowspan="5"> + <widget class="QTreeWidget" name="treeWidget"> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <attribute name="headerShowSortIndicator" stdset="0"> + <bool>true</bool> + </attribute> + <attribute name="headerShowSortIndicator" stdset="0"> + <bool>true</bool> + </attribute> + <column> + <property name="text"> + <string>1</string> + </property> + </column> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + <item> + <property name="text"> + <string>New Item</string> + </property> + </item> + </widget> + </item> + <item row="1" column="0"> + <widget class="QSpinBox" name="spinBox"/> + </item> + <item row="1" column="1"> + <widget class="QToolButton" name="toolButton"> + <property name="text"> + <string>foo</string> + </property> + <property name="arrowType"> + <enum>Qt::DownArrow</enum> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QDoubleSpinBox" name="doubleSpinBox"/> + </item> + <item row="3" column="0" colspan="2"> + <widget class="QPushButton" name="pushButton"> + <property name="contextMenuPolicy"> + <enum>Qt::NoContextMenu</enum> + </property> + <property name="text"> + <string>PushButton</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uiloader/baseline/images/arrow-down.png b/tests/auto/uiloader/baseline/images/arrow-down.png Binary files differnew file mode 100644 index 0000000..7c9274f --- /dev/null +++ b/tests/auto/uiloader/baseline/images/arrow-down.png diff --git a/tests/auto/uiloader/baseline/images/arrow-up.png b/tests/auto/uiloader/baseline/images/arrow-up.png Binary files differnew file mode 100644 index 0000000..758a0d1 --- /dev/null +++ b/tests/auto/uiloader/baseline/images/arrow-up.png diff --git a/tests/auto/uiloader/baseline/images/borderimage.png b/tests/auto/uiloader/baseline/images/borderimage.png Binary files differnew file mode 100644 index 0000000..199fc89 --- /dev/null +++ b/tests/auto/uiloader/baseline/images/borderimage.png diff --git a/tests/auto/uiloader/baseline/images/splitter_horizontal.png b/tests/auto/uiloader/baseline/images/splitter_horizontal.png Binary files differnew file mode 100644 index 0000000..66107cf --- /dev/null +++ b/tests/auto/uiloader/baseline/images/splitter_horizontal.png diff --git a/tests/auto/uiloader/baseline/images/splitter_vertical.png b/tests/auto/uiloader/baseline/images/splitter_vertical.png Binary files differnew file mode 100644 index 0000000..f907c0b --- /dev/null +++ b/tests/auto/uiloader/baseline/images/splitter_vertical.png diff --git a/tests/auto/windowsmobile/test/tst_windowsmobile.cpp b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp index 843974d..654e19f 100644 --- a/tests/auto/windowsmobile/test/tst_windowsmobile.cpp +++ b/tests/auto/windowsmobile/test/tst_windowsmobile.cpp @@ -44,8 +44,10 @@ #include <QtCore/QDebug> #include <QtCore/QObject> #include <QtGui> +#ifdef Q_OS_WINCE_WM #include <windows.h> #include <ddhelper.h> +#endif @@ -70,7 +72,7 @@ public: #ifdef Q_OS_WINCE_WM bool qt_wince_is_platform(const QString &platformString) { - TCHAR tszPlatform[64]; + wchar_t tszPlatform[64]; if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(tszPlatform)/sizeof(*tszPlatform),tszPlatform,0)) if (0 == _tcsicmp(reinterpret_cast<const wchar_t *> (platformString.utf16()), tszPlatform)) diff --git a/tests/auto/xmlpatterns.pri b/tests/auto/xmlpatterns.pri index bf13c3b..7cdd67f 100644 --- a/tests/auto/xmlpatterns.pri +++ b/tests/auto/xmlpatterns.pri @@ -19,3 +19,17 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { else: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}_debug } +INCLUDEPATH += \ + $$QT_SOURCE_TREE/src/xmlpatterns/acceltree \ + $$QT_SOURCE_TREE/src/xmlpatterns/api \ + $$QT_SOURCE_TREE/src/xmlpatterns/data \ + $$QT_SOURCE_TREE/src/xmlpatterns/environment \ + $$QT_SOURCE_TREE/src/xmlpatterns/expr \ + $$QT_SOURCE_TREE/src/xmlpatterns/functions \ + $$QT_SOURCE_TREE/src/xmlpatterns/iterators \ + $$QT_SOURCE_TREE/src/xmlpatterns/janitors \ + $$QT_SOURCE_TREE/src/xmlpatterns/parser \ + $$QT_SOURCE_TREE/src/xmlpatterns/projection \ + $$QT_SOURCE_TREE/src/xmlpatterns/schema \ + $$QT_SOURCE_TREE/src/xmlpatterns/type \ + $$QT_SOURCE_TREE/src/xmlpatterns/utils diff --git a/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp b/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp index f3df426..07e1fed 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp +++ b/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp @@ -61,7 +61,7 @@ protected: virtual void catalogPath(QString &write) const; }; -tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(false, true) +tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(tst_SuiteTest::XQuerySuite, true) { } diff --git a/tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro b/tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro index e90b335..3d82eaf 100644 --- a/tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro +++ b/tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro @@ -2,3 +2,4 @@ TEMPLATE = subdirs CONFIG += ordered SUBDIRS = ../xmlpatternsxqts test +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/auto/xmlpatternsschema/.gitignore b/tests/auto/xmlpatternsschema/.gitignore new file mode 100644 index 0000000..a37a2b7 --- /dev/null +++ b/tests/auto/xmlpatternsschema/.gitignore @@ -0,0 +1 @@ +tst_xmlpatternsschema diff --git a/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp b/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp new file mode 100644 index 0000000..030e9c0 --- /dev/null +++ b/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp @@ -0,0 +1,988 @@ + +#include <QtTest/QtTest> + +#include "qxsdstatemachine_p.h" +#include "qxsdschematoken_p.h" + +using namespace QPatternist; + +class tst_XMLPatternsSchema : public QObject +{ + Q_OBJECT + + public slots: + void init(); + void cleanup(); + + private slots: + void stateMachineTest1(); + void stateMachineTest2(); + void stateMachineTest3(); + void stateMachineTest4(); + void stateMachineTest5(); + void stateMachineTest6(); + void stateMachineTest7(); + void stateMachineTest8(); + void stateMachineTest9(); + void stateMachineTest10(); + void stateMachineTest11(); + void stateMachineTest12(); + void stateMachineTest13(); + void stateMachineTest14(); + void stateMachineTest15(); + void stateMachineTest16(); + void stateMachineTest17(); + void stateMachineTest18(); + void stateMachineTest19(); + + private: + bool runTest(const QVector<XsdSchemaToken::NodeName> &list, XsdStateMachine<XsdSchemaToken::NodeName> &machine); +}; + +void tst_XMLPatternsSchema::init() +{ +} + +void tst_XMLPatternsSchema::cleanup() +{ +} + +bool tst_XMLPatternsSchema::runTest(const QVector<XsdSchemaToken::NodeName> &list, XsdStateMachine<XsdSchemaToken::NodeName> &machine) +{ + machine.reset(); + for (int i = 0; i < list.count(); ++i) { + if (!machine.proceed(list.at(i))) + return false; + } + if (!machine.inEndState()) + return false; + + return true; +} + +void tst_XMLPatternsSchema::stateMachineTest1() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, simpleType?) : attribute + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + + QVERIFY(machine.inEndState() == true); + QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == true); + QVERIFY(machine.inEndState() == true); + QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == true); + QVERIFY(machine.inEndState() == true); + QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == false); + QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == false); + machine.reset(); + QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == true); + QVERIFY(machine.inEndState() == true); + QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest2() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)) : element + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + machine.addTransition(startState, XsdSchemaToken::ComplexType, s3); + machine.addTransition(startState, XsdSchemaToken::Unique, s4); + machine.addTransition(startState, XsdSchemaToken::Key, s5); + machine.addTransition(startState, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s1, XsdSchemaToken::ComplexType, s3); + machine.addTransition(s1, XsdSchemaToken::Unique, s4); + machine.addTransition(s1, XsdSchemaToken::Key, s5); + machine.addTransition(s1, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s2, XsdSchemaToken::Unique, s4); + machine.addTransition(s2, XsdSchemaToken::Key, s5); + machine.addTransition(s2, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s3, XsdSchemaToken::Unique, s4); + machine.addTransition(s3, XsdSchemaToken::Key, s5); + machine.addTransition(s3, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s4, XsdSchemaToken::Unique, s4); + machine.addTransition(s4, XsdSchemaToken::Key, s5); + machine.addTransition(s4, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s5, XsdSchemaToken::Unique, s4); + machine.addTransition(s5, XsdSchemaToken::Key, s5); + machine.addTransition(s5, XsdSchemaToken::Keyref, s6); + + machine.addTransition(s6, XsdSchemaToken::Unique, s4); + machine.addTransition(s6, XsdSchemaToken::Key, s5); + machine.addTransition(s6, XsdSchemaToken::Keyref, s6); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3; + + data1 << XsdSchemaToken::Annotation + << XsdSchemaToken::SimpleType + << XsdSchemaToken::Unique + << XsdSchemaToken::Keyref; + + data2 << XsdSchemaToken::Annotation + << XsdSchemaToken::SimpleType + << XsdSchemaToken::Annotation + << XsdSchemaToken::Keyref; + + data3 << XsdSchemaToken::Annotation + << XsdSchemaToken::SimpleType + << XsdSchemaToken::SimpleType; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == false); + QVERIFY(runTest(data3, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest3() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))) : complexType + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s7 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s8 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s9 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s10 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleContent, s2); + machine.addTransition(startState, XsdSchemaToken::ComplexContent, s3); + machine.addTransition(startState, XsdSchemaToken::Group, s4); + machine.addTransition(startState, XsdSchemaToken::All, s5); + machine.addTransition(startState, XsdSchemaToken::Choice, s6); + machine.addTransition(startState, XsdSchemaToken::Sequence, s7); + machine.addTransition(startState, XsdSchemaToken::Attribute, s8); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s1, XsdSchemaToken::SimpleContent, s2); + machine.addTransition(s1, XsdSchemaToken::ComplexContent, s3); + machine.addTransition(s1, XsdSchemaToken::Group, s4); + machine.addTransition(s1, XsdSchemaToken::All, s5); + machine.addTransition(s1, XsdSchemaToken::Choice, s6); + machine.addTransition(s1, XsdSchemaToken::Sequence, s7); + machine.addTransition(s1, XsdSchemaToken::Attribute, s8); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s4, XsdSchemaToken::Attribute, s8); + machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s5, XsdSchemaToken::Attribute, s8); + machine.addTransition(s5, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s5, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s6, XsdSchemaToken::Attribute, s8); + machine.addTransition(s6, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s6, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s7, XsdSchemaToken::Attribute, s8); + machine.addTransition(s7, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s7, XsdSchemaToken::AnyAttribute, s10); + + machine.addTransition(s8, XsdSchemaToken::Attribute, s8); + machine.addTransition(s8, XsdSchemaToken::AttributeGroup, s9); + machine.addTransition(s8, XsdSchemaToken::AnyAttribute, s10); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4; + + data1 << XsdSchemaToken::Annotation + << XsdSchemaToken::SimpleContent; + + data2 << XsdSchemaToken::Group + << XsdSchemaToken::Attribute + << XsdSchemaToken::Attribute + << XsdSchemaToken::AnyAttribute; + + data3 << XsdSchemaToken::Group + << XsdSchemaToken::Choice + << XsdSchemaToken::Attribute + << XsdSchemaToken::AnyAttribute; + + data4 << XsdSchemaToken::Annotation + << XsdSchemaToken::Sequence + << XsdSchemaToken::AnyAttribute; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest4() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, ((attribute | attributeGroup)*, anyAttribute?)) : named attribute group/simple content extension/ + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Attribute, s2); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s1, XsdSchemaToken::Attribute, s2); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s2, XsdSchemaToken::Attribute, s2); + machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s3, XsdSchemaToken::Attribute, s2); + machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s4); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4; + + data1 << XsdSchemaToken::Annotation; + + data2 << XsdSchemaToken::Attribute + << XsdSchemaToken::Attribute + << XsdSchemaToken::Attribute + << XsdSchemaToken::AnyAttribute; + + data3 << XsdSchemaToken::Group + << XsdSchemaToken::Attribute + << XsdSchemaToken::AnyAttribute; + + data4 << XsdSchemaToken::Attribute + << XsdSchemaToken::AnyAttribute + << XsdSchemaToken::Attribute; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest5() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (all | choice | sequence)?) : group + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::All, s2); + machine.addTransition(startState, XsdSchemaToken::Choice, s3); + machine.addTransition(startState, XsdSchemaToken::Sequence, s4); + + machine.addTransition(s1, XsdSchemaToken::All, s2); + machine.addTransition(s1, XsdSchemaToken::Choice, s3); + machine.addTransition(s1, XsdSchemaToken::Sequence, s4); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::All; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Choice; + data4 << XsdSchemaToken::Annotation << XsdSchemaToken::Sequence; + data5 << XsdSchemaToken::All; + data6 << XsdSchemaToken::Choice; + data7 << XsdSchemaToken::Sequence; + data8 << XsdSchemaToken::Sequence << XsdSchemaToken::All; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); + QVERIFY(runTest(data6, machine) == true); + QVERIFY(runTest(data7, machine) == true); + QVERIFY(runTest(data8, machine) == false); + QVERIFY(runTest(data9, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest6() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, element*) : all + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Element, s2); + + machine.addTransition(s1, XsdSchemaToken::Element, s2); + + machine.addTransition(s2, XsdSchemaToken::Element, s2); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element; + data3 << XsdSchemaToken::Element; + data4 << XsdSchemaToken::Element << XsdSchemaToken::Sequence; + data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Element << XsdSchemaToken::Annotation; + data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation << XsdSchemaToken::Element; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == false); + QVERIFY(runTest(data5, machine) == false); + QVERIFY(runTest(data6, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest7() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (element | group | choice | sequence | any)*) : choice sequence + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Element, s2); + machine.addTransition(startState, XsdSchemaToken::Group, s3); + machine.addTransition(startState, XsdSchemaToken::Choice, s4); + machine.addTransition(startState, XsdSchemaToken::Sequence, s5); + machine.addTransition(startState, XsdSchemaToken::Any, s6); + + machine.addTransition(s1, XsdSchemaToken::Element, s2); + machine.addTransition(s1, XsdSchemaToken::Group, s3); + machine.addTransition(s1, XsdSchemaToken::Choice, s4); + machine.addTransition(s1, XsdSchemaToken::Sequence, s5); + machine.addTransition(s1, XsdSchemaToken::Any, s6); + + machine.addTransition(s2, XsdSchemaToken::Element, s2); + machine.addTransition(s2, XsdSchemaToken::Group, s3); + machine.addTransition(s2, XsdSchemaToken::Choice, s4); + machine.addTransition(s2, XsdSchemaToken::Sequence, s5); + machine.addTransition(s2, XsdSchemaToken::Any, s6); + + machine.addTransition(s3, XsdSchemaToken::Element, s2); + machine.addTransition(s3, XsdSchemaToken::Group, s3); + machine.addTransition(s3, XsdSchemaToken::Choice, s4); + machine.addTransition(s3, XsdSchemaToken::Sequence, s5); + machine.addTransition(s3, XsdSchemaToken::Any, s6); + + machine.addTransition(s4, XsdSchemaToken::Element, s2); + machine.addTransition(s4, XsdSchemaToken::Group, s3); + machine.addTransition(s4, XsdSchemaToken::Choice, s4); + machine.addTransition(s4, XsdSchemaToken::Sequence, s5); + machine.addTransition(s4, XsdSchemaToken::Any, s6); + + machine.addTransition(s5, XsdSchemaToken::Element, s2); + machine.addTransition(s5, XsdSchemaToken::Group, s3); + machine.addTransition(s5, XsdSchemaToken::Choice, s4); + machine.addTransition(s5, XsdSchemaToken::Sequence, s5); + machine.addTransition(s5, XsdSchemaToken::Any, s6); + + machine.addTransition(s6, XsdSchemaToken::Element, s2); + machine.addTransition(s6, XsdSchemaToken::Group, s3); + machine.addTransition(s6, XsdSchemaToken::Choice, s4); + machine.addTransition(s6, XsdSchemaToken::Sequence, s5); + machine.addTransition(s6, XsdSchemaToken::Any, s6); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element << XsdSchemaToken::Sequence << XsdSchemaToken::Choice; + data3 << XsdSchemaToken::Group; + data4 << XsdSchemaToken::Element << XsdSchemaToken::Sequence << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest8() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?) : any/selector/field/notation/include/import/referred attribute group/anyAttribute/all facets + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element; + data3 << XsdSchemaToken::Group; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == false); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest9() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (selector, field+)) : unique/key/keyref + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Selector, s2); + + machine.addTransition(s1, XsdSchemaToken::Selector, s2); + machine.addTransition(s2, XsdSchemaToken::Field, s3); + machine.addTransition(s3, XsdSchemaToken::Field, s3); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Selector; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Selector << XsdSchemaToken::Field; + data4 << XsdSchemaToken::Selector << XsdSchemaToken::Field; + data5 << XsdSchemaToken::Selector << XsdSchemaToken::Field << XsdSchemaToken::Field; + + QVERIFY(runTest(data1, machine) == false); + QVERIFY(runTest(data2, machine) == false); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest10() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (appinfo | documentation)* : annotation + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Appinfo, s1); + machine.addTransition(startState, XsdSchemaToken::Documentation, s2); + + machine.addTransition(s1, XsdSchemaToken::Appinfo, s1); + machine.addTransition(s1, XsdSchemaToken::Documentation, s2); + + machine.addTransition(s2, XsdSchemaToken::Appinfo, s1); + machine.addTransition(s2, XsdSchemaToken::Documentation, s2); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5; + + data1 << XsdSchemaToken::Appinfo; + data2 << XsdSchemaToken::Appinfo << XsdSchemaToken::Appinfo; + data3 << XsdSchemaToken::Documentation << XsdSchemaToken::Appinfo << XsdSchemaToken::Documentation; + data4 << XsdSchemaToken::Selector << XsdSchemaToken::Field; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == false); + QVERIFY(runTest(data5, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest11() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (restriction | list | union)) : simpleType + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Restriction, s2); + machine.addTransition(startState, XsdSchemaToken::List, s3); + machine.addTransition(startState, XsdSchemaToken::Union, s4); + + machine.addTransition(s1, XsdSchemaToken::Restriction, s2); + machine.addTransition(s1, XsdSchemaToken::List, s3); + machine.addTransition(s1, XsdSchemaToken::Union, s4); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Restriction; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::List; + data4 << XsdSchemaToken::Annotation << XsdSchemaToken::Union; + data5 << XsdSchemaToken::Restriction; + data6 << XsdSchemaToken::List; + data7 << XsdSchemaToken::Union; + data8 << XsdSchemaToken::Union << XsdSchemaToken::Union; + + QVERIFY(runTest(data1, machine) == false); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); + QVERIFY(runTest(data6, machine) == true); + QVERIFY(runTest(data7, machine) == true); + QVERIFY(runTest(data8, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest12() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern)*)) : simple type restriction + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(startState, XsdSchemaToken::Length, s3); + machine.addTransition(startState, XsdSchemaToken::MinLength, s3); + machine.addTransition(startState, XsdSchemaToken::MaxLength, s3); + machine.addTransition(startState, XsdSchemaToken::Enumeration, s3); + machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(startState, XsdSchemaToken::Pattern, s3); + + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s1, XsdSchemaToken::Length, s3); + machine.addTransition(s1, XsdSchemaToken::MinLength, s3); + machine.addTransition(s1, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s1, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s1, XsdSchemaToken::Pattern, s3); + + machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s2, XsdSchemaToken::Length, s3); + machine.addTransition(s2, XsdSchemaToken::MinLength, s3); + machine.addTransition(s2, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s2, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s2, XsdSchemaToken::Pattern, s3); + + machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s3, XsdSchemaToken::Length, s3); + machine.addTransition(s3, XsdSchemaToken::MinLength, s3); + machine.addTransition(s3, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s3, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s3, XsdSchemaToken::Pattern, s3); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Length << XsdSchemaToken::MaxLength; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::List; + data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::Pattern; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest13() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, simpleType?) : list + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType; + data3 << XsdSchemaToken::SimpleType; + data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == false); + QVERIFY(runTest(data5, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest14() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, simpleType*) : union + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s2, XsdSchemaToken::SimpleType, s2); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType; + data3 << XsdSchemaToken::SimpleType; + data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType; + data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); + QVERIFY(runTest(data6, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest15() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for ((include | import | redefine | annotation)*, (((simpleType | complexType | group | attributeGroup) | element | attribute | notation), annotation*)*) : schema + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Include, s1); + machine.addTransition(startState, XsdSchemaToken::Import, s1); + machine.addTransition(startState, XsdSchemaToken::Redefine, s1); + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + machine.addTransition(startState, XsdSchemaToken::ComplexType, s2); + machine.addTransition(startState, XsdSchemaToken::Group, s2); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s2); + machine.addTransition(startState, XsdSchemaToken::Element, s2); + machine.addTransition(startState, XsdSchemaToken::Attribute, s2); + machine.addTransition(startState, XsdSchemaToken::Notation, s2); + + machine.addTransition(s1, XsdSchemaToken::Include, s1); + machine.addTransition(s1, XsdSchemaToken::Import, s1); + machine.addTransition(s1, XsdSchemaToken::Redefine, s1); + machine.addTransition(s1, XsdSchemaToken::Annotation, s1); + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s1, XsdSchemaToken::ComplexType, s2); + machine.addTransition(s1, XsdSchemaToken::Group, s2); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s2); + machine.addTransition(s1, XsdSchemaToken::Element, s2); + machine.addTransition(s1, XsdSchemaToken::Attribute, s2); + machine.addTransition(s1, XsdSchemaToken::Notation, s2); + + machine.addTransition(s2, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s2, XsdSchemaToken::ComplexType, s2); + machine.addTransition(s2, XsdSchemaToken::Group, s2); + machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s2); + machine.addTransition(s2, XsdSchemaToken::Element, s2); + machine.addTransition(s2, XsdSchemaToken::Attribute, s2); + machine.addTransition(s2, XsdSchemaToken::Notation, s2); + machine.addTransition(s2, XsdSchemaToken::Annotation, s3); + + machine.addTransition(s3, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s3, XsdSchemaToken::ComplexType, s2); + machine.addTransition(s3, XsdSchemaToken::Group, s2); + machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s2); + machine.addTransition(s3, XsdSchemaToken::Element, s2); + machine.addTransition(s3, XsdSchemaToken::Attribute, s2); + machine.addTransition(s3, XsdSchemaToken::Notation, s2); + machine.addTransition(s3, XsdSchemaToken::Annotation, s3); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation << XsdSchemaToken::Import << XsdSchemaToken::SimpleType << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::SimpleType; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Import << XsdSchemaToken::Include << XsdSchemaToken::Import; + data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::ComplexType << XsdSchemaToken::Annotation << XsdSchemaToken::Attribute; + data5 << XsdSchemaToken::SimpleType << XsdSchemaToken::Include << XsdSchemaToken::Annotation << XsdSchemaToken::Attribute; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == false); + QVERIFY(runTest(data6, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest16() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation | (simpleType | complexType | group | attributeGroup))* : redefine + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s1); + machine.addTransition(startState, XsdSchemaToken::ComplexType, s1); + machine.addTransition(startState, XsdSchemaToken::Group, s1); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s1); + + machine.addTransition(s1, XsdSchemaToken::Annotation, s1); + machine.addTransition(s1, XsdSchemaToken::SimpleType, s1); + machine.addTransition(s1, XsdSchemaToken::ComplexType, s1); + machine.addTransition(s1, XsdSchemaToken::Group, s1); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s1); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType; + data3 << XsdSchemaToken::SimpleType; + data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType; + data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == true); + QVERIFY(runTest(data6, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest17() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (restriction | extension)) : simpleContent + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Restriction, s2); + machine.addTransition(startState, XsdSchemaToken::Extension, s2); + + machine.addTransition(s1, XsdSchemaToken::Restriction, s2); + machine.addTransition(s1, XsdSchemaToken::Extension, s2); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Extension; + data3 << XsdSchemaToken::Restriction; + data4 << XsdSchemaToken::Extension << XsdSchemaToken::Restriction; + data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == false); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == true); + QVERIFY(runTest(data4, machine) == false); + QVERIFY(runTest(data5, machine) == false); + QVERIFY(runTest(data6, machine) == false); +} + +void tst_XMLPatternsSchema::stateMachineTest18() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern)*)?, ((attribute | attributeGroup)*, anyAttribute?)) : simpleContent restriction + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::SimpleType, s2); + machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(startState, XsdSchemaToken::Length, s3); + machine.addTransition(startState, XsdSchemaToken::MinLength, s3); + machine.addTransition(startState, XsdSchemaToken::MaxLength, s3); + machine.addTransition(startState, XsdSchemaToken::Enumeration, s3); + machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(startState, XsdSchemaToken::Pattern, s3); + machine.addTransition(startState, XsdSchemaToken::Attribute, s4); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s4); + machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s5); + + machine.addTransition(s1, XsdSchemaToken::SimpleType, s2); + machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s1, XsdSchemaToken::Length, s3); + machine.addTransition(s1, XsdSchemaToken::MinLength, s3); + machine.addTransition(s1, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s1, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s1, XsdSchemaToken::Pattern, s3); + machine.addTransition(s1, XsdSchemaToken::Attribute, s4); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s4); + machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s5); + + machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s2, XsdSchemaToken::Length, s3); + machine.addTransition(s2, XsdSchemaToken::MinLength, s3); + machine.addTransition(s2, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s2, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s2, XsdSchemaToken::Pattern, s3); + machine.addTransition(s2, XsdSchemaToken::Attribute, s4); + machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s4); + machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s5); + + machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3); + machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3); + machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3); + machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3); + machine.addTransition(s3, XsdSchemaToken::Length, s3); + machine.addTransition(s3, XsdSchemaToken::MinLength, s3); + machine.addTransition(s3, XsdSchemaToken::MaxLength, s3); + machine.addTransition(s3, XsdSchemaToken::Enumeration, s3); + machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3); + machine.addTransition(s3, XsdSchemaToken::Pattern, s3); + machine.addTransition(s3, XsdSchemaToken::Attribute, s4); + machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s4); + machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s5); + + machine.addTransition(s4, XsdSchemaToken::Attribute, s4); + machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s4); + machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s5); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::SimpleType << XsdSchemaToken::MinExclusive << XsdSchemaToken::MaxExclusive; + data3 << XsdSchemaToken::AnyAttribute << XsdSchemaToken::Attribute; + data4 << XsdSchemaToken::MinExclusive << XsdSchemaToken::TotalDigits << XsdSchemaToken::Enumeration; + data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == false); + QVERIFY(runTest(data6, machine) == true); +} + +void tst_XMLPatternsSchema::stateMachineTest19() +{ + XsdStateMachine<XsdSchemaToken::NodeName> machine; + + // setup state machine for (annotation?, (group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)) : complex content restriction/complex content extension + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState); + + machine.addTransition(startState, XsdSchemaToken::Annotation, s1); + machine.addTransition(startState, XsdSchemaToken::Group, s2); + machine.addTransition(startState, XsdSchemaToken::All, s2); + machine.addTransition(startState, XsdSchemaToken::Choice, s2); + machine.addTransition(startState, XsdSchemaToken::Sequence, s2); + machine.addTransition(startState, XsdSchemaToken::Attribute, s3); + machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s1, XsdSchemaToken::Group, s2); + machine.addTransition(s1, XsdSchemaToken::All, s2); + machine.addTransition(s1, XsdSchemaToken::Choice, s2); + machine.addTransition(s1, XsdSchemaToken::Sequence, s2); + machine.addTransition(s1, XsdSchemaToken::Attribute, s3); + machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s2, XsdSchemaToken::Attribute, s3); + machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s4); + + machine.addTransition(s3, XsdSchemaToken::Attribute, s3); + machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s3); + machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s4); + + QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6; + + data1 << XsdSchemaToken::Annotation; + data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Group; + data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Group << XsdSchemaToken::Sequence; + data4 << XsdSchemaToken::Attribute << XsdSchemaToken::Attribute; + data5 << XsdSchemaToken::Attribute << XsdSchemaToken::Sequence; + data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation; + + QVERIFY(runTest(data1, machine) == true); + QVERIFY(runTest(data2, machine) == true); + QVERIFY(runTest(data3, machine) == false); + QVERIFY(runTest(data4, machine) == true); + QVERIFY(runTest(data5, machine) == false); + QVERIFY(runTest(data6, machine) == false); +} + +QTEST_MAIN(tst_XMLPatternsSchema) +#include "tst_xmlpatternsschema.moc" diff --git a/tests/auto/xmlpatternsschema/xmlpatternsschema.pro b/tests/auto/xmlpatternsschema/xmlpatternsschema.pro new file mode 100644 index 0000000..2ba869a --- /dev/null +++ b/tests/auto/xmlpatternsschema/xmlpatternsschema.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +SOURCES += tst_xmlpatternsschema.cpp \ + +include (../xmlpatterns.pri) + +INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private diff --git a/tests/auto/xmlpatternsschemats/.gitignore b/tests/auto/xmlpatternsschemats/.gitignore new file mode 100644 index 0000000..5fd11f8 --- /dev/null +++ b/tests/auto/xmlpatternsschemats/.gitignore @@ -0,0 +1,4 @@ +CandidateBaseline.xml +runTests +tst_xmlpatternsschemats +runTests diff --git a/tests/auto/xmlpatternsschemats/Baseline.xml b/tests/auto/xmlpatternsschemats/Baseline.xml new file mode 100644 index 0000000..9baef9c --- /dev/null +++ b/tests/auto/xmlpatternsschemats/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-02-24"><test-suite version=""/></test-run><test-case name="1NISTSchema-SV-IV-atomic-decimal-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2NISTXML-SV-IV-atomic-decimal-minExclusive-1-1 tokoe:valid" result="fail"/><test-case name="3NISTXML-SV-IV-atomic-decimal-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4NISTXML-SV-IV-atomic-decimal-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="5NISTXML-SV-IV-atomic-decimal-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="6NISTXML-SV-IV-atomic-decimal-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="7NISTSchema-SV-IV-atomic-decimal-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8NISTXML-SV-IV-atomic-decimal-minExclusive-2-1 tokoe:valid" result="fail"/><test-case name="9NISTXML-SV-IV-atomic-decimal-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="10NISTXML-SV-IV-atomic-decimal-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="11NISTXML-SV-IV-atomic-decimal-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="12NISTXML-SV-IV-atomic-decimal-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="13NISTSchema-SV-IV-atomic-decimal-minExclusive-3 tokoe:valid" result="pass"/><test-case name="14NISTXML-SV-IV-atomic-decimal-minExclusive-3-1 tokoe:valid" result="fail"/><test-case name="15NISTXML-SV-IV-atomic-decimal-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="16NISTXML-SV-IV-atomic-decimal-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="17NISTXML-SV-IV-atomic-decimal-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="18NISTXML-SV-IV-atomic-decimal-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="19NISTSchema-SV-IV-atomic-decimal-minExclusive-4 tokoe:valid" result="pass"/><test-case name="20NISTXML-SV-IV-atomic-decimal-minExclusive-4-1 tokoe:valid" result="fail"/><test-case name="21NISTXML-SV-IV-atomic-decimal-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="22NISTXML-SV-IV-atomic-decimal-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="23NISTXML-SV-IV-atomic-decimal-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="24NISTXML-SV-IV-atomic-decimal-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="25NISTSchema-SV-IV-atomic-decimal-minExclusive-5 tokoe:valid" result="pass"/><test-case name="26NISTXML-SV-IV-atomic-decimal-minExclusive-5-1 tokoe:valid" result="fail"/><test-case name="27NISTSchema-SV-IV-atomic-decimal-minInclusive-1 tokoe:valid" result="pass"/><test-case name="28NISTXML-SV-IV-atomic-decimal-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="29NISTXML-SV-IV-atomic-decimal-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="30NISTXML-SV-IV-atomic-decimal-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="31NISTXML-SV-IV-atomic-decimal-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="32NISTXML-SV-IV-atomic-decimal-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="33NISTSchema-SV-IV-atomic-decimal-minInclusive-2 tokoe:valid" result="pass"/><test-case name="34NISTXML-SV-IV-atomic-decimal-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="35NISTXML-SV-IV-atomic-decimal-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="36NISTXML-SV-IV-atomic-decimal-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="37NISTXML-SV-IV-atomic-decimal-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="38NISTXML-SV-IV-atomic-decimal-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="39NISTSchema-SV-IV-atomic-decimal-minInclusive-3 tokoe:valid" result="pass"/><test-case name="40NISTXML-SV-IV-atomic-decimal-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="41NISTXML-SV-IV-atomic-decimal-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="42NISTXML-SV-IV-atomic-decimal-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="43NISTXML-SV-IV-atomic-decimal-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="44NISTXML-SV-IV-atomic-decimal-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="45NISTSchema-SV-IV-atomic-decimal-minInclusive-4 tokoe:valid" result="pass"/><test-case name="46NISTXML-SV-IV-atomic-decimal-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="47NISTXML-SV-IV-atomic-decimal-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="48NISTXML-SV-IV-atomic-decimal-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="49NISTXML-SV-IV-atomic-decimal-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="50NISTXML-SV-IV-atomic-decimal-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="51NISTSchema-SV-IV-atomic-decimal-minInclusive-5 tokoe:valid" result="pass"/><test-case name="52NISTXML-SV-IV-atomic-decimal-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="53NISTSchema-SV-IV-atomic-decimal-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="54NISTXML-SV-IV-atomic-decimal-maxExclusive-1-1 tokoe:valid" result="fail"/><test-case name="55NISTSchema-SV-IV-atomic-decimal-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="56NISTXML-SV-IV-atomic-decimal-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="57NISTXML-SV-IV-atomic-decimal-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="58NISTXML-SV-IV-atomic-decimal-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="59NISTXML-SV-IV-atomic-decimal-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="60NISTXML-SV-IV-atomic-decimal-maxExclusive-2-5 tokoe:valid" result="fail"/><test-case name="61NISTSchema-SV-IV-atomic-decimal-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="62NISTXML-SV-IV-atomic-decimal-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="63NISTXML-SV-IV-atomic-decimal-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="64NISTXML-SV-IV-atomic-decimal-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="65NISTXML-SV-IV-atomic-decimal-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="66NISTXML-SV-IV-atomic-decimal-maxExclusive-3-5 tokoe:valid" result="fail"/><test-case name="67NISTSchema-SV-IV-atomic-decimal-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="68NISTXML-SV-IV-atomic-decimal-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="69NISTXML-SV-IV-atomic-decimal-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="70NISTXML-SV-IV-atomic-decimal-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="71NISTXML-SV-IV-atomic-decimal-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="72NISTXML-SV-IV-atomic-decimal-maxExclusive-4-5 tokoe:valid" result="fail"/><test-case name="73NISTSchema-SV-IV-atomic-decimal-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="74NISTXML-SV-IV-atomic-decimal-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="75NISTXML-SV-IV-atomic-decimal-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="76NISTXML-SV-IV-atomic-decimal-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="77NISTXML-SV-IV-atomic-decimal-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="78NISTXML-SV-IV-atomic-decimal-maxExclusive-5-5 tokoe:valid" result="fail"/><test-case name="79NISTSchema-SV-IV-atomic-decimal-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="80NISTXML-SV-IV-atomic-decimal-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="81NISTSchema-SV-IV-atomic-decimal-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="82NISTXML-SV-IV-atomic-decimal-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="83NISTXML-SV-IV-atomic-decimal-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="84NISTXML-SV-IV-atomic-decimal-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="85NISTXML-SV-IV-atomic-decimal-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="86NISTXML-SV-IV-atomic-decimal-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="87NISTSchema-SV-IV-atomic-decimal-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="88NISTXML-SV-IV-atomic-decimal-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="89NISTXML-SV-IV-atomic-decimal-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="90NISTXML-SV-IV-atomic-decimal-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="91NISTXML-SV-IV-atomic-decimal-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="92NISTXML-SV-IV-atomic-decimal-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="93NISTSchema-SV-IV-atomic-decimal-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="94NISTXML-SV-IV-atomic-decimal-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="95NISTXML-SV-IV-atomic-decimal-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="96NISTXML-SV-IV-atomic-decimal-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="97NISTXML-SV-IV-atomic-decimal-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="98NISTXML-SV-IV-atomic-decimal-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="99NISTSchema-SV-IV-atomic-decimal-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="100NISTXML-SV-IV-atomic-decimal-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="101NISTXML-SV-IV-atomic-decimal-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="102NISTXML-SV-IV-atomic-decimal-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="103NISTXML-SV-IV-atomic-decimal-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="104NISTXML-SV-IV-atomic-decimal-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="105NISTSchema-SV-IV-atomic-decimal-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="106NISTXML-SV-IV-atomic-decimal-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="107NISTXML-SV-IV-atomic-decimal-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="108NISTXML-SV-IV-atomic-decimal-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="109NISTXML-SV-IV-atomic-decimal-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="110NISTXML-SV-IV-atomic-decimal-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="111NISTSchema-SV-IV-atomic-decimal-fractionDigits-2 tokoe:valid" result="pass"/><test-case name="112NISTXML-SV-IV-atomic-decimal-fractionDigits-2-1 tokoe:valid" result="pass"/><test-case name="113NISTXML-SV-IV-atomic-decimal-fractionDigits-2-2 tokoe:valid" result="pass"/><test-case name="114NISTXML-SV-IV-atomic-decimal-fractionDigits-2-3 tokoe:valid" result="pass"/><test-case name="115NISTXML-SV-IV-atomic-decimal-fractionDigits-2-4 tokoe:valid" result="pass"/><test-case name="116NISTXML-SV-IV-atomic-decimal-fractionDigits-2-5 tokoe:valid" result="pass"/><test-case name="117NISTSchema-SV-IV-atomic-decimal-fractionDigits-3 tokoe:valid" result="pass"/><test-case name="118NISTXML-SV-IV-atomic-decimal-fractionDigits-3-1 tokoe:valid" result="pass"/><test-case name="119NISTXML-SV-IV-atomic-decimal-fractionDigits-3-2 tokoe:valid" result="pass"/><test-case name="120NISTXML-SV-IV-atomic-decimal-fractionDigits-3-3 tokoe:valid" result="pass"/><test-case name="121NISTXML-SV-IV-atomic-decimal-fractionDigits-3-4 tokoe:valid" result="pass"/><test-case name="122NISTXML-SV-IV-atomic-decimal-fractionDigits-3-5 tokoe:valid" result="pass"/><test-case name="123NISTSchema-SV-IV-atomic-decimal-fractionDigits-4 tokoe:valid" result="pass"/><test-case name="124NISTXML-SV-IV-atomic-decimal-fractionDigits-4-1 tokoe:valid" result="pass"/><test-case name="125NISTXML-SV-IV-atomic-decimal-fractionDigits-4-2 tokoe:valid" result="pass"/><test-case name="126NISTXML-SV-IV-atomic-decimal-fractionDigits-4-3 tokoe:valid" result="pass"/><test-case name="127NISTXML-SV-IV-atomic-decimal-fractionDigits-4-4 tokoe:valid" result="pass"/><test-case name="128NISTXML-SV-IV-atomic-decimal-fractionDigits-4-5 tokoe:valid" result="pass"/><test-case name="129NISTSchema-SV-IV-atomic-decimal-fractionDigits-5 tokoe:valid" result="pass"/><test-case name="130NISTXML-SV-IV-atomic-decimal-fractionDigits-5-1 tokoe:valid" result="pass"/><test-case name="131NISTXML-SV-IV-atomic-decimal-fractionDigits-5-2 tokoe:valid" result="pass"/><test-case name="132NISTXML-SV-IV-atomic-decimal-fractionDigits-5-3 tokoe:valid" result="pass"/><test-case name="133NISTXML-SV-IV-atomic-decimal-fractionDigits-5-4 tokoe:valid" result="pass"/><test-case name="134NISTXML-SV-IV-atomic-decimal-fractionDigits-5-5 tokoe:valid" result="pass"/><test-case name="135NISTSchema-SV-IV-atomic-decimal-totalDigits-1 tokoe:valid" result="pass"/><test-case name="136NISTXML-SV-IV-atomic-decimal-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="137NISTXML-SV-IV-atomic-decimal-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="138NISTXML-SV-IV-atomic-decimal-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="139NISTXML-SV-IV-atomic-decimal-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="140NISTXML-SV-IV-atomic-decimal-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="141NISTSchema-SV-IV-atomic-decimal-totalDigits-2 tokoe:valid" result="pass"/><test-case name="142NISTXML-SV-IV-atomic-decimal-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="143NISTXML-SV-IV-atomic-decimal-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="144NISTXML-SV-IV-atomic-decimal-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="145NISTXML-SV-IV-atomic-decimal-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="146NISTXML-SV-IV-atomic-decimal-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="147NISTSchema-SV-IV-atomic-decimal-totalDigits-3 tokoe:valid" result="pass"/><test-case name="148NISTXML-SV-IV-atomic-decimal-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="149NISTXML-SV-IV-atomic-decimal-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="150NISTXML-SV-IV-atomic-decimal-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="151NISTXML-SV-IV-atomic-decimal-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="152NISTXML-SV-IV-atomic-decimal-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="153NISTSchema-SV-IV-atomic-decimal-totalDigits-4 tokoe:valid" result="pass"/><test-case name="154NISTXML-SV-IV-atomic-decimal-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="155NISTXML-SV-IV-atomic-decimal-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="156NISTXML-SV-IV-atomic-decimal-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="157NISTXML-SV-IV-atomic-decimal-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="158NISTXML-SV-IV-atomic-decimal-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="159NISTSchema-SV-IV-atomic-decimal-totalDigits-5 tokoe:valid" result="pass"/><test-case name="160NISTXML-SV-IV-atomic-decimal-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="161NISTXML-SV-IV-atomic-decimal-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="162NISTXML-SV-IV-atomic-decimal-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="163NISTXML-SV-IV-atomic-decimal-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="164NISTXML-SV-IV-atomic-decimal-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="165NISTSchema-SV-IV-atomic-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="166NISTXML-SV-IV-atomic-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="167NISTXML-SV-IV-atomic-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="168NISTXML-SV-IV-atomic-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="169NISTXML-SV-IV-atomic-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="170NISTXML-SV-IV-atomic-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="171NISTSchema-SV-IV-atomic-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="172NISTXML-SV-IV-atomic-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="173NISTXML-SV-IV-atomic-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="174NISTXML-SV-IV-atomic-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="175NISTXML-SV-IV-atomic-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="176NISTXML-SV-IV-atomic-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="177NISTSchema-SV-IV-atomic-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="178NISTXML-SV-IV-atomic-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="179NISTXML-SV-IV-atomic-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="180NISTXML-SV-IV-atomic-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="181NISTXML-SV-IV-atomic-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="182NISTXML-SV-IV-atomic-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="183NISTSchema-SV-IV-atomic-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="184NISTXML-SV-IV-atomic-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="185NISTXML-SV-IV-atomic-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="186NISTXML-SV-IV-atomic-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="187NISTXML-SV-IV-atomic-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="188NISTXML-SV-IV-atomic-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="189NISTSchema-SV-IV-atomic-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="190NISTXML-SV-IV-atomic-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="191NISTXML-SV-IV-atomic-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="192NISTXML-SV-IV-atomic-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="193NISTXML-SV-IV-atomic-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="194NISTXML-SV-IV-atomic-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="195NISTSchema-SV-IV-atomic-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="196NISTXML-SV-IV-atomic-decimal-enumeration-1-1 tokoe:valid" result="fail"/><test-case name="197NISTXML-SV-IV-atomic-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="198NISTXML-SV-IV-atomic-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="199NISTXML-SV-IV-atomic-decimal-enumeration-1-4 tokoe:valid" result="fail"/><test-case name="200NISTXML-SV-IV-atomic-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="201NISTSchema-SV-IV-atomic-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="202NISTXML-SV-IV-atomic-decimal-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="203NISTXML-SV-IV-atomic-decimal-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="204NISTXML-SV-IV-atomic-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="205NISTXML-SV-IV-atomic-decimal-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="206NISTXML-SV-IV-atomic-decimal-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="207NISTSchema-SV-IV-atomic-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="208NISTXML-SV-IV-atomic-decimal-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="209NISTXML-SV-IV-atomic-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="210NISTXML-SV-IV-atomic-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="211NISTXML-SV-IV-atomic-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="212NISTXML-SV-IV-atomic-decimal-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="213NISTSchema-SV-IV-atomic-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="214NISTXML-SV-IV-atomic-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="215NISTXML-SV-IV-atomic-decimal-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="216NISTXML-SV-IV-atomic-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="217NISTXML-SV-IV-atomic-decimal-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="218NISTXML-SV-IV-atomic-decimal-enumeration-4-5 tokoe:valid" result="fail"/><test-case name="219NISTSchema-SV-IV-atomic-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="220NISTXML-SV-IV-atomic-decimal-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="221NISTXML-SV-IV-atomic-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="222NISTXML-SV-IV-atomic-decimal-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="223NISTXML-SV-IV-atomic-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="224NISTXML-SV-IV-atomic-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="225NISTSchema-SV-IV-atomic-decimal-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="226NISTXML-SV-IV-atomic-decimal-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="227NISTXML-SV-IV-atomic-decimal-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="228NISTXML-SV-IV-atomic-decimal-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="229NISTXML-SV-IV-atomic-decimal-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="230NISTXML-SV-IV-atomic-decimal-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="231NISTSchema-SV-IV-atomic-integer-minExclusive-1 tokoe:valid" result="pass"/><test-case name="232NISTXML-SV-IV-atomic-integer-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="233NISTXML-SV-IV-atomic-integer-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="234NISTXML-SV-IV-atomic-integer-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="235NISTXML-SV-IV-atomic-integer-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="236NISTXML-SV-IV-atomic-integer-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="237NISTSchema-SV-IV-atomic-integer-minExclusive-2 tokoe:valid" result="pass"/><test-case name="238NISTXML-SV-IV-atomic-integer-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="239NISTXML-SV-IV-atomic-integer-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="240NISTXML-SV-IV-atomic-integer-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="241NISTXML-SV-IV-atomic-integer-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="242NISTXML-SV-IV-atomic-integer-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="243NISTSchema-SV-IV-atomic-integer-minExclusive-3 tokoe:valid" result="pass"/><test-case name="244NISTXML-SV-IV-atomic-integer-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="245NISTXML-SV-IV-atomic-integer-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="246NISTXML-SV-IV-atomic-integer-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="247NISTXML-SV-IV-atomic-integer-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="248NISTXML-SV-IV-atomic-integer-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="249NISTSchema-SV-IV-atomic-integer-minExclusive-4 tokoe:valid" result="pass"/><test-case name="250NISTXML-SV-IV-atomic-integer-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="251NISTXML-SV-IV-atomic-integer-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="252NISTXML-SV-IV-atomic-integer-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="253NISTXML-SV-IV-atomic-integer-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="254NISTXML-SV-IV-atomic-integer-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="255NISTSchema-SV-IV-atomic-integer-minExclusive-5 tokoe:valid" result="pass"/><test-case name="256NISTXML-SV-IV-atomic-integer-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="257NISTSchema-SV-IV-atomic-integer-minInclusive-1 tokoe:valid" result="pass"/><test-case name="258NISTXML-SV-IV-atomic-integer-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="259NISTXML-SV-IV-atomic-integer-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="260NISTXML-SV-IV-atomic-integer-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="261NISTXML-SV-IV-atomic-integer-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="262NISTXML-SV-IV-atomic-integer-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="263NISTSchema-SV-IV-atomic-integer-minInclusive-2 tokoe:valid" result="pass"/><test-case name="264NISTXML-SV-IV-atomic-integer-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="265NISTXML-SV-IV-atomic-integer-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="266NISTXML-SV-IV-atomic-integer-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="267NISTXML-SV-IV-atomic-integer-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="268NISTXML-SV-IV-atomic-integer-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="269NISTSchema-SV-IV-atomic-integer-minInclusive-3 tokoe:valid" result="pass"/><test-case name="270NISTXML-SV-IV-atomic-integer-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="271NISTXML-SV-IV-atomic-integer-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="272NISTXML-SV-IV-atomic-integer-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="273NISTXML-SV-IV-atomic-integer-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="274NISTXML-SV-IV-atomic-integer-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="275NISTSchema-SV-IV-atomic-integer-minInclusive-4 tokoe:valid" result="pass"/><test-case name="276NISTXML-SV-IV-atomic-integer-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="277NISTXML-SV-IV-atomic-integer-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="278NISTXML-SV-IV-atomic-integer-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="279NISTXML-SV-IV-atomic-integer-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="280NISTXML-SV-IV-atomic-integer-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="281NISTSchema-SV-IV-atomic-integer-minInclusive-5 tokoe:valid" result="pass"/><test-case name="282NISTXML-SV-IV-atomic-integer-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="283NISTSchema-SV-IV-atomic-integer-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="284NISTXML-SV-IV-atomic-integer-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="285NISTSchema-SV-IV-atomic-integer-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="286NISTXML-SV-IV-atomic-integer-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="287NISTXML-SV-IV-atomic-integer-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="288NISTXML-SV-IV-atomic-integer-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="289NISTXML-SV-IV-atomic-integer-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="290NISTXML-SV-IV-atomic-integer-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="291NISTSchema-SV-IV-atomic-integer-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="292NISTXML-SV-IV-atomic-integer-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="293NISTXML-SV-IV-atomic-integer-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="294NISTXML-SV-IV-atomic-integer-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="295NISTXML-SV-IV-atomic-integer-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="296NISTXML-SV-IV-atomic-integer-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="297NISTSchema-SV-IV-atomic-integer-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="298NISTXML-SV-IV-atomic-integer-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="299NISTXML-SV-IV-atomic-integer-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="300NISTXML-SV-IV-atomic-integer-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="301NISTXML-SV-IV-atomic-integer-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="302NISTXML-SV-IV-atomic-integer-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="303NISTSchema-SV-IV-atomic-integer-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="304NISTXML-SV-IV-atomic-integer-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="305NISTXML-SV-IV-atomic-integer-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="306NISTXML-SV-IV-atomic-integer-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="307NISTXML-SV-IV-atomic-integer-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="308NISTXML-SV-IV-atomic-integer-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="309NISTSchema-SV-IV-atomic-integer-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="310NISTXML-SV-IV-atomic-integer-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="311NISTSchema-SV-IV-atomic-integer-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="312NISTXML-SV-IV-atomic-integer-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="313NISTXML-SV-IV-atomic-integer-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="314NISTXML-SV-IV-atomic-integer-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="315NISTXML-SV-IV-atomic-integer-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="316NISTXML-SV-IV-atomic-integer-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="317NISTSchema-SV-IV-atomic-integer-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="318NISTXML-SV-IV-atomic-integer-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="319NISTXML-SV-IV-atomic-integer-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="320NISTXML-SV-IV-atomic-integer-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="321NISTXML-SV-IV-atomic-integer-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="322NISTXML-SV-IV-atomic-integer-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="323NISTSchema-SV-IV-atomic-integer-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="324NISTXML-SV-IV-atomic-integer-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="325NISTXML-SV-IV-atomic-integer-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="326NISTXML-SV-IV-atomic-integer-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="327NISTXML-SV-IV-atomic-integer-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="328NISTXML-SV-IV-atomic-integer-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="329NISTSchema-SV-IV-atomic-integer-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="330NISTXML-SV-IV-atomic-integer-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="331NISTXML-SV-IV-atomic-integer-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="332NISTXML-SV-IV-atomic-integer-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="333NISTXML-SV-IV-atomic-integer-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="334NISTXML-SV-IV-atomic-integer-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="335NISTSchema-SV-IV-atomic-integer-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="336NISTXML-SV-IV-atomic-integer-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="337NISTXML-SV-IV-atomic-integer-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="338NISTXML-SV-IV-atomic-integer-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="339NISTXML-SV-IV-atomic-integer-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="340NISTXML-SV-IV-atomic-integer-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="341NISTSchema-SV-IV-atomic-integer-totalDigits-1 tokoe:valid" result="pass"/><test-case name="342NISTXML-SV-IV-atomic-integer-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="343NISTXML-SV-IV-atomic-integer-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="344NISTXML-SV-IV-atomic-integer-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="345NISTXML-SV-IV-atomic-integer-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="346NISTXML-SV-IV-atomic-integer-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="347NISTSchema-SV-IV-atomic-integer-totalDigits-2 tokoe:valid" result="pass"/><test-case name="348NISTXML-SV-IV-atomic-integer-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="349NISTXML-SV-IV-atomic-integer-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="350NISTXML-SV-IV-atomic-integer-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="351NISTXML-SV-IV-atomic-integer-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="352NISTXML-SV-IV-atomic-integer-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="353NISTSchema-SV-IV-atomic-integer-totalDigits-3 tokoe:valid" result="pass"/><test-case name="354NISTXML-SV-IV-atomic-integer-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="355NISTXML-SV-IV-atomic-integer-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="356NISTXML-SV-IV-atomic-integer-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="357NISTXML-SV-IV-atomic-integer-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="358NISTXML-SV-IV-atomic-integer-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="359NISTSchema-SV-IV-atomic-integer-totalDigits-4 tokoe:valid" result="pass"/><test-case name="360NISTXML-SV-IV-atomic-integer-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="361NISTXML-SV-IV-atomic-integer-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="362NISTXML-SV-IV-atomic-integer-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="363NISTXML-SV-IV-atomic-integer-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="364NISTXML-SV-IV-atomic-integer-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="365NISTSchema-SV-IV-atomic-integer-totalDigits-5 tokoe:valid" result="pass"/><test-case name="366NISTXML-SV-IV-atomic-integer-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="367NISTXML-SV-IV-atomic-integer-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="368NISTXML-SV-IV-atomic-integer-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="369NISTXML-SV-IV-atomic-integer-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="370NISTXML-SV-IV-atomic-integer-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="371NISTSchema-SV-IV-atomic-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="372NISTXML-SV-IV-atomic-integer-pattern-1-1 tokoe:valid" result="pass"/><test-case name="373NISTXML-SV-IV-atomic-integer-pattern-1-2 tokoe:valid" result="pass"/><test-case name="374NISTXML-SV-IV-atomic-integer-pattern-1-3 tokoe:valid" result="pass"/><test-case name="375NISTXML-SV-IV-atomic-integer-pattern-1-4 tokoe:valid" result="pass"/><test-case name="376NISTXML-SV-IV-atomic-integer-pattern-1-5 tokoe:valid" result="pass"/><test-case name="377NISTSchema-SV-IV-atomic-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="378NISTXML-SV-IV-atomic-integer-pattern-2-1 tokoe:valid" result="pass"/><test-case name="379NISTXML-SV-IV-atomic-integer-pattern-2-2 tokoe:valid" result="pass"/><test-case name="380NISTXML-SV-IV-atomic-integer-pattern-2-3 tokoe:valid" result="pass"/><test-case name="381NISTXML-SV-IV-atomic-integer-pattern-2-4 tokoe:valid" result="pass"/><test-case name="382NISTXML-SV-IV-atomic-integer-pattern-2-5 tokoe:valid" result="pass"/><test-case name="383NISTSchema-SV-IV-atomic-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="384NISTXML-SV-IV-atomic-integer-pattern-3-1 tokoe:valid" result="pass"/><test-case name="385NISTXML-SV-IV-atomic-integer-pattern-3-2 tokoe:valid" result="pass"/><test-case name="386NISTXML-SV-IV-atomic-integer-pattern-3-3 tokoe:valid" result="pass"/><test-case name="387NISTXML-SV-IV-atomic-integer-pattern-3-4 tokoe:valid" result="pass"/><test-case name="388NISTXML-SV-IV-atomic-integer-pattern-3-5 tokoe:valid" result="pass"/><test-case name="389NISTSchema-SV-IV-atomic-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="390NISTXML-SV-IV-atomic-integer-pattern-4-1 tokoe:valid" result="pass"/><test-case name="391NISTXML-SV-IV-atomic-integer-pattern-4-2 tokoe:valid" result="pass"/><test-case name="392NISTXML-SV-IV-atomic-integer-pattern-4-3 tokoe:valid" result="pass"/><test-case name="393NISTXML-SV-IV-atomic-integer-pattern-4-4 tokoe:valid" result="pass"/><test-case name="394NISTXML-SV-IV-atomic-integer-pattern-4-5 tokoe:valid" result="pass"/><test-case name="395NISTSchema-SV-IV-atomic-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="396NISTXML-SV-IV-atomic-integer-pattern-5-1 tokoe:valid" result="pass"/><test-case name="397NISTXML-SV-IV-atomic-integer-pattern-5-2 tokoe:valid" result="pass"/><test-case name="398NISTXML-SV-IV-atomic-integer-pattern-5-3 tokoe:valid" result="pass"/><test-case name="399NISTXML-SV-IV-atomic-integer-pattern-5-4 tokoe:valid" result="pass"/><test-case name="400NISTXML-SV-IV-atomic-integer-pattern-5-5 tokoe:valid" result="pass"/><test-case name="401NISTSchema-SV-IV-atomic-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="402NISTXML-SV-IV-atomic-integer-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="403NISTXML-SV-IV-atomic-integer-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="404NISTXML-SV-IV-atomic-integer-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="405NISTXML-SV-IV-atomic-integer-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="406NISTXML-SV-IV-atomic-integer-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="407NISTSchema-SV-IV-atomic-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="408NISTXML-SV-IV-atomic-integer-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="409NISTXML-SV-IV-atomic-integer-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="410NISTXML-SV-IV-atomic-integer-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="411NISTXML-SV-IV-atomic-integer-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="412NISTXML-SV-IV-atomic-integer-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="413NISTSchema-SV-IV-atomic-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="414NISTXML-SV-IV-atomic-integer-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="415NISTXML-SV-IV-atomic-integer-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="416NISTXML-SV-IV-atomic-integer-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="417NISTXML-SV-IV-atomic-integer-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="418NISTXML-SV-IV-atomic-integer-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="419NISTSchema-SV-IV-atomic-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="420NISTXML-SV-IV-atomic-integer-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="421NISTXML-SV-IV-atomic-integer-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="422NISTXML-SV-IV-atomic-integer-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="423NISTXML-SV-IV-atomic-integer-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="424NISTXML-SV-IV-atomic-integer-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="425NISTSchema-SV-IV-atomic-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="426NISTXML-SV-IV-atomic-integer-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="427NISTXML-SV-IV-atomic-integer-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="428NISTXML-SV-IV-atomic-integer-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="429NISTXML-SV-IV-atomic-integer-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="430NISTXML-SV-IV-atomic-integer-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="431NISTSchema-SV-IV-atomic-integer-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="432NISTXML-SV-IV-atomic-integer-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="433NISTXML-SV-IV-atomic-integer-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="434NISTXML-SV-IV-atomic-integer-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="435NISTXML-SV-IV-atomic-integer-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="436NISTXML-SV-IV-atomic-integer-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="437NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="438NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="439NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="440NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="441NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="442NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="443NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="444NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="445NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="446NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="447NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="448NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="449NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="450NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="451NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="452NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="453NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="454NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="455NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="456NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="457NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="458NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="459NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="460NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="461NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="462NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="463NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="464NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="465NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="466NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="467NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="468NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="469NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="470NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="471NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="472NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="473NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="474NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="475NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="476NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="477NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="478NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="479NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="480NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="481NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="482NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="483NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="484NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="485NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="486NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="487NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="488NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="489NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="490NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="491NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="492NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="493NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="494NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="495NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="496NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="497NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="498NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="499NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="500NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="501NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="502NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="503NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="504NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="505NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="506NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="507NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="508NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="509NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="510NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="511NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="512NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="513NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="514NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="515NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="516NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="517NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="518NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="519NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="520NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="521NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="522NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="523NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="524NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="525NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="526NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="527NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="528NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="529NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="530NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="531NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="532NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="533NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="534NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="535NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="536NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="537NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="538NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="539NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="540NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="541NISTSchema-SV-IV-atomic-nonPositiveInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="542NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="543NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="544NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="545NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="546NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="547NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="548NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="549NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="550NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="551NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="552NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="553NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="554NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="555NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="556NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="557NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="558NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="559NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="560NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="561NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="562NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="563NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="564NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="565NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="566NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="567NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="568NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="569NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="570NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="571NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="572NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="573NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="574NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="575NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="576NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="577NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="578NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="579NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="580NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="581NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="582NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="583NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="584NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="585NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="586NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="587NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="588NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="589NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="590NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="591NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="592NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="593NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="594NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="595NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="596NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="597NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="598NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="599NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="600NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="601NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="602NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="603NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="604NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="605NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="606NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="607NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="608NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="609NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="610NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="611NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="612NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="613NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="614NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="615NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="616NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="617NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="618NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="619NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="620NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="621NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="622NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="623NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="624NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="625NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="626NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="627NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="628NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="629NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="630NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="631NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="632NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="633NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="634NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="635NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="636NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="637NISTSchema-SV-IV-atomic-nonPositiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="638NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="639NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="640NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="641NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="642NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="643NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="644NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="645NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="646NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="647NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="648NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="649NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="650NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="651NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="652NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="653NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="654NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="655NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="656NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="657NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="658NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="659NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="660NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="661NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="662NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="663NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="664NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="665NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="666NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="667NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="668NISTXML-SV-IV-atomic-negativeInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="669NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="670NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="671NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="672NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="673NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="674NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="675NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="676NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="677NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="678NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="679NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="680NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="681NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="682NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="683NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="684NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="685NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="686NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="687NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="688NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="689NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="690NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="691NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="692NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="693NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="694NISTXML-SV-IV-atomic-negativeInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="695NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="696NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="697NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="698NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="699NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="700NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="701NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="702NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="703NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="704NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="705NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="706NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="707NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="708NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="709NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="710NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="711NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="712NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="713NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="714NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="715NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="716NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="717NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="718NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="719NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="720NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="721NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="722NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="723NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="724NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="725NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="726NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="727NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="728NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="729NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="730NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="731NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="732NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="733NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="734NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="735NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="736NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="737NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="738NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="739NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="740NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="741NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="742NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="743NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="744NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="745NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="746NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="747NISTSchema-SV-IV-atomic-negativeInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="748NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="749NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="750NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="751NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="752NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="753NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="754NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="755NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="756NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="757NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="758NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="759NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="760NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="761NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="762NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="763NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="764NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="765NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="766NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="767NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="768NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="769NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="770NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="771NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="772NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="773NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="774NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="775NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="776NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="777NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="778NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="779NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="780NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="781NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="782NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="783NISTSchema-SV-IV-atomic-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="784NISTXML-SV-IV-atomic-negativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="785NISTXML-SV-IV-atomic-negativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="786NISTXML-SV-IV-atomic-negativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="787NISTXML-SV-IV-atomic-negativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="788NISTXML-SV-IV-atomic-negativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="789NISTSchema-SV-IV-atomic-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="790NISTXML-SV-IV-atomic-negativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="791NISTXML-SV-IV-atomic-negativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="792NISTXML-SV-IV-atomic-negativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="793NISTXML-SV-IV-atomic-negativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="794NISTXML-SV-IV-atomic-negativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="795NISTSchema-SV-IV-atomic-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="796NISTXML-SV-IV-atomic-negativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="797NISTXML-SV-IV-atomic-negativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="798NISTXML-SV-IV-atomic-negativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="799NISTXML-SV-IV-atomic-negativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="800NISTXML-SV-IV-atomic-negativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="801NISTSchema-SV-IV-atomic-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="802NISTXML-SV-IV-atomic-negativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="803NISTXML-SV-IV-atomic-negativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="804NISTXML-SV-IV-atomic-negativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="805NISTXML-SV-IV-atomic-negativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="806NISTXML-SV-IV-atomic-negativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="807NISTSchema-SV-IV-atomic-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="808NISTXML-SV-IV-atomic-negativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="809NISTXML-SV-IV-atomic-negativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="810NISTXML-SV-IV-atomic-negativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="811NISTXML-SV-IV-atomic-negativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="812NISTXML-SV-IV-atomic-negativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="813NISTSchema-SV-IV-atomic-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="814NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="815NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="816NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="817NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="818NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="819NISTSchema-SV-IV-atomic-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="820NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="821NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="822NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="823NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="824NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="825NISTSchema-SV-IV-atomic-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="826NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="827NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="828NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="829NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="830NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="831NISTSchema-SV-IV-atomic-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="832NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="833NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="834NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="835NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="836NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="837NISTSchema-SV-IV-atomic-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="838NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="839NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="840NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="841NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="842NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="843NISTSchema-SV-IV-atomic-negativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="844NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="845NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="846NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="847NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="848NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="849NISTSchema-SV-IV-atomic-long-minExclusive-1 tokoe:valid" result="pass"/><test-case name="850NISTXML-SV-IV-atomic-long-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="851NISTXML-SV-IV-atomic-long-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="852NISTXML-SV-IV-atomic-long-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="853NISTXML-SV-IV-atomic-long-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="854NISTXML-SV-IV-atomic-long-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="855NISTSchema-SV-IV-atomic-long-minExclusive-2 tokoe:valid" result="pass"/><test-case name="856NISTXML-SV-IV-atomic-long-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="857NISTXML-SV-IV-atomic-long-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="858NISTXML-SV-IV-atomic-long-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="859NISTXML-SV-IV-atomic-long-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="860NISTXML-SV-IV-atomic-long-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="861NISTSchema-SV-IV-atomic-long-minExclusive-3 tokoe:valid" result="pass"/><test-case name="862NISTXML-SV-IV-atomic-long-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="863NISTXML-SV-IV-atomic-long-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="864NISTXML-SV-IV-atomic-long-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="865NISTXML-SV-IV-atomic-long-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="866NISTXML-SV-IV-atomic-long-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="867NISTSchema-SV-IV-atomic-long-minExclusive-4 tokoe:valid" result="pass"/><test-case name="868NISTXML-SV-IV-atomic-long-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="869NISTXML-SV-IV-atomic-long-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="870NISTXML-SV-IV-atomic-long-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="871NISTXML-SV-IV-atomic-long-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="872NISTXML-SV-IV-atomic-long-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="873NISTSchema-SV-IV-atomic-long-minExclusive-5 tokoe:valid" result="pass"/><test-case name="874NISTXML-SV-IV-atomic-long-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="875NISTSchema-SV-IV-atomic-long-minInclusive-1 tokoe:valid" result="pass"/><test-case name="876NISTXML-SV-IV-atomic-long-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="877NISTXML-SV-IV-atomic-long-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="878NISTXML-SV-IV-atomic-long-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="879NISTXML-SV-IV-atomic-long-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="880NISTXML-SV-IV-atomic-long-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="881NISTSchema-SV-IV-atomic-long-minInclusive-2 tokoe:valid" result="pass"/><test-case name="882NISTXML-SV-IV-atomic-long-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="883NISTXML-SV-IV-atomic-long-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="884NISTXML-SV-IV-atomic-long-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="885NISTXML-SV-IV-atomic-long-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="886NISTXML-SV-IV-atomic-long-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="887NISTSchema-SV-IV-atomic-long-minInclusive-3 tokoe:valid" result="pass"/><test-case name="888NISTXML-SV-IV-atomic-long-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="889NISTXML-SV-IV-atomic-long-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="890NISTXML-SV-IV-atomic-long-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="891NISTXML-SV-IV-atomic-long-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="892NISTXML-SV-IV-atomic-long-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="893NISTSchema-SV-IV-atomic-long-minInclusive-4 tokoe:valid" result="pass"/><test-case name="894NISTXML-SV-IV-atomic-long-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="895NISTXML-SV-IV-atomic-long-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="896NISTXML-SV-IV-atomic-long-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="897NISTXML-SV-IV-atomic-long-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="898NISTXML-SV-IV-atomic-long-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="899NISTSchema-SV-IV-atomic-long-minInclusive-5 tokoe:valid" result="pass"/><test-case name="900NISTXML-SV-IV-atomic-long-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="901NISTSchema-SV-IV-atomic-long-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="902NISTXML-SV-IV-atomic-long-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="903NISTSchema-SV-IV-atomic-long-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="904NISTXML-SV-IV-atomic-long-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="905NISTXML-SV-IV-atomic-long-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="906NISTXML-SV-IV-atomic-long-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="907NISTXML-SV-IV-atomic-long-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="908NISTXML-SV-IV-atomic-long-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="909NISTSchema-SV-IV-atomic-long-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="910NISTXML-SV-IV-atomic-long-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="911NISTXML-SV-IV-atomic-long-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="912NISTXML-SV-IV-atomic-long-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="913NISTXML-SV-IV-atomic-long-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="914NISTXML-SV-IV-atomic-long-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="915NISTSchema-SV-IV-atomic-long-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="916NISTXML-SV-IV-atomic-long-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="917NISTXML-SV-IV-atomic-long-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="918NISTXML-SV-IV-atomic-long-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="919NISTXML-SV-IV-atomic-long-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="920NISTXML-SV-IV-atomic-long-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="921NISTSchema-SV-IV-atomic-long-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="922NISTXML-SV-IV-atomic-long-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="923NISTXML-SV-IV-atomic-long-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="924NISTXML-SV-IV-atomic-long-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="925NISTXML-SV-IV-atomic-long-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="926NISTXML-SV-IV-atomic-long-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="927NISTSchema-SV-IV-atomic-long-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="928NISTXML-SV-IV-atomic-long-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="929NISTSchema-SV-IV-atomic-long-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="930NISTXML-SV-IV-atomic-long-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="931NISTXML-SV-IV-atomic-long-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="932NISTXML-SV-IV-atomic-long-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="933NISTXML-SV-IV-atomic-long-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="934NISTXML-SV-IV-atomic-long-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="935NISTSchema-SV-IV-atomic-long-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="936NISTXML-SV-IV-atomic-long-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="937NISTXML-SV-IV-atomic-long-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="938NISTXML-SV-IV-atomic-long-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="939NISTXML-SV-IV-atomic-long-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="940NISTXML-SV-IV-atomic-long-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="941NISTSchema-SV-IV-atomic-long-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="942NISTXML-SV-IV-atomic-long-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="943NISTXML-SV-IV-atomic-long-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="944NISTXML-SV-IV-atomic-long-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="945NISTXML-SV-IV-atomic-long-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="946NISTXML-SV-IV-atomic-long-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="947NISTSchema-SV-IV-atomic-long-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="948NISTXML-SV-IV-atomic-long-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="949NISTXML-SV-IV-atomic-long-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="950NISTXML-SV-IV-atomic-long-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="951NISTXML-SV-IV-atomic-long-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="952NISTXML-SV-IV-atomic-long-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="953NISTSchema-SV-IV-atomic-long-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="954NISTXML-SV-IV-atomic-long-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="955NISTXML-SV-IV-atomic-long-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="956NISTXML-SV-IV-atomic-long-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="957NISTXML-SV-IV-atomic-long-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="958NISTXML-SV-IV-atomic-long-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="959NISTSchema-SV-IV-atomic-long-totalDigits-1 tokoe:valid" result="pass"/><test-case name="960NISTXML-SV-IV-atomic-long-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="961NISTXML-SV-IV-atomic-long-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="962NISTXML-SV-IV-atomic-long-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="963NISTXML-SV-IV-atomic-long-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="964NISTXML-SV-IV-atomic-long-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="965NISTSchema-SV-IV-atomic-long-totalDigits-2 tokoe:valid" result="pass"/><test-case name="966NISTXML-SV-IV-atomic-long-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="967NISTXML-SV-IV-atomic-long-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="968NISTXML-SV-IV-atomic-long-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="969NISTXML-SV-IV-atomic-long-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="970NISTXML-SV-IV-atomic-long-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="971NISTSchema-SV-IV-atomic-long-totalDigits-3 tokoe:valid" result="pass"/><test-case name="972NISTXML-SV-IV-atomic-long-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="973NISTXML-SV-IV-atomic-long-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="974NISTXML-SV-IV-atomic-long-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="975NISTXML-SV-IV-atomic-long-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="976NISTXML-SV-IV-atomic-long-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="977NISTSchema-SV-IV-atomic-long-totalDigits-4 tokoe:valid" result="pass"/><test-case name="978NISTXML-SV-IV-atomic-long-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="979NISTXML-SV-IV-atomic-long-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="980NISTXML-SV-IV-atomic-long-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="981NISTXML-SV-IV-atomic-long-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="982NISTXML-SV-IV-atomic-long-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="983NISTSchema-SV-IV-atomic-long-totalDigits-5 tokoe:valid" result="pass"/><test-case name="984NISTXML-SV-IV-atomic-long-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="985NISTXML-SV-IV-atomic-long-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="986NISTXML-SV-IV-atomic-long-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="987NISTXML-SV-IV-atomic-long-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="988NISTXML-SV-IV-atomic-long-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="989NISTSchema-SV-IV-atomic-long-pattern-1 tokoe:valid" result="pass"/><test-case name="990NISTXML-SV-IV-atomic-long-pattern-1-1 tokoe:valid" result="pass"/><test-case name="991NISTXML-SV-IV-atomic-long-pattern-1-2 tokoe:valid" result="pass"/><test-case name="992NISTXML-SV-IV-atomic-long-pattern-1-3 tokoe:valid" result="pass"/><test-case name="993NISTXML-SV-IV-atomic-long-pattern-1-4 tokoe:valid" result="pass"/><test-case name="994NISTXML-SV-IV-atomic-long-pattern-1-5 tokoe:valid" result="pass"/><test-case name="995NISTSchema-SV-IV-atomic-long-pattern-2 tokoe:valid" result="pass"/><test-case name="996NISTXML-SV-IV-atomic-long-pattern-2-1 tokoe:valid" result="pass"/><test-case name="997NISTXML-SV-IV-atomic-long-pattern-2-2 tokoe:valid" result="pass"/><test-case name="998NISTXML-SV-IV-atomic-long-pattern-2-3 tokoe:valid" result="pass"/><test-case name="999NISTXML-SV-IV-atomic-long-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1000NISTXML-SV-IV-atomic-long-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1001NISTSchema-SV-IV-atomic-long-pattern-3 tokoe:valid" result="pass"/><test-case name="1002NISTXML-SV-IV-atomic-long-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1003NISTXML-SV-IV-atomic-long-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1004NISTXML-SV-IV-atomic-long-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1005NISTXML-SV-IV-atomic-long-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1006NISTXML-SV-IV-atomic-long-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1007NISTSchema-SV-IV-atomic-long-pattern-4 tokoe:valid" result="pass"/><test-case name="1008NISTXML-SV-IV-atomic-long-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1009NISTXML-SV-IV-atomic-long-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1010NISTXML-SV-IV-atomic-long-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1011NISTXML-SV-IV-atomic-long-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1012NISTXML-SV-IV-atomic-long-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1013NISTSchema-SV-IV-atomic-long-pattern-5 tokoe:valid" result="pass"/><test-case name="1014NISTXML-SV-IV-atomic-long-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1015NISTXML-SV-IV-atomic-long-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1016NISTXML-SV-IV-atomic-long-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1017NISTXML-SV-IV-atomic-long-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1018NISTXML-SV-IV-atomic-long-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1019NISTSchema-SV-IV-atomic-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="1020NISTXML-SV-IV-atomic-long-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1021NISTXML-SV-IV-atomic-long-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1022NISTXML-SV-IV-atomic-long-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1023NISTXML-SV-IV-atomic-long-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1024NISTXML-SV-IV-atomic-long-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1025NISTSchema-SV-IV-atomic-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="1026NISTXML-SV-IV-atomic-long-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1027NISTXML-SV-IV-atomic-long-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1028NISTXML-SV-IV-atomic-long-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1029NISTXML-SV-IV-atomic-long-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1030NISTXML-SV-IV-atomic-long-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1031NISTSchema-SV-IV-atomic-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="1032NISTXML-SV-IV-atomic-long-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1033NISTXML-SV-IV-atomic-long-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1034NISTXML-SV-IV-atomic-long-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1035NISTXML-SV-IV-atomic-long-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1036NISTXML-SV-IV-atomic-long-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1037NISTSchema-SV-IV-atomic-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="1038NISTXML-SV-IV-atomic-long-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1039NISTXML-SV-IV-atomic-long-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1040NISTXML-SV-IV-atomic-long-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1041NISTXML-SV-IV-atomic-long-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1042NISTXML-SV-IV-atomic-long-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1043NISTSchema-SV-IV-atomic-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="1044NISTXML-SV-IV-atomic-long-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1045NISTXML-SV-IV-atomic-long-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1046NISTXML-SV-IV-atomic-long-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1047NISTXML-SV-IV-atomic-long-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1048NISTXML-SV-IV-atomic-long-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1049NISTSchema-SV-IV-atomic-long-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1050NISTXML-SV-IV-atomic-long-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1051NISTXML-SV-IV-atomic-long-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1052NISTXML-SV-IV-atomic-long-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1053NISTXML-SV-IV-atomic-long-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1054NISTXML-SV-IV-atomic-long-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1055NISTSchema-SV-IV-atomic-int-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1056NISTXML-SV-IV-atomic-int-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1057NISTXML-SV-IV-atomic-int-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1058NISTXML-SV-IV-atomic-int-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1059NISTXML-SV-IV-atomic-int-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1060NISTXML-SV-IV-atomic-int-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1061NISTSchema-SV-IV-atomic-int-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1062NISTXML-SV-IV-atomic-int-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1063NISTXML-SV-IV-atomic-int-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1064NISTXML-SV-IV-atomic-int-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1065NISTXML-SV-IV-atomic-int-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1066NISTXML-SV-IV-atomic-int-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1067NISTSchema-SV-IV-atomic-int-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1068NISTXML-SV-IV-atomic-int-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1069NISTXML-SV-IV-atomic-int-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1070NISTXML-SV-IV-atomic-int-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1071NISTXML-SV-IV-atomic-int-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1072NISTXML-SV-IV-atomic-int-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1073NISTSchema-SV-IV-atomic-int-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1074NISTXML-SV-IV-atomic-int-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1075NISTXML-SV-IV-atomic-int-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1076NISTXML-SV-IV-atomic-int-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1077NISTXML-SV-IV-atomic-int-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1078NISTXML-SV-IV-atomic-int-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1079NISTSchema-SV-IV-atomic-int-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1080NISTXML-SV-IV-atomic-int-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1081NISTSchema-SV-IV-atomic-int-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1082NISTXML-SV-IV-atomic-int-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1083NISTXML-SV-IV-atomic-int-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1084NISTXML-SV-IV-atomic-int-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1085NISTXML-SV-IV-atomic-int-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1086NISTXML-SV-IV-atomic-int-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1087NISTSchema-SV-IV-atomic-int-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1088NISTXML-SV-IV-atomic-int-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1089NISTXML-SV-IV-atomic-int-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1090NISTXML-SV-IV-atomic-int-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1091NISTXML-SV-IV-atomic-int-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1092NISTXML-SV-IV-atomic-int-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1093NISTSchema-SV-IV-atomic-int-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1094NISTXML-SV-IV-atomic-int-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1095NISTXML-SV-IV-atomic-int-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1096NISTXML-SV-IV-atomic-int-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1097NISTXML-SV-IV-atomic-int-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1098NISTXML-SV-IV-atomic-int-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1099NISTSchema-SV-IV-atomic-int-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1100NISTXML-SV-IV-atomic-int-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1101NISTXML-SV-IV-atomic-int-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1102NISTXML-SV-IV-atomic-int-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1103NISTXML-SV-IV-atomic-int-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1104NISTXML-SV-IV-atomic-int-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1105NISTSchema-SV-IV-atomic-int-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1106NISTXML-SV-IV-atomic-int-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1107NISTSchema-SV-IV-atomic-int-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1108NISTXML-SV-IV-atomic-int-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1109NISTSchema-SV-IV-atomic-int-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1110NISTXML-SV-IV-atomic-int-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1111NISTXML-SV-IV-atomic-int-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1112NISTXML-SV-IV-atomic-int-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1113NISTXML-SV-IV-atomic-int-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1114NISTXML-SV-IV-atomic-int-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1115NISTSchema-SV-IV-atomic-int-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1116NISTXML-SV-IV-atomic-int-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1117NISTXML-SV-IV-atomic-int-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1118NISTXML-SV-IV-atomic-int-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1119NISTXML-SV-IV-atomic-int-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1120NISTXML-SV-IV-atomic-int-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1121NISTSchema-SV-IV-atomic-int-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1122NISTXML-SV-IV-atomic-int-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1123NISTXML-SV-IV-atomic-int-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1124NISTXML-SV-IV-atomic-int-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1125NISTXML-SV-IV-atomic-int-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1126NISTXML-SV-IV-atomic-int-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1127NISTSchema-SV-IV-atomic-int-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1128NISTXML-SV-IV-atomic-int-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1129NISTXML-SV-IV-atomic-int-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1130NISTXML-SV-IV-atomic-int-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1131NISTXML-SV-IV-atomic-int-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1132NISTXML-SV-IV-atomic-int-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1133NISTSchema-SV-IV-atomic-int-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1134NISTXML-SV-IV-atomic-int-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1135NISTSchema-SV-IV-atomic-int-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1136NISTXML-SV-IV-atomic-int-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1137NISTXML-SV-IV-atomic-int-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1138NISTXML-SV-IV-atomic-int-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1139NISTXML-SV-IV-atomic-int-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1140NISTXML-SV-IV-atomic-int-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1141NISTSchema-SV-IV-atomic-int-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1142NISTXML-SV-IV-atomic-int-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1143NISTXML-SV-IV-atomic-int-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1144NISTXML-SV-IV-atomic-int-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1145NISTXML-SV-IV-atomic-int-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1146NISTXML-SV-IV-atomic-int-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1147NISTSchema-SV-IV-atomic-int-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1148NISTXML-SV-IV-atomic-int-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1149NISTXML-SV-IV-atomic-int-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1150NISTXML-SV-IV-atomic-int-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1151NISTXML-SV-IV-atomic-int-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1152NISTXML-SV-IV-atomic-int-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1153NISTSchema-SV-IV-atomic-int-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1154NISTXML-SV-IV-atomic-int-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1155NISTXML-SV-IV-atomic-int-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1156NISTXML-SV-IV-atomic-int-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1157NISTXML-SV-IV-atomic-int-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1158NISTXML-SV-IV-atomic-int-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1159NISTSchema-SV-IV-atomic-int-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1160NISTXML-SV-IV-atomic-int-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1161NISTXML-SV-IV-atomic-int-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1162NISTXML-SV-IV-atomic-int-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1163NISTXML-SV-IV-atomic-int-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1164NISTXML-SV-IV-atomic-int-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1165NISTSchema-SV-IV-atomic-int-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1166NISTXML-SV-IV-atomic-int-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1167NISTXML-SV-IV-atomic-int-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1168NISTXML-SV-IV-atomic-int-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1169NISTXML-SV-IV-atomic-int-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1170NISTXML-SV-IV-atomic-int-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1171NISTSchema-SV-IV-atomic-int-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1172NISTXML-SV-IV-atomic-int-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1173NISTXML-SV-IV-atomic-int-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1174NISTXML-SV-IV-atomic-int-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1175NISTXML-SV-IV-atomic-int-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1176NISTXML-SV-IV-atomic-int-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1177NISTSchema-SV-IV-atomic-int-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1178NISTXML-SV-IV-atomic-int-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1179NISTXML-SV-IV-atomic-int-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1180NISTXML-SV-IV-atomic-int-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1181NISTXML-SV-IV-atomic-int-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1182NISTXML-SV-IV-atomic-int-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1183NISTSchema-SV-IV-atomic-int-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1184NISTXML-SV-IV-atomic-int-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1185NISTXML-SV-IV-atomic-int-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1186NISTXML-SV-IV-atomic-int-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1187NISTXML-SV-IV-atomic-int-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1188NISTXML-SV-IV-atomic-int-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1189NISTSchema-SV-IV-atomic-int-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1190NISTXML-SV-IV-atomic-int-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1191NISTXML-SV-IV-atomic-int-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1192NISTXML-SV-IV-atomic-int-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1193NISTXML-SV-IV-atomic-int-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1194NISTXML-SV-IV-atomic-int-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1195NISTSchema-SV-IV-atomic-int-pattern-1 tokoe:valid" result="pass"/><test-case name="1196NISTXML-SV-IV-atomic-int-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1197NISTXML-SV-IV-atomic-int-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1198NISTXML-SV-IV-atomic-int-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1199NISTXML-SV-IV-atomic-int-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1200NISTXML-SV-IV-atomic-int-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1201NISTSchema-SV-IV-atomic-int-pattern-2 tokoe:valid" result="pass"/><test-case name="1202NISTXML-SV-IV-atomic-int-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1203NISTXML-SV-IV-atomic-int-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1204NISTXML-SV-IV-atomic-int-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1205NISTXML-SV-IV-atomic-int-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1206NISTXML-SV-IV-atomic-int-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1207NISTSchema-SV-IV-atomic-int-pattern-3 tokoe:valid" result="pass"/><test-case name="1208NISTXML-SV-IV-atomic-int-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1209NISTXML-SV-IV-atomic-int-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1210NISTXML-SV-IV-atomic-int-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1211NISTXML-SV-IV-atomic-int-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1212NISTXML-SV-IV-atomic-int-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1213NISTSchema-SV-IV-atomic-int-pattern-4 tokoe:valid" result="pass"/><test-case name="1214NISTXML-SV-IV-atomic-int-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1215NISTXML-SV-IV-atomic-int-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1216NISTXML-SV-IV-atomic-int-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1217NISTXML-SV-IV-atomic-int-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1218NISTXML-SV-IV-atomic-int-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1219NISTSchema-SV-IV-atomic-int-pattern-5 tokoe:valid" result="pass"/><test-case name="1220NISTXML-SV-IV-atomic-int-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1221NISTXML-SV-IV-atomic-int-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1222NISTXML-SV-IV-atomic-int-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1223NISTXML-SV-IV-atomic-int-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1224NISTXML-SV-IV-atomic-int-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1225NISTSchema-SV-IV-atomic-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="1226NISTXML-SV-IV-atomic-int-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1227NISTXML-SV-IV-atomic-int-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1228NISTXML-SV-IV-atomic-int-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1229NISTXML-SV-IV-atomic-int-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1230NISTXML-SV-IV-atomic-int-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1231NISTSchema-SV-IV-atomic-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="1232NISTXML-SV-IV-atomic-int-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1233NISTXML-SV-IV-atomic-int-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1234NISTXML-SV-IV-atomic-int-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1235NISTXML-SV-IV-atomic-int-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1236NISTXML-SV-IV-atomic-int-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1237NISTSchema-SV-IV-atomic-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="1238NISTXML-SV-IV-atomic-int-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1239NISTXML-SV-IV-atomic-int-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1240NISTXML-SV-IV-atomic-int-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1241NISTXML-SV-IV-atomic-int-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1242NISTXML-SV-IV-atomic-int-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1243NISTSchema-SV-IV-atomic-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="1244NISTXML-SV-IV-atomic-int-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1245NISTXML-SV-IV-atomic-int-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1246NISTXML-SV-IV-atomic-int-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1247NISTXML-SV-IV-atomic-int-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1248NISTXML-SV-IV-atomic-int-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1249NISTSchema-SV-IV-atomic-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="1250NISTXML-SV-IV-atomic-int-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1251NISTXML-SV-IV-atomic-int-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1252NISTXML-SV-IV-atomic-int-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1253NISTXML-SV-IV-atomic-int-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1254NISTXML-SV-IV-atomic-int-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1255NISTSchema-SV-IV-atomic-int-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1256NISTXML-SV-IV-atomic-int-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1257NISTXML-SV-IV-atomic-int-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1258NISTXML-SV-IV-atomic-int-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1259NISTXML-SV-IV-atomic-int-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1260NISTXML-SV-IV-atomic-int-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1261NISTSchema-SV-IV-atomic-short-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1262NISTXML-SV-IV-atomic-short-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1263NISTXML-SV-IV-atomic-short-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1264NISTXML-SV-IV-atomic-short-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1265NISTXML-SV-IV-atomic-short-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1266NISTXML-SV-IV-atomic-short-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1267NISTSchema-SV-IV-atomic-short-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1268NISTXML-SV-IV-atomic-short-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1269NISTXML-SV-IV-atomic-short-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1270NISTXML-SV-IV-atomic-short-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1271NISTXML-SV-IV-atomic-short-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1272NISTXML-SV-IV-atomic-short-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1273NISTSchema-SV-IV-atomic-short-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1274NISTXML-SV-IV-atomic-short-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1275NISTXML-SV-IV-atomic-short-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1276NISTXML-SV-IV-atomic-short-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1277NISTXML-SV-IV-atomic-short-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1278NISTXML-SV-IV-atomic-short-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1279NISTSchema-SV-IV-atomic-short-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1280NISTXML-SV-IV-atomic-short-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1281NISTXML-SV-IV-atomic-short-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1282NISTXML-SV-IV-atomic-short-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1283NISTXML-SV-IV-atomic-short-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1284NISTXML-SV-IV-atomic-short-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1285NISTSchema-SV-IV-atomic-short-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1286NISTXML-SV-IV-atomic-short-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1287NISTSchema-SV-IV-atomic-short-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1288NISTXML-SV-IV-atomic-short-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1289NISTXML-SV-IV-atomic-short-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1290NISTXML-SV-IV-atomic-short-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1291NISTXML-SV-IV-atomic-short-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1292NISTXML-SV-IV-atomic-short-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1293NISTSchema-SV-IV-atomic-short-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1294NISTXML-SV-IV-atomic-short-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1295NISTXML-SV-IV-atomic-short-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1296NISTXML-SV-IV-atomic-short-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1297NISTXML-SV-IV-atomic-short-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1298NISTXML-SV-IV-atomic-short-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1299NISTSchema-SV-IV-atomic-short-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1300NISTXML-SV-IV-atomic-short-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1301NISTXML-SV-IV-atomic-short-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1302NISTXML-SV-IV-atomic-short-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1303NISTXML-SV-IV-atomic-short-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1304NISTXML-SV-IV-atomic-short-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1305NISTSchema-SV-IV-atomic-short-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1306NISTXML-SV-IV-atomic-short-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1307NISTXML-SV-IV-atomic-short-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1308NISTXML-SV-IV-atomic-short-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1309NISTXML-SV-IV-atomic-short-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1310NISTXML-SV-IV-atomic-short-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1311NISTSchema-SV-IV-atomic-short-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1312NISTXML-SV-IV-atomic-short-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1313NISTSchema-SV-IV-atomic-short-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1314NISTXML-SV-IV-atomic-short-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1315NISTSchema-SV-IV-atomic-short-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1316NISTXML-SV-IV-atomic-short-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1317NISTXML-SV-IV-atomic-short-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1318NISTXML-SV-IV-atomic-short-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1319NISTXML-SV-IV-atomic-short-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1320NISTXML-SV-IV-atomic-short-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1321NISTSchema-SV-IV-atomic-short-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1322NISTXML-SV-IV-atomic-short-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1323NISTXML-SV-IV-atomic-short-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1324NISTXML-SV-IV-atomic-short-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1325NISTXML-SV-IV-atomic-short-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1326NISTXML-SV-IV-atomic-short-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1327NISTSchema-SV-IV-atomic-short-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1328NISTXML-SV-IV-atomic-short-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1329NISTXML-SV-IV-atomic-short-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1330NISTXML-SV-IV-atomic-short-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1331NISTXML-SV-IV-atomic-short-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1332NISTXML-SV-IV-atomic-short-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1333NISTSchema-SV-IV-atomic-short-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1334NISTXML-SV-IV-atomic-short-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1335NISTXML-SV-IV-atomic-short-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1336NISTXML-SV-IV-atomic-short-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1337NISTXML-SV-IV-atomic-short-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1338NISTXML-SV-IV-atomic-short-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1339NISTSchema-SV-IV-atomic-short-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1340NISTXML-SV-IV-atomic-short-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1341NISTSchema-SV-IV-atomic-short-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1342NISTXML-SV-IV-atomic-short-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1343NISTXML-SV-IV-atomic-short-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1344NISTXML-SV-IV-atomic-short-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1345NISTXML-SV-IV-atomic-short-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1346NISTXML-SV-IV-atomic-short-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1347NISTSchema-SV-IV-atomic-short-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1348NISTXML-SV-IV-atomic-short-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1349NISTXML-SV-IV-atomic-short-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1350NISTXML-SV-IV-atomic-short-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1351NISTXML-SV-IV-atomic-short-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1352NISTXML-SV-IV-atomic-short-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1353NISTSchema-SV-IV-atomic-short-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1354NISTXML-SV-IV-atomic-short-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1355NISTXML-SV-IV-atomic-short-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1356NISTXML-SV-IV-atomic-short-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1357NISTXML-SV-IV-atomic-short-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1358NISTXML-SV-IV-atomic-short-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1359NISTSchema-SV-IV-atomic-short-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1360NISTXML-SV-IV-atomic-short-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1361NISTXML-SV-IV-atomic-short-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1362NISTXML-SV-IV-atomic-short-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1363NISTXML-SV-IV-atomic-short-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1364NISTXML-SV-IV-atomic-short-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1365NISTSchema-SV-IV-atomic-short-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1366NISTXML-SV-IV-atomic-short-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1367NISTXML-SV-IV-atomic-short-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1368NISTXML-SV-IV-atomic-short-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1369NISTXML-SV-IV-atomic-short-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1370NISTXML-SV-IV-atomic-short-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1371NISTSchema-SV-IV-atomic-short-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1372NISTXML-SV-IV-atomic-short-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1373NISTXML-SV-IV-atomic-short-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1374NISTXML-SV-IV-atomic-short-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1375NISTXML-SV-IV-atomic-short-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1376NISTXML-SV-IV-atomic-short-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1377NISTSchema-SV-IV-atomic-short-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1378NISTXML-SV-IV-atomic-short-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1379NISTXML-SV-IV-atomic-short-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1380NISTXML-SV-IV-atomic-short-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1381NISTXML-SV-IV-atomic-short-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1382NISTXML-SV-IV-atomic-short-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1383NISTSchema-SV-IV-atomic-short-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1384NISTXML-SV-IV-atomic-short-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1385NISTXML-SV-IV-atomic-short-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1386NISTXML-SV-IV-atomic-short-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1387NISTXML-SV-IV-atomic-short-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1388NISTXML-SV-IV-atomic-short-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1389NISTSchema-SV-IV-atomic-short-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1390NISTXML-SV-IV-atomic-short-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1391NISTXML-SV-IV-atomic-short-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1392NISTXML-SV-IV-atomic-short-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1393NISTXML-SV-IV-atomic-short-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1394NISTXML-SV-IV-atomic-short-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1395NISTSchema-SV-IV-atomic-short-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1396NISTXML-SV-IV-atomic-short-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1397NISTXML-SV-IV-atomic-short-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1398NISTXML-SV-IV-atomic-short-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1399NISTXML-SV-IV-atomic-short-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1400NISTXML-SV-IV-atomic-short-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1401NISTSchema-SV-IV-atomic-short-pattern-1 tokoe:valid" result="pass"/><test-case name="1402NISTXML-SV-IV-atomic-short-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1403NISTXML-SV-IV-atomic-short-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1404NISTXML-SV-IV-atomic-short-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1405NISTXML-SV-IV-atomic-short-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1406NISTXML-SV-IV-atomic-short-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1407NISTSchema-SV-IV-atomic-short-pattern-2 tokoe:valid" result="pass"/><test-case name="1408NISTXML-SV-IV-atomic-short-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1409NISTXML-SV-IV-atomic-short-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1410NISTXML-SV-IV-atomic-short-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1411NISTXML-SV-IV-atomic-short-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1412NISTXML-SV-IV-atomic-short-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1413NISTSchema-SV-IV-atomic-short-pattern-3 tokoe:valid" result="pass"/><test-case name="1414NISTXML-SV-IV-atomic-short-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1415NISTXML-SV-IV-atomic-short-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1416NISTXML-SV-IV-atomic-short-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1417NISTXML-SV-IV-atomic-short-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1418NISTXML-SV-IV-atomic-short-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1419NISTSchema-SV-IV-atomic-short-pattern-4 tokoe:valid" result="pass"/><test-case name="1420NISTXML-SV-IV-atomic-short-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1421NISTXML-SV-IV-atomic-short-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1422NISTXML-SV-IV-atomic-short-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1423NISTXML-SV-IV-atomic-short-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1424NISTXML-SV-IV-atomic-short-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1425NISTSchema-SV-IV-atomic-short-pattern-5 tokoe:valid" result="pass"/><test-case name="1426NISTXML-SV-IV-atomic-short-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1427NISTXML-SV-IV-atomic-short-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1428NISTXML-SV-IV-atomic-short-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1429NISTXML-SV-IV-atomic-short-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1430NISTXML-SV-IV-atomic-short-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1431NISTSchema-SV-IV-atomic-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="1432NISTXML-SV-IV-atomic-short-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1433NISTXML-SV-IV-atomic-short-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1434NISTXML-SV-IV-atomic-short-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1435NISTXML-SV-IV-atomic-short-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1436NISTXML-SV-IV-atomic-short-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1437NISTSchema-SV-IV-atomic-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="1438NISTXML-SV-IV-atomic-short-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1439NISTXML-SV-IV-atomic-short-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1440NISTXML-SV-IV-atomic-short-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1441NISTXML-SV-IV-atomic-short-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1442NISTXML-SV-IV-atomic-short-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1443NISTSchema-SV-IV-atomic-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="1444NISTXML-SV-IV-atomic-short-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1445NISTXML-SV-IV-atomic-short-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1446NISTXML-SV-IV-atomic-short-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1447NISTXML-SV-IV-atomic-short-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1448NISTXML-SV-IV-atomic-short-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1449NISTSchema-SV-IV-atomic-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="1450NISTXML-SV-IV-atomic-short-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1451NISTXML-SV-IV-atomic-short-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1452NISTXML-SV-IV-atomic-short-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1453NISTXML-SV-IV-atomic-short-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1454NISTXML-SV-IV-atomic-short-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1455NISTSchema-SV-IV-atomic-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="1456NISTXML-SV-IV-atomic-short-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1457NISTXML-SV-IV-atomic-short-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1458NISTXML-SV-IV-atomic-short-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1459NISTXML-SV-IV-atomic-short-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1460NISTXML-SV-IV-atomic-short-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1461NISTSchema-SV-IV-atomic-short-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1462NISTXML-SV-IV-atomic-short-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1463NISTXML-SV-IV-atomic-short-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1464NISTXML-SV-IV-atomic-short-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1465NISTXML-SV-IV-atomic-short-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1466NISTXML-SV-IV-atomic-short-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1467NISTSchema-SV-IV-atomic-byte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1468NISTXML-SV-IV-atomic-byte-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1469NISTXML-SV-IV-atomic-byte-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1470NISTXML-SV-IV-atomic-byte-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1471NISTXML-SV-IV-atomic-byte-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1472NISTXML-SV-IV-atomic-byte-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1473NISTSchema-SV-IV-atomic-byte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1474NISTXML-SV-IV-atomic-byte-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1475NISTXML-SV-IV-atomic-byte-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1476NISTXML-SV-IV-atomic-byte-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1477NISTXML-SV-IV-atomic-byte-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1478NISTXML-SV-IV-atomic-byte-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1479NISTSchema-SV-IV-atomic-byte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1480NISTXML-SV-IV-atomic-byte-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1481NISTXML-SV-IV-atomic-byte-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1482NISTXML-SV-IV-atomic-byte-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1483NISTXML-SV-IV-atomic-byte-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1484NISTXML-SV-IV-atomic-byte-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1485NISTSchema-SV-IV-atomic-byte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1486NISTXML-SV-IV-atomic-byte-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1487NISTXML-SV-IV-atomic-byte-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1488NISTXML-SV-IV-atomic-byte-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1489NISTXML-SV-IV-atomic-byte-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1490NISTXML-SV-IV-atomic-byte-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1491NISTSchema-SV-IV-atomic-byte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1492NISTXML-SV-IV-atomic-byte-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1493NISTSchema-SV-IV-atomic-byte-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1494NISTXML-SV-IV-atomic-byte-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1495NISTXML-SV-IV-atomic-byte-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1496NISTXML-SV-IV-atomic-byte-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1497NISTXML-SV-IV-atomic-byte-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1498NISTXML-SV-IV-atomic-byte-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1499NISTSchema-SV-IV-atomic-byte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1500NISTXML-SV-IV-atomic-byte-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1501NISTXML-SV-IV-atomic-byte-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1502NISTXML-SV-IV-atomic-byte-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1503NISTXML-SV-IV-atomic-byte-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1504NISTXML-SV-IV-atomic-byte-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1505NISTSchema-SV-IV-atomic-byte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1506NISTXML-SV-IV-atomic-byte-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1507NISTXML-SV-IV-atomic-byte-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1508NISTXML-SV-IV-atomic-byte-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1509NISTXML-SV-IV-atomic-byte-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1510NISTXML-SV-IV-atomic-byte-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1511NISTSchema-SV-IV-atomic-byte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1512NISTXML-SV-IV-atomic-byte-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1513NISTXML-SV-IV-atomic-byte-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1514NISTXML-SV-IV-atomic-byte-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1515NISTXML-SV-IV-atomic-byte-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1516NISTXML-SV-IV-atomic-byte-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1517NISTSchema-SV-IV-atomic-byte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1518NISTXML-SV-IV-atomic-byte-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1519NISTSchema-SV-IV-atomic-byte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1520NISTXML-SV-IV-atomic-byte-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1521NISTSchema-SV-IV-atomic-byte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1522NISTXML-SV-IV-atomic-byte-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1523NISTXML-SV-IV-atomic-byte-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1524NISTXML-SV-IV-atomic-byte-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1525NISTXML-SV-IV-atomic-byte-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1526NISTXML-SV-IV-atomic-byte-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1527NISTSchema-SV-IV-atomic-byte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1528NISTXML-SV-IV-atomic-byte-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1529NISTXML-SV-IV-atomic-byte-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1530NISTXML-SV-IV-atomic-byte-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1531NISTXML-SV-IV-atomic-byte-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1532NISTXML-SV-IV-atomic-byte-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1533NISTSchema-SV-IV-atomic-byte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1534NISTXML-SV-IV-atomic-byte-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1535NISTXML-SV-IV-atomic-byte-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1536NISTXML-SV-IV-atomic-byte-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1537NISTXML-SV-IV-atomic-byte-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1538NISTXML-SV-IV-atomic-byte-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1539NISTSchema-SV-IV-atomic-byte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1540NISTXML-SV-IV-atomic-byte-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1541NISTXML-SV-IV-atomic-byte-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1542NISTXML-SV-IV-atomic-byte-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1543NISTXML-SV-IV-atomic-byte-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1544NISTXML-SV-IV-atomic-byte-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1545NISTSchema-SV-IV-atomic-byte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1546NISTXML-SV-IV-atomic-byte-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1547NISTSchema-SV-IV-atomic-byte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1548NISTXML-SV-IV-atomic-byte-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1549NISTXML-SV-IV-atomic-byte-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1550NISTXML-SV-IV-atomic-byte-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1551NISTXML-SV-IV-atomic-byte-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1552NISTXML-SV-IV-atomic-byte-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1553NISTSchema-SV-IV-atomic-byte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1554NISTXML-SV-IV-atomic-byte-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1555NISTXML-SV-IV-atomic-byte-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1556NISTXML-SV-IV-atomic-byte-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1557NISTXML-SV-IV-atomic-byte-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1558NISTXML-SV-IV-atomic-byte-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1559NISTSchema-SV-IV-atomic-byte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1560NISTXML-SV-IV-atomic-byte-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1561NISTXML-SV-IV-atomic-byte-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1562NISTXML-SV-IV-atomic-byte-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1563NISTXML-SV-IV-atomic-byte-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1564NISTXML-SV-IV-atomic-byte-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1565NISTSchema-SV-IV-atomic-byte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1566NISTXML-SV-IV-atomic-byte-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1567NISTXML-SV-IV-atomic-byte-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1568NISTXML-SV-IV-atomic-byte-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1569NISTXML-SV-IV-atomic-byte-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1570NISTXML-SV-IV-atomic-byte-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1571NISTSchema-SV-IV-atomic-byte-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1572NISTXML-SV-IV-atomic-byte-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1573NISTXML-SV-IV-atomic-byte-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1574NISTXML-SV-IV-atomic-byte-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1575NISTXML-SV-IV-atomic-byte-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1576NISTXML-SV-IV-atomic-byte-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1577NISTSchema-SV-IV-atomic-byte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1578NISTXML-SV-IV-atomic-byte-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1579NISTXML-SV-IV-atomic-byte-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1580NISTXML-SV-IV-atomic-byte-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1581NISTXML-SV-IV-atomic-byte-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1582NISTXML-SV-IV-atomic-byte-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1583NISTSchema-SV-IV-atomic-byte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1584NISTXML-SV-IV-atomic-byte-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1585NISTXML-SV-IV-atomic-byte-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1586NISTXML-SV-IV-atomic-byte-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1587NISTXML-SV-IV-atomic-byte-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1588NISTXML-SV-IV-atomic-byte-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1589NISTSchema-SV-IV-atomic-byte-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1590NISTXML-SV-IV-atomic-byte-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1591NISTXML-SV-IV-atomic-byte-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1592NISTXML-SV-IV-atomic-byte-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1593NISTXML-SV-IV-atomic-byte-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1594NISTXML-SV-IV-atomic-byte-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1595NISTSchema-SV-IV-atomic-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="1596NISTXML-SV-IV-atomic-byte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1597NISTXML-SV-IV-atomic-byte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1598NISTXML-SV-IV-atomic-byte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1599NISTXML-SV-IV-atomic-byte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1600NISTXML-SV-IV-atomic-byte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1601NISTSchema-SV-IV-atomic-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="1602NISTXML-SV-IV-atomic-byte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1603NISTXML-SV-IV-atomic-byte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1604NISTXML-SV-IV-atomic-byte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1605NISTXML-SV-IV-atomic-byte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1606NISTXML-SV-IV-atomic-byte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1607NISTSchema-SV-IV-atomic-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="1608NISTXML-SV-IV-atomic-byte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1609NISTXML-SV-IV-atomic-byte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1610NISTXML-SV-IV-atomic-byte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1611NISTXML-SV-IV-atomic-byte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1612NISTXML-SV-IV-atomic-byte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1613NISTSchema-SV-IV-atomic-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="1614NISTXML-SV-IV-atomic-byte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1615NISTXML-SV-IV-atomic-byte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1616NISTXML-SV-IV-atomic-byte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1617NISTXML-SV-IV-atomic-byte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1618NISTXML-SV-IV-atomic-byte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1619NISTSchema-SV-IV-atomic-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="1620NISTXML-SV-IV-atomic-byte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1621NISTXML-SV-IV-atomic-byte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1622NISTXML-SV-IV-atomic-byte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1623NISTXML-SV-IV-atomic-byte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1624NISTXML-SV-IV-atomic-byte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1625NISTSchema-SV-IV-atomic-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="1626NISTXML-SV-IV-atomic-byte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1627NISTXML-SV-IV-atomic-byte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1628NISTXML-SV-IV-atomic-byte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1629NISTXML-SV-IV-atomic-byte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1630NISTXML-SV-IV-atomic-byte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1631NISTSchema-SV-IV-atomic-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="1632NISTXML-SV-IV-atomic-byte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1633NISTXML-SV-IV-atomic-byte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1634NISTXML-SV-IV-atomic-byte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1635NISTXML-SV-IV-atomic-byte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1636NISTXML-SV-IV-atomic-byte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1637NISTSchema-SV-IV-atomic-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="1638NISTXML-SV-IV-atomic-byte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1639NISTXML-SV-IV-atomic-byte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1640NISTXML-SV-IV-atomic-byte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1641NISTXML-SV-IV-atomic-byte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1642NISTXML-SV-IV-atomic-byte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1643NISTSchema-SV-IV-atomic-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="1644NISTXML-SV-IV-atomic-byte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1645NISTXML-SV-IV-atomic-byte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1646NISTXML-SV-IV-atomic-byte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1647NISTXML-SV-IV-atomic-byte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1648NISTXML-SV-IV-atomic-byte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1649NISTSchema-SV-IV-atomic-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="1650NISTXML-SV-IV-atomic-byte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1651NISTXML-SV-IV-atomic-byte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1652NISTXML-SV-IV-atomic-byte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1653NISTXML-SV-IV-atomic-byte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1654NISTXML-SV-IV-atomic-byte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1655NISTSchema-SV-IV-atomic-byte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1656NISTXML-SV-IV-atomic-byte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1657NISTXML-SV-IV-atomic-byte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1658NISTXML-SV-IV-atomic-byte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1659NISTXML-SV-IV-atomic-byte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1660NISTXML-SV-IV-atomic-byte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1661NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1662NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1663NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1664NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1665NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1666NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1667NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1668NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1669NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1670NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1671NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1672NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1673NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1674NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1675NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1676NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1677NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1678NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1679NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1680NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1681NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1682NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1683NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1684NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1685NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1686NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1687NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1688NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1689NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1690NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1691NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1692NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1693NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1694NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1695NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1696NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1697NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1698NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1699NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1700NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1701NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1702NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1703NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1704NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1705NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1706NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1707NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1708NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1709NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1710NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1711NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1712NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1713NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1714NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1715NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1716NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1717NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1718NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1719NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1720NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1721NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1722NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1723NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1724NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1725NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1726NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1727NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1728NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1729NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1730NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1731NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1732NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1733NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1734NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1735NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1736NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1737NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1738NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1739NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1740NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1741NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1742NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1743NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1744NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1745NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1746NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1747NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1748NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1749NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1750NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1751NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1752NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1753NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1754NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1755NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1756NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1757NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1758NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1759NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1760NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1761NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1762NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1763NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1764NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1765NISTSchema-SV-IV-atomic-nonNegativeInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1766NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1767NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1768NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1769NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1770NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1771NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1772NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1773NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1774NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1775NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1776NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1777NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1778NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1779NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1780NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1781NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1782NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1783NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1784NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1785NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1786NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1787NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1788NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1789NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1790NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1791NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1792NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1793NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1794NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1795NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1796NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1797NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1798NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1799NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1800NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1801NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="1802NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1803NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1804NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1805NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1806NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1807NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="1808NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1809NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1810NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1811NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1812NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1813NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="1814NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1815NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1816NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1817NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1818NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1819NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="1820NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1821NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1822NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1823NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1824NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1825NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="1826NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1827NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1828NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1829NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1830NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1831NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="1832NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1833NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1834NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1835NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1836NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1837NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="1838NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1839NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1840NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1841NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1842NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1843NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="1844NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1845NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1846NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1847NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1848NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1849NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="1850NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1851NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1852NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1853NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1854NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1855NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="1856NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1857NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1858NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1859NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1860NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1861NISTSchema-SV-IV-atomic-nonNegativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1862NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1863NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1864NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1865NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1866NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1867NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1868NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1869NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1870NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1871NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1872NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1873NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1874NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1875NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1876NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1877NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1878NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1879NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1880NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1881NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1882NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1883NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1884NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1885NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1886NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1887NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1888NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1889NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1890NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1891NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1892NISTXML-SV-IV-atomic-unsignedLong-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1893NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1894NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1895NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1896NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1897NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1898NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1899NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1900NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1901NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1902NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1903NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1904NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1905NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1906NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1907NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1908NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1909NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1910NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1911NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1912NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1913NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1914NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1915NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1916NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1917NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1918NISTXML-SV-IV-atomic-unsignedLong-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1919NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1920NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1921NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1922NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1923NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1924NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1925NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1926NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1927NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1928NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1929NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1930NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1931NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1932NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1933NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1934NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1935NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1936NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1937NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1938NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1939NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1940NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1941NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1942NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1943NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1944NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1945NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1946NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1947NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1948NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1949NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1950NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1951NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1952NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1953NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1954NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1955NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1956NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1957NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1958NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1959NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1960NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1961NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1962NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1963NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1964NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1965NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1966NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1967NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1968NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1969NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1970NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1971NISTSchema-SV-IV-atomic-unsignedLong-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1972NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1973NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1974NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1975NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1976NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1977NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1978NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1979NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1980NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1981NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1982NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1983NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1984NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1985NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1986NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1987NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1988NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1989NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1990NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1991NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1992NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1993NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1994NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1995NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1996NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1997NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1998NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1999NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2000NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2001NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2002NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2003NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2004NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2005NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2006NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2007NISTSchema-SV-IV-atomic-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="2008NISTXML-SV-IV-atomic-unsignedLong-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2009NISTXML-SV-IV-atomic-unsignedLong-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2010NISTXML-SV-IV-atomic-unsignedLong-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2011NISTXML-SV-IV-atomic-unsignedLong-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2012NISTXML-SV-IV-atomic-unsignedLong-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2013NISTSchema-SV-IV-atomic-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="2014NISTXML-SV-IV-atomic-unsignedLong-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2015NISTXML-SV-IV-atomic-unsignedLong-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2016NISTXML-SV-IV-atomic-unsignedLong-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2017NISTXML-SV-IV-atomic-unsignedLong-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2018NISTXML-SV-IV-atomic-unsignedLong-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2019NISTSchema-SV-IV-atomic-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="2020NISTXML-SV-IV-atomic-unsignedLong-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2021NISTXML-SV-IV-atomic-unsignedLong-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2022NISTXML-SV-IV-atomic-unsignedLong-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2023NISTXML-SV-IV-atomic-unsignedLong-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2024NISTXML-SV-IV-atomic-unsignedLong-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2025NISTSchema-SV-IV-atomic-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="2026NISTXML-SV-IV-atomic-unsignedLong-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2027NISTXML-SV-IV-atomic-unsignedLong-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2028NISTXML-SV-IV-atomic-unsignedLong-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2029NISTXML-SV-IV-atomic-unsignedLong-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2030NISTXML-SV-IV-atomic-unsignedLong-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2031NISTSchema-SV-IV-atomic-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="2032NISTXML-SV-IV-atomic-unsignedLong-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2033NISTXML-SV-IV-atomic-unsignedLong-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2034NISTXML-SV-IV-atomic-unsignedLong-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2035NISTXML-SV-IV-atomic-unsignedLong-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2036NISTXML-SV-IV-atomic-unsignedLong-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2037NISTSchema-SV-IV-atomic-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="2038NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2039NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2040NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2041NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2042NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2043NISTSchema-SV-IV-atomic-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="2044NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2045NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2046NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2047NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2048NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2049NISTSchema-SV-IV-atomic-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="2050NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2051NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2052NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2053NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2054NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2055NISTSchema-SV-IV-atomic-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="2056NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2057NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2058NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2059NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2060NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2061NISTSchema-SV-IV-atomic-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="2062NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2063NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2064NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2065NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2066NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2067NISTSchema-SV-IV-atomic-unsignedLong-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2068NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2069NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2070NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2071NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2072NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2073NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2074NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2075NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2076NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2077NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2078NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2079NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2080NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2081NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2082NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2083NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2084NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2085NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2086NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2087NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2088NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2089NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2090NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2091NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2092NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2093NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2094NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2095NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2096NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2097NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2098NISTXML-SV-IV-atomic-unsignedInt-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2099NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2100NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2101NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2102NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2103NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2104NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2105NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2106NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2107NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2108NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2109NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2110NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2111NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2112NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2113NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2114NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2115NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2116NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2117NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2118NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2119NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2120NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2121NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2122NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2123NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2124NISTXML-SV-IV-atomic-unsignedInt-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2125NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2126NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2127NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2128NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2129NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2130NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2131NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2132NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2133NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2134NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2135NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2136NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2137NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2138NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2139NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2140NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2141NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2142NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2143NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2144NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2145NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2146NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2147NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2148NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2149NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2150NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2151NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2152NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2153NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2154NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2155NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2156NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2157NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2158NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2159NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2160NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2161NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2162NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2163NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2164NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2165NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2166NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2167NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2168NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2169NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2170NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2171NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2172NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2173NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2174NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2175NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2176NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2177NISTSchema-SV-IV-atomic-unsignedInt-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2178NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2179NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2180NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2181NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2182NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2183NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2184NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2185NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2186NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2187NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2188NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2189NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2190NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2191NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2192NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2193NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2194NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2195NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2196NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2197NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2198NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2199NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2200NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2201NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2202NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2203NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2204NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2205NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2206NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2207NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2208NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2209NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2210NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2211NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2212NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2213NISTSchema-SV-IV-atomic-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="2214NISTXML-SV-IV-atomic-unsignedInt-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2215NISTXML-SV-IV-atomic-unsignedInt-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2216NISTXML-SV-IV-atomic-unsignedInt-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2217NISTXML-SV-IV-atomic-unsignedInt-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2218NISTXML-SV-IV-atomic-unsignedInt-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2219NISTSchema-SV-IV-atomic-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="2220NISTXML-SV-IV-atomic-unsignedInt-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2221NISTXML-SV-IV-atomic-unsignedInt-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2222NISTXML-SV-IV-atomic-unsignedInt-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2223NISTXML-SV-IV-atomic-unsignedInt-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2224NISTXML-SV-IV-atomic-unsignedInt-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2225NISTSchema-SV-IV-atomic-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="2226NISTXML-SV-IV-atomic-unsignedInt-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2227NISTXML-SV-IV-atomic-unsignedInt-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2228NISTXML-SV-IV-atomic-unsignedInt-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2229NISTXML-SV-IV-atomic-unsignedInt-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2230NISTXML-SV-IV-atomic-unsignedInt-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2231NISTSchema-SV-IV-atomic-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="2232NISTXML-SV-IV-atomic-unsignedInt-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2233NISTXML-SV-IV-atomic-unsignedInt-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2234NISTXML-SV-IV-atomic-unsignedInt-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2235NISTXML-SV-IV-atomic-unsignedInt-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2236NISTXML-SV-IV-atomic-unsignedInt-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2237NISTSchema-SV-IV-atomic-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="2238NISTXML-SV-IV-atomic-unsignedInt-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2239NISTXML-SV-IV-atomic-unsignedInt-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2240NISTXML-SV-IV-atomic-unsignedInt-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2241NISTXML-SV-IV-atomic-unsignedInt-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2242NISTXML-SV-IV-atomic-unsignedInt-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2243NISTSchema-SV-IV-atomic-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="2244NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2245NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2246NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2247NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2248NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2249NISTSchema-SV-IV-atomic-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="2250NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2251NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2252NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2253NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2254NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2255NISTSchema-SV-IV-atomic-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="2256NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2257NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2258NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2259NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2260NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2261NISTSchema-SV-IV-atomic-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="2262NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2263NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2264NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2265NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2266NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2267NISTSchema-SV-IV-atomic-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="2268NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2269NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2270NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2271NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2272NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2273NISTSchema-SV-IV-atomic-unsignedInt-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2274NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2275NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2276NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2277NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2278NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2279NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2280NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2281NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2282NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2283NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2284NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2285NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2286NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2287NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2288NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2289NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2290NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2291NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2292NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2293NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2294NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2295NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2296NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2297NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2298NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2299NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2300NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2301NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2302NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2303NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2304NISTXML-SV-IV-atomic-unsignedShort-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2305NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2306NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2307NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2308NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2309NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2310NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2311NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2312NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2313NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2314NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2315NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2316NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2317NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2318NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2319NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2320NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2321NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2322NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2323NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2324NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2325NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2326NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2327NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2328NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2329NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2330NISTXML-SV-IV-atomic-unsignedShort-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2331NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2332NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2333NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2334NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2335NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2336NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2337NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2338NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2339NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2340NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2341NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2342NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2343NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2344NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2345NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2346NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2347NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2348NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2349NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2350NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2351NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2352NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2353NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2354NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2355NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2356NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2357NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2358NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2359NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2360NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2361NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2362NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2363NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2364NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2365NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2366NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2367NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2368NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2369NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2370NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2371NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2372NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2373NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2374NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2375NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2376NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2377NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2378NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2379NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2380NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2381NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2382NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2383NISTSchema-SV-IV-atomic-unsignedShort-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2384NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2385NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2386NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2387NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2388NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2389NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2390NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2391NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2392NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2393NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2394NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2395NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2396NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2397NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2398NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2399NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2400NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2401NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2402NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2403NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2404NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2405NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2406NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2407NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2408NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2409NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2410NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2411NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2412NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2413NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2414NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2415NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2416NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2417NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2418NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2419NISTSchema-SV-IV-atomic-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="2420NISTXML-SV-IV-atomic-unsignedShort-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2421NISTXML-SV-IV-atomic-unsignedShort-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2422NISTXML-SV-IV-atomic-unsignedShort-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2423NISTXML-SV-IV-atomic-unsignedShort-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2424NISTXML-SV-IV-atomic-unsignedShort-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2425NISTSchema-SV-IV-atomic-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="2426NISTXML-SV-IV-atomic-unsignedShort-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2427NISTXML-SV-IV-atomic-unsignedShort-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2428NISTXML-SV-IV-atomic-unsignedShort-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2429NISTXML-SV-IV-atomic-unsignedShort-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2430NISTXML-SV-IV-atomic-unsignedShort-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2431NISTSchema-SV-IV-atomic-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="2432NISTXML-SV-IV-atomic-unsignedShort-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2433NISTXML-SV-IV-atomic-unsignedShort-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2434NISTXML-SV-IV-atomic-unsignedShort-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2435NISTXML-SV-IV-atomic-unsignedShort-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2436NISTXML-SV-IV-atomic-unsignedShort-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2437NISTSchema-SV-IV-atomic-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="2438NISTXML-SV-IV-atomic-unsignedShort-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2439NISTXML-SV-IV-atomic-unsignedShort-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2440NISTXML-SV-IV-atomic-unsignedShort-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2441NISTXML-SV-IV-atomic-unsignedShort-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2442NISTXML-SV-IV-atomic-unsignedShort-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2443NISTSchema-SV-IV-atomic-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="2444NISTXML-SV-IV-atomic-unsignedShort-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2445NISTXML-SV-IV-atomic-unsignedShort-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2446NISTXML-SV-IV-atomic-unsignedShort-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2447NISTXML-SV-IV-atomic-unsignedShort-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2448NISTXML-SV-IV-atomic-unsignedShort-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2449NISTSchema-SV-IV-atomic-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="2450NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2451NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2452NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2453NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2454NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2455NISTSchema-SV-IV-atomic-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="2456NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2457NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2458NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2459NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2460NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2461NISTSchema-SV-IV-atomic-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="2462NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2463NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2464NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2465NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2466NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2467NISTSchema-SV-IV-atomic-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="2468NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2469NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2470NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2471NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2472NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2473NISTSchema-SV-IV-atomic-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="2474NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2475NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2476NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2477NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2478NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2479NISTSchema-SV-IV-atomic-unsignedShort-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2480NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2481NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2482NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2483NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2484NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2485NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2486NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2487NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2488NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2489NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2490NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2491NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2492NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2493NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2494NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2495NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2496NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2497NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2498NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2499NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2500NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2501NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2502NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2503NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2504NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2505NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2506NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2507NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2508NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2509NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2510NISTXML-SV-IV-atomic-unsignedByte-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2511NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2512NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2513NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2514NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2515NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2516NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2517NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2518NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2519NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2520NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2521NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2522NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2523NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2524NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2525NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2526NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2527NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2528NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2529NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2530NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2531NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2532NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2533NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2534NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2535NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2536NISTXML-SV-IV-atomic-unsignedByte-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2537NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2538NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2539NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2540NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2541NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2542NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2543NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2544NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2545NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2546NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2547NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2548NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2549NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2550NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2551NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2552NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2553NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2554NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2555NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2556NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2557NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2558NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2559NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2560NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2561NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2562NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2563NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2564NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2565NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2566NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2567NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2568NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2569NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2570NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2571NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2572NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2573NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2574NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2575NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2576NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2577NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2578NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2579NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2580NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2581NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2582NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2583NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2584NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2585NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2586NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2587NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2588NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2589NISTSchema-SV-IV-atomic-unsignedByte-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2590NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2591NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2592NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2593NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2594NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2595NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2596NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2597NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2598NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2599NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2600NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2601NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2602NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2603NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2604NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2605NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2606NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2607NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2608NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2609NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2610NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2611NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2612NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2613NISTSchema-SV-IV-atomic-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="2614NISTXML-SV-IV-atomic-unsignedByte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2615NISTXML-SV-IV-atomic-unsignedByte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2616NISTXML-SV-IV-atomic-unsignedByte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2617NISTXML-SV-IV-atomic-unsignedByte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2618NISTXML-SV-IV-atomic-unsignedByte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2619NISTSchema-SV-IV-atomic-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="2620NISTXML-SV-IV-atomic-unsignedByte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2621NISTXML-SV-IV-atomic-unsignedByte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2622NISTXML-SV-IV-atomic-unsignedByte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2623NISTXML-SV-IV-atomic-unsignedByte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2624NISTXML-SV-IV-atomic-unsignedByte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2625NISTSchema-SV-IV-atomic-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="2626NISTXML-SV-IV-atomic-unsignedByte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2627NISTXML-SV-IV-atomic-unsignedByte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2628NISTXML-SV-IV-atomic-unsignedByte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2629NISTXML-SV-IV-atomic-unsignedByte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2630NISTXML-SV-IV-atomic-unsignedByte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2631NISTSchema-SV-IV-atomic-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="2632NISTXML-SV-IV-atomic-unsignedByte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2633NISTXML-SV-IV-atomic-unsignedByte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2634NISTXML-SV-IV-atomic-unsignedByte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2635NISTXML-SV-IV-atomic-unsignedByte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2636NISTXML-SV-IV-atomic-unsignedByte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2637NISTSchema-SV-IV-atomic-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="2638NISTXML-SV-IV-atomic-unsignedByte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2639NISTXML-SV-IV-atomic-unsignedByte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2640NISTXML-SV-IV-atomic-unsignedByte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2641NISTXML-SV-IV-atomic-unsignedByte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2642NISTXML-SV-IV-atomic-unsignedByte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2643NISTSchema-SV-IV-atomic-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="2644NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2645NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2646NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2647NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2648NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2649NISTSchema-SV-IV-atomic-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="2650NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2651NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2652NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2653NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2654NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2655NISTSchema-SV-IV-atomic-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="2656NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2657NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2658NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2659NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2660NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2661NISTSchema-SV-IV-atomic-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="2662NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2663NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2664NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2665NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2666NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2667NISTSchema-SV-IV-atomic-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="2668NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2669NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2670NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2671NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2672NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2673NISTSchema-SV-IV-atomic-unsignedByte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2674NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2675NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2676NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2677NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2678NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2679NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2680NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2681NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2682NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2683NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2684NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2685NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2686NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2687NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2688NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2689NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2690NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2691NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2692NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2693NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2694NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2695NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2696NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2697NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2698NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2699NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2700NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2701NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2702NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2703NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2704NISTXML-SV-IV-atomic-positiveInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2705NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2706NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2707NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2708NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2709NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2710NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2711NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2712NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2713NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2714NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2715NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2716NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2717NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2718NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2719NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2720NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2721NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2722NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2723NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2724NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2725NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2726NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2727NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2728NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2729NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2730NISTXML-SV-IV-atomic-positiveInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2731NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2732NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2733NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2734NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2735NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2736NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2737NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2738NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2739NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2740NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2741NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2742NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2743NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2744NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2745NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2746NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2747NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2748NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2749NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2750NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2751NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2752NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2753NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2754NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2755NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2756NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2757NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2758NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2759NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2760NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2761NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2762NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2763NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2764NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2765NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2766NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2767NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2768NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2769NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2770NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2771NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2772NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2773NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2774NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2775NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2776NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2777NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2778NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2779NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2780NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2781NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2782NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2783NISTSchema-SV-IV-atomic-positiveInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2784NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2785NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2786NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2787NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2788NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2789NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2790NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2791NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2792NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2793NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2794NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2795NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2796NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2797NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2798NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2799NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2800NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2801NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2802NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2803NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2804NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2805NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2806NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2807NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2808NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2809NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2810NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2811NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2812NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2813NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2814NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2815NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2816NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2817NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2818NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2819NISTSchema-SV-IV-atomic-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="2820NISTXML-SV-IV-atomic-positiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2821NISTXML-SV-IV-atomic-positiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2822NISTXML-SV-IV-atomic-positiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2823NISTXML-SV-IV-atomic-positiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2824NISTXML-SV-IV-atomic-positiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2825NISTSchema-SV-IV-atomic-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="2826NISTXML-SV-IV-atomic-positiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2827NISTXML-SV-IV-atomic-positiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2828NISTXML-SV-IV-atomic-positiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2829NISTXML-SV-IV-atomic-positiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2830NISTXML-SV-IV-atomic-positiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2831NISTSchema-SV-IV-atomic-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="2832NISTXML-SV-IV-atomic-positiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2833NISTXML-SV-IV-atomic-positiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2834NISTXML-SV-IV-atomic-positiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2835NISTXML-SV-IV-atomic-positiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2836NISTXML-SV-IV-atomic-positiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2837NISTSchema-SV-IV-atomic-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="2838NISTXML-SV-IV-atomic-positiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2839NISTXML-SV-IV-atomic-positiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2840NISTXML-SV-IV-atomic-positiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2841NISTXML-SV-IV-atomic-positiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2842NISTXML-SV-IV-atomic-positiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2843NISTSchema-SV-IV-atomic-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="2844NISTXML-SV-IV-atomic-positiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2845NISTXML-SV-IV-atomic-positiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2846NISTXML-SV-IV-atomic-positiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2847NISTXML-SV-IV-atomic-positiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2848NISTXML-SV-IV-atomic-positiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2849NISTSchema-SV-IV-atomic-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="2850NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2851NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2852NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2853NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2854NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2855NISTSchema-SV-IV-atomic-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="2856NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2857NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2858NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2859NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2860NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2861NISTSchema-SV-IV-atomic-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="2862NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2863NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2864NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2865NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2866NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2867NISTSchema-SV-IV-atomic-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="2868NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2869NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2870NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2871NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2872NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2873NISTSchema-SV-IV-atomic-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="2874NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2875NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2876NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2877NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2878NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2879NISTSchema-SV-IV-atomic-positiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2880NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2881NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2882NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2883NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2884NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2885NISTSchema-SV-IV-atomic-double-pattern-1 tokoe:valid" result="pass"/><test-case name="2886NISTXML-SV-IV-atomic-double-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2887NISTXML-SV-IV-atomic-double-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2888NISTXML-SV-IV-atomic-double-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2889NISTXML-SV-IV-atomic-double-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2890NISTXML-SV-IV-atomic-double-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2891NISTSchema-SV-IV-atomic-double-pattern-2 tokoe:valid" result="pass"/><test-case name="2892NISTXML-SV-IV-atomic-double-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2893NISTXML-SV-IV-atomic-double-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2894NISTXML-SV-IV-atomic-double-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2895NISTXML-SV-IV-atomic-double-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2896NISTXML-SV-IV-atomic-double-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2897NISTSchema-SV-IV-atomic-double-pattern-3 tokoe:valid" result="pass"/><test-case name="2898NISTXML-SV-IV-atomic-double-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2899NISTXML-SV-IV-atomic-double-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2900NISTXML-SV-IV-atomic-double-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2901NISTXML-SV-IV-atomic-double-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2902NISTXML-SV-IV-atomic-double-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2903NISTSchema-SV-IV-atomic-double-pattern-4 tokoe:valid" result="pass"/><test-case name="2904NISTXML-SV-IV-atomic-double-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2905NISTXML-SV-IV-atomic-double-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2906NISTXML-SV-IV-atomic-double-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2907NISTXML-SV-IV-atomic-double-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2908NISTXML-SV-IV-atomic-double-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2909NISTSchema-SV-IV-atomic-double-pattern-5 tokoe:valid" result="pass"/><test-case name="2910NISTXML-SV-IV-atomic-double-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2911NISTXML-SV-IV-atomic-double-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2912NISTXML-SV-IV-atomic-double-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2913NISTXML-SV-IV-atomic-double-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2914NISTXML-SV-IV-atomic-double-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2915NISTSchema-SV-IV-atomic-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="2916NISTXML-SV-IV-atomic-double-enumeration-1-1 tokoe:valid" result="fail"/><test-case name="2917NISTXML-SV-IV-atomic-double-enumeration-1-2 tokoe:valid" result="fail"/><test-case name="2918NISTXML-SV-IV-atomic-double-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2919NISTXML-SV-IV-atomic-double-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2920NISTXML-SV-IV-atomic-double-enumeration-1-5 tokoe:valid" result="fail"/><test-case name="2921NISTSchema-SV-IV-atomic-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="2922NISTXML-SV-IV-atomic-double-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="2923NISTXML-SV-IV-atomic-double-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="2924NISTXML-SV-IV-atomic-double-enumeration-2-3 tokoe:valid" result="fail"/><test-case name="2925NISTXML-SV-IV-atomic-double-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="2926NISTXML-SV-IV-atomic-double-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="2927NISTSchema-SV-IV-atomic-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="2928NISTXML-SV-IV-atomic-double-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="2929NISTXML-SV-IV-atomic-double-enumeration-3-2 tokoe:valid" result="fail"/><test-case name="2930NISTXML-SV-IV-atomic-double-enumeration-3-3 tokoe:valid" result="fail"/><test-case name="2931NISTXML-SV-IV-atomic-double-enumeration-3-4 tokoe:valid" result="fail"/><test-case name="2932NISTXML-SV-IV-atomic-double-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="2933NISTSchema-SV-IV-atomic-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="2934NISTXML-SV-IV-atomic-double-enumeration-4-1 tokoe:valid" result="fail"/><test-case name="2935NISTXML-SV-IV-atomic-double-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="2936NISTXML-SV-IV-atomic-double-enumeration-4-3 tokoe:valid" result="fail"/><test-case name="2937NISTXML-SV-IV-atomic-double-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="2938NISTXML-SV-IV-atomic-double-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2939NISTSchema-SV-IV-atomic-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="2940NISTXML-SV-IV-atomic-double-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="2941NISTXML-SV-IV-atomic-double-enumeration-5-2 tokoe:valid" result="fail"/><test-case name="2942NISTXML-SV-IV-atomic-double-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="2943NISTXML-SV-IV-atomic-double-enumeration-5-4 tokoe:valid" result="fail"/><test-case name="2944NISTXML-SV-IV-atomic-double-enumeration-5-5 tokoe:valid" result="fail"/><test-case name="2945NISTSchema-SV-IV-atomic-double-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2946NISTXML-SV-IV-atomic-double-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2947NISTXML-SV-IV-atomic-double-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2948NISTXML-SV-IV-atomic-double-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2949NISTXML-SV-IV-atomic-double-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2950NISTXML-SV-IV-atomic-double-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2951NISTXML-SV-IV-atomic-double-whiteSpace-1-6 tokoe:valid" result="pass"/><test-case name="2952NISTXML-SV-IV-atomic-double-whiteSpace-1-7 tokoe:valid" result="pass"/><test-case name="2953NISTXML-SV-IV-atomic-double-whiteSpace-1-8 tokoe:valid" result="pass"/><test-case name="2954NISTXML-SV-IV-atomic-double-whiteSpace-1-9 tokoe:valid" result="pass"/><test-case name="2955NISTXML-SV-IV-atomic-double-whiteSpace-1-10 tokoe:valid" result="pass"/><test-case name="2956NISTXML-SV-IV-atomic-double-whiteSpace-1-11 tokoe:valid" result="pass"/><test-case name="2957NISTXML-SV-IV-atomic-double-whiteSpace-1-12 tokoe:valid" result="pass"/><test-case name="2958NISTXML-SV-IV-atomic-double-whiteSpace-1-13 tokoe:valid" result="pass"/><test-case name="2959NISTXML-SV-IV-atomic-double-whiteSpace-1-14 tokoe:valid" result="pass"/><test-case name="2960NISTXML-SV-IV-atomic-double-whiteSpace-1-15 tokoe:valid" result="pass"/><test-case name="2961NISTSchema-SV-IV-atomic-float-pattern-1 tokoe:valid" result="pass"/><test-case name="2962NISTXML-SV-IV-atomic-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2963NISTXML-SV-IV-atomic-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2964NISTXML-SV-IV-atomic-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2965NISTXML-SV-IV-atomic-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2966NISTXML-SV-IV-atomic-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2967NISTSchema-SV-IV-atomic-float-pattern-2 tokoe:valid" result="pass"/><test-case name="2968NISTXML-SV-IV-atomic-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2969NISTXML-SV-IV-atomic-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2970NISTXML-SV-IV-atomic-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2971NISTXML-SV-IV-atomic-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2972NISTXML-SV-IV-atomic-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2973NISTSchema-SV-IV-atomic-float-pattern-3 tokoe:valid" result="pass"/><test-case name="2974NISTXML-SV-IV-atomic-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2975NISTXML-SV-IV-atomic-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2976NISTXML-SV-IV-atomic-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2977NISTXML-SV-IV-atomic-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2978NISTXML-SV-IV-atomic-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2979NISTSchema-SV-IV-atomic-float-pattern-4 tokoe:valid" result="pass"/><test-case name="2980NISTXML-SV-IV-atomic-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2981NISTXML-SV-IV-atomic-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2982NISTXML-SV-IV-atomic-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2983NISTXML-SV-IV-atomic-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2984NISTXML-SV-IV-atomic-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2985NISTSchema-SV-IV-atomic-float-pattern-5 tokoe:valid" result="pass"/><test-case name="2986NISTXML-SV-IV-atomic-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2987NISTXML-SV-IV-atomic-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2988NISTXML-SV-IV-atomic-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2989NISTXML-SV-IV-atomic-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2990NISTXML-SV-IV-atomic-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2991NISTSchema-SV-IV-atomic-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="2992NISTXML-SV-IV-atomic-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2993NISTXML-SV-IV-atomic-float-enumeration-1-2 tokoe:valid" result="fail"/><test-case name="2994NISTXML-SV-IV-atomic-float-enumeration-1-3 tokoe:valid" result="fail"/><test-case name="2995NISTXML-SV-IV-atomic-float-enumeration-1-4 tokoe:valid" result="fail"/><test-case name="2996NISTXML-SV-IV-atomic-float-enumeration-1-5 tokoe:valid" result="fail"/><test-case name="2997NISTSchema-SV-IV-atomic-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="2998NISTXML-SV-IV-atomic-float-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="2999NISTXML-SV-IV-atomic-float-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="3000NISTXML-SV-IV-atomic-float-enumeration-2-3 tokoe:valid" result="fail"/><test-case name="3001NISTXML-SV-IV-atomic-float-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="3002NISTXML-SV-IV-atomic-float-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="3003NISTSchema-SV-IV-atomic-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="3004NISTXML-SV-IV-atomic-float-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="3005NISTXML-SV-IV-atomic-float-enumeration-3-2 tokoe:valid" result="fail"/><test-case name="3006NISTXML-SV-IV-atomic-float-enumeration-3-3 tokoe:valid" result="fail"/><test-case name="3007NISTXML-SV-IV-atomic-float-enumeration-3-4 tokoe:valid" result="fail"/><test-case name="3008NISTXML-SV-IV-atomic-float-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="3009NISTSchema-SV-IV-atomic-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="3010NISTXML-SV-IV-atomic-float-enumeration-4-1 tokoe:valid" result="fail"/><test-case name="3011NISTXML-SV-IV-atomic-float-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="3012NISTXML-SV-IV-atomic-float-enumeration-4-3 tokoe:valid" result="fail"/><test-case name="3013NISTXML-SV-IV-atomic-float-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="3014NISTXML-SV-IV-atomic-float-enumeration-4-5 tokoe:valid" result="fail"/><test-case name="3015NISTSchema-SV-IV-atomic-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="3016NISTXML-SV-IV-atomic-float-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="3017NISTXML-SV-IV-atomic-float-enumeration-5-2 tokoe:valid" result="fail"/><test-case name="3018NISTXML-SV-IV-atomic-float-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="3019NISTXML-SV-IV-atomic-float-enumeration-5-4 tokoe:valid" result="fail"/><test-case name="3020NISTXML-SV-IV-atomic-float-enumeration-5-5 tokoe:valid" result="fail"/><test-case name="3021NISTSchema-SV-IV-atomic-float-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3022NISTXML-SV-IV-atomic-float-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3023NISTXML-SV-IV-atomic-float-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3024NISTXML-SV-IV-atomic-float-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3025NISTXML-SV-IV-atomic-float-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3026NISTXML-SV-IV-atomic-float-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3027NISTXML-SV-IV-atomic-float-whiteSpace-1-6 tokoe:valid" result="pass"/><test-case name="3028NISTXML-SV-IV-atomic-float-whiteSpace-1-7 tokoe:valid" result="pass"/><test-case name="3029NISTXML-SV-IV-atomic-float-whiteSpace-1-8 tokoe:valid" result="pass"/><test-case name="3030NISTXML-SV-IV-atomic-float-whiteSpace-1-9 tokoe:valid" result="pass"/><test-case name="3031NISTXML-SV-IV-atomic-float-whiteSpace-1-10 tokoe:valid" result="pass"/><test-case name="3032NISTXML-SV-IV-atomic-float-whiteSpace-1-11 tokoe:valid" result="pass"/><test-case name="3033NISTXML-SV-IV-atomic-float-whiteSpace-1-12 tokoe:valid" result="pass"/><test-case name="3034NISTXML-SV-IV-atomic-float-whiteSpace-1-13 tokoe:valid" result="pass"/><test-case name="3035NISTXML-SV-IV-atomic-float-whiteSpace-1-14 tokoe:valid" result="pass"/><test-case name="3036NISTXML-SV-IV-atomic-float-whiteSpace-1-15 tokoe:valid" result="pass"/><test-case name="3037NISTSchema-SV-IV-atomic-duration-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3038NISTXML-SV-IV-atomic-duration-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3039NISTXML-SV-IV-atomic-duration-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3040NISTXML-SV-IV-atomic-duration-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3041NISTXML-SV-IV-atomic-duration-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3042NISTXML-SV-IV-atomic-duration-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3043NISTSchema-SV-IV-atomic-duration-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3044NISTXML-SV-IV-atomic-duration-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3045NISTXML-SV-IV-atomic-duration-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3046NISTXML-SV-IV-atomic-duration-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3047NISTXML-SV-IV-atomic-duration-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3048NISTXML-SV-IV-atomic-duration-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3049NISTSchema-SV-IV-atomic-duration-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3050NISTXML-SV-IV-atomic-duration-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3051NISTXML-SV-IV-atomic-duration-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3052NISTXML-SV-IV-atomic-duration-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3053NISTXML-SV-IV-atomic-duration-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3054NISTXML-SV-IV-atomic-duration-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3055NISTSchema-SV-IV-atomic-duration-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3056NISTXML-SV-IV-atomic-duration-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3057NISTXML-SV-IV-atomic-duration-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3058NISTXML-SV-IV-atomic-duration-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3059NISTXML-SV-IV-atomic-duration-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3060NISTXML-SV-IV-atomic-duration-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3061NISTSchema-SV-IV-atomic-duration-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3062NISTXML-SV-IV-atomic-duration-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3063NISTSchema-SV-IV-atomic-duration-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3064NISTXML-SV-IV-atomic-duration-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3065NISTXML-SV-IV-atomic-duration-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3066NISTXML-SV-IV-atomic-duration-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3067NISTXML-SV-IV-atomic-duration-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3068NISTXML-SV-IV-atomic-duration-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3069NISTSchema-SV-IV-atomic-duration-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3070NISTXML-SV-IV-atomic-duration-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3071NISTXML-SV-IV-atomic-duration-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3072NISTXML-SV-IV-atomic-duration-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3073NISTXML-SV-IV-atomic-duration-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3074NISTXML-SV-IV-atomic-duration-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3075NISTSchema-SV-IV-atomic-duration-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3076NISTXML-SV-IV-atomic-duration-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3077NISTXML-SV-IV-atomic-duration-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3078NISTXML-SV-IV-atomic-duration-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3079NISTXML-SV-IV-atomic-duration-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3080NISTXML-SV-IV-atomic-duration-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3081NISTSchema-SV-IV-atomic-duration-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3082NISTXML-SV-IV-atomic-duration-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3083NISTXML-SV-IV-atomic-duration-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3084NISTXML-SV-IV-atomic-duration-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3085NISTXML-SV-IV-atomic-duration-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3086NISTXML-SV-IV-atomic-duration-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3087NISTSchema-SV-IV-atomic-duration-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3088NISTXML-SV-IV-atomic-duration-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3089NISTSchema-SV-IV-atomic-duration-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3090NISTXML-SV-IV-atomic-duration-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3091NISTSchema-SV-IV-atomic-duration-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3092NISTXML-SV-IV-atomic-duration-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3093NISTXML-SV-IV-atomic-duration-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3094NISTXML-SV-IV-atomic-duration-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3095NISTXML-SV-IV-atomic-duration-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3096NISTXML-SV-IV-atomic-duration-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3097NISTSchema-SV-IV-atomic-duration-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3098NISTXML-SV-IV-atomic-duration-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3099NISTXML-SV-IV-atomic-duration-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3100NISTXML-SV-IV-atomic-duration-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3101NISTXML-SV-IV-atomic-duration-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3102NISTXML-SV-IV-atomic-duration-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3103NISTSchema-SV-IV-atomic-duration-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3104NISTXML-SV-IV-atomic-duration-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3105NISTXML-SV-IV-atomic-duration-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3106NISTXML-SV-IV-atomic-duration-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3107NISTXML-SV-IV-atomic-duration-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3108NISTXML-SV-IV-atomic-duration-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3109NISTSchema-SV-IV-atomic-duration-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3110NISTXML-SV-IV-atomic-duration-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3111NISTXML-SV-IV-atomic-duration-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3112NISTXML-SV-IV-atomic-duration-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3113NISTXML-SV-IV-atomic-duration-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3114NISTXML-SV-IV-atomic-duration-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3115NISTSchema-SV-IV-atomic-duration-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3116NISTXML-SV-IV-atomic-duration-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3117NISTSchema-SV-IV-atomic-duration-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3118NISTXML-SV-IV-atomic-duration-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3119NISTXML-SV-IV-atomic-duration-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3120NISTXML-SV-IV-atomic-duration-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3121NISTXML-SV-IV-atomic-duration-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3122NISTXML-SV-IV-atomic-duration-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3123NISTSchema-SV-IV-atomic-duration-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3124NISTXML-SV-IV-atomic-duration-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3125NISTXML-SV-IV-atomic-duration-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3126NISTXML-SV-IV-atomic-duration-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3127NISTXML-SV-IV-atomic-duration-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3128NISTXML-SV-IV-atomic-duration-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3129NISTSchema-SV-IV-atomic-duration-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3130NISTXML-SV-IV-atomic-duration-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3131NISTXML-SV-IV-atomic-duration-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3132NISTXML-SV-IV-atomic-duration-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3133NISTXML-SV-IV-atomic-duration-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3134NISTXML-SV-IV-atomic-duration-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3135NISTSchema-SV-IV-atomic-duration-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3136NISTXML-SV-IV-atomic-duration-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3137NISTXML-SV-IV-atomic-duration-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3138NISTXML-SV-IV-atomic-duration-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3139NISTXML-SV-IV-atomic-duration-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3140NISTXML-SV-IV-atomic-duration-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3141NISTSchema-SV-IV-atomic-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="3142NISTXML-SV-IV-atomic-duration-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3143NISTXML-SV-IV-atomic-duration-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3144NISTXML-SV-IV-atomic-duration-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3145NISTXML-SV-IV-atomic-duration-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3146NISTXML-SV-IV-atomic-duration-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3147NISTSchema-SV-IV-atomic-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="3148NISTXML-SV-IV-atomic-duration-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3149NISTXML-SV-IV-atomic-duration-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3150NISTXML-SV-IV-atomic-duration-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3151NISTXML-SV-IV-atomic-duration-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3152NISTXML-SV-IV-atomic-duration-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3153NISTSchema-SV-IV-atomic-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="3154NISTXML-SV-IV-atomic-duration-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3155NISTXML-SV-IV-atomic-duration-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3156NISTXML-SV-IV-atomic-duration-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3157NISTXML-SV-IV-atomic-duration-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3158NISTXML-SV-IV-atomic-duration-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3159NISTSchema-SV-IV-atomic-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="3160NISTXML-SV-IV-atomic-duration-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3161NISTXML-SV-IV-atomic-duration-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3162NISTXML-SV-IV-atomic-duration-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3163NISTXML-SV-IV-atomic-duration-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3164NISTXML-SV-IV-atomic-duration-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3165NISTSchema-SV-IV-atomic-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="3166NISTXML-SV-IV-atomic-duration-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3167NISTXML-SV-IV-atomic-duration-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3168NISTXML-SV-IV-atomic-duration-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3169NISTXML-SV-IV-atomic-duration-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3170NISTXML-SV-IV-atomic-duration-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3171NISTSchema-SV-IV-atomic-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="3172NISTXML-SV-IV-atomic-duration-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3173NISTXML-SV-IV-atomic-duration-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3174NISTXML-SV-IV-atomic-duration-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3175NISTXML-SV-IV-atomic-duration-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3176NISTXML-SV-IV-atomic-duration-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3177NISTSchema-SV-IV-atomic-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="3178NISTXML-SV-IV-atomic-duration-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3179NISTXML-SV-IV-atomic-duration-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3180NISTXML-SV-IV-atomic-duration-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3181NISTXML-SV-IV-atomic-duration-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3182NISTXML-SV-IV-atomic-duration-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3183NISTSchema-SV-IV-atomic-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="3184NISTXML-SV-IV-atomic-duration-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3185NISTXML-SV-IV-atomic-duration-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3186NISTXML-SV-IV-atomic-duration-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3187NISTXML-SV-IV-atomic-duration-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3188NISTXML-SV-IV-atomic-duration-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3189NISTSchema-SV-IV-atomic-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="3190NISTXML-SV-IV-atomic-duration-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3191NISTXML-SV-IV-atomic-duration-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3192NISTXML-SV-IV-atomic-duration-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3193NISTXML-SV-IV-atomic-duration-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3194NISTXML-SV-IV-atomic-duration-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3195NISTSchema-SV-IV-atomic-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="3196NISTXML-SV-IV-atomic-duration-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3197NISTXML-SV-IV-atomic-duration-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3198NISTXML-SV-IV-atomic-duration-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3199NISTXML-SV-IV-atomic-duration-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3200NISTXML-SV-IV-atomic-duration-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3201NISTSchema-SV-IV-atomic-duration-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3202NISTXML-SV-IV-atomic-duration-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3203NISTXML-SV-IV-atomic-duration-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3204NISTXML-SV-IV-atomic-duration-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3205NISTXML-SV-IV-atomic-duration-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3206NISTXML-SV-IV-atomic-duration-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3207NISTSchema-SV-IV-atomic-dateTime-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3208NISTXML-SV-IV-atomic-dateTime-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3209NISTXML-SV-IV-atomic-dateTime-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3210NISTXML-SV-IV-atomic-dateTime-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3211NISTXML-SV-IV-atomic-dateTime-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3212NISTXML-SV-IV-atomic-dateTime-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3213NISTSchema-SV-IV-atomic-dateTime-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3214NISTXML-SV-IV-atomic-dateTime-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3215NISTXML-SV-IV-atomic-dateTime-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3216NISTXML-SV-IV-atomic-dateTime-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3217NISTXML-SV-IV-atomic-dateTime-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3218NISTXML-SV-IV-atomic-dateTime-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3219NISTSchema-SV-IV-atomic-dateTime-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3220NISTXML-SV-IV-atomic-dateTime-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3221NISTXML-SV-IV-atomic-dateTime-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3222NISTXML-SV-IV-atomic-dateTime-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3223NISTXML-SV-IV-atomic-dateTime-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3224NISTXML-SV-IV-atomic-dateTime-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3225NISTSchema-SV-IV-atomic-dateTime-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3226NISTXML-SV-IV-atomic-dateTime-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3227NISTXML-SV-IV-atomic-dateTime-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3228NISTXML-SV-IV-atomic-dateTime-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3229NISTXML-SV-IV-atomic-dateTime-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3230NISTXML-SV-IV-atomic-dateTime-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3231NISTSchema-SV-IV-atomic-dateTime-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3232NISTXML-SV-IV-atomic-dateTime-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3233NISTSchema-SV-IV-atomic-dateTime-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3234NISTXML-SV-IV-atomic-dateTime-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3235NISTXML-SV-IV-atomic-dateTime-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3236NISTXML-SV-IV-atomic-dateTime-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3237NISTXML-SV-IV-atomic-dateTime-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3238NISTXML-SV-IV-atomic-dateTime-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3239NISTSchema-SV-IV-atomic-dateTime-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3240NISTXML-SV-IV-atomic-dateTime-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3241NISTXML-SV-IV-atomic-dateTime-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3242NISTXML-SV-IV-atomic-dateTime-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3243NISTXML-SV-IV-atomic-dateTime-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3244NISTXML-SV-IV-atomic-dateTime-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3245NISTSchema-SV-IV-atomic-dateTime-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3246NISTXML-SV-IV-atomic-dateTime-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3247NISTXML-SV-IV-atomic-dateTime-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3248NISTXML-SV-IV-atomic-dateTime-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3249NISTXML-SV-IV-atomic-dateTime-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3250NISTXML-SV-IV-atomic-dateTime-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3251NISTSchema-SV-IV-atomic-dateTime-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3252NISTXML-SV-IV-atomic-dateTime-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3253NISTXML-SV-IV-atomic-dateTime-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3254NISTXML-SV-IV-atomic-dateTime-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3255NISTXML-SV-IV-atomic-dateTime-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3256NISTXML-SV-IV-atomic-dateTime-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3257NISTSchema-SV-IV-atomic-dateTime-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3258NISTXML-SV-IV-atomic-dateTime-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3259NISTSchema-SV-IV-atomic-dateTime-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3260NISTXML-SV-IV-atomic-dateTime-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3261NISTSchema-SV-IV-atomic-dateTime-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3262NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3263NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3264NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3265NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3266NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3267NISTSchema-SV-IV-atomic-dateTime-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3268NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3269NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3270NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3271NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3272NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3273NISTSchema-SV-IV-atomic-dateTime-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3274NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3275NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3276NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3277NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3278NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3279NISTSchema-SV-IV-atomic-dateTime-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3280NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3281NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3282NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3283NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3284NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3285NISTSchema-SV-IV-atomic-dateTime-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3286NISTXML-SV-IV-atomic-dateTime-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3287NISTSchema-SV-IV-atomic-dateTime-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3288NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3289NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3290NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3291NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3292NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3293NISTSchema-SV-IV-atomic-dateTime-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3294NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3295NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3296NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3297NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3298NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3299NISTSchema-SV-IV-atomic-dateTime-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3300NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3301NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3302NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3303NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3304NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3305NISTSchema-SV-IV-atomic-dateTime-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3306NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3307NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3308NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3309NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3310NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3311NISTSchema-SV-IV-atomic-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="3312NISTXML-SV-IV-atomic-dateTime-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3313NISTXML-SV-IV-atomic-dateTime-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3314NISTXML-SV-IV-atomic-dateTime-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3315NISTXML-SV-IV-atomic-dateTime-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3316NISTXML-SV-IV-atomic-dateTime-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3317NISTSchema-SV-IV-atomic-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="3318NISTXML-SV-IV-atomic-dateTime-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3319NISTXML-SV-IV-atomic-dateTime-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3320NISTXML-SV-IV-atomic-dateTime-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3321NISTXML-SV-IV-atomic-dateTime-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3322NISTXML-SV-IV-atomic-dateTime-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3323NISTSchema-SV-IV-atomic-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="3324NISTXML-SV-IV-atomic-dateTime-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3325NISTXML-SV-IV-atomic-dateTime-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3326NISTXML-SV-IV-atomic-dateTime-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3327NISTXML-SV-IV-atomic-dateTime-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3328NISTXML-SV-IV-atomic-dateTime-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3329NISTSchema-SV-IV-atomic-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="3330NISTXML-SV-IV-atomic-dateTime-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3331NISTXML-SV-IV-atomic-dateTime-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3332NISTXML-SV-IV-atomic-dateTime-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3333NISTXML-SV-IV-atomic-dateTime-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3334NISTXML-SV-IV-atomic-dateTime-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3335NISTSchema-SV-IV-atomic-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="3336NISTXML-SV-IV-atomic-dateTime-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3337NISTXML-SV-IV-atomic-dateTime-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3338NISTXML-SV-IV-atomic-dateTime-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3339NISTXML-SV-IV-atomic-dateTime-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3340NISTXML-SV-IV-atomic-dateTime-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3341NISTSchema-SV-IV-atomic-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="3342NISTXML-SV-IV-atomic-dateTime-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3343NISTXML-SV-IV-atomic-dateTime-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3344NISTXML-SV-IV-atomic-dateTime-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3345NISTXML-SV-IV-atomic-dateTime-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3346NISTXML-SV-IV-atomic-dateTime-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3347NISTSchema-SV-IV-atomic-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="3348NISTXML-SV-IV-atomic-dateTime-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3349NISTXML-SV-IV-atomic-dateTime-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3350NISTXML-SV-IV-atomic-dateTime-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3351NISTXML-SV-IV-atomic-dateTime-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3352NISTXML-SV-IV-atomic-dateTime-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3353NISTSchema-SV-IV-atomic-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="3354NISTXML-SV-IV-atomic-dateTime-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3355NISTXML-SV-IV-atomic-dateTime-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3356NISTXML-SV-IV-atomic-dateTime-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3357NISTXML-SV-IV-atomic-dateTime-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3358NISTXML-SV-IV-atomic-dateTime-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3359NISTSchema-SV-IV-atomic-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="3360NISTXML-SV-IV-atomic-dateTime-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3361NISTXML-SV-IV-atomic-dateTime-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3362NISTXML-SV-IV-atomic-dateTime-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3363NISTXML-SV-IV-atomic-dateTime-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3364NISTXML-SV-IV-atomic-dateTime-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3365NISTSchema-SV-IV-atomic-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="3366NISTXML-SV-IV-atomic-dateTime-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3367NISTXML-SV-IV-atomic-dateTime-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3368NISTXML-SV-IV-atomic-dateTime-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3369NISTXML-SV-IV-atomic-dateTime-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3370NISTXML-SV-IV-atomic-dateTime-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3371NISTSchema-SV-IV-atomic-dateTime-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3372NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3373NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3374NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3375NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3376NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3377NISTSchema-SV-IV-atomic-time-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3378NISTXML-SV-IV-atomic-time-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3379NISTXML-SV-IV-atomic-time-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3380NISTXML-SV-IV-atomic-time-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3381NISTXML-SV-IV-atomic-time-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3382NISTXML-SV-IV-atomic-time-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3383NISTSchema-SV-IV-atomic-time-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3384NISTXML-SV-IV-atomic-time-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3385NISTXML-SV-IV-atomic-time-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3386NISTXML-SV-IV-atomic-time-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3387NISTXML-SV-IV-atomic-time-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3388NISTXML-SV-IV-atomic-time-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3389NISTSchema-SV-IV-atomic-time-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3390NISTXML-SV-IV-atomic-time-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3391NISTXML-SV-IV-atomic-time-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3392NISTXML-SV-IV-atomic-time-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3393NISTXML-SV-IV-atomic-time-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3394NISTXML-SV-IV-atomic-time-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3395NISTSchema-SV-IV-atomic-time-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3396NISTXML-SV-IV-atomic-time-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3397NISTXML-SV-IV-atomic-time-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3398NISTXML-SV-IV-atomic-time-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3399NISTXML-SV-IV-atomic-time-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3400NISTXML-SV-IV-atomic-time-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3401NISTSchema-SV-IV-atomic-time-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3402NISTXML-SV-IV-atomic-time-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3403NISTSchema-SV-IV-atomic-time-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3404NISTXML-SV-IV-atomic-time-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3405NISTXML-SV-IV-atomic-time-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3406NISTXML-SV-IV-atomic-time-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3407NISTXML-SV-IV-atomic-time-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3408NISTXML-SV-IV-atomic-time-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3409NISTSchema-SV-IV-atomic-time-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3410NISTXML-SV-IV-atomic-time-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3411NISTXML-SV-IV-atomic-time-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3412NISTXML-SV-IV-atomic-time-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3413NISTXML-SV-IV-atomic-time-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3414NISTXML-SV-IV-atomic-time-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3415NISTSchema-SV-IV-atomic-time-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3416NISTXML-SV-IV-atomic-time-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3417NISTXML-SV-IV-atomic-time-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3418NISTXML-SV-IV-atomic-time-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3419NISTXML-SV-IV-atomic-time-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3420NISTXML-SV-IV-atomic-time-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3421NISTSchema-SV-IV-atomic-time-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3422NISTXML-SV-IV-atomic-time-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3423NISTXML-SV-IV-atomic-time-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3424NISTXML-SV-IV-atomic-time-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3425NISTXML-SV-IV-atomic-time-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3426NISTXML-SV-IV-atomic-time-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3427NISTSchema-SV-IV-atomic-time-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3428NISTXML-SV-IV-atomic-time-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3429NISTSchema-SV-IV-atomic-time-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3430NISTXML-SV-IV-atomic-time-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3431NISTSchema-SV-IV-atomic-time-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3432NISTXML-SV-IV-atomic-time-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3433NISTXML-SV-IV-atomic-time-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3434NISTXML-SV-IV-atomic-time-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3435NISTXML-SV-IV-atomic-time-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3436NISTXML-SV-IV-atomic-time-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3437NISTSchema-SV-IV-atomic-time-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3438NISTXML-SV-IV-atomic-time-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3439NISTXML-SV-IV-atomic-time-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3440NISTXML-SV-IV-atomic-time-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3441NISTXML-SV-IV-atomic-time-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3442NISTXML-SV-IV-atomic-time-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3443NISTSchema-SV-IV-atomic-time-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3444NISTXML-SV-IV-atomic-time-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3445NISTXML-SV-IV-atomic-time-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3446NISTXML-SV-IV-atomic-time-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3447NISTXML-SV-IV-atomic-time-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3448NISTXML-SV-IV-atomic-time-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3449NISTSchema-SV-IV-atomic-time-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3450NISTXML-SV-IV-atomic-time-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3451NISTXML-SV-IV-atomic-time-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3452NISTXML-SV-IV-atomic-time-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3453NISTXML-SV-IV-atomic-time-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3454NISTXML-SV-IV-atomic-time-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3455NISTSchema-SV-IV-atomic-time-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3456NISTXML-SV-IV-atomic-time-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3457NISTSchema-SV-IV-atomic-time-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3458NISTXML-SV-IV-atomic-time-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3459NISTXML-SV-IV-atomic-time-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3460NISTXML-SV-IV-atomic-time-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3461NISTXML-SV-IV-atomic-time-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3462NISTXML-SV-IV-atomic-time-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3463NISTSchema-SV-IV-atomic-time-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3464NISTXML-SV-IV-atomic-time-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3465NISTXML-SV-IV-atomic-time-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3466NISTXML-SV-IV-atomic-time-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3467NISTXML-SV-IV-atomic-time-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3468NISTXML-SV-IV-atomic-time-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3469NISTSchema-SV-IV-atomic-time-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3470NISTXML-SV-IV-atomic-time-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3471NISTXML-SV-IV-atomic-time-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3472NISTXML-SV-IV-atomic-time-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3473NISTXML-SV-IV-atomic-time-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3474NISTXML-SV-IV-atomic-time-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3475NISTSchema-SV-IV-atomic-time-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3476NISTXML-SV-IV-atomic-time-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3477NISTXML-SV-IV-atomic-time-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3478NISTXML-SV-IV-atomic-time-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3479NISTXML-SV-IV-atomic-time-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3480NISTXML-SV-IV-atomic-time-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3481NISTSchema-SV-IV-atomic-time-pattern-1 tokoe:valid" result="pass"/><test-case name="3482NISTXML-SV-IV-atomic-time-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3483NISTXML-SV-IV-atomic-time-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3484NISTXML-SV-IV-atomic-time-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3485NISTXML-SV-IV-atomic-time-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3486NISTXML-SV-IV-atomic-time-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3487NISTSchema-SV-IV-atomic-time-pattern-2 tokoe:valid" result="pass"/><test-case name="3488NISTXML-SV-IV-atomic-time-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3489NISTXML-SV-IV-atomic-time-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3490NISTXML-SV-IV-atomic-time-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3491NISTXML-SV-IV-atomic-time-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3492NISTXML-SV-IV-atomic-time-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3493NISTSchema-SV-IV-atomic-time-pattern-3 tokoe:valid" result="pass"/><test-case name="3494NISTXML-SV-IV-atomic-time-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3495NISTXML-SV-IV-atomic-time-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3496NISTXML-SV-IV-atomic-time-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3497NISTXML-SV-IV-atomic-time-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3498NISTXML-SV-IV-atomic-time-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3499NISTSchema-SV-IV-atomic-time-pattern-4 tokoe:valid" result="pass"/><test-case name="3500NISTXML-SV-IV-atomic-time-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3501NISTXML-SV-IV-atomic-time-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3502NISTXML-SV-IV-atomic-time-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3503NISTXML-SV-IV-atomic-time-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3504NISTXML-SV-IV-atomic-time-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3505NISTSchema-SV-IV-atomic-time-pattern-5 tokoe:valid" result="pass"/><test-case name="3506NISTXML-SV-IV-atomic-time-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3507NISTXML-SV-IV-atomic-time-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3508NISTXML-SV-IV-atomic-time-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3509NISTXML-SV-IV-atomic-time-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3510NISTXML-SV-IV-atomic-time-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3511NISTSchema-SV-IV-atomic-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="3512NISTXML-SV-IV-atomic-time-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3513NISTXML-SV-IV-atomic-time-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3514NISTXML-SV-IV-atomic-time-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3515NISTXML-SV-IV-atomic-time-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3516NISTXML-SV-IV-atomic-time-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3517NISTSchema-SV-IV-atomic-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="3518NISTXML-SV-IV-atomic-time-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3519NISTXML-SV-IV-atomic-time-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3520NISTXML-SV-IV-atomic-time-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3521NISTXML-SV-IV-atomic-time-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3522NISTXML-SV-IV-atomic-time-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3523NISTSchema-SV-IV-atomic-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="3524NISTXML-SV-IV-atomic-time-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3525NISTXML-SV-IV-atomic-time-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3526NISTXML-SV-IV-atomic-time-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3527NISTXML-SV-IV-atomic-time-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3528NISTXML-SV-IV-atomic-time-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3529NISTSchema-SV-IV-atomic-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="3530NISTXML-SV-IV-atomic-time-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3531NISTXML-SV-IV-atomic-time-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3532NISTXML-SV-IV-atomic-time-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3533NISTXML-SV-IV-atomic-time-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3534NISTXML-SV-IV-atomic-time-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3535NISTSchema-SV-IV-atomic-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="3536NISTXML-SV-IV-atomic-time-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3537NISTXML-SV-IV-atomic-time-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3538NISTXML-SV-IV-atomic-time-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3539NISTXML-SV-IV-atomic-time-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3540NISTXML-SV-IV-atomic-time-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3541NISTSchema-SV-IV-atomic-time-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3542NISTXML-SV-IV-atomic-time-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3543NISTXML-SV-IV-atomic-time-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3544NISTXML-SV-IV-atomic-time-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3545NISTXML-SV-IV-atomic-time-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3546NISTXML-SV-IV-atomic-time-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3547NISTSchema-SV-IV-atomic-date-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3548NISTXML-SV-IV-atomic-date-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3549NISTXML-SV-IV-atomic-date-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3550NISTXML-SV-IV-atomic-date-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3551NISTXML-SV-IV-atomic-date-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3552NISTXML-SV-IV-atomic-date-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3553NISTSchema-SV-IV-atomic-date-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3554NISTXML-SV-IV-atomic-date-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3555NISTXML-SV-IV-atomic-date-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3556NISTXML-SV-IV-atomic-date-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3557NISTXML-SV-IV-atomic-date-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3558NISTXML-SV-IV-atomic-date-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3559NISTSchema-SV-IV-atomic-date-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3560NISTXML-SV-IV-atomic-date-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3561NISTXML-SV-IV-atomic-date-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3562NISTXML-SV-IV-atomic-date-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3563NISTXML-SV-IV-atomic-date-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3564NISTXML-SV-IV-atomic-date-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3565NISTSchema-SV-IV-atomic-date-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3566NISTXML-SV-IV-atomic-date-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3567NISTXML-SV-IV-atomic-date-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3568NISTXML-SV-IV-atomic-date-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3569NISTXML-SV-IV-atomic-date-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3570NISTXML-SV-IV-atomic-date-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3571NISTSchema-SV-IV-atomic-date-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3572NISTXML-SV-IV-atomic-date-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3573NISTSchema-SV-IV-atomic-date-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3574NISTXML-SV-IV-atomic-date-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3575NISTXML-SV-IV-atomic-date-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3576NISTXML-SV-IV-atomic-date-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3577NISTXML-SV-IV-atomic-date-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3578NISTXML-SV-IV-atomic-date-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3579NISTSchema-SV-IV-atomic-date-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3580NISTXML-SV-IV-atomic-date-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3581NISTXML-SV-IV-atomic-date-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3582NISTXML-SV-IV-atomic-date-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3583NISTXML-SV-IV-atomic-date-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3584NISTXML-SV-IV-atomic-date-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3585NISTSchema-SV-IV-atomic-date-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3586NISTXML-SV-IV-atomic-date-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3587NISTXML-SV-IV-atomic-date-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3588NISTXML-SV-IV-atomic-date-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3589NISTXML-SV-IV-atomic-date-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3590NISTXML-SV-IV-atomic-date-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3591NISTSchema-SV-IV-atomic-date-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3592NISTXML-SV-IV-atomic-date-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3593NISTXML-SV-IV-atomic-date-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3594NISTXML-SV-IV-atomic-date-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3595NISTXML-SV-IV-atomic-date-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3596NISTXML-SV-IV-atomic-date-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3597NISTSchema-SV-IV-atomic-date-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3598NISTXML-SV-IV-atomic-date-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3599NISTSchema-SV-IV-atomic-date-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3600NISTXML-SV-IV-atomic-date-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3601NISTSchema-SV-IV-atomic-date-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3602NISTXML-SV-IV-atomic-date-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3603NISTXML-SV-IV-atomic-date-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3604NISTXML-SV-IV-atomic-date-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3605NISTXML-SV-IV-atomic-date-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3606NISTXML-SV-IV-atomic-date-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3607NISTSchema-SV-IV-atomic-date-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3608NISTXML-SV-IV-atomic-date-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3609NISTXML-SV-IV-atomic-date-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3610NISTXML-SV-IV-atomic-date-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3611NISTXML-SV-IV-atomic-date-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3612NISTXML-SV-IV-atomic-date-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3613NISTSchema-SV-IV-atomic-date-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3614NISTXML-SV-IV-atomic-date-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3615NISTXML-SV-IV-atomic-date-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3616NISTXML-SV-IV-atomic-date-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3617NISTXML-SV-IV-atomic-date-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3618NISTXML-SV-IV-atomic-date-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3619NISTSchema-SV-IV-atomic-date-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3620NISTXML-SV-IV-atomic-date-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3621NISTXML-SV-IV-atomic-date-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3622NISTXML-SV-IV-atomic-date-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3623NISTXML-SV-IV-atomic-date-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3624NISTXML-SV-IV-atomic-date-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3625NISTSchema-SV-IV-atomic-date-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3626NISTXML-SV-IV-atomic-date-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3627NISTSchema-SV-IV-atomic-date-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3628NISTXML-SV-IV-atomic-date-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3629NISTXML-SV-IV-atomic-date-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3630NISTXML-SV-IV-atomic-date-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3631NISTXML-SV-IV-atomic-date-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3632NISTXML-SV-IV-atomic-date-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3633NISTSchema-SV-IV-atomic-date-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3634NISTXML-SV-IV-atomic-date-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3635NISTXML-SV-IV-atomic-date-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3636NISTXML-SV-IV-atomic-date-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3637NISTXML-SV-IV-atomic-date-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3638NISTXML-SV-IV-atomic-date-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3639NISTSchema-SV-IV-atomic-date-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3640NISTXML-SV-IV-atomic-date-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3641NISTXML-SV-IV-atomic-date-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3642NISTXML-SV-IV-atomic-date-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3643NISTXML-SV-IV-atomic-date-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3644NISTXML-SV-IV-atomic-date-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3645NISTSchema-SV-IV-atomic-date-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3646NISTXML-SV-IV-atomic-date-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3647NISTXML-SV-IV-atomic-date-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3648NISTXML-SV-IV-atomic-date-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3649NISTXML-SV-IV-atomic-date-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3650NISTXML-SV-IV-atomic-date-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3651NISTSchema-SV-IV-atomic-date-pattern-1 tokoe:valid" result="pass"/><test-case name="3652NISTXML-SV-IV-atomic-date-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3653NISTXML-SV-IV-atomic-date-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3654NISTXML-SV-IV-atomic-date-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3655NISTXML-SV-IV-atomic-date-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3656NISTXML-SV-IV-atomic-date-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3657NISTSchema-SV-IV-atomic-date-pattern-2 tokoe:valid" result="pass"/><test-case name="3658NISTXML-SV-IV-atomic-date-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3659NISTXML-SV-IV-atomic-date-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3660NISTXML-SV-IV-atomic-date-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3661NISTXML-SV-IV-atomic-date-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3662NISTXML-SV-IV-atomic-date-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3663NISTSchema-SV-IV-atomic-date-pattern-3 tokoe:valid" result="pass"/><test-case name="3664NISTXML-SV-IV-atomic-date-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3665NISTXML-SV-IV-atomic-date-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3666NISTXML-SV-IV-atomic-date-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3667NISTXML-SV-IV-atomic-date-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3668NISTXML-SV-IV-atomic-date-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3669NISTSchema-SV-IV-atomic-date-pattern-4 tokoe:valid" result="pass"/><test-case name="3670NISTXML-SV-IV-atomic-date-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3671NISTXML-SV-IV-atomic-date-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3672NISTXML-SV-IV-atomic-date-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3673NISTXML-SV-IV-atomic-date-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3674NISTXML-SV-IV-atomic-date-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3675NISTSchema-SV-IV-atomic-date-pattern-5 tokoe:valid" result="pass"/><test-case name="3676NISTXML-SV-IV-atomic-date-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3677NISTXML-SV-IV-atomic-date-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3678NISTXML-SV-IV-atomic-date-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3679NISTXML-SV-IV-atomic-date-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3680NISTXML-SV-IV-atomic-date-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3681NISTSchema-SV-IV-atomic-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="3682NISTXML-SV-IV-atomic-date-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3683NISTXML-SV-IV-atomic-date-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3684NISTXML-SV-IV-atomic-date-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3685NISTXML-SV-IV-atomic-date-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3686NISTXML-SV-IV-atomic-date-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3687NISTSchema-SV-IV-atomic-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="3688NISTXML-SV-IV-atomic-date-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3689NISTXML-SV-IV-atomic-date-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3690NISTXML-SV-IV-atomic-date-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3691NISTXML-SV-IV-atomic-date-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3692NISTXML-SV-IV-atomic-date-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3693NISTSchema-SV-IV-atomic-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="3694NISTXML-SV-IV-atomic-date-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3695NISTXML-SV-IV-atomic-date-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3696NISTXML-SV-IV-atomic-date-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3697NISTXML-SV-IV-atomic-date-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3698NISTXML-SV-IV-atomic-date-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3699NISTSchema-SV-IV-atomic-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="3700NISTXML-SV-IV-atomic-date-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3701NISTXML-SV-IV-atomic-date-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3702NISTXML-SV-IV-atomic-date-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3703NISTXML-SV-IV-atomic-date-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3704NISTXML-SV-IV-atomic-date-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3705NISTSchema-SV-IV-atomic-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="3706NISTXML-SV-IV-atomic-date-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3707NISTXML-SV-IV-atomic-date-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3708NISTXML-SV-IV-atomic-date-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3709NISTXML-SV-IV-atomic-date-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3710NISTXML-SV-IV-atomic-date-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3711NISTSchema-SV-IV-atomic-date-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3712NISTXML-SV-IV-atomic-date-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3713NISTXML-SV-IV-atomic-date-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3714NISTXML-SV-IV-atomic-date-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3715NISTXML-SV-IV-atomic-date-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3716NISTXML-SV-IV-atomic-date-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3717NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3718NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3719NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3720NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3721NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3722NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3723NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3724NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3725NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3726NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3727NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3728NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3729NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3730NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3731NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3732NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3733NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3734NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3735NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3736NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3737NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3738NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3739NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3740NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3741NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3742NISTXML-SV-IV-atomic-gYearMonth-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3743NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3744NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3745NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3746NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3747NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3748NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3749NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3750NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3751NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3752NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3753NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3754NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3755NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3756NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3757NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3758NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3759NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3760NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3761NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3762NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3763NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3764NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3765NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3766NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3767NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3768NISTXML-SV-IV-atomic-gYearMonth-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3769NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3770NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3771NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3772NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3773NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3774NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3775NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3776NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3777NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3778NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3779NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3780NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3781NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3782NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3783NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3784NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3785NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3786NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3787NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3788NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3789NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3790NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3791NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3792NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3793NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3794NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3795NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3796NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3797NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3798NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3799NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3800NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3801NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3802NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3803NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3804NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3805NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3806NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3807NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3808NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3809NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3810NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3811NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3812NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3813NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3814NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3815NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3816NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3817NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3818NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3819NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3820NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3821NISTSchema-SV-IV-atomic-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="3822NISTXML-SV-IV-atomic-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3823NISTXML-SV-IV-atomic-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3824NISTXML-SV-IV-atomic-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3825NISTXML-SV-IV-atomic-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3826NISTXML-SV-IV-atomic-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3827NISTSchema-SV-IV-atomic-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="3828NISTXML-SV-IV-atomic-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3829NISTXML-SV-IV-atomic-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3830NISTXML-SV-IV-atomic-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3831NISTXML-SV-IV-atomic-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3832NISTXML-SV-IV-atomic-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3833NISTSchema-SV-IV-atomic-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="3834NISTXML-SV-IV-atomic-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3835NISTXML-SV-IV-atomic-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3836NISTXML-SV-IV-atomic-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3837NISTXML-SV-IV-atomic-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3838NISTXML-SV-IV-atomic-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3839NISTSchema-SV-IV-atomic-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="3840NISTXML-SV-IV-atomic-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3841NISTXML-SV-IV-atomic-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3842NISTXML-SV-IV-atomic-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3843NISTXML-SV-IV-atomic-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3844NISTXML-SV-IV-atomic-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3845NISTSchema-SV-IV-atomic-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="3846NISTXML-SV-IV-atomic-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3847NISTXML-SV-IV-atomic-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3848NISTXML-SV-IV-atomic-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3849NISTXML-SV-IV-atomic-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3850NISTXML-SV-IV-atomic-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3851NISTSchema-SV-IV-atomic-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="3852NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3853NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3854NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3855NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3856NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3857NISTSchema-SV-IV-atomic-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="3858NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3859NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3860NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3861NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3862NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3863NISTSchema-SV-IV-atomic-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="3864NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3865NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3866NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3867NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3868NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3869NISTSchema-SV-IV-atomic-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="3870NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3871NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3872NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3873NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3874NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3875NISTSchema-SV-IV-atomic-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="3876NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3877NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3878NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3879NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3880NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3881NISTSchema-SV-IV-atomic-gYearMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3882NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3883NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3884NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3885NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3886NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3887NISTSchema-SV-IV-atomic-gYear-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3888NISTXML-SV-IV-atomic-gYear-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3889NISTXML-SV-IV-atomic-gYear-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3890NISTXML-SV-IV-atomic-gYear-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3891NISTXML-SV-IV-atomic-gYear-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3892NISTXML-SV-IV-atomic-gYear-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3893NISTSchema-SV-IV-atomic-gYear-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3894NISTXML-SV-IV-atomic-gYear-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3895NISTXML-SV-IV-atomic-gYear-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3896NISTXML-SV-IV-atomic-gYear-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3897NISTXML-SV-IV-atomic-gYear-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3898NISTXML-SV-IV-atomic-gYear-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3899NISTSchema-SV-IV-atomic-gYear-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3900NISTXML-SV-IV-atomic-gYear-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3901NISTXML-SV-IV-atomic-gYear-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3902NISTXML-SV-IV-atomic-gYear-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3903NISTXML-SV-IV-atomic-gYear-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3904NISTXML-SV-IV-atomic-gYear-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3905NISTSchema-SV-IV-atomic-gYear-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3906NISTXML-SV-IV-atomic-gYear-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3907NISTXML-SV-IV-atomic-gYear-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3908NISTXML-SV-IV-atomic-gYear-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3909NISTXML-SV-IV-atomic-gYear-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3910NISTXML-SV-IV-atomic-gYear-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3911NISTSchema-SV-IV-atomic-gYear-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3912NISTXML-SV-IV-atomic-gYear-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3913NISTSchema-SV-IV-atomic-gYear-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3914NISTXML-SV-IV-atomic-gYear-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3915NISTXML-SV-IV-atomic-gYear-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3916NISTXML-SV-IV-atomic-gYear-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3917NISTXML-SV-IV-atomic-gYear-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3918NISTXML-SV-IV-atomic-gYear-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3919NISTSchema-SV-IV-atomic-gYear-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3920NISTXML-SV-IV-atomic-gYear-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3921NISTXML-SV-IV-atomic-gYear-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3922NISTXML-SV-IV-atomic-gYear-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3923NISTXML-SV-IV-atomic-gYear-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3924NISTXML-SV-IV-atomic-gYear-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3925NISTSchema-SV-IV-atomic-gYear-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3926NISTXML-SV-IV-atomic-gYear-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3927NISTXML-SV-IV-atomic-gYear-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3928NISTXML-SV-IV-atomic-gYear-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3929NISTXML-SV-IV-atomic-gYear-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3930NISTXML-SV-IV-atomic-gYear-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3931NISTSchema-SV-IV-atomic-gYear-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3932NISTXML-SV-IV-atomic-gYear-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3933NISTXML-SV-IV-atomic-gYear-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3934NISTXML-SV-IV-atomic-gYear-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3935NISTXML-SV-IV-atomic-gYear-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3936NISTXML-SV-IV-atomic-gYear-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3937NISTSchema-SV-IV-atomic-gYear-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3938NISTXML-SV-IV-atomic-gYear-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3939NISTSchema-SV-IV-atomic-gYear-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3940NISTXML-SV-IV-atomic-gYear-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3941NISTSchema-SV-IV-atomic-gYear-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3942NISTXML-SV-IV-atomic-gYear-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3943NISTXML-SV-IV-atomic-gYear-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3944NISTXML-SV-IV-atomic-gYear-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3945NISTXML-SV-IV-atomic-gYear-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3946NISTXML-SV-IV-atomic-gYear-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3947NISTSchema-SV-IV-atomic-gYear-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3948NISTXML-SV-IV-atomic-gYear-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3949NISTXML-SV-IV-atomic-gYear-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3950NISTXML-SV-IV-atomic-gYear-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3951NISTXML-SV-IV-atomic-gYear-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3952NISTXML-SV-IV-atomic-gYear-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3953NISTSchema-SV-IV-atomic-gYear-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3954NISTXML-SV-IV-atomic-gYear-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3955NISTXML-SV-IV-atomic-gYear-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3956NISTXML-SV-IV-atomic-gYear-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3957NISTXML-SV-IV-atomic-gYear-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3958NISTXML-SV-IV-atomic-gYear-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3959NISTSchema-SV-IV-atomic-gYear-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3960NISTXML-SV-IV-atomic-gYear-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3961NISTXML-SV-IV-atomic-gYear-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3962NISTXML-SV-IV-atomic-gYear-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3963NISTXML-SV-IV-atomic-gYear-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3964NISTXML-SV-IV-atomic-gYear-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3965NISTSchema-SV-IV-atomic-gYear-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3966NISTXML-SV-IV-atomic-gYear-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3967NISTSchema-SV-IV-atomic-gYear-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3968NISTXML-SV-IV-atomic-gYear-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3969NISTXML-SV-IV-atomic-gYear-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3970NISTXML-SV-IV-atomic-gYear-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3971NISTXML-SV-IV-atomic-gYear-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3972NISTXML-SV-IV-atomic-gYear-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3973NISTSchema-SV-IV-atomic-gYear-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3974NISTXML-SV-IV-atomic-gYear-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3975NISTXML-SV-IV-atomic-gYear-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3976NISTXML-SV-IV-atomic-gYear-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3977NISTXML-SV-IV-atomic-gYear-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3978NISTXML-SV-IV-atomic-gYear-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3979NISTSchema-SV-IV-atomic-gYear-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3980NISTXML-SV-IV-atomic-gYear-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3981NISTXML-SV-IV-atomic-gYear-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3982NISTXML-SV-IV-atomic-gYear-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3983NISTXML-SV-IV-atomic-gYear-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3984NISTXML-SV-IV-atomic-gYear-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3985NISTSchema-SV-IV-atomic-gYear-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3986NISTXML-SV-IV-atomic-gYear-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3987NISTXML-SV-IV-atomic-gYear-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3988NISTXML-SV-IV-atomic-gYear-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3989NISTXML-SV-IV-atomic-gYear-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3990NISTXML-SV-IV-atomic-gYear-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3991NISTSchema-SV-IV-atomic-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="3992NISTXML-SV-IV-atomic-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3993NISTXML-SV-IV-atomic-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3994NISTXML-SV-IV-atomic-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3995NISTXML-SV-IV-atomic-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3996NISTXML-SV-IV-atomic-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3997NISTSchema-SV-IV-atomic-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="3998NISTXML-SV-IV-atomic-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3999NISTXML-SV-IV-atomic-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4000NISTXML-SV-IV-atomic-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4001NISTXML-SV-IV-atomic-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4002NISTXML-SV-IV-atomic-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4003NISTSchema-SV-IV-atomic-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="4004NISTXML-SV-IV-atomic-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4005NISTXML-SV-IV-atomic-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4006NISTXML-SV-IV-atomic-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4007NISTXML-SV-IV-atomic-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4008NISTXML-SV-IV-atomic-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4009NISTSchema-SV-IV-atomic-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="4010NISTXML-SV-IV-atomic-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4011NISTXML-SV-IV-atomic-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4012NISTXML-SV-IV-atomic-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4013NISTXML-SV-IV-atomic-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4014NISTXML-SV-IV-atomic-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4015NISTSchema-SV-IV-atomic-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="4016NISTXML-SV-IV-atomic-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4017NISTXML-SV-IV-atomic-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4018NISTXML-SV-IV-atomic-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4019NISTXML-SV-IV-atomic-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4020NISTXML-SV-IV-atomic-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4021NISTSchema-SV-IV-atomic-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="4022NISTXML-SV-IV-atomic-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4023NISTXML-SV-IV-atomic-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4024NISTXML-SV-IV-atomic-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4025NISTXML-SV-IV-atomic-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4026NISTXML-SV-IV-atomic-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4027NISTSchema-SV-IV-atomic-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="4028NISTXML-SV-IV-atomic-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4029NISTXML-SV-IV-atomic-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4030NISTXML-SV-IV-atomic-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4031NISTXML-SV-IV-atomic-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4032NISTXML-SV-IV-atomic-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4033NISTSchema-SV-IV-atomic-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="4034NISTXML-SV-IV-atomic-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4035NISTXML-SV-IV-atomic-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4036NISTXML-SV-IV-atomic-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4037NISTXML-SV-IV-atomic-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4038NISTXML-SV-IV-atomic-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4039NISTSchema-SV-IV-atomic-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="4040NISTXML-SV-IV-atomic-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4041NISTXML-SV-IV-atomic-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4042NISTXML-SV-IV-atomic-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4043NISTXML-SV-IV-atomic-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4044NISTXML-SV-IV-atomic-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4045NISTSchema-SV-IV-atomic-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="4046NISTXML-SV-IV-atomic-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4047NISTXML-SV-IV-atomic-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4048NISTXML-SV-IV-atomic-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4049NISTXML-SV-IV-atomic-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4050NISTXML-SV-IV-atomic-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4051NISTSchema-SV-IV-atomic-gYear-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4052NISTXML-SV-IV-atomic-gYear-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4053NISTXML-SV-IV-atomic-gYear-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4054NISTXML-SV-IV-atomic-gYear-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4055NISTXML-SV-IV-atomic-gYear-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4056NISTXML-SV-IV-atomic-gYear-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4057NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4058NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4059NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4060NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4061NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4062NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4063NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4064NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4065NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4066NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4067NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4068NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4069NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4070NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4071NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4072NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4073NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4074NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4075NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4076NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4077NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4078NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4079NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4080NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4081NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4082NISTXML-SV-IV-atomic-gMonthDay-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4083NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4084NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4085NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4086NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4087NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4088NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4089NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4090NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4091NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4092NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4093NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4094NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4095NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4096NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4097NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4098NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4099NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4100NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4101NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4102NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4103NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4104NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4105NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4106NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4107NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4108NISTXML-SV-IV-atomic-gMonthDay-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4109NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4110NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4111NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4112NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4113NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4114NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4115NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4116NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4117NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4118NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4119NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4120NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4121NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4122NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4123NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4124NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4125NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4126NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4127NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4128NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4129NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4130NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4131NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4132NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4133NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4134NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4135NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4136NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4137NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4138NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4139NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4140NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4141NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4142NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4143NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4144NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4145NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4146NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4147NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4148NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4149NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4150NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4151NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4152NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4153NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4154NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4155NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4156NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4157NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4158NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4159NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4160NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4161NISTSchema-SV-IV-atomic-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="4162NISTXML-SV-IV-atomic-gMonthDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4163NISTXML-SV-IV-atomic-gMonthDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4164NISTXML-SV-IV-atomic-gMonthDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4165NISTXML-SV-IV-atomic-gMonthDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4166NISTXML-SV-IV-atomic-gMonthDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4167NISTSchema-SV-IV-atomic-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="4168NISTXML-SV-IV-atomic-gMonthDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4169NISTXML-SV-IV-atomic-gMonthDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4170NISTXML-SV-IV-atomic-gMonthDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4171NISTXML-SV-IV-atomic-gMonthDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4172NISTXML-SV-IV-atomic-gMonthDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4173NISTSchema-SV-IV-atomic-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="4174NISTXML-SV-IV-atomic-gMonthDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4175NISTXML-SV-IV-atomic-gMonthDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4176NISTXML-SV-IV-atomic-gMonthDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4177NISTXML-SV-IV-atomic-gMonthDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4178NISTXML-SV-IV-atomic-gMonthDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4179NISTSchema-SV-IV-atomic-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="4180NISTXML-SV-IV-atomic-gMonthDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4181NISTXML-SV-IV-atomic-gMonthDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4182NISTXML-SV-IV-atomic-gMonthDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4183NISTXML-SV-IV-atomic-gMonthDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4184NISTXML-SV-IV-atomic-gMonthDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4185NISTSchema-SV-IV-atomic-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="4186NISTXML-SV-IV-atomic-gMonthDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4187NISTXML-SV-IV-atomic-gMonthDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4188NISTXML-SV-IV-atomic-gMonthDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4189NISTXML-SV-IV-atomic-gMonthDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4190NISTXML-SV-IV-atomic-gMonthDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4191NISTSchema-SV-IV-atomic-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="4192NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4193NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4194NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4195NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4196NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4197NISTSchema-SV-IV-atomic-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="4198NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4199NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4200NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4201NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4202NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4203NISTSchema-SV-IV-atomic-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="4204NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4205NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4206NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4207NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4208NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4209NISTSchema-SV-IV-atomic-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="4210NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4211NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4212NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4213NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4214NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4215NISTSchema-SV-IV-atomic-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="4216NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4217NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4218NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4219NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4220NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4221NISTSchema-SV-IV-atomic-gMonthDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4222NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4223NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4224NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4225NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4226NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4227NISTSchema-SV-IV-atomic-gDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4228NISTXML-SV-IV-atomic-gDay-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4229NISTXML-SV-IV-atomic-gDay-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4230NISTXML-SV-IV-atomic-gDay-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4231NISTXML-SV-IV-atomic-gDay-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4232NISTXML-SV-IV-atomic-gDay-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4233NISTSchema-SV-IV-atomic-gDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4234NISTXML-SV-IV-atomic-gDay-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4235NISTXML-SV-IV-atomic-gDay-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4236NISTXML-SV-IV-atomic-gDay-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4237NISTXML-SV-IV-atomic-gDay-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4238NISTXML-SV-IV-atomic-gDay-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4239NISTSchema-SV-IV-atomic-gDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4240NISTXML-SV-IV-atomic-gDay-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4241NISTXML-SV-IV-atomic-gDay-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4242NISTXML-SV-IV-atomic-gDay-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4243NISTXML-SV-IV-atomic-gDay-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4244NISTXML-SV-IV-atomic-gDay-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4245NISTSchema-SV-IV-atomic-gDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4246NISTXML-SV-IV-atomic-gDay-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4247NISTXML-SV-IV-atomic-gDay-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4248NISTXML-SV-IV-atomic-gDay-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4249NISTXML-SV-IV-atomic-gDay-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4250NISTXML-SV-IV-atomic-gDay-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4251NISTSchema-SV-IV-atomic-gDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4252NISTXML-SV-IV-atomic-gDay-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4253NISTSchema-SV-IV-atomic-gDay-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4254NISTXML-SV-IV-atomic-gDay-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4255NISTXML-SV-IV-atomic-gDay-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4256NISTXML-SV-IV-atomic-gDay-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4257NISTXML-SV-IV-atomic-gDay-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4258NISTXML-SV-IV-atomic-gDay-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4259NISTSchema-SV-IV-atomic-gDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4260NISTXML-SV-IV-atomic-gDay-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4261NISTXML-SV-IV-atomic-gDay-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4262NISTXML-SV-IV-atomic-gDay-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4263NISTXML-SV-IV-atomic-gDay-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4264NISTXML-SV-IV-atomic-gDay-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4265NISTSchema-SV-IV-atomic-gDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4266NISTXML-SV-IV-atomic-gDay-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4267NISTXML-SV-IV-atomic-gDay-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4268NISTXML-SV-IV-atomic-gDay-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4269NISTXML-SV-IV-atomic-gDay-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4270NISTXML-SV-IV-atomic-gDay-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4271NISTSchema-SV-IV-atomic-gDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4272NISTXML-SV-IV-atomic-gDay-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4273NISTXML-SV-IV-atomic-gDay-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4274NISTXML-SV-IV-atomic-gDay-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4275NISTXML-SV-IV-atomic-gDay-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4276NISTXML-SV-IV-atomic-gDay-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4277NISTSchema-SV-IV-atomic-gDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4278NISTXML-SV-IV-atomic-gDay-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4279NISTSchema-SV-IV-atomic-gDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4280NISTXML-SV-IV-atomic-gDay-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4281NISTSchema-SV-IV-atomic-gDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4282NISTXML-SV-IV-atomic-gDay-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4283NISTXML-SV-IV-atomic-gDay-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4284NISTXML-SV-IV-atomic-gDay-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4285NISTXML-SV-IV-atomic-gDay-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4286NISTXML-SV-IV-atomic-gDay-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4287NISTSchema-SV-IV-atomic-gDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4288NISTXML-SV-IV-atomic-gDay-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4289NISTXML-SV-IV-atomic-gDay-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4290NISTXML-SV-IV-atomic-gDay-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4291NISTXML-SV-IV-atomic-gDay-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4292NISTXML-SV-IV-atomic-gDay-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4293NISTSchema-SV-IV-atomic-gDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4294NISTXML-SV-IV-atomic-gDay-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4295NISTXML-SV-IV-atomic-gDay-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4296NISTXML-SV-IV-atomic-gDay-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4297NISTXML-SV-IV-atomic-gDay-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4298NISTXML-SV-IV-atomic-gDay-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4299NISTSchema-SV-IV-atomic-gDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4300NISTXML-SV-IV-atomic-gDay-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4301NISTXML-SV-IV-atomic-gDay-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4302NISTXML-SV-IV-atomic-gDay-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4303NISTXML-SV-IV-atomic-gDay-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4304NISTXML-SV-IV-atomic-gDay-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4305NISTSchema-SV-IV-atomic-gDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4306NISTXML-SV-IV-atomic-gDay-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4307NISTSchema-SV-IV-atomic-gDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4308NISTXML-SV-IV-atomic-gDay-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4309NISTXML-SV-IV-atomic-gDay-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4310NISTXML-SV-IV-atomic-gDay-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4311NISTXML-SV-IV-atomic-gDay-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4312NISTXML-SV-IV-atomic-gDay-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4313NISTSchema-SV-IV-atomic-gDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4314NISTXML-SV-IV-atomic-gDay-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4315NISTSchema-SV-IV-atomic-gDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4316NISTXML-SV-IV-atomic-gDay-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4317NISTXML-SV-IV-atomic-gDay-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4318NISTXML-SV-IV-atomic-gDay-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4319NISTXML-SV-IV-atomic-gDay-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4320NISTXML-SV-IV-atomic-gDay-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4321NISTSchema-SV-IV-atomic-gDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4322NISTXML-SV-IV-atomic-gDay-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4323NISTXML-SV-IV-atomic-gDay-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4324NISTXML-SV-IV-atomic-gDay-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4325NISTXML-SV-IV-atomic-gDay-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4326NISTXML-SV-IV-atomic-gDay-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4327NISTSchema-SV-IV-atomic-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="4328NISTXML-SV-IV-atomic-gDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4329NISTXML-SV-IV-atomic-gDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4330NISTXML-SV-IV-atomic-gDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4331NISTXML-SV-IV-atomic-gDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4332NISTXML-SV-IV-atomic-gDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4333NISTSchema-SV-IV-atomic-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="4334NISTXML-SV-IV-atomic-gDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4335NISTXML-SV-IV-atomic-gDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4336NISTXML-SV-IV-atomic-gDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4337NISTXML-SV-IV-atomic-gDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4338NISTXML-SV-IV-atomic-gDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4339NISTSchema-SV-IV-atomic-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="4340NISTXML-SV-IV-atomic-gDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4341NISTXML-SV-IV-atomic-gDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4342NISTXML-SV-IV-atomic-gDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4343NISTXML-SV-IV-atomic-gDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4344NISTXML-SV-IV-atomic-gDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4345NISTSchema-SV-IV-atomic-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="4346NISTXML-SV-IV-atomic-gDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4347NISTXML-SV-IV-atomic-gDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4348NISTXML-SV-IV-atomic-gDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4349NISTXML-SV-IV-atomic-gDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4350NISTXML-SV-IV-atomic-gDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4351NISTSchema-SV-IV-atomic-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="4352NISTXML-SV-IV-atomic-gDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4353NISTXML-SV-IV-atomic-gDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4354NISTXML-SV-IV-atomic-gDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4355NISTXML-SV-IV-atomic-gDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4356NISTXML-SV-IV-atomic-gDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4357NISTSchema-SV-IV-atomic-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="4358NISTXML-SV-IV-atomic-gDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4359NISTXML-SV-IV-atomic-gDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4360NISTXML-SV-IV-atomic-gDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4361NISTXML-SV-IV-atomic-gDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4362NISTXML-SV-IV-atomic-gDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4363NISTSchema-SV-IV-atomic-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="4364NISTXML-SV-IV-atomic-gDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4365NISTXML-SV-IV-atomic-gDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4366NISTXML-SV-IV-atomic-gDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4367NISTXML-SV-IV-atomic-gDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4368NISTXML-SV-IV-atomic-gDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4369NISTSchema-SV-IV-atomic-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="4370NISTXML-SV-IV-atomic-gDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4371NISTXML-SV-IV-atomic-gDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4372NISTXML-SV-IV-atomic-gDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4373NISTXML-SV-IV-atomic-gDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4374NISTXML-SV-IV-atomic-gDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4375NISTSchema-SV-IV-atomic-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="4376NISTXML-SV-IV-atomic-gDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4377NISTXML-SV-IV-atomic-gDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4378NISTXML-SV-IV-atomic-gDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4379NISTXML-SV-IV-atomic-gDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4380NISTXML-SV-IV-atomic-gDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4381NISTSchema-SV-IV-atomic-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="4382NISTXML-SV-IV-atomic-gDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4383NISTXML-SV-IV-atomic-gDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4384NISTXML-SV-IV-atomic-gDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4385NISTXML-SV-IV-atomic-gDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4386NISTXML-SV-IV-atomic-gDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4387NISTSchema-SV-IV-atomic-gDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4388NISTXML-SV-IV-atomic-gDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4389NISTXML-SV-IV-atomic-gDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4390NISTXML-SV-IV-atomic-gDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4391NISTXML-SV-IV-atomic-gDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4392NISTXML-SV-IV-atomic-gDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4393NISTSchema-SV-IV-atomic-gMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4394NISTXML-SV-IV-atomic-gMonth-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4395NISTXML-SV-IV-atomic-gMonth-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4396NISTXML-SV-IV-atomic-gMonth-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4397NISTXML-SV-IV-atomic-gMonth-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4398NISTXML-SV-IV-atomic-gMonth-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4399NISTSchema-SV-IV-atomic-gMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4400NISTXML-SV-IV-atomic-gMonth-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4401NISTXML-SV-IV-atomic-gMonth-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4402NISTXML-SV-IV-atomic-gMonth-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4403NISTXML-SV-IV-atomic-gMonth-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4404NISTXML-SV-IV-atomic-gMonth-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4405NISTSchema-SV-IV-atomic-gMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4406NISTXML-SV-IV-atomic-gMonth-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4407NISTXML-SV-IV-atomic-gMonth-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4408NISTXML-SV-IV-atomic-gMonth-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4409NISTXML-SV-IV-atomic-gMonth-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4410NISTXML-SV-IV-atomic-gMonth-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4411NISTSchema-SV-IV-atomic-gMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4412NISTXML-SV-IV-atomic-gMonth-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4413NISTXML-SV-IV-atomic-gMonth-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4414NISTXML-SV-IV-atomic-gMonth-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4415NISTXML-SV-IV-atomic-gMonth-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4416NISTXML-SV-IV-atomic-gMonth-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4417NISTSchema-SV-IV-atomic-gMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4418NISTXML-SV-IV-atomic-gMonth-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4419NISTSchema-SV-IV-atomic-gMonth-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4420NISTXML-SV-IV-atomic-gMonth-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4421NISTXML-SV-IV-atomic-gMonth-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4422NISTXML-SV-IV-atomic-gMonth-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4423NISTXML-SV-IV-atomic-gMonth-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4424NISTXML-SV-IV-atomic-gMonth-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4425NISTSchema-SV-IV-atomic-gMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4426NISTXML-SV-IV-atomic-gMonth-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4427NISTXML-SV-IV-atomic-gMonth-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4428NISTXML-SV-IV-atomic-gMonth-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4429NISTXML-SV-IV-atomic-gMonth-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4430NISTXML-SV-IV-atomic-gMonth-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4431NISTSchema-SV-IV-atomic-gMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4432NISTXML-SV-IV-atomic-gMonth-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4433NISTXML-SV-IV-atomic-gMonth-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4434NISTXML-SV-IV-atomic-gMonth-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4435NISTXML-SV-IV-atomic-gMonth-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4436NISTXML-SV-IV-atomic-gMonth-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4437NISTSchema-SV-IV-atomic-gMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4438NISTXML-SV-IV-atomic-gMonth-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4439NISTXML-SV-IV-atomic-gMonth-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4440NISTXML-SV-IV-atomic-gMonth-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4441NISTXML-SV-IV-atomic-gMonth-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4442NISTXML-SV-IV-atomic-gMonth-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4443NISTSchema-SV-IV-atomic-gMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4444NISTXML-SV-IV-atomic-gMonth-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4445NISTSchema-SV-IV-atomic-gMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4446NISTXML-SV-IV-atomic-gMonth-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4447NISTSchema-SV-IV-atomic-gMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4448NISTXML-SV-IV-atomic-gMonth-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4449NISTSchema-SV-IV-atomic-gMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4450NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4451NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4452NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4453NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4454NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4455NISTSchema-SV-IV-atomic-gMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4456NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4457NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4458NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4459NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4460NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4461NISTSchema-SV-IV-atomic-gMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4462NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4463NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4464NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4465NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4466NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4467NISTSchema-SV-IV-atomic-gMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4468NISTXML-SV-IV-atomic-gMonth-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4469NISTSchema-SV-IV-atomic-gMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4470NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4471NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4472NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4473NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4474NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4475NISTSchema-SV-IV-atomic-gMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4476NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4477NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4478NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4479NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4480NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4481NISTSchema-SV-IV-atomic-gMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4482NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4483NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4484NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4485NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4486NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4487NISTSchema-SV-IV-atomic-gMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4488NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4489NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4490NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4491NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4492NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4493NISTSchema-SV-IV-atomic-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="4494NISTXML-SV-IV-atomic-gMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4495NISTXML-SV-IV-atomic-gMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4496NISTXML-SV-IV-atomic-gMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4497NISTXML-SV-IV-atomic-gMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4498NISTXML-SV-IV-atomic-gMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4499NISTSchema-SV-IV-atomic-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="4500NISTXML-SV-IV-atomic-gMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4501NISTXML-SV-IV-atomic-gMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4502NISTXML-SV-IV-atomic-gMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4503NISTXML-SV-IV-atomic-gMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4504NISTXML-SV-IV-atomic-gMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4505NISTSchema-SV-IV-atomic-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="4506NISTXML-SV-IV-atomic-gMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4507NISTXML-SV-IV-atomic-gMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4508NISTXML-SV-IV-atomic-gMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4509NISTXML-SV-IV-atomic-gMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4510NISTXML-SV-IV-atomic-gMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4511NISTSchema-SV-IV-atomic-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="4512NISTXML-SV-IV-atomic-gMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4513NISTXML-SV-IV-atomic-gMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4514NISTXML-SV-IV-atomic-gMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4515NISTXML-SV-IV-atomic-gMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4516NISTXML-SV-IV-atomic-gMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4517NISTSchema-SV-IV-atomic-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="4518NISTXML-SV-IV-atomic-gMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4519NISTXML-SV-IV-atomic-gMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4520NISTXML-SV-IV-atomic-gMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4521NISTXML-SV-IV-atomic-gMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4522NISTXML-SV-IV-atomic-gMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4523NISTSchema-SV-IV-atomic-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="4524NISTXML-SV-IV-atomic-gMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4525NISTXML-SV-IV-atomic-gMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4526NISTXML-SV-IV-atomic-gMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4527NISTXML-SV-IV-atomic-gMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4528NISTXML-SV-IV-atomic-gMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4529NISTSchema-SV-IV-atomic-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="4530NISTXML-SV-IV-atomic-gMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4531NISTXML-SV-IV-atomic-gMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4532NISTXML-SV-IV-atomic-gMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4533NISTXML-SV-IV-atomic-gMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4534NISTXML-SV-IV-atomic-gMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4535NISTSchema-SV-IV-atomic-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="4536NISTXML-SV-IV-atomic-gMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4537NISTXML-SV-IV-atomic-gMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4538NISTXML-SV-IV-atomic-gMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4539NISTXML-SV-IV-atomic-gMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4540NISTXML-SV-IV-atomic-gMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4541NISTSchema-SV-IV-atomic-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="4542NISTXML-SV-IV-atomic-gMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4543NISTXML-SV-IV-atomic-gMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4544NISTXML-SV-IV-atomic-gMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4545NISTXML-SV-IV-atomic-gMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4546NISTXML-SV-IV-atomic-gMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4547NISTSchema-SV-IV-atomic-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="4548NISTXML-SV-IV-atomic-gMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4549NISTXML-SV-IV-atomic-gMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4550NISTXML-SV-IV-atomic-gMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4551NISTXML-SV-IV-atomic-gMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4552NISTXML-SV-IV-atomic-gMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4553NISTSchema-SV-IV-atomic-gMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4554NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4555NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4556NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4557NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4558NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4559NISTSchema-SV-IV-atomic-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="4560NISTXML-SV-IV-atomic-string-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4561NISTXML-SV-IV-atomic-string-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4562NISTXML-SV-IV-atomic-string-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4563NISTXML-SV-IV-atomic-string-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4564NISTXML-SV-IV-atomic-string-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4565NISTSchema-SV-IV-atomic-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="4566NISTXML-SV-IV-atomic-string-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4567NISTXML-SV-IV-atomic-string-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4568NISTXML-SV-IV-atomic-string-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4569NISTXML-SV-IV-atomic-string-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4570NISTXML-SV-IV-atomic-string-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4571NISTSchema-SV-IV-atomic-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="4572NISTXML-SV-IV-atomic-string-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4573NISTXML-SV-IV-atomic-string-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4574NISTXML-SV-IV-atomic-string-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4575NISTXML-SV-IV-atomic-string-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4576NISTXML-SV-IV-atomic-string-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4577NISTSchema-SV-IV-atomic-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="4578NISTXML-SV-IV-atomic-string-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4579NISTXML-SV-IV-atomic-string-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4580NISTXML-SV-IV-atomic-string-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4581NISTXML-SV-IV-atomic-string-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4582NISTXML-SV-IV-atomic-string-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4583NISTSchema-SV-IV-atomic-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="4584NISTXML-SV-IV-atomic-string-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4585NISTXML-SV-IV-atomic-string-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4586NISTXML-SV-IV-atomic-string-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4587NISTXML-SV-IV-atomic-string-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4588NISTXML-SV-IV-atomic-string-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4589NISTSchema-SV-IV-atomic-string-minLength-1 tokoe:valid" result="pass"/><test-case name="4590NISTXML-SV-IV-atomic-string-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4591NISTXML-SV-IV-atomic-string-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4592NISTXML-SV-IV-atomic-string-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4593NISTXML-SV-IV-atomic-string-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4594NISTXML-SV-IV-atomic-string-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4595NISTSchema-SV-IV-atomic-string-minLength-2 tokoe:valid" result="pass"/><test-case name="4596NISTXML-SV-IV-atomic-string-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4597NISTXML-SV-IV-atomic-string-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4598NISTXML-SV-IV-atomic-string-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4599NISTXML-SV-IV-atomic-string-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4600NISTXML-SV-IV-atomic-string-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4601NISTSchema-SV-IV-atomic-string-minLength-3 tokoe:valid" result="pass"/><test-case name="4602NISTXML-SV-IV-atomic-string-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4603NISTXML-SV-IV-atomic-string-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4604NISTXML-SV-IV-atomic-string-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4605NISTXML-SV-IV-atomic-string-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4606NISTXML-SV-IV-atomic-string-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4607NISTSchema-SV-IV-atomic-string-minLength-4 tokoe:valid" result="pass"/><test-case name="4608NISTXML-SV-IV-atomic-string-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4609NISTXML-SV-IV-atomic-string-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4610NISTXML-SV-IV-atomic-string-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4611NISTXML-SV-IV-atomic-string-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4612NISTXML-SV-IV-atomic-string-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4613NISTSchema-SV-IV-atomic-string-minLength-5 tokoe:valid" result="pass"/><test-case name="4614NISTXML-SV-IV-atomic-string-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4615NISTXML-SV-IV-atomic-string-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4616NISTXML-SV-IV-atomic-string-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4617NISTXML-SV-IV-atomic-string-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4618NISTXML-SV-IV-atomic-string-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4619NISTSchema-SV-IV-atomic-string-length-1 tokoe:valid" result="pass"/><test-case name="4620NISTXML-SV-IV-atomic-string-length-1-1 tokoe:valid" result="pass"/><test-case name="4621NISTXML-SV-IV-atomic-string-length-1-2 tokoe:valid" result="pass"/><test-case name="4622NISTXML-SV-IV-atomic-string-length-1-3 tokoe:valid" result="pass"/><test-case name="4623NISTXML-SV-IV-atomic-string-length-1-4 tokoe:valid" result="pass"/><test-case name="4624NISTXML-SV-IV-atomic-string-length-1-5 tokoe:valid" result="pass"/><test-case name="4625NISTSchema-SV-IV-atomic-string-length-2 tokoe:valid" result="pass"/><test-case name="4626NISTXML-SV-IV-atomic-string-length-2-1 tokoe:valid" result="pass"/><test-case name="4627NISTXML-SV-IV-atomic-string-length-2-2 tokoe:valid" result="pass"/><test-case name="4628NISTXML-SV-IV-atomic-string-length-2-3 tokoe:valid" result="pass"/><test-case name="4629NISTXML-SV-IV-atomic-string-length-2-4 tokoe:valid" result="pass"/><test-case name="4630NISTXML-SV-IV-atomic-string-length-2-5 tokoe:valid" result="pass"/><test-case name="4631NISTSchema-SV-IV-atomic-string-length-3 tokoe:valid" result="pass"/><test-case name="4632NISTXML-SV-IV-atomic-string-length-3-1 tokoe:valid" result="pass"/><test-case name="4633NISTXML-SV-IV-atomic-string-length-3-2 tokoe:valid" result="pass"/><test-case name="4634NISTXML-SV-IV-atomic-string-length-3-3 tokoe:valid" result="pass"/><test-case name="4635NISTXML-SV-IV-atomic-string-length-3-4 tokoe:valid" result="pass"/><test-case name="4636NISTXML-SV-IV-atomic-string-length-3-5 tokoe:valid" result="pass"/><test-case name="4637NISTSchema-SV-IV-atomic-string-length-4 tokoe:valid" result="pass"/><test-case name="4638NISTXML-SV-IV-atomic-string-length-4-1 tokoe:valid" result="pass"/><test-case name="4639NISTXML-SV-IV-atomic-string-length-4-2 tokoe:valid" result="pass"/><test-case name="4640NISTXML-SV-IV-atomic-string-length-4-3 tokoe:valid" result="pass"/><test-case name="4641NISTXML-SV-IV-atomic-string-length-4-4 tokoe:valid" result="pass"/><test-case name="4642NISTXML-SV-IV-atomic-string-length-4-5 tokoe:valid" result="pass"/><test-case name="4643NISTSchema-SV-IV-atomic-string-length-5 tokoe:valid" result="pass"/><test-case name="4644NISTXML-SV-IV-atomic-string-length-5-1 tokoe:valid" result="pass"/><test-case name="4645NISTXML-SV-IV-atomic-string-length-5-2 tokoe:valid" result="pass"/><test-case name="4646NISTXML-SV-IV-atomic-string-length-5-3 tokoe:valid" result="pass"/><test-case name="4647NISTXML-SV-IV-atomic-string-length-5-4 tokoe:valid" result="pass"/><test-case name="4648NISTXML-SV-IV-atomic-string-length-5-5 tokoe:valid" result="pass"/><test-case name="4649NISTSchema-SV-IV-atomic-string-pattern-1 tokoe:valid" result="pass"/><test-case name="4650NISTXML-SV-IV-atomic-string-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4651NISTXML-SV-IV-atomic-string-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4652NISTXML-SV-IV-atomic-string-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4653NISTXML-SV-IV-atomic-string-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4654NISTXML-SV-IV-atomic-string-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4655NISTSchema-SV-IV-atomic-string-pattern-2 tokoe:valid" result="pass"/><test-case name="4656NISTXML-SV-IV-atomic-string-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4657NISTXML-SV-IV-atomic-string-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4658NISTXML-SV-IV-atomic-string-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4659NISTXML-SV-IV-atomic-string-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4660NISTXML-SV-IV-atomic-string-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4661NISTSchema-SV-IV-atomic-string-pattern-3 tokoe:valid" result="pass"/><test-case name="4662NISTXML-SV-IV-atomic-string-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4663NISTXML-SV-IV-atomic-string-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4664NISTXML-SV-IV-atomic-string-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4665NISTXML-SV-IV-atomic-string-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4666NISTXML-SV-IV-atomic-string-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4667NISTSchema-SV-IV-atomic-string-pattern-4 tokoe:valid" result="pass"/><test-case name="4668NISTXML-SV-IV-atomic-string-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4669NISTXML-SV-IV-atomic-string-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4670NISTXML-SV-IV-atomic-string-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4671NISTXML-SV-IV-atomic-string-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4672NISTXML-SV-IV-atomic-string-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4673NISTSchema-SV-IV-atomic-string-pattern-5 tokoe:valid" result="pass"/><test-case name="4674NISTXML-SV-IV-atomic-string-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4675NISTXML-SV-IV-atomic-string-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4676NISTXML-SV-IV-atomic-string-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4677NISTXML-SV-IV-atomic-string-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4678NISTXML-SV-IV-atomic-string-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4679NISTSchema-SV-IV-atomic-string-enumeration-1 tokoe:valid" result="pass"/><test-case name="4680NISTXML-SV-IV-atomic-string-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4681NISTXML-SV-IV-atomic-string-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4682NISTXML-SV-IV-atomic-string-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4683NISTXML-SV-IV-atomic-string-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4684NISTXML-SV-IV-atomic-string-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4685NISTSchema-SV-IV-atomic-string-enumeration-2 tokoe:valid" result="pass"/><test-case name="4686NISTXML-SV-IV-atomic-string-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4687NISTXML-SV-IV-atomic-string-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4688NISTXML-SV-IV-atomic-string-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4689NISTXML-SV-IV-atomic-string-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4690NISTXML-SV-IV-atomic-string-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4691NISTSchema-SV-IV-atomic-string-enumeration-3 tokoe:valid" result="pass"/><test-case name="4692NISTXML-SV-IV-atomic-string-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4693NISTXML-SV-IV-atomic-string-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4694NISTXML-SV-IV-atomic-string-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4695NISTXML-SV-IV-atomic-string-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4696NISTXML-SV-IV-atomic-string-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4697NISTSchema-SV-IV-atomic-string-enumeration-4 tokoe:valid" result="pass"/><test-case name="4698NISTXML-SV-IV-atomic-string-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4699NISTXML-SV-IV-atomic-string-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4700NISTXML-SV-IV-atomic-string-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4701NISTXML-SV-IV-atomic-string-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4702NISTXML-SV-IV-atomic-string-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4703NISTSchema-SV-IV-atomic-string-enumeration-5 tokoe:valid" result="pass"/><test-case name="4704NISTXML-SV-IV-atomic-string-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4705NISTXML-SV-IV-atomic-string-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4706NISTXML-SV-IV-atomic-string-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4707NISTXML-SV-IV-atomic-string-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4708NISTXML-SV-IV-atomic-string-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4709NISTSchema-SV-IV-atomic-string-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4710NISTXML-SV-IV-atomic-string-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4711NISTXML-SV-IV-atomic-string-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4712NISTXML-SV-IV-atomic-string-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4713NISTXML-SV-IV-atomic-string-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4714NISTXML-SV-IV-atomic-string-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4715NISTSchema-SV-IV-atomic-string-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="4716NISTXML-SV-IV-atomic-string-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="4717NISTXML-SV-IV-atomic-string-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="4718NISTXML-SV-IV-atomic-string-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="4719NISTXML-SV-IV-atomic-string-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="4720NISTXML-SV-IV-atomic-string-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="4721NISTSchema-SV-IV-atomic-string-whiteSpace-3 tokoe:valid" result="pass"/><test-case name="4722NISTXML-SV-IV-atomic-string-whiteSpace-3-1 tokoe:valid" result="pass"/><test-case name="4723NISTXML-SV-IV-atomic-string-whiteSpace-3-2 tokoe:valid" result="pass"/><test-case name="4724NISTXML-SV-IV-atomic-string-whiteSpace-3-3 tokoe:valid" result="pass"/><test-case name="4725NISTXML-SV-IV-atomic-string-whiteSpace-3-4 tokoe:valid" result="pass"/><test-case name="4726NISTXML-SV-IV-atomic-string-whiteSpace-3-5 tokoe:valid" result="pass"/><test-case name="4727NISTSchema-SV-IV-atomic-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="4728NISTXML-SV-IV-atomic-normalizedString-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4729NISTXML-SV-IV-atomic-normalizedString-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4730NISTXML-SV-IV-atomic-normalizedString-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4731NISTXML-SV-IV-atomic-normalizedString-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4732NISTXML-SV-IV-atomic-normalizedString-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4733NISTSchema-SV-IV-atomic-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="4734NISTXML-SV-IV-atomic-normalizedString-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4735NISTXML-SV-IV-atomic-normalizedString-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4736NISTXML-SV-IV-atomic-normalizedString-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4737NISTXML-SV-IV-atomic-normalizedString-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4738NISTXML-SV-IV-atomic-normalizedString-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4739NISTSchema-SV-IV-atomic-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="4740NISTXML-SV-IV-atomic-normalizedString-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4741NISTXML-SV-IV-atomic-normalizedString-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4742NISTXML-SV-IV-atomic-normalizedString-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4743NISTXML-SV-IV-atomic-normalizedString-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4744NISTXML-SV-IV-atomic-normalizedString-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4745NISTSchema-SV-IV-atomic-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="4746NISTXML-SV-IV-atomic-normalizedString-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4747NISTXML-SV-IV-atomic-normalizedString-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4748NISTXML-SV-IV-atomic-normalizedString-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4749NISTXML-SV-IV-atomic-normalizedString-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4750NISTXML-SV-IV-atomic-normalizedString-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4751NISTSchema-SV-IV-atomic-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="4752NISTXML-SV-IV-atomic-normalizedString-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4753NISTXML-SV-IV-atomic-normalizedString-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4754NISTXML-SV-IV-atomic-normalizedString-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4755NISTXML-SV-IV-atomic-normalizedString-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4756NISTXML-SV-IV-atomic-normalizedString-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4757NISTSchema-SV-IV-atomic-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="4758NISTXML-SV-IV-atomic-normalizedString-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4759NISTXML-SV-IV-atomic-normalizedString-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4760NISTXML-SV-IV-atomic-normalizedString-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4761NISTXML-SV-IV-atomic-normalizedString-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4762NISTXML-SV-IV-atomic-normalizedString-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4763NISTSchema-SV-IV-atomic-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="4764NISTXML-SV-IV-atomic-normalizedString-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4765NISTXML-SV-IV-atomic-normalizedString-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4766NISTXML-SV-IV-atomic-normalizedString-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4767NISTXML-SV-IV-atomic-normalizedString-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4768NISTXML-SV-IV-atomic-normalizedString-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4769NISTSchema-SV-IV-atomic-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="4770NISTXML-SV-IV-atomic-normalizedString-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4771NISTXML-SV-IV-atomic-normalizedString-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4772NISTXML-SV-IV-atomic-normalizedString-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4773NISTXML-SV-IV-atomic-normalizedString-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4774NISTXML-SV-IV-atomic-normalizedString-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4775NISTSchema-SV-IV-atomic-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="4776NISTXML-SV-IV-atomic-normalizedString-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4777NISTXML-SV-IV-atomic-normalizedString-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4778NISTXML-SV-IV-atomic-normalizedString-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4779NISTXML-SV-IV-atomic-normalizedString-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4780NISTXML-SV-IV-atomic-normalizedString-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4781NISTSchema-SV-IV-atomic-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="4782NISTXML-SV-IV-atomic-normalizedString-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4783NISTXML-SV-IV-atomic-normalizedString-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4784NISTXML-SV-IV-atomic-normalizedString-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4785NISTXML-SV-IV-atomic-normalizedString-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4786NISTXML-SV-IV-atomic-normalizedString-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4787NISTSchema-SV-IV-atomic-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="4788NISTXML-SV-IV-atomic-normalizedString-length-1-1 tokoe:valid" result="pass"/><test-case name="4789NISTXML-SV-IV-atomic-normalizedString-length-1-2 tokoe:valid" result="pass"/><test-case name="4790NISTXML-SV-IV-atomic-normalizedString-length-1-3 tokoe:valid" result="pass"/><test-case name="4791NISTXML-SV-IV-atomic-normalizedString-length-1-4 tokoe:valid" result="pass"/><test-case name="4792NISTXML-SV-IV-atomic-normalizedString-length-1-5 tokoe:valid" result="pass"/><test-case name="4793NISTSchema-SV-IV-atomic-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="4794NISTXML-SV-IV-atomic-normalizedString-length-2-1 tokoe:valid" result="pass"/><test-case name="4795NISTXML-SV-IV-atomic-normalizedString-length-2-2 tokoe:valid" result="pass"/><test-case name="4796NISTXML-SV-IV-atomic-normalizedString-length-2-3 tokoe:valid" result="pass"/><test-case name="4797NISTXML-SV-IV-atomic-normalizedString-length-2-4 tokoe:valid" result="pass"/><test-case name="4798NISTXML-SV-IV-atomic-normalizedString-length-2-5 tokoe:valid" result="pass"/><test-case name="4799NISTSchema-SV-IV-atomic-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="4800NISTXML-SV-IV-atomic-normalizedString-length-3-1 tokoe:valid" result="pass"/><test-case name="4801NISTXML-SV-IV-atomic-normalizedString-length-3-2 tokoe:valid" result="pass"/><test-case name="4802NISTXML-SV-IV-atomic-normalizedString-length-3-3 tokoe:valid" result="pass"/><test-case name="4803NISTXML-SV-IV-atomic-normalizedString-length-3-4 tokoe:valid" result="pass"/><test-case name="4804NISTXML-SV-IV-atomic-normalizedString-length-3-5 tokoe:valid" result="pass"/><test-case name="4805NISTSchema-SV-IV-atomic-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="4806NISTXML-SV-IV-atomic-normalizedString-length-4-1 tokoe:valid" result="pass"/><test-case name="4807NISTXML-SV-IV-atomic-normalizedString-length-4-2 tokoe:valid" result="pass"/><test-case name="4808NISTXML-SV-IV-atomic-normalizedString-length-4-3 tokoe:valid" result="pass"/><test-case name="4809NISTXML-SV-IV-atomic-normalizedString-length-4-4 tokoe:valid" result="pass"/><test-case name="4810NISTXML-SV-IV-atomic-normalizedString-length-4-5 tokoe:valid" result="pass"/><test-case name="4811NISTSchema-SV-IV-atomic-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="4812NISTXML-SV-IV-atomic-normalizedString-length-5-1 tokoe:valid" result="pass"/><test-case name="4813NISTXML-SV-IV-atomic-normalizedString-length-5-2 tokoe:valid" result="pass"/><test-case name="4814NISTXML-SV-IV-atomic-normalizedString-length-5-3 tokoe:valid" result="pass"/><test-case name="4815NISTXML-SV-IV-atomic-normalizedString-length-5-4 tokoe:valid" result="pass"/><test-case name="4816NISTXML-SV-IV-atomic-normalizedString-length-5-5 tokoe:valid" result="pass"/><test-case name="4817NISTSchema-SV-IV-atomic-normalizedString-pattern-1 tokoe:valid" result="pass"/><test-case name="4818NISTXML-SV-IV-atomic-normalizedString-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4819NISTXML-SV-IV-atomic-normalizedString-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4820NISTXML-SV-IV-atomic-normalizedString-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4821NISTXML-SV-IV-atomic-normalizedString-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4822NISTXML-SV-IV-atomic-normalizedString-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4823NISTSchema-SV-IV-atomic-normalizedString-pattern-2 tokoe:valid" result="pass"/><test-case name="4824NISTXML-SV-IV-atomic-normalizedString-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4825NISTXML-SV-IV-atomic-normalizedString-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4826NISTXML-SV-IV-atomic-normalizedString-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4827NISTXML-SV-IV-atomic-normalizedString-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4828NISTXML-SV-IV-atomic-normalizedString-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4829NISTSchema-SV-IV-atomic-normalizedString-pattern-3 tokoe:valid" result="pass"/><test-case name="4830NISTXML-SV-IV-atomic-normalizedString-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4831NISTXML-SV-IV-atomic-normalizedString-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4832NISTXML-SV-IV-atomic-normalizedString-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4833NISTXML-SV-IV-atomic-normalizedString-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4834NISTXML-SV-IV-atomic-normalizedString-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4835NISTSchema-SV-IV-atomic-normalizedString-pattern-4 tokoe:valid" result="pass"/><test-case name="4836NISTXML-SV-IV-atomic-normalizedString-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4837NISTXML-SV-IV-atomic-normalizedString-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4838NISTXML-SV-IV-atomic-normalizedString-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4839NISTXML-SV-IV-atomic-normalizedString-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4840NISTXML-SV-IV-atomic-normalizedString-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4841NISTSchema-SV-IV-atomic-normalizedString-pattern-5 tokoe:valid" result="pass"/><test-case name="4842NISTXML-SV-IV-atomic-normalizedString-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4843NISTXML-SV-IV-atomic-normalizedString-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4844NISTXML-SV-IV-atomic-normalizedString-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4845NISTXML-SV-IV-atomic-normalizedString-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4846NISTXML-SV-IV-atomic-normalizedString-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4847NISTSchema-SV-IV-atomic-normalizedString-enumeration-1 tokoe:valid" result="pass"/><test-case name="4848NISTXML-SV-IV-atomic-normalizedString-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4849NISTXML-SV-IV-atomic-normalizedString-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4850NISTXML-SV-IV-atomic-normalizedString-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4851NISTXML-SV-IV-atomic-normalizedString-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4852NISTXML-SV-IV-atomic-normalizedString-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4853NISTSchema-SV-IV-atomic-normalizedString-enumeration-2 tokoe:valid" result="pass"/><test-case name="4854NISTXML-SV-IV-atomic-normalizedString-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4855NISTXML-SV-IV-atomic-normalizedString-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4856NISTXML-SV-IV-atomic-normalizedString-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4857NISTXML-SV-IV-atomic-normalizedString-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4858NISTXML-SV-IV-atomic-normalizedString-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4859NISTSchema-SV-IV-atomic-normalizedString-enumeration-3 tokoe:valid" result="pass"/><test-case name="4860NISTXML-SV-IV-atomic-normalizedString-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4861NISTXML-SV-IV-atomic-normalizedString-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4862NISTXML-SV-IV-atomic-normalizedString-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4863NISTXML-SV-IV-atomic-normalizedString-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4864NISTXML-SV-IV-atomic-normalizedString-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4865NISTSchema-SV-IV-atomic-normalizedString-enumeration-4 tokoe:valid" result="pass"/><test-case name="4866NISTXML-SV-IV-atomic-normalizedString-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4867NISTXML-SV-IV-atomic-normalizedString-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4868NISTXML-SV-IV-atomic-normalizedString-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4869NISTXML-SV-IV-atomic-normalizedString-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4870NISTXML-SV-IV-atomic-normalizedString-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4871NISTSchema-SV-IV-atomic-normalizedString-enumeration-5 tokoe:valid" result="pass"/><test-case name="4872NISTXML-SV-IV-atomic-normalizedString-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4873NISTXML-SV-IV-atomic-normalizedString-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4874NISTXML-SV-IV-atomic-normalizedString-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4875NISTXML-SV-IV-atomic-normalizedString-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4876NISTXML-SV-IV-atomic-normalizedString-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4877NISTSchema-SV-IV-atomic-normalizedString-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4878NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4879NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4880NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4881NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4882NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4883NISTSchema-SV-IV-atomic-normalizedString-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="4884NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="4885NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="4886NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="4887NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="4888NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="4889NISTSchema-SV-IV-atomic-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="4890NISTXML-SV-IV-atomic-token-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4891NISTXML-SV-IV-atomic-token-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4892NISTXML-SV-IV-atomic-token-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4893NISTXML-SV-IV-atomic-token-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4894NISTXML-SV-IV-atomic-token-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4895NISTSchema-SV-IV-atomic-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="4896NISTXML-SV-IV-atomic-token-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4897NISTXML-SV-IV-atomic-token-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4898NISTXML-SV-IV-atomic-token-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4899NISTXML-SV-IV-atomic-token-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4900NISTXML-SV-IV-atomic-token-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4901NISTSchema-SV-IV-atomic-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="4902NISTXML-SV-IV-atomic-token-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4903NISTXML-SV-IV-atomic-token-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4904NISTXML-SV-IV-atomic-token-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4905NISTXML-SV-IV-atomic-token-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4906NISTXML-SV-IV-atomic-token-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4907NISTSchema-SV-IV-atomic-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="4908NISTXML-SV-IV-atomic-token-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4909NISTXML-SV-IV-atomic-token-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4910NISTXML-SV-IV-atomic-token-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4911NISTXML-SV-IV-atomic-token-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4912NISTXML-SV-IV-atomic-token-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4913NISTSchema-SV-IV-atomic-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="4914NISTXML-SV-IV-atomic-token-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4915NISTXML-SV-IV-atomic-token-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4916NISTXML-SV-IV-atomic-token-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4917NISTXML-SV-IV-atomic-token-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4918NISTXML-SV-IV-atomic-token-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4919NISTSchema-SV-IV-atomic-token-minLength-1 tokoe:valid" result="pass"/><test-case name="4920NISTXML-SV-IV-atomic-token-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4921NISTXML-SV-IV-atomic-token-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4922NISTXML-SV-IV-atomic-token-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4923NISTXML-SV-IV-atomic-token-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4924NISTXML-SV-IV-atomic-token-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4925NISTSchema-SV-IV-atomic-token-minLength-2 tokoe:valid" result="pass"/><test-case name="4926NISTXML-SV-IV-atomic-token-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4927NISTXML-SV-IV-atomic-token-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4928NISTXML-SV-IV-atomic-token-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4929NISTXML-SV-IV-atomic-token-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4930NISTXML-SV-IV-atomic-token-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4931NISTSchema-SV-IV-atomic-token-minLength-3 tokoe:valid" result="pass"/><test-case name="4932NISTXML-SV-IV-atomic-token-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4933NISTXML-SV-IV-atomic-token-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4934NISTXML-SV-IV-atomic-token-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4935NISTXML-SV-IV-atomic-token-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4936NISTXML-SV-IV-atomic-token-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4937NISTSchema-SV-IV-atomic-token-minLength-4 tokoe:valid" result="pass"/><test-case name="4938NISTXML-SV-IV-atomic-token-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4939NISTXML-SV-IV-atomic-token-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4940NISTXML-SV-IV-atomic-token-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4941NISTXML-SV-IV-atomic-token-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4942NISTXML-SV-IV-atomic-token-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4943NISTSchema-SV-IV-atomic-token-minLength-5 tokoe:valid" result="pass"/><test-case name="4944NISTXML-SV-IV-atomic-token-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4945NISTXML-SV-IV-atomic-token-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4946NISTXML-SV-IV-atomic-token-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4947NISTXML-SV-IV-atomic-token-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4948NISTXML-SV-IV-atomic-token-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4949NISTSchema-SV-IV-atomic-token-length-1 tokoe:valid" result="pass"/><test-case name="4950NISTXML-SV-IV-atomic-token-length-1-1 tokoe:valid" result="pass"/><test-case name="4951NISTXML-SV-IV-atomic-token-length-1-2 tokoe:valid" result="pass"/><test-case name="4952NISTXML-SV-IV-atomic-token-length-1-3 tokoe:valid" result="pass"/><test-case name="4953NISTXML-SV-IV-atomic-token-length-1-4 tokoe:valid" result="pass"/><test-case name="4954NISTXML-SV-IV-atomic-token-length-1-5 tokoe:valid" result="pass"/><test-case name="4955NISTSchema-SV-IV-atomic-token-length-2 tokoe:valid" result="pass"/><test-case name="4956NISTXML-SV-IV-atomic-token-length-2-1 tokoe:valid" result="pass"/><test-case name="4957NISTXML-SV-IV-atomic-token-length-2-2 tokoe:valid" result="pass"/><test-case name="4958NISTXML-SV-IV-atomic-token-length-2-3 tokoe:valid" result="pass"/><test-case name="4959NISTXML-SV-IV-atomic-token-length-2-4 tokoe:valid" result="pass"/><test-case name="4960NISTXML-SV-IV-atomic-token-length-2-5 tokoe:valid" result="pass"/><test-case name="4961NISTSchema-SV-IV-atomic-token-length-3 tokoe:valid" result="pass"/><test-case name="4962NISTXML-SV-IV-atomic-token-length-3-1 tokoe:valid" result="pass"/><test-case name="4963NISTXML-SV-IV-atomic-token-length-3-2 tokoe:valid" result="pass"/><test-case name="4964NISTXML-SV-IV-atomic-token-length-3-3 tokoe:valid" result="pass"/><test-case name="4965NISTXML-SV-IV-atomic-token-length-3-4 tokoe:valid" result="pass"/><test-case name="4966NISTXML-SV-IV-atomic-token-length-3-5 tokoe:valid" result="pass"/><test-case name="4967NISTSchema-SV-IV-atomic-token-length-4 tokoe:valid" result="pass"/><test-case name="4968NISTXML-SV-IV-atomic-token-length-4-1 tokoe:valid" result="pass"/><test-case name="4969NISTXML-SV-IV-atomic-token-length-4-2 tokoe:valid" result="pass"/><test-case name="4970NISTXML-SV-IV-atomic-token-length-4-3 tokoe:valid" result="pass"/><test-case name="4971NISTXML-SV-IV-atomic-token-length-4-4 tokoe:valid" result="pass"/><test-case name="4972NISTXML-SV-IV-atomic-token-length-4-5 tokoe:valid" result="pass"/><test-case name="4973NISTSchema-SV-IV-atomic-token-length-5 tokoe:valid" result="pass"/><test-case name="4974NISTXML-SV-IV-atomic-token-length-5-1 tokoe:valid" result="pass"/><test-case name="4975NISTXML-SV-IV-atomic-token-length-5-2 tokoe:valid" result="pass"/><test-case name="4976NISTXML-SV-IV-atomic-token-length-5-3 tokoe:valid" result="pass"/><test-case name="4977NISTXML-SV-IV-atomic-token-length-5-4 tokoe:valid" result="pass"/><test-case name="4978NISTXML-SV-IV-atomic-token-length-5-5 tokoe:valid" result="pass"/><test-case name="4979NISTSchema-SV-IV-atomic-token-pattern-1 tokoe:valid" result="pass"/><test-case name="4980NISTXML-SV-IV-atomic-token-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4981NISTXML-SV-IV-atomic-token-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4982NISTXML-SV-IV-atomic-token-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4983NISTXML-SV-IV-atomic-token-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4984NISTXML-SV-IV-atomic-token-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4985NISTSchema-SV-IV-atomic-token-pattern-2 tokoe:valid" result="pass"/><test-case name="4986NISTXML-SV-IV-atomic-token-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4987NISTXML-SV-IV-atomic-token-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4988NISTXML-SV-IV-atomic-token-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4989NISTXML-SV-IV-atomic-token-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4990NISTXML-SV-IV-atomic-token-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4991NISTSchema-SV-IV-atomic-token-pattern-3 tokoe:valid" result="pass"/><test-case name="4992NISTXML-SV-IV-atomic-token-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4993NISTXML-SV-IV-atomic-token-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4994NISTXML-SV-IV-atomic-token-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4995NISTXML-SV-IV-atomic-token-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4996NISTXML-SV-IV-atomic-token-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4997NISTSchema-SV-IV-atomic-token-pattern-4 tokoe:valid" result="pass"/><test-case name="4998NISTXML-SV-IV-atomic-token-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4999NISTXML-SV-IV-atomic-token-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5000NISTXML-SV-IV-atomic-token-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5001NISTXML-SV-IV-atomic-token-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5002NISTXML-SV-IV-atomic-token-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5003NISTSchema-SV-IV-atomic-token-pattern-5 tokoe:valid" result="pass"/><test-case name="5004NISTXML-SV-IV-atomic-token-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5005NISTXML-SV-IV-atomic-token-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5006NISTXML-SV-IV-atomic-token-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5007NISTXML-SV-IV-atomic-token-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5008NISTXML-SV-IV-atomic-token-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5009NISTSchema-SV-IV-atomic-token-enumeration-1 tokoe:valid" result="pass"/><test-case name="5010NISTXML-SV-IV-atomic-token-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5011NISTXML-SV-IV-atomic-token-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5012NISTXML-SV-IV-atomic-token-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5013NISTXML-SV-IV-atomic-token-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5014NISTXML-SV-IV-atomic-token-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5015NISTSchema-SV-IV-atomic-token-enumeration-2 tokoe:valid" result="pass"/><test-case name="5016NISTXML-SV-IV-atomic-token-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5017NISTXML-SV-IV-atomic-token-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5018NISTXML-SV-IV-atomic-token-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5019NISTXML-SV-IV-atomic-token-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5020NISTXML-SV-IV-atomic-token-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5021NISTSchema-SV-IV-atomic-token-enumeration-3 tokoe:valid" result="pass"/><test-case name="5022NISTXML-SV-IV-atomic-token-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5023NISTXML-SV-IV-atomic-token-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5024NISTXML-SV-IV-atomic-token-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5025NISTXML-SV-IV-atomic-token-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5026NISTXML-SV-IV-atomic-token-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5027NISTSchema-SV-IV-atomic-token-enumeration-4 tokoe:valid" result="pass"/><test-case name="5028NISTXML-SV-IV-atomic-token-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5029NISTXML-SV-IV-atomic-token-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5030NISTXML-SV-IV-atomic-token-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5031NISTXML-SV-IV-atomic-token-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5032NISTXML-SV-IV-atomic-token-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5033NISTSchema-SV-IV-atomic-token-enumeration-5 tokoe:valid" result="pass"/><test-case name="5034NISTXML-SV-IV-atomic-token-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5035NISTXML-SV-IV-atomic-token-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5036NISTXML-SV-IV-atomic-token-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5037NISTXML-SV-IV-atomic-token-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5038NISTXML-SV-IV-atomic-token-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5039NISTSchema-SV-IV-atomic-token-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5040NISTXML-SV-IV-atomic-token-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5041NISTXML-SV-IV-atomic-token-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5042NISTXML-SV-IV-atomic-token-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5043NISTXML-SV-IV-atomic-token-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5044NISTXML-SV-IV-atomic-token-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5045NISTSchema-SV-IV-atomic-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="5046NISTXML-SV-IV-atomic-Name-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5047NISTXML-SV-IV-atomic-Name-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5048NISTXML-SV-IV-atomic-Name-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5049NISTXML-SV-IV-atomic-Name-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5050NISTXML-SV-IV-atomic-Name-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5051NISTSchema-SV-IV-atomic-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="5052NISTXML-SV-IV-atomic-Name-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5053NISTXML-SV-IV-atomic-Name-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5054NISTXML-SV-IV-atomic-Name-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5055NISTXML-SV-IV-atomic-Name-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5056NISTXML-SV-IV-atomic-Name-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5057NISTSchema-SV-IV-atomic-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="5058NISTXML-SV-IV-atomic-Name-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5059NISTXML-SV-IV-atomic-Name-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5060NISTXML-SV-IV-atomic-Name-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5061NISTXML-SV-IV-atomic-Name-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5062NISTXML-SV-IV-atomic-Name-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5063NISTSchema-SV-IV-atomic-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="5064NISTXML-SV-IV-atomic-Name-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5065NISTXML-SV-IV-atomic-Name-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5066NISTXML-SV-IV-atomic-Name-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5067NISTXML-SV-IV-atomic-Name-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5068NISTXML-SV-IV-atomic-Name-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5069NISTSchema-SV-IV-atomic-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="5070NISTXML-SV-IV-atomic-Name-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5071NISTXML-SV-IV-atomic-Name-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5072NISTXML-SV-IV-atomic-Name-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5073NISTXML-SV-IV-atomic-Name-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5074NISTXML-SV-IV-atomic-Name-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5075NISTSchema-SV-IV-atomic-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="5076NISTXML-SV-IV-atomic-Name-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5077NISTXML-SV-IV-atomic-Name-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5078NISTXML-SV-IV-atomic-Name-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5079NISTXML-SV-IV-atomic-Name-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5080NISTXML-SV-IV-atomic-Name-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5081NISTSchema-SV-IV-atomic-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="5082NISTXML-SV-IV-atomic-Name-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5083NISTXML-SV-IV-atomic-Name-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5084NISTXML-SV-IV-atomic-Name-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5085NISTXML-SV-IV-atomic-Name-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5086NISTXML-SV-IV-atomic-Name-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5087NISTSchema-SV-IV-atomic-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="5088NISTXML-SV-IV-atomic-Name-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5089NISTXML-SV-IV-atomic-Name-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5090NISTXML-SV-IV-atomic-Name-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5091NISTXML-SV-IV-atomic-Name-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5092NISTXML-SV-IV-atomic-Name-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5093NISTSchema-SV-IV-atomic-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="5094NISTXML-SV-IV-atomic-Name-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5095NISTXML-SV-IV-atomic-Name-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5096NISTXML-SV-IV-atomic-Name-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5097NISTXML-SV-IV-atomic-Name-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5098NISTXML-SV-IV-atomic-Name-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5099NISTSchema-SV-IV-atomic-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="5100NISTXML-SV-IV-atomic-Name-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5101NISTXML-SV-IV-atomic-Name-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5102NISTXML-SV-IV-atomic-Name-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5103NISTXML-SV-IV-atomic-Name-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5104NISTXML-SV-IV-atomic-Name-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5105NISTSchema-SV-IV-atomic-Name-length-1 tokoe:valid" result="pass"/><test-case name="5106NISTXML-SV-IV-atomic-Name-length-1-1 tokoe:valid" result="pass"/><test-case name="5107NISTXML-SV-IV-atomic-Name-length-1-2 tokoe:valid" result="pass"/><test-case name="5108NISTXML-SV-IV-atomic-Name-length-1-3 tokoe:valid" result="pass"/><test-case name="5109NISTXML-SV-IV-atomic-Name-length-1-4 tokoe:valid" result="pass"/><test-case name="5110NISTXML-SV-IV-atomic-Name-length-1-5 tokoe:valid" result="pass"/><test-case name="5111NISTSchema-SV-IV-atomic-Name-length-2 tokoe:valid" result="pass"/><test-case name="5112NISTXML-SV-IV-atomic-Name-length-2-1 tokoe:valid" result="pass"/><test-case name="5113NISTXML-SV-IV-atomic-Name-length-2-2 tokoe:valid" result="pass"/><test-case name="5114NISTXML-SV-IV-atomic-Name-length-2-3 tokoe:valid" result="pass"/><test-case name="5115NISTXML-SV-IV-atomic-Name-length-2-4 tokoe:valid" result="pass"/><test-case name="5116NISTXML-SV-IV-atomic-Name-length-2-5 tokoe:valid" result="pass"/><test-case name="5117NISTSchema-SV-IV-atomic-Name-length-3 tokoe:valid" result="pass"/><test-case name="5118NISTXML-SV-IV-atomic-Name-length-3-1 tokoe:valid" result="pass"/><test-case name="5119NISTXML-SV-IV-atomic-Name-length-3-2 tokoe:valid" result="pass"/><test-case name="5120NISTXML-SV-IV-atomic-Name-length-3-3 tokoe:valid" result="pass"/><test-case name="5121NISTXML-SV-IV-atomic-Name-length-3-4 tokoe:valid" result="pass"/><test-case name="5122NISTXML-SV-IV-atomic-Name-length-3-5 tokoe:valid" result="pass"/><test-case name="5123NISTSchema-SV-IV-atomic-Name-length-4 tokoe:valid" result="pass"/><test-case name="5124NISTXML-SV-IV-atomic-Name-length-4-1 tokoe:valid" result="pass"/><test-case name="5125NISTXML-SV-IV-atomic-Name-length-4-2 tokoe:valid" result="pass"/><test-case name="5126NISTXML-SV-IV-atomic-Name-length-4-3 tokoe:valid" result="pass"/><test-case name="5127NISTXML-SV-IV-atomic-Name-length-4-4 tokoe:valid" result="pass"/><test-case name="5128NISTXML-SV-IV-atomic-Name-length-4-5 tokoe:valid" result="pass"/><test-case name="5129NISTSchema-SV-IV-atomic-Name-length-5 tokoe:valid" result="pass"/><test-case name="5130NISTXML-SV-IV-atomic-Name-length-5-1 tokoe:valid" result="pass"/><test-case name="5131NISTXML-SV-IV-atomic-Name-length-5-2 tokoe:valid" result="pass"/><test-case name="5132NISTXML-SV-IV-atomic-Name-length-5-3 tokoe:valid" result="pass"/><test-case name="5133NISTXML-SV-IV-atomic-Name-length-5-4 tokoe:valid" result="pass"/><test-case name="5134NISTXML-SV-IV-atomic-Name-length-5-5 tokoe:valid" result="pass"/><test-case name="5135NISTSchema-SV-IV-atomic-Name-pattern-1 tokoe:valid" result="pass"/><test-case name="5136NISTXML-SV-IV-atomic-Name-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5137NISTXML-SV-IV-atomic-Name-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5138NISTXML-SV-IV-atomic-Name-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5139NISTXML-SV-IV-atomic-Name-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5140NISTXML-SV-IV-atomic-Name-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5141NISTSchema-SV-IV-atomic-Name-pattern-2 tokoe:valid" result="pass"/><test-case name="5142NISTXML-SV-IV-atomic-Name-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5143NISTXML-SV-IV-atomic-Name-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5144NISTXML-SV-IV-atomic-Name-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5145NISTXML-SV-IV-atomic-Name-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5146NISTXML-SV-IV-atomic-Name-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5147NISTSchema-SV-IV-atomic-Name-pattern-3 tokoe:valid" result="pass"/><test-case name="5148NISTXML-SV-IV-atomic-Name-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5149NISTXML-SV-IV-atomic-Name-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5150NISTXML-SV-IV-atomic-Name-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5151NISTXML-SV-IV-atomic-Name-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5152NISTXML-SV-IV-atomic-Name-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5153NISTSchema-SV-IV-atomic-Name-pattern-4 tokoe:valid" result="pass"/><test-case name="5154NISTXML-SV-IV-atomic-Name-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5155NISTXML-SV-IV-atomic-Name-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5156NISTXML-SV-IV-atomic-Name-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5157NISTXML-SV-IV-atomic-Name-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5158NISTXML-SV-IV-atomic-Name-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5159NISTSchema-SV-IV-atomic-Name-pattern-5 tokoe:valid" result="pass"/><test-case name="5160NISTXML-SV-IV-atomic-Name-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5161NISTXML-SV-IV-atomic-Name-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5162NISTXML-SV-IV-atomic-Name-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5163NISTXML-SV-IV-atomic-Name-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5164NISTXML-SV-IV-atomic-Name-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5165NISTSchema-SV-IV-atomic-Name-enumeration-1 tokoe:valid" result="pass"/><test-case name="5166NISTXML-SV-IV-atomic-Name-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5167NISTXML-SV-IV-atomic-Name-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5168NISTXML-SV-IV-atomic-Name-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5169NISTXML-SV-IV-atomic-Name-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5170NISTXML-SV-IV-atomic-Name-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5171NISTSchema-SV-IV-atomic-Name-enumeration-2 tokoe:valid" result="pass"/><test-case name="5172NISTXML-SV-IV-atomic-Name-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5173NISTXML-SV-IV-atomic-Name-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5174NISTXML-SV-IV-atomic-Name-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5175NISTXML-SV-IV-atomic-Name-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5176NISTXML-SV-IV-atomic-Name-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5177NISTSchema-SV-IV-atomic-Name-enumeration-3 tokoe:valid" result="pass"/><test-case name="5178NISTXML-SV-IV-atomic-Name-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5179NISTXML-SV-IV-atomic-Name-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5180NISTXML-SV-IV-atomic-Name-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5181NISTXML-SV-IV-atomic-Name-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5182NISTXML-SV-IV-atomic-Name-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5183NISTSchema-SV-IV-atomic-Name-enumeration-4 tokoe:valid" result="pass"/><test-case name="5184NISTXML-SV-IV-atomic-Name-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5185NISTXML-SV-IV-atomic-Name-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5186NISTXML-SV-IV-atomic-Name-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5187NISTXML-SV-IV-atomic-Name-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5188NISTXML-SV-IV-atomic-Name-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5189NISTSchema-SV-IV-atomic-Name-enumeration-5 tokoe:valid" result="pass"/><test-case name="5190NISTXML-SV-IV-atomic-Name-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5191NISTXML-SV-IV-atomic-Name-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5192NISTXML-SV-IV-atomic-Name-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5193NISTXML-SV-IV-atomic-Name-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5194NISTXML-SV-IV-atomic-Name-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5195NISTSchema-SV-IV-atomic-Name-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5196NISTXML-SV-IV-atomic-Name-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5197NISTXML-SV-IV-atomic-Name-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5198NISTXML-SV-IV-atomic-Name-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5199NISTXML-SV-IV-atomic-Name-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5200NISTXML-SV-IV-atomic-Name-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5201NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="5202NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5203NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5204NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5205NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5206NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5207NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="5208NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5209NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5210NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5211NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5212NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5213NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="5214NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5215NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5216NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5217NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5218NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5219NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="5220NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5221NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5222NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5223NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5224NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5225NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="5226NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5227NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5228NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5229NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5230NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5231NISTSchema-SV-IV-atomic-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="5232NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5233NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5234NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5235NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5236NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5237NISTSchema-SV-IV-atomic-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="5238NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5239NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5240NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5241NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5242NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5243NISTSchema-SV-IV-atomic-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="5244NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5245NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5246NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5247NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5248NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5249NISTSchema-SV-IV-atomic-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="5250NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5251NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5252NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5253NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5254NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5255NISTSchema-SV-IV-atomic-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="5256NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5257NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5258NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5259NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5260NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5261NISTSchema-SV-IV-atomic-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="5262NISTXML-SV-IV-atomic-NMTOKEN-length-1-1 tokoe:valid" result="pass"/><test-case name="5263NISTXML-SV-IV-atomic-NMTOKEN-length-1-2 tokoe:valid" result="pass"/><test-case name="5264NISTXML-SV-IV-atomic-NMTOKEN-length-1-3 tokoe:valid" result="pass"/><test-case name="5265NISTXML-SV-IV-atomic-NMTOKEN-length-1-4 tokoe:valid" result="pass"/><test-case name="5266NISTXML-SV-IV-atomic-NMTOKEN-length-1-5 tokoe:valid" result="pass"/><test-case name="5267NISTSchema-SV-IV-atomic-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="5268NISTXML-SV-IV-atomic-NMTOKEN-length-2-1 tokoe:valid" result="pass"/><test-case name="5269NISTXML-SV-IV-atomic-NMTOKEN-length-2-2 tokoe:valid" result="pass"/><test-case name="5270NISTXML-SV-IV-atomic-NMTOKEN-length-2-3 tokoe:valid" result="pass"/><test-case name="5271NISTXML-SV-IV-atomic-NMTOKEN-length-2-4 tokoe:valid" result="pass"/><test-case name="5272NISTXML-SV-IV-atomic-NMTOKEN-length-2-5 tokoe:valid" result="pass"/><test-case name="5273NISTSchema-SV-IV-atomic-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="5274NISTXML-SV-IV-atomic-NMTOKEN-length-3-1 tokoe:valid" result="pass"/><test-case name="5275NISTXML-SV-IV-atomic-NMTOKEN-length-3-2 tokoe:valid" result="pass"/><test-case name="5276NISTXML-SV-IV-atomic-NMTOKEN-length-3-3 tokoe:valid" result="pass"/><test-case name="5277NISTXML-SV-IV-atomic-NMTOKEN-length-3-4 tokoe:valid" result="pass"/><test-case name="5278NISTXML-SV-IV-atomic-NMTOKEN-length-3-5 tokoe:valid" result="pass"/><test-case name="5279NISTSchema-SV-IV-atomic-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="5280NISTXML-SV-IV-atomic-NMTOKEN-length-4-1 tokoe:valid" result="pass"/><test-case name="5281NISTXML-SV-IV-atomic-NMTOKEN-length-4-2 tokoe:valid" result="pass"/><test-case name="5282NISTXML-SV-IV-atomic-NMTOKEN-length-4-3 tokoe:valid" result="pass"/><test-case name="5283NISTXML-SV-IV-atomic-NMTOKEN-length-4-4 tokoe:valid" result="pass"/><test-case name="5284NISTXML-SV-IV-atomic-NMTOKEN-length-4-5 tokoe:valid" result="pass"/><test-case name="5285NISTSchema-SV-IV-atomic-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="5286NISTXML-SV-IV-atomic-NMTOKEN-length-5-1 tokoe:valid" result="pass"/><test-case name="5287NISTXML-SV-IV-atomic-NMTOKEN-length-5-2 tokoe:valid" result="pass"/><test-case name="5288NISTXML-SV-IV-atomic-NMTOKEN-length-5-3 tokoe:valid" result="pass"/><test-case name="5289NISTXML-SV-IV-atomic-NMTOKEN-length-5-4 tokoe:valid" result="pass"/><test-case name="5290NISTXML-SV-IV-atomic-NMTOKEN-length-5-5 tokoe:valid" result="pass"/><test-case name="5291NISTSchema-SV-IV-atomic-NMTOKEN-pattern-1 tokoe:valid" result="pass"/><test-case name="5292NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5293NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5294NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5295NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5296NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5297NISTSchema-SV-IV-atomic-NMTOKEN-pattern-2 tokoe:valid" result="pass"/><test-case name="5298NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5299NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5300NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5301NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5302NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5303NISTSchema-SV-IV-atomic-NMTOKEN-pattern-3 tokoe:valid" result="pass"/><test-case name="5304NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5305NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5306NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5307NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5308NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5309NISTSchema-SV-IV-atomic-NMTOKEN-pattern-4 tokoe:valid" result="pass"/><test-case name="5310NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5311NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5312NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5313NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5314NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5315NISTSchema-SV-IV-atomic-NMTOKEN-pattern-5 tokoe:valid" result="pass"/><test-case name="5316NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5317NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5318NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5319NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5320NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5321NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-1 tokoe:valid" result="pass"/><test-case name="5322NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5323NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5324NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5325NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5326NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5327NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-2 tokoe:valid" result="pass"/><test-case name="5328NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5329NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5330NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5331NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5332NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5333NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-3 tokoe:valid" result="pass"/><test-case name="5334NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5335NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5336NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5337NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5338NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5339NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-4 tokoe:valid" result="pass"/><test-case name="5340NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5341NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5342NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5343NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5344NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5345NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-5 tokoe:valid" result="pass"/><test-case name="5346NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5347NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5348NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5349NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5350NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5351NISTSchema-SV-IV-atomic-NMTOKEN-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5352NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5353NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5354NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5355NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5356NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5357NISTSchema-SV-IV-atomic-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="5358NISTXML-SV-IV-atomic-NCName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5359NISTXML-SV-IV-atomic-NCName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5360NISTXML-SV-IV-atomic-NCName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5361NISTXML-SV-IV-atomic-NCName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5362NISTXML-SV-IV-atomic-NCName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5363NISTSchema-SV-IV-atomic-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="5364NISTXML-SV-IV-atomic-NCName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5365NISTXML-SV-IV-atomic-NCName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5366NISTXML-SV-IV-atomic-NCName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5367NISTXML-SV-IV-atomic-NCName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5368NISTXML-SV-IV-atomic-NCName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5369NISTSchema-SV-IV-atomic-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="5370NISTXML-SV-IV-atomic-NCName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5371NISTXML-SV-IV-atomic-NCName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5372NISTXML-SV-IV-atomic-NCName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5373NISTXML-SV-IV-atomic-NCName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5374NISTXML-SV-IV-atomic-NCName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5375NISTSchema-SV-IV-atomic-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="5376NISTXML-SV-IV-atomic-NCName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5377NISTXML-SV-IV-atomic-NCName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5378NISTXML-SV-IV-atomic-NCName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5379NISTXML-SV-IV-atomic-NCName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5380NISTXML-SV-IV-atomic-NCName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5381NISTSchema-SV-IV-atomic-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="5382NISTXML-SV-IV-atomic-NCName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5383NISTXML-SV-IV-atomic-NCName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5384NISTXML-SV-IV-atomic-NCName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5385NISTXML-SV-IV-atomic-NCName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5386NISTXML-SV-IV-atomic-NCName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5387NISTSchema-SV-IV-atomic-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="5388NISTXML-SV-IV-atomic-NCName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5389NISTXML-SV-IV-atomic-NCName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5390NISTXML-SV-IV-atomic-NCName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5391NISTXML-SV-IV-atomic-NCName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5392NISTXML-SV-IV-atomic-NCName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5393NISTSchema-SV-IV-atomic-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="5394NISTXML-SV-IV-atomic-NCName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5395NISTXML-SV-IV-atomic-NCName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5396NISTXML-SV-IV-atomic-NCName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5397NISTXML-SV-IV-atomic-NCName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5398NISTXML-SV-IV-atomic-NCName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5399NISTSchema-SV-IV-atomic-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="5400NISTXML-SV-IV-atomic-NCName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5401NISTXML-SV-IV-atomic-NCName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5402NISTXML-SV-IV-atomic-NCName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5403NISTXML-SV-IV-atomic-NCName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5404NISTXML-SV-IV-atomic-NCName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5405NISTSchema-SV-IV-atomic-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="5406NISTXML-SV-IV-atomic-NCName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5407NISTXML-SV-IV-atomic-NCName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5408NISTXML-SV-IV-atomic-NCName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5409NISTXML-SV-IV-atomic-NCName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5410NISTXML-SV-IV-atomic-NCName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5411NISTSchema-SV-IV-atomic-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="5412NISTXML-SV-IV-atomic-NCName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5413NISTXML-SV-IV-atomic-NCName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5414NISTXML-SV-IV-atomic-NCName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5415NISTXML-SV-IV-atomic-NCName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5416NISTXML-SV-IV-atomic-NCName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5417NISTSchema-SV-IV-atomic-NCName-length-1 tokoe:valid" result="pass"/><test-case name="5418NISTXML-SV-IV-atomic-NCName-length-1-1 tokoe:valid" result="pass"/><test-case name="5419NISTXML-SV-IV-atomic-NCName-length-1-2 tokoe:valid" result="pass"/><test-case name="5420NISTXML-SV-IV-atomic-NCName-length-1-3 tokoe:valid" result="pass"/><test-case name="5421NISTXML-SV-IV-atomic-NCName-length-1-4 tokoe:valid" result="pass"/><test-case name="5422NISTXML-SV-IV-atomic-NCName-length-1-5 tokoe:valid" result="pass"/><test-case name="5423NISTSchema-SV-IV-atomic-NCName-length-2 tokoe:valid" result="pass"/><test-case name="5424NISTXML-SV-IV-atomic-NCName-length-2-1 tokoe:valid" result="pass"/><test-case name="5425NISTXML-SV-IV-atomic-NCName-length-2-2 tokoe:valid" result="pass"/><test-case name="5426NISTXML-SV-IV-atomic-NCName-length-2-3 tokoe:valid" result="pass"/><test-case name="5427NISTXML-SV-IV-atomic-NCName-length-2-4 tokoe:valid" result="pass"/><test-case name="5428NISTXML-SV-IV-atomic-NCName-length-2-5 tokoe:valid" result="pass"/><test-case name="5429NISTSchema-SV-IV-atomic-NCName-length-3 tokoe:valid" result="pass"/><test-case name="5430NISTXML-SV-IV-atomic-NCName-length-3-1 tokoe:valid" result="pass"/><test-case name="5431NISTXML-SV-IV-atomic-NCName-length-3-2 tokoe:valid" result="pass"/><test-case name="5432NISTXML-SV-IV-atomic-NCName-length-3-3 tokoe:valid" result="pass"/><test-case name="5433NISTXML-SV-IV-atomic-NCName-length-3-4 tokoe:valid" result="pass"/><test-case name="5434NISTXML-SV-IV-atomic-NCName-length-3-5 tokoe:valid" result="pass"/><test-case name="5435NISTSchema-SV-IV-atomic-NCName-length-4 tokoe:valid" result="pass"/><test-case name="5436NISTXML-SV-IV-atomic-NCName-length-4-1 tokoe:valid" result="pass"/><test-case name="5437NISTXML-SV-IV-atomic-NCName-length-4-2 tokoe:valid" result="pass"/><test-case name="5438NISTXML-SV-IV-atomic-NCName-length-4-3 tokoe:valid" result="pass"/><test-case name="5439NISTXML-SV-IV-atomic-NCName-length-4-4 tokoe:valid" result="pass"/><test-case name="5440NISTXML-SV-IV-atomic-NCName-length-4-5 tokoe:valid" result="pass"/><test-case name="5441NISTSchema-SV-IV-atomic-NCName-length-5 tokoe:valid" result="pass"/><test-case name="5442NISTXML-SV-IV-atomic-NCName-length-5-1 tokoe:valid" result="pass"/><test-case name="5443NISTXML-SV-IV-atomic-NCName-length-5-2 tokoe:valid" result="pass"/><test-case name="5444NISTXML-SV-IV-atomic-NCName-length-5-3 tokoe:valid" result="pass"/><test-case name="5445NISTXML-SV-IV-atomic-NCName-length-5-4 tokoe:valid" result="pass"/><test-case name="5446NISTXML-SV-IV-atomic-NCName-length-5-5 tokoe:valid" result="pass"/><test-case name="5447NISTSchema-SV-IV-atomic-NCName-pattern-1 tokoe:valid" result="pass"/><test-case name="5448NISTXML-SV-IV-atomic-NCName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5449NISTXML-SV-IV-atomic-NCName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5450NISTXML-SV-IV-atomic-NCName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5451NISTXML-SV-IV-atomic-NCName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5452NISTXML-SV-IV-atomic-NCName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5453NISTSchema-SV-IV-atomic-NCName-pattern-2 tokoe:valid" result="pass"/><test-case name="5454NISTXML-SV-IV-atomic-NCName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5455NISTXML-SV-IV-atomic-NCName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5456NISTXML-SV-IV-atomic-NCName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5457NISTXML-SV-IV-atomic-NCName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5458NISTXML-SV-IV-atomic-NCName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5459NISTSchema-SV-IV-atomic-NCName-pattern-3 tokoe:valid" result="pass"/><test-case name="5460NISTXML-SV-IV-atomic-NCName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5461NISTXML-SV-IV-atomic-NCName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5462NISTXML-SV-IV-atomic-NCName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5463NISTXML-SV-IV-atomic-NCName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5464NISTXML-SV-IV-atomic-NCName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5465NISTSchema-SV-IV-atomic-NCName-pattern-4 tokoe:valid" result="pass"/><test-case name="5466NISTXML-SV-IV-atomic-NCName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5467NISTXML-SV-IV-atomic-NCName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5468NISTXML-SV-IV-atomic-NCName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5469NISTXML-SV-IV-atomic-NCName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5470NISTXML-SV-IV-atomic-NCName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5471NISTSchema-SV-IV-atomic-NCName-pattern-5 tokoe:valid" result="pass"/><test-case name="5472NISTXML-SV-IV-atomic-NCName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5473NISTXML-SV-IV-atomic-NCName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5474NISTXML-SV-IV-atomic-NCName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5475NISTXML-SV-IV-atomic-NCName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5476NISTXML-SV-IV-atomic-NCName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5477NISTSchema-SV-IV-atomic-NCName-enumeration-1 tokoe:valid" result="pass"/><test-case name="5478NISTXML-SV-IV-atomic-NCName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5479NISTXML-SV-IV-atomic-NCName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5480NISTXML-SV-IV-atomic-NCName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5481NISTXML-SV-IV-atomic-NCName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5482NISTXML-SV-IV-atomic-NCName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5483NISTSchema-SV-IV-atomic-NCName-enumeration-2 tokoe:valid" result="pass"/><test-case name="5484NISTXML-SV-IV-atomic-NCName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5485NISTXML-SV-IV-atomic-NCName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5486NISTXML-SV-IV-atomic-NCName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5487NISTXML-SV-IV-atomic-NCName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5488NISTXML-SV-IV-atomic-NCName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5489NISTSchema-SV-IV-atomic-NCName-enumeration-3 tokoe:valid" result="pass"/><test-case name="5490NISTXML-SV-IV-atomic-NCName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5491NISTXML-SV-IV-atomic-NCName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5492NISTXML-SV-IV-atomic-NCName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5493NISTXML-SV-IV-atomic-NCName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5494NISTXML-SV-IV-atomic-NCName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5495NISTSchema-SV-IV-atomic-NCName-enumeration-4 tokoe:valid" result="pass"/><test-case name="5496NISTXML-SV-IV-atomic-NCName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5497NISTXML-SV-IV-atomic-NCName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5498NISTXML-SV-IV-atomic-NCName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5499NISTXML-SV-IV-atomic-NCName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5500NISTXML-SV-IV-atomic-NCName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5501NISTSchema-SV-IV-atomic-NCName-enumeration-5 tokoe:valid" result="pass"/><test-case name="5502NISTXML-SV-IV-atomic-NCName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5503NISTXML-SV-IV-atomic-NCName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5504NISTXML-SV-IV-atomic-NCName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5505NISTXML-SV-IV-atomic-NCName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5506NISTXML-SV-IV-atomic-NCName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5507NISTSchema-SV-IV-atomic-NCName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5508NISTXML-SV-IV-atomic-NCName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5509NISTXML-SV-IV-atomic-NCName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5510NISTXML-SV-IV-atomic-NCName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5511NISTXML-SV-IV-atomic-NCName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5512NISTXML-SV-IV-atomic-NCName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5513NISTSchema-SV-IV-atomic-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="5514NISTXML-SV-IV-atomic-ID-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5515NISTXML-SV-IV-atomic-ID-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5516NISTXML-SV-IV-atomic-ID-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5517NISTXML-SV-IV-atomic-ID-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5518NISTXML-SV-IV-atomic-ID-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5519NISTSchema-SV-IV-atomic-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="5520NISTXML-SV-IV-atomic-ID-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5521NISTXML-SV-IV-atomic-ID-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5522NISTXML-SV-IV-atomic-ID-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5523NISTXML-SV-IV-atomic-ID-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5524NISTXML-SV-IV-atomic-ID-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5525NISTSchema-SV-IV-atomic-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="5526NISTXML-SV-IV-atomic-ID-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5527NISTXML-SV-IV-atomic-ID-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5528NISTXML-SV-IV-atomic-ID-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5529NISTXML-SV-IV-atomic-ID-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5530NISTXML-SV-IV-atomic-ID-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5531NISTSchema-SV-IV-atomic-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="5532NISTXML-SV-IV-atomic-ID-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5533NISTXML-SV-IV-atomic-ID-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5534NISTXML-SV-IV-atomic-ID-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5535NISTXML-SV-IV-atomic-ID-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5536NISTXML-SV-IV-atomic-ID-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5537NISTSchema-SV-IV-atomic-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="5538NISTXML-SV-IV-atomic-ID-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5539NISTXML-SV-IV-atomic-ID-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5540NISTXML-SV-IV-atomic-ID-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5541NISTXML-SV-IV-atomic-ID-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5542NISTXML-SV-IV-atomic-ID-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5543NISTSchema-SV-IV-atomic-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="5544NISTXML-SV-IV-atomic-ID-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5545NISTXML-SV-IV-atomic-ID-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5546NISTXML-SV-IV-atomic-ID-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5547NISTXML-SV-IV-atomic-ID-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5548NISTXML-SV-IV-atomic-ID-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5549NISTSchema-SV-IV-atomic-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="5550NISTXML-SV-IV-atomic-ID-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5551NISTXML-SV-IV-atomic-ID-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5552NISTXML-SV-IV-atomic-ID-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5553NISTXML-SV-IV-atomic-ID-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5554NISTXML-SV-IV-atomic-ID-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5555NISTSchema-SV-IV-atomic-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="5556NISTXML-SV-IV-atomic-ID-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5557NISTXML-SV-IV-atomic-ID-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5558NISTXML-SV-IV-atomic-ID-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5559NISTXML-SV-IV-atomic-ID-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5560NISTXML-SV-IV-atomic-ID-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5561NISTSchema-SV-IV-atomic-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="5562NISTXML-SV-IV-atomic-ID-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5563NISTXML-SV-IV-atomic-ID-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5564NISTXML-SV-IV-atomic-ID-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5565NISTXML-SV-IV-atomic-ID-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5566NISTXML-SV-IV-atomic-ID-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5567NISTSchema-SV-IV-atomic-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="5568NISTXML-SV-IV-atomic-ID-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5569NISTXML-SV-IV-atomic-ID-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5570NISTXML-SV-IV-atomic-ID-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5571NISTXML-SV-IV-atomic-ID-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5572NISTXML-SV-IV-atomic-ID-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5573NISTSchema-SV-IV-atomic-ID-length-1 tokoe:valid" result="pass"/><test-case name="5574NISTXML-SV-IV-atomic-ID-length-1-1 tokoe:valid" result="pass"/><test-case name="5575NISTXML-SV-IV-atomic-ID-length-1-2 tokoe:valid" result="pass"/><test-case name="5576NISTXML-SV-IV-atomic-ID-length-1-3 tokoe:valid" result="pass"/><test-case name="5577NISTXML-SV-IV-atomic-ID-length-1-4 tokoe:valid" result="pass"/><test-case name="5578NISTXML-SV-IV-atomic-ID-length-1-5 tokoe:valid" result="pass"/><test-case name="5579NISTSchema-SV-IV-atomic-ID-length-2 tokoe:valid" result="pass"/><test-case name="5580NISTXML-SV-IV-atomic-ID-length-2-1 tokoe:valid" result="pass"/><test-case name="5581NISTXML-SV-IV-atomic-ID-length-2-2 tokoe:valid" result="pass"/><test-case name="5582NISTXML-SV-IV-atomic-ID-length-2-3 tokoe:valid" result="pass"/><test-case name="5583NISTXML-SV-IV-atomic-ID-length-2-4 tokoe:valid" result="pass"/><test-case name="5584NISTXML-SV-IV-atomic-ID-length-2-5 tokoe:valid" result="pass"/><test-case name="5585NISTSchema-SV-IV-atomic-ID-length-3 tokoe:valid" result="pass"/><test-case name="5586NISTXML-SV-IV-atomic-ID-length-3-1 tokoe:valid" result="pass"/><test-case name="5587NISTXML-SV-IV-atomic-ID-length-3-2 tokoe:valid" result="pass"/><test-case name="5588NISTXML-SV-IV-atomic-ID-length-3-3 tokoe:valid" result="pass"/><test-case name="5589NISTXML-SV-IV-atomic-ID-length-3-4 tokoe:valid" result="pass"/><test-case name="5590NISTXML-SV-IV-atomic-ID-length-3-5 tokoe:valid" result="pass"/><test-case name="5591NISTSchema-SV-IV-atomic-ID-length-4 tokoe:valid" result="pass"/><test-case name="5592NISTXML-SV-IV-atomic-ID-length-4-1 tokoe:valid" result="pass"/><test-case name="5593NISTXML-SV-IV-atomic-ID-length-4-2 tokoe:valid" result="pass"/><test-case name="5594NISTXML-SV-IV-atomic-ID-length-4-3 tokoe:valid" result="pass"/><test-case name="5595NISTXML-SV-IV-atomic-ID-length-4-4 tokoe:valid" result="pass"/><test-case name="5596NISTXML-SV-IV-atomic-ID-length-4-5 tokoe:valid" result="pass"/><test-case name="5597NISTSchema-SV-IV-atomic-ID-length-5 tokoe:valid" result="pass"/><test-case name="5598NISTXML-SV-IV-atomic-ID-length-5-1 tokoe:valid" result="pass"/><test-case name="5599NISTXML-SV-IV-atomic-ID-length-5-2 tokoe:valid" result="pass"/><test-case name="5600NISTXML-SV-IV-atomic-ID-length-5-3 tokoe:valid" result="pass"/><test-case name="5601NISTXML-SV-IV-atomic-ID-length-5-4 tokoe:valid" result="pass"/><test-case name="5602NISTXML-SV-IV-atomic-ID-length-5-5 tokoe:valid" result="pass"/><test-case name="5603NISTSchema-SV-IV-atomic-ID-pattern-1 tokoe:valid" result="pass"/><test-case name="5604NISTXML-SV-IV-atomic-ID-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5605NISTXML-SV-IV-atomic-ID-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5606NISTXML-SV-IV-atomic-ID-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5607NISTXML-SV-IV-atomic-ID-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5608NISTXML-SV-IV-atomic-ID-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5609NISTSchema-SV-IV-atomic-ID-pattern-2 tokoe:valid" result="pass"/><test-case name="5610NISTXML-SV-IV-atomic-ID-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5611NISTXML-SV-IV-atomic-ID-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5612NISTXML-SV-IV-atomic-ID-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5613NISTXML-SV-IV-atomic-ID-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5614NISTXML-SV-IV-atomic-ID-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5615NISTSchema-SV-IV-atomic-ID-pattern-3 tokoe:valid" result="pass"/><test-case name="5616NISTXML-SV-IV-atomic-ID-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5617NISTXML-SV-IV-atomic-ID-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5618NISTXML-SV-IV-atomic-ID-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5619NISTXML-SV-IV-atomic-ID-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5620NISTXML-SV-IV-atomic-ID-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5621NISTSchema-SV-IV-atomic-ID-pattern-4 tokoe:valid" result="pass"/><test-case name="5622NISTXML-SV-IV-atomic-ID-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5623NISTXML-SV-IV-atomic-ID-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5624NISTXML-SV-IV-atomic-ID-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5625NISTXML-SV-IV-atomic-ID-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5626NISTXML-SV-IV-atomic-ID-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5627NISTSchema-SV-IV-atomic-ID-pattern-5 tokoe:valid" result="pass"/><test-case name="5628NISTXML-SV-IV-atomic-ID-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5629NISTXML-SV-IV-atomic-ID-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5630NISTXML-SV-IV-atomic-ID-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5631NISTXML-SV-IV-atomic-ID-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5632NISTXML-SV-IV-atomic-ID-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5633NISTSchema-SV-IV-atomic-ID-enumeration-1 tokoe:valid" result="pass"/><test-case name="5634NISTXML-SV-IV-atomic-ID-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5635NISTXML-SV-IV-atomic-ID-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5636NISTXML-SV-IV-atomic-ID-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5637NISTXML-SV-IV-atomic-ID-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5638NISTXML-SV-IV-atomic-ID-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5639NISTSchema-SV-IV-atomic-ID-enumeration-2 tokoe:valid" result="pass"/><test-case name="5640NISTXML-SV-IV-atomic-ID-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5641NISTXML-SV-IV-atomic-ID-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5642NISTXML-SV-IV-atomic-ID-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5643NISTXML-SV-IV-atomic-ID-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5644NISTXML-SV-IV-atomic-ID-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5645NISTSchema-SV-IV-atomic-ID-enumeration-3 tokoe:valid" result="pass"/><test-case name="5646NISTXML-SV-IV-atomic-ID-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5647NISTXML-SV-IV-atomic-ID-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5648NISTXML-SV-IV-atomic-ID-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5649NISTXML-SV-IV-atomic-ID-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5650NISTXML-SV-IV-atomic-ID-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5651NISTSchema-SV-IV-atomic-ID-enumeration-4 tokoe:valid" result="pass"/><test-case name="5652NISTXML-SV-IV-atomic-ID-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5653NISTXML-SV-IV-atomic-ID-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5654NISTXML-SV-IV-atomic-ID-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5655NISTXML-SV-IV-atomic-ID-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5656NISTXML-SV-IV-atomic-ID-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5657NISTSchema-SV-IV-atomic-ID-enumeration-5 tokoe:valid" result="pass"/><test-case name="5658NISTXML-SV-IV-atomic-ID-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5659NISTXML-SV-IV-atomic-ID-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5660NISTXML-SV-IV-atomic-ID-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5661NISTXML-SV-IV-atomic-ID-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5662NISTXML-SV-IV-atomic-ID-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5663NISTSchema-SV-IV-atomic-ID-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5664NISTXML-SV-IV-atomic-ID-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5665NISTXML-SV-IV-atomic-ID-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5666NISTXML-SV-IV-atomic-ID-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5667NISTXML-SV-IV-atomic-ID-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5668NISTXML-SV-IV-atomic-ID-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5669NISTSchema-SV-IV-atomic-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="5670NISTXML-SV-IV-atomic-language-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5671NISTXML-SV-IV-atomic-language-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5672NISTXML-SV-IV-atomic-language-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5673NISTXML-SV-IV-atomic-language-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5674NISTXML-SV-IV-atomic-language-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5675NISTSchema-SV-IV-atomic-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="5676NISTXML-SV-IV-atomic-language-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5677NISTXML-SV-IV-atomic-language-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5678NISTXML-SV-IV-atomic-language-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5679NISTXML-SV-IV-atomic-language-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5680NISTXML-SV-IV-atomic-language-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5681NISTSchema-SV-IV-atomic-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="5682NISTXML-SV-IV-atomic-language-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5683NISTXML-SV-IV-atomic-language-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5684NISTXML-SV-IV-atomic-language-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5685NISTXML-SV-IV-atomic-language-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5686NISTXML-SV-IV-atomic-language-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5687NISTSchema-SV-IV-atomic-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="5688NISTXML-SV-IV-atomic-language-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5689NISTXML-SV-IV-atomic-language-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5690NISTXML-SV-IV-atomic-language-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5691NISTXML-SV-IV-atomic-language-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5692NISTXML-SV-IV-atomic-language-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5693NISTSchema-SV-IV-atomic-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="5694NISTXML-SV-IV-atomic-language-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5695NISTXML-SV-IV-atomic-language-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5696NISTXML-SV-IV-atomic-language-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5697NISTXML-SV-IV-atomic-language-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5698NISTXML-SV-IV-atomic-language-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5699NISTSchema-SV-IV-atomic-language-minLength-1 tokoe:valid" result="pass"/><test-case name="5700NISTXML-SV-IV-atomic-language-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5701NISTXML-SV-IV-atomic-language-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5702NISTXML-SV-IV-atomic-language-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5703NISTXML-SV-IV-atomic-language-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5704NISTXML-SV-IV-atomic-language-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5705NISTSchema-SV-IV-atomic-language-minLength-2 tokoe:valid" result="pass"/><test-case name="5706NISTXML-SV-IV-atomic-language-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5707NISTXML-SV-IV-atomic-language-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5708NISTXML-SV-IV-atomic-language-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5709NISTXML-SV-IV-atomic-language-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5710NISTXML-SV-IV-atomic-language-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5711NISTSchema-SV-IV-atomic-language-minLength-3 tokoe:valid" result="pass"/><test-case name="5712NISTXML-SV-IV-atomic-language-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5713NISTXML-SV-IV-atomic-language-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5714NISTXML-SV-IV-atomic-language-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5715NISTXML-SV-IV-atomic-language-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5716NISTXML-SV-IV-atomic-language-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5717NISTSchema-SV-IV-atomic-language-minLength-4 tokoe:valid" result="pass"/><test-case name="5718NISTXML-SV-IV-atomic-language-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5719NISTXML-SV-IV-atomic-language-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5720NISTXML-SV-IV-atomic-language-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5721NISTXML-SV-IV-atomic-language-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5722NISTXML-SV-IV-atomic-language-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5723NISTSchema-SV-IV-atomic-language-minLength-5 tokoe:valid" result="pass"/><test-case name="5724NISTXML-SV-IV-atomic-language-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5725NISTXML-SV-IV-atomic-language-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5726NISTXML-SV-IV-atomic-language-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5727NISTXML-SV-IV-atomic-language-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5728NISTXML-SV-IV-atomic-language-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5729NISTSchema-SV-IV-atomic-language-length-1 tokoe:valid" result="pass"/><test-case name="5730NISTXML-SV-IV-atomic-language-length-1-1 tokoe:valid" result="pass"/><test-case name="5731NISTXML-SV-IV-atomic-language-length-1-2 tokoe:valid" result="pass"/><test-case name="5732NISTXML-SV-IV-atomic-language-length-1-3 tokoe:valid" result="pass"/><test-case name="5733NISTXML-SV-IV-atomic-language-length-1-4 tokoe:valid" result="pass"/><test-case name="5734NISTXML-SV-IV-atomic-language-length-1-5 tokoe:valid" result="pass"/><test-case name="5735NISTSchema-SV-IV-atomic-language-length-2 tokoe:valid" result="pass"/><test-case name="5736NISTXML-SV-IV-atomic-language-length-2-1 tokoe:valid" result="pass"/><test-case name="5737NISTXML-SV-IV-atomic-language-length-2-2 tokoe:valid" result="pass"/><test-case name="5738NISTXML-SV-IV-atomic-language-length-2-3 tokoe:valid" result="pass"/><test-case name="5739NISTXML-SV-IV-atomic-language-length-2-4 tokoe:valid" result="pass"/><test-case name="5740NISTXML-SV-IV-atomic-language-length-2-5 tokoe:valid" result="pass"/><test-case name="5741NISTSchema-SV-IV-atomic-language-length-3 tokoe:valid" result="pass"/><test-case name="5742NISTXML-SV-IV-atomic-language-length-3-1 tokoe:valid" result="pass"/><test-case name="5743NISTXML-SV-IV-atomic-language-length-3-2 tokoe:valid" result="pass"/><test-case name="5744NISTXML-SV-IV-atomic-language-length-3-3 tokoe:valid" result="pass"/><test-case name="5745NISTXML-SV-IV-atomic-language-length-3-4 tokoe:valid" result="pass"/><test-case name="5746NISTXML-SV-IV-atomic-language-length-3-5 tokoe:valid" result="pass"/><test-case name="5747NISTSchema-SV-IV-atomic-language-length-4 tokoe:valid" result="pass"/><test-case name="5748NISTXML-SV-IV-atomic-language-length-4-1 tokoe:valid" result="pass"/><test-case name="5749NISTXML-SV-IV-atomic-language-length-4-2 tokoe:valid" result="pass"/><test-case name="5750NISTXML-SV-IV-atomic-language-length-4-3 tokoe:valid" result="pass"/><test-case name="5751NISTXML-SV-IV-atomic-language-length-4-4 tokoe:valid" result="pass"/><test-case name="5752NISTXML-SV-IV-atomic-language-length-4-5 tokoe:valid" result="pass"/><test-case name="5753NISTSchema-SV-IV-atomic-language-length-5 tokoe:valid" result="pass"/><test-case name="5754NISTXML-SV-IV-atomic-language-length-5-1 tokoe:valid" result="pass"/><test-case name="5755NISTXML-SV-IV-atomic-language-length-5-2 tokoe:valid" result="pass"/><test-case name="5756NISTXML-SV-IV-atomic-language-length-5-3 tokoe:valid" result="pass"/><test-case name="5757NISTXML-SV-IV-atomic-language-length-5-4 tokoe:valid" result="pass"/><test-case name="5758NISTXML-SV-IV-atomic-language-length-5-5 tokoe:valid" result="pass"/><test-case name="5759NISTSchema-SV-IV-atomic-language-pattern-1 tokoe:valid" result="pass"/><test-case name="5760NISTXML-SV-IV-atomic-language-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5761NISTXML-SV-IV-atomic-language-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5762NISTXML-SV-IV-atomic-language-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5763NISTXML-SV-IV-atomic-language-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5764NISTXML-SV-IV-atomic-language-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5765NISTSchema-SV-IV-atomic-language-pattern-2 tokoe:valid" result="pass"/><test-case name="5766NISTXML-SV-IV-atomic-language-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5767NISTXML-SV-IV-atomic-language-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5768NISTXML-SV-IV-atomic-language-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5769NISTXML-SV-IV-atomic-language-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5770NISTXML-SV-IV-atomic-language-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5771NISTSchema-SV-IV-atomic-language-pattern-3 tokoe:valid" result="pass"/><test-case name="5772NISTXML-SV-IV-atomic-language-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5773NISTXML-SV-IV-atomic-language-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5774NISTXML-SV-IV-atomic-language-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5775NISTXML-SV-IV-atomic-language-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5776NISTXML-SV-IV-atomic-language-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5777NISTSchema-SV-IV-atomic-language-pattern-4 tokoe:valid" result="pass"/><test-case name="5778NISTXML-SV-IV-atomic-language-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5779NISTXML-SV-IV-atomic-language-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5780NISTXML-SV-IV-atomic-language-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5781NISTXML-SV-IV-atomic-language-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5782NISTXML-SV-IV-atomic-language-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5783NISTSchema-SV-IV-atomic-language-pattern-5 tokoe:valid" result="pass"/><test-case name="5784NISTXML-SV-IV-atomic-language-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5785NISTXML-SV-IV-atomic-language-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5786NISTXML-SV-IV-atomic-language-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5787NISTXML-SV-IV-atomic-language-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5788NISTXML-SV-IV-atomic-language-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5789NISTSchema-SV-IV-atomic-language-enumeration-1 tokoe:valid" result="pass"/><test-case name="5790NISTXML-SV-IV-atomic-language-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5791NISTXML-SV-IV-atomic-language-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5792NISTXML-SV-IV-atomic-language-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5793NISTXML-SV-IV-atomic-language-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5794NISTXML-SV-IV-atomic-language-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5795NISTSchema-SV-IV-atomic-language-enumeration-2 tokoe:valid" result="pass"/><test-case name="5796NISTXML-SV-IV-atomic-language-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5797NISTXML-SV-IV-atomic-language-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5798NISTXML-SV-IV-atomic-language-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5799NISTXML-SV-IV-atomic-language-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5800NISTXML-SV-IV-atomic-language-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5801NISTSchema-SV-IV-atomic-language-enumeration-3 tokoe:valid" result="pass"/><test-case name="5802NISTXML-SV-IV-atomic-language-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5803NISTXML-SV-IV-atomic-language-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5804NISTXML-SV-IV-atomic-language-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5805NISTXML-SV-IV-atomic-language-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5806NISTXML-SV-IV-atomic-language-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5807NISTSchema-SV-IV-atomic-language-enumeration-4 tokoe:valid" result="pass"/><test-case name="5808NISTXML-SV-IV-atomic-language-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5809NISTXML-SV-IV-atomic-language-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5810NISTXML-SV-IV-atomic-language-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5811NISTXML-SV-IV-atomic-language-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5812NISTXML-SV-IV-atomic-language-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5813NISTSchema-SV-IV-atomic-language-enumeration-5 tokoe:valid" result="pass"/><test-case name="5814NISTXML-SV-IV-atomic-language-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5815NISTXML-SV-IV-atomic-language-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5816NISTXML-SV-IV-atomic-language-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5817NISTXML-SV-IV-atomic-language-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5818NISTXML-SV-IV-atomic-language-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5819NISTSchema-SV-IV-atomic-language-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5820NISTXML-SV-IV-atomic-language-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5821NISTXML-SV-IV-atomic-language-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5822NISTXML-SV-IV-atomic-language-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5823NISTXML-SV-IV-atomic-language-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5824NISTXML-SV-IV-atomic-language-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5825NISTSchema-SV-IV-atomic-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="5826NISTXML-SV-IV-atomic-anyURI-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5827NISTXML-SV-IV-atomic-anyURI-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5828NISTXML-SV-IV-atomic-anyURI-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5829NISTXML-SV-IV-atomic-anyURI-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5830NISTXML-SV-IV-atomic-anyURI-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5831NISTSchema-SV-IV-atomic-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="5832NISTXML-SV-IV-atomic-anyURI-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5833NISTXML-SV-IV-atomic-anyURI-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5834NISTXML-SV-IV-atomic-anyURI-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5835NISTXML-SV-IV-atomic-anyURI-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5836NISTXML-SV-IV-atomic-anyURI-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5837NISTSchema-SV-IV-atomic-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="5838NISTXML-SV-IV-atomic-anyURI-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5839NISTXML-SV-IV-atomic-anyURI-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5840NISTXML-SV-IV-atomic-anyURI-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5841NISTXML-SV-IV-atomic-anyURI-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5842NISTXML-SV-IV-atomic-anyURI-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5843NISTSchema-SV-IV-atomic-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="5844NISTXML-SV-IV-atomic-anyURI-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5845NISTXML-SV-IV-atomic-anyURI-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5846NISTXML-SV-IV-atomic-anyURI-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5847NISTXML-SV-IV-atomic-anyURI-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5848NISTXML-SV-IV-atomic-anyURI-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5849NISTSchema-SV-IV-atomic-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="5850NISTXML-SV-IV-atomic-anyURI-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5851NISTXML-SV-IV-atomic-anyURI-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5852NISTXML-SV-IV-atomic-anyURI-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5853NISTXML-SV-IV-atomic-anyURI-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5854NISTXML-SV-IV-atomic-anyURI-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5855NISTSchema-SV-IV-atomic-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="5856NISTXML-SV-IV-atomic-anyURI-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5857NISTXML-SV-IV-atomic-anyURI-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5858NISTXML-SV-IV-atomic-anyURI-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5859NISTXML-SV-IV-atomic-anyURI-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5860NISTXML-SV-IV-atomic-anyURI-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5861NISTSchema-SV-IV-atomic-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="5862NISTXML-SV-IV-atomic-anyURI-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5863NISTXML-SV-IV-atomic-anyURI-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5864NISTXML-SV-IV-atomic-anyURI-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5865NISTXML-SV-IV-atomic-anyURI-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5866NISTXML-SV-IV-atomic-anyURI-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5867NISTSchema-SV-IV-atomic-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="5868NISTXML-SV-IV-atomic-anyURI-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5869NISTXML-SV-IV-atomic-anyURI-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5870NISTXML-SV-IV-atomic-anyURI-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5871NISTXML-SV-IV-atomic-anyURI-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5872NISTXML-SV-IV-atomic-anyURI-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5873NISTSchema-SV-IV-atomic-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="5874NISTXML-SV-IV-atomic-anyURI-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5875NISTXML-SV-IV-atomic-anyURI-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5876NISTXML-SV-IV-atomic-anyURI-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5877NISTXML-SV-IV-atomic-anyURI-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5878NISTXML-SV-IV-atomic-anyURI-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5879NISTSchema-SV-IV-atomic-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="5880NISTXML-SV-IV-atomic-anyURI-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5881NISTXML-SV-IV-atomic-anyURI-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5882NISTXML-SV-IV-atomic-anyURI-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5883NISTXML-SV-IV-atomic-anyURI-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5884NISTXML-SV-IV-atomic-anyURI-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5885NISTSchema-SV-IV-atomic-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="5886NISTXML-SV-IV-atomic-anyURI-length-1-1 tokoe:valid" result="pass"/><test-case name="5887NISTXML-SV-IV-atomic-anyURI-length-1-2 tokoe:valid" result="pass"/><test-case name="5888NISTXML-SV-IV-atomic-anyURI-length-1-3 tokoe:valid" result="pass"/><test-case name="5889NISTXML-SV-IV-atomic-anyURI-length-1-4 tokoe:valid" result="pass"/><test-case name="5890NISTXML-SV-IV-atomic-anyURI-length-1-5 tokoe:valid" result="pass"/><test-case name="5891NISTSchema-SV-IV-atomic-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="5892NISTXML-SV-IV-atomic-anyURI-length-2-1 tokoe:valid" result="pass"/><test-case name="5893NISTXML-SV-IV-atomic-anyURI-length-2-2 tokoe:valid" result="pass"/><test-case name="5894NISTXML-SV-IV-atomic-anyURI-length-2-3 tokoe:valid" result="pass"/><test-case name="5895NISTXML-SV-IV-atomic-anyURI-length-2-4 tokoe:valid" result="pass"/><test-case name="5896NISTXML-SV-IV-atomic-anyURI-length-2-5 tokoe:valid" result="pass"/><test-case name="5897NISTSchema-SV-IV-atomic-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="5898NISTXML-SV-IV-atomic-anyURI-length-3-1 tokoe:valid" result="pass"/><test-case name="5899NISTXML-SV-IV-atomic-anyURI-length-3-2 tokoe:valid" result="pass"/><test-case name="5900NISTXML-SV-IV-atomic-anyURI-length-3-3 tokoe:valid" result="pass"/><test-case name="5901NISTXML-SV-IV-atomic-anyURI-length-3-4 tokoe:valid" result="pass"/><test-case name="5902NISTXML-SV-IV-atomic-anyURI-length-3-5 tokoe:valid" result="pass"/><test-case name="5903NISTSchema-SV-IV-atomic-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="5904NISTXML-SV-IV-atomic-anyURI-length-4-1 tokoe:valid" result="pass"/><test-case name="5905NISTXML-SV-IV-atomic-anyURI-length-4-2 tokoe:valid" result="pass"/><test-case name="5906NISTXML-SV-IV-atomic-anyURI-length-4-3 tokoe:valid" result="pass"/><test-case name="5907NISTXML-SV-IV-atomic-anyURI-length-4-4 tokoe:valid" result="pass"/><test-case name="5908NISTXML-SV-IV-atomic-anyURI-length-4-5 tokoe:valid" result="pass"/><test-case name="5909NISTSchema-SV-IV-atomic-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="5910NISTXML-SV-IV-atomic-anyURI-length-5-1 tokoe:valid" result="pass"/><test-case name="5911NISTXML-SV-IV-atomic-anyURI-length-5-2 tokoe:valid" result="pass"/><test-case name="5912NISTXML-SV-IV-atomic-anyURI-length-5-3 tokoe:valid" result="pass"/><test-case name="5913NISTXML-SV-IV-atomic-anyURI-length-5-4 tokoe:valid" result="pass"/><test-case name="5914NISTXML-SV-IV-atomic-anyURI-length-5-5 tokoe:valid" result="pass"/><test-case name="5915NISTSchema-SV-IV-atomic-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="5916NISTXML-SV-IV-atomic-anyURI-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5917NISTXML-SV-IV-atomic-anyURI-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5918NISTXML-SV-IV-atomic-anyURI-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5919NISTXML-SV-IV-atomic-anyURI-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5920NISTXML-SV-IV-atomic-anyURI-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5921NISTSchema-SV-IV-atomic-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="5922NISTXML-SV-IV-atomic-anyURI-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5923NISTXML-SV-IV-atomic-anyURI-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5924NISTXML-SV-IV-atomic-anyURI-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5925NISTXML-SV-IV-atomic-anyURI-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5926NISTXML-SV-IV-atomic-anyURI-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5927NISTSchema-SV-IV-atomic-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="5928NISTXML-SV-IV-atomic-anyURI-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5929NISTXML-SV-IV-atomic-anyURI-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5930NISTXML-SV-IV-atomic-anyURI-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5931NISTXML-SV-IV-atomic-anyURI-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5932NISTXML-SV-IV-atomic-anyURI-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5933NISTSchema-SV-IV-atomic-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="5934NISTXML-SV-IV-atomic-anyURI-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5935NISTXML-SV-IV-atomic-anyURI-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5936NISTXML-SV-IV-atomic-anyURI-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5937NISTXML-SV-IV-atomic-anyURI-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5938NISTXML-SV-IV-atomic-anyURI-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5939NISTSchema-SV-IV-atomic-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="5940NISTXML-SV-IV-atomic-anyURI-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5941NISTXML-SV-IV-atomic-anyURI-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5942NISTXML-SV-IV-atomic-anyURI-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5943NISTXML-SV-IV-atomic-anyURI-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5944NISTXML-SV-IV-atomic-anyURI-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5945NISTSchema-SV-IV-atomic-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="5946NISTXML-SV-IV-atomic-anyURI-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5947NISTXML-SV-IV-atomic-anyURI-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5948NISTXML-SV-IV-atomic-anyURI-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5949NISTXML-SV-IV-atomic-anyURI-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5950NISTXML-SV-IV-atomic-anyURI-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5951NISTSchema-SV-IV-atomic-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="5952NISTXML-SV-IV-atomic-anyURI-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5953NISTXML-SV-IV-atomic-anyURI-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5954NISTXML-SV-IV-atomic-anyURI-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5955NISTXML-SV-IV-atomic-anyURI-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5956NISTXML-SV-IV-atomic-anyURI-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5957NISTSchema-SV-IV-atomic-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="5958NISTXML-SV-IV-atomic-anyURI-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5959NISTXML-SV-IV-atomic-anyURI-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5960NISTXML-SV-IV-atomic-anyURI-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5961NISTXML-SV-IV-atomic-anyURI-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5962NISTXML-SV-IV-atomic-anyURI-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5963NISTSchema-SV-IV-atomic-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="5964NISTXML-SV-IV-atomic-anyURI-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5965NISTXML-SV-IV-atomic-anyURI-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5966NISTXML-SV-IV-atomic-anyURI-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5967NISTXML-SV-IV-atomic-anyURI-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5968NISTXML-SV-IV-atomic-anyURI-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5969NISTSchema-SV-IV-atomic-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="5970NISTXML-SV-IV-atomic-anyURI-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5971NISTXML-SV-IV-atomic-anyURI-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5972NISTXML-SV-IV-atomic-anyURI-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5973NISTXML-SV-IV-atomic-anyURI-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5974NISTXML-SV-IV-atomic-anyURI-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5975NISTSchema-SV-IV-atomic-anyURI-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5976NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5977NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5978NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5979NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5980NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5981NISTSchema-SV-IV-atomic-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="5982NISTXML-SV-IV-atomic-QName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5983NISTXML-SV-IV-atomic-QName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5984NISTXML-SV-IV-atomic-QName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5985NISTXML-SV-IV-atomic-QName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5986NISTXML-SV-IV-atomic-QName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5987NISTSchema-SV-IV-atomic-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="5988NISTXML-SV-IV-atomic-QName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5989NISTXML-SV-IV-atomic-QName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5990NISTXML-SV-IV-atomic-QName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5991NISTXML-SV-IV-atomic-QName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5992NISTXML-SV-IV-atomic-QName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5993NISTSchema-SV-IV-atomic-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="5994NISTXML-SV-IV-atomic-QName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5995NISTXML-SV-IV-atomic-QName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5996NISTXML-SV-IV-atomic-QName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5997NISTXML-SV-IV-atomic-QName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5998NISTXML-SV-IV-atomic-QName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5999NISTSchema-SV-IV-atomic-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="6000NISTXML-SV-IV-atomic-QName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6001NISTXML-SV-IV-atomic-QName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6002NISTXML-SV-IV-atomic-QName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6003NISTXML-SV-IV-atomic-QName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6004NISTXML-SV-IV-atomic-QName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6005NISTSchema-SV-IV-atomic-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="6006NISTXML-SV-IV-atomic-QName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6007NISTXML-SV-IV-atomic-QName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6008NISTXML-SV-IV-atomic-QName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6009NISTXML-SV-IV-atomic-QName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6010NISTXML-SV-IV-atomic-QName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6011NISTSchema-SV-IV-atomic-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="6012NISTXML-SV-IV-atomic-QName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6013NISTXML-SV-IV-atomic-QName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6014NISTXML-SV-IV-atomic-QName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6015NISTXML-SV-IV-atomic-QName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6016NISTXML-SV-IV-atomic-QName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6017NISTSchema-SV-IV-atomic-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="6018NISTXML-SV-IV-atomic-QName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6019NISTXML-SV-IV-atomic-QName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6020NISTXML-SV-IV-atomic-QName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6021NISTXML-SV-IV-atomic-QName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6022NISTXML-SV-IV-atomic-QName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6023NISTSchema-SV-IV-atomic-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="6024NISTXML-SV-IV-atomic-QName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6025NISTXML-SV-IV-atomic-QName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6026NISTXML-SV-IV-atomic-QName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6027NISTXML-SV-IV-atomic-QName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6028NISTXML-SV-IV-atomic-QName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6029NISTSchema-SV-IV-atomic-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="6030NISTXML-SV-IV-atomic-QName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6031NISTXML-SV-IV-atomic-QName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6032NISTXML-SV-IV-atomic-QName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6033NISTXML-SV-IV-atomic-QName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6034NISTXML-SV-IV-atomic-QName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6035NISTSchema-SV-IV-atomic-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="6036NISTXML-SV-IV-atomic-QName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6037NISTXML-SV-IV-atomic-QName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6038NISTXML-SV-IV-atomic-QName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6039NISTXML-SV-IV-atomic-QName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6040NISTXML-SV-IV-atomic-QName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6041NISTSchema-SV-IV-atomic-QName-length-1 tokoe:valid" result="pass"/><test-case name="6042NISTXML-SV-IV-atomic-QName-length-1-1 tokoe:valid" result="pass"/><test-case name="6043NISTXML-SV-IV-atomic-QName-length-1-2 tokoe:valid" result="pass"/><test-case name="6044NISTXML-SV-IV-atomic-QName-length-1-3 tokoe:valid" result="pass"/><test-case name="6045NISTXML-SV-IV-atomic-QName-length-1-4 tokoe:valid" result="pass"/><test-case name="6046NISTXML-SV-IV-atomic-QName-length-1-5 tokoe:valid" result="pass"/><test-case name="6047NISTSchema-SV-IV-atomic-QName-length-2 tokoe:valid" result="pass"/><test-case name="6048NISTXML-SV-IV-atomic-QName-length-2-1 tokoe:valid" result="pass"/><test-case name="6049NISTXML-SV-IV-atomic-QName-length-2-2 tokoe:valid" result="pass"/><test-case name="6050NISTXML-SV-IV-atomic-QName-length-2-3 tokoe:valid" result="pass"/><test-case name="6051NISTXML-SV-IV-atomic-QName-length-2-4 tokoe:valid" result="pass"/><test-case name="6052NISTXML-SV-IV-atomic-QName-length-2-5 tokoe:valid" result="pass"/><test-case name="6053NISTSchema-SV-IV-atomic-QName-length-3 tokoe:valid" result="pass"/><test-case name="6054NISTXML-SV-IV-atomic-QName-length-3-1 tokoe:valid" result="pass"/><test-case name="6055NISTXML-SV-IV-atomic-QName-length-3-2 tokoe:valid" result="pass"/><test-case name="6056NISTXML-SV-IV-atomic-QName-length-3-3 tokoe:valid" result="pass"/><test-case name="6057NISTXML-SV-IV-atomic-QName-length-3-4 tokoe:valid" result="pass"/><test-case name="6058NISTXML-SV-IV-atomic-QName-length-3-5 tokoe:valid" result="pass"/><test-case name="6059NISTSchema-SV-IV-atomic-QName-length-4 tokoe:valid" result="pass"/><test-case name="6060NISTXML-SV-IV-atomic-QName-length-4-1 tokoe:valid" result="pass"/><test-case name="6061NISTXML-SV-IV-atomic-QName-length-4-2 tokoe:valid" result="pass"/><test-case name="6062NISTXML-SV-IV-atomic-QName-length-4-3 tokoe:valid" result="pass"/><test-case name="6063NISTXML-SV-IV-atomic-QName-length-4-4 tokoe:valid" result="pass"/><test-case name="6064NISTXML-SV-IV-atomic-QName-length-4-5 tokoe:valid" result="pass"/><test-case name="6065NISTSchema-SV-IV-atomic-QName-length-5 tokoe:valid" result="pass"/><test-case name="6066NISTXML-SV-IV-atomic-QName-length-5-1 tokoe:valid" result="pass"/><test-case name="6067NISTXML-SV-IV-atomic-QName-length-5-2 tokoe:valid" result="pass"/><test-case name="6068NISTXML-SV-IV-atomic-QName-length-5-3 tokoe:valid" result="pass"/><test-case name="6069NISTXML-SV-IV-atomic-QName-length-5-4 tokoe:valid" result="pass"/><test-case name="6070NISTXML-SV-IV-atomic-QName-length-5-5 tokoe:valid" result="pass"/><test-case name="6071NISTSchema-SV-IV-atomic-QName-pattern-1 tokoe:valid" result="pass"/><test-case name="6072NISTXML-SV-IV-atomic-QName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6073NISTXML-SV-IV-atomic-QName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6074NISTXML-SV-IV-atomic-QName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6075NISTXML-SV-IV-atomic-QName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6076NISTXML-SV-IV-atomic-QName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6077NISTSchema-SV-IV-atomic-QName-pattern-2 tokoe:valid" result="pass"/><test-case name="6078NISTXML-SV-IV-atomic-QName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6079NISTXML-SV-IV-atomic-QName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6080NISTXML-SV-IV-atomic-QName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6081NISTXML-SV-IV-atomic-QName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6082NISTXML-SV-IV-atomic-QName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6083NISTSchema-SV-IV-atomic-QName-pattern-3 tokoe:valid" result="pass"/><test-case name="6084NISTXML-SV-IV-atomic-QName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6085NISTXML-SV-IV-atomic-QName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6086NISTXML-SV-IV-atomic-QName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6087NISTXML-SV-IV-atomic-QName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6088NISTXML-SV-IV-atomic-QName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6089NISTSchema-SV-IV-atomic-QName-pattern-4 tokoe:valid" result="pass"/><test-case name="6090NISTXML-SV-IV-atomic-QName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6091NISTXML-SV-IV-atomic-QName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6092NISTXML-SV-IV-atomic-QName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6093NISTXML-SV-IV-atomic-QName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6094NISTXML-SV-IV-atomic-QName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6095NISTSchema-SV-IV-atomic-QName-pattern-5 tokoe:valid" result="pass"/><test-case name="6096NISTXML-SV-IV-atomic-QName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6097NISTXML-SV-IV-atomic-QName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6098NISTXML-SV-IV-atomic-QName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6099NISTXML-SV-IV-atomic-QName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6100NISTXML-SV-IV-atomic-QName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6101NISTSchema-SV-IV-atomic-QName-enumeration-1 tokoe:valid" result="pass"/><test-case name="6102NISTXML-SV-IV-atomic-QName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6103NISTXML-SV-IV-atomic-QName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6104NISTXML-SV-IV-atomic-QName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6105NISTXML-SV-IV-atomic-QName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6106NISTXML-SV-IV-atomic-QName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6107NISTSchema-SV-IV-atomic-QName-enumeration-2 tokoe:valid" result="pass"/><test-case name="6108NISTXML-SV-IV-atomic-QName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6109NISTXML-SV-IV-atomic-QName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6110NISTXML-SV-IV-atomic-QName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6111NISTXML-SV-IV-atomic-QName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6112NISTXML-SV-IV-atomic-QName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6113NISTSchema-SV-IV-atomic-QName-enumeration-3 tokoe:valid" result="pass"/><test-case name="6114NISTXML-SV-IV-atomic-QName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6115NISTXML-SV-IV-atomic-QName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6116NISTXML-SV-IV-atomic-QName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6117NISTXML-SV-IV-atomic-QName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6118NISTXML-SV-IV-atomic-QName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6119NISTSchema-SV-IV-atomic-QName-enumeration-4 tokoe:valid" result="pass"/><test-case name="6120NISTXML-SV-IV-atomic-QName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6121NISTXML-SV-IV-atomic-QName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6122NISTXML-SV-IV-atomic-QName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6123NISTXML-SV-IV-atomic-QName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6124NISTXML-SV-IV-atomic-QName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6125NISTSchema-SV-IV-atomic-QName-enumeration-5 tokoe:valid" result="pass"/><test-case name="6126NISTXML-SV-IV-atomic-QName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6127NISTXML-SV-IV-atomic-QName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6128NISTXML-SV-IV-atomic-QName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6129NISTXML-SV-IV-atomic-QName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6130NISTXML-SV-IV-atomic-QName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6131NISTSchema-SV-IV-atomic-QName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6132NISTXML-SV-IV-atomic-QName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6133NISTXML-SV-IV-atomic-QName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6134NISTXML-SV-IV-atomic-QName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6135NISTXML-SV-IV-atomic-QName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6136NISTXML-SV-IV-atomic-QName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6137NISTSchema-SV-IV-atomic-boolean-pattern-1 tokoe:valid" result="pass"/><test-case name="6138NISTXML-SV-IV-atomic-boolean-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6139NISTXML-SV-IV-atomic-boolean-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6140NISTXML-SV-IV-atomic-boolean-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6141NISTXML-SV-IV-atomic-boolean-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6142NISTXML-SV-IV-atomic-boolean-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6143NISTSchema-SV-IV-atomic-boolean-pattern-2 tokoe:valid" result="pass"/><test-case name="6144NISTXML-SV-IV-atomic-boolean-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6145NISTXML-SV-IV-atomic-boolean-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6146NISTXML-SV-IV-atomic-boolean-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6147NISTXML-SV-IV-atomic-boolean-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6148NISTXML-SV-IV-atomic-boolean-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6149NISTSchema-SV-IV-atomic-boolean-pattern-3 tokoe:valid" result="pass"/><test-case name="6150NISTXML-SV-IV-atomic-boolean-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6151NISTXML-SV-IV-atomic-boolean-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6152NISTXML-SV-IV-atomic-boolean-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6153NISTXML-SV-IV-atomic-boolean-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6154NISTXML-SV-IV-atomic-boolean-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6155NISTSchema-SV-IV-atomic-boolean-pattern-4 tokoe:valid" result="pass"/><test-case name="6156NISTXML-SV-IV-atomic-boolean-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6157NISTXML-SV-IV-atomic-boolean-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6158NISTXML-SV-IV-atomic-boolean-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6159NISTXML-SV-IV-atomic-boolean-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6160NISTXML-SV-IV-atomic-boolean-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6161NISTSchema-SV-IV-atomic-boolean-pattern-5 tokoe:valid" result="pass"/><test-case name="6162NISTXML-SV-IV-atomic-boolean-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6163NISTXML-SV-IV-atomic-boolean-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6164NISTXML-SV-IV-atomic-boolean-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6165NISTXML-SV-IV-atomic-boolean-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6166NISTXML-SV-IV-atomic-boolean-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6167NISTSchema-SV-IV-atomic-boolean-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6168NISTXML-SV-IV-atomic-boolean-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6169NISTXML-SV-IV-atomic-boolean-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6170NISTXML-SV-IV-atomic-boolean-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6171NISTXML-SV-IV-atomic-boolean-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6172NISTXML-SV-IV-atomic-boolean-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6173NISTSchema-SV-IV-atomic-boolean-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="6174NISTXML-SV-IV-atomic-boolean-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="6175NISTXML-SV-IV-atomic-boolean-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="6176NISTXML-SV-IV-atomic-boolean-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="6177NISTXML-SV-IV-atomic-boolean-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="6178NISTXML-SV-IV-atomic-boolean-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="6179NISTSchema-SV-IV-atomic-boolean-whiteSpace-3 tokoe:valid" result="pass"/><test-case name="6180NISTXML-SV-IV-atomic-boolean-whiteSpace-3-1 tokoe:valid" result="pass"/><test-case name="6181NISTXML-SV-IV-atomic-boolean-whiteSpace-3-2 tokoe:valid" result="pass"/><test-case name="6182NISTXML-SV-IV-atomic-boolean-whiteSpace-3-3 tokoe:valid" result="pass"/><test-case name="6183NISTXML-SV-IV-atomic-boolean-whiteSpace-3-4 tokoe:valid" result="pass"/><test-case name="6184NISTXML-SV-IV-atomic-boolean-whiteSpace-3-5 tokoe:valid" result="pass"/><test-case name="6185NISTSchema-SV-IV-atomic-boolean-whiteSpace-4 tokoe:valid" result="pass"/><test-case name="6186NISTXML-SV-IV-atomic-boolean-whiteSpace-4-1 tokoe:valid" result="pass"/><test-case name="6187NISTXML-SV-IV-atomic-boolean-whiteSpace-4-2 tokoe:valid" result="pass"/><test-case name="6188NISTXML-SV-IV-atomic-boolean-whiteSpace-4-3 tokoe:valid" result="pass"/><test-case name="6189NISTXML-SV-IV-atomic-boolean-whiteSpace-4-4 tokoe:valid" result="pass"/><test-case name="6190NISTXML-SV-IV-atomic-boolean-whiteSpace-4-5 tokoe:valid" result="pass"/><test-case name="6191NISTSchema-SV-IV-atomic-boolean-whiteSpace-5 tokoe:valid" result="pass"/><test-case name="6192NISTXML-SV-IV-atomic-boolean-whiteSpace-5-1 tokoe:valid" result="pass"/><test-case name="6193NISTXML-SV-IV-atomic-boolean-whiteSpace-5-2 tokoe:valid" result="pass"/><test-case name="6194NISTXML-SV-IV-atomic-boolean-whiteSpace-5-3 tokoe:valid" result="pass"/><test-case name="6195NISTXML-SV-IV-atomic-boolean-whiteSpace-5-4 tokoe:valid" result="pass"/><test-case name="6196NISTXML-SV-IV-atomic-boolean-whiteSpace-5-5 tokoe:valid" result="pass"/><test-case name="6197NISTSchema-SV-IV-atomic-base64Binary-maxLength-1 tokoe:valid" result="pass"/><test-case name="6198NISTXML-SV-IV-atomic-base64Binary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="6199NISTXML-SV-IV-atomic-base64Binary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="6200NISTXML-SV-IV-atomic-base64Binary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="6201NISTXML-SV-IV-atomic-base64Binary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="6202NISTXML-SV-IV-atomic-base64Binary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="6203NISTSchema-SV-IV-atomic-base64Binary-maxLength-2 tokoe:valid" result="pass"/><test-case name="6204NISTXML-SV-IV-atomic-base64Binary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="6205NISTXML-SV-IV-atomic-base64Binary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="6206NISTXML-SV-IV-atomic-base64Binary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="6207NISTXML-SV-IV-atomic-base64Binary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="6208NISTXML-SV-IV-atomic-base64Binary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="6209NISTSchema-SV-IV-atomic-base64Binary-maxLength-3 tokoe:valid" result="pass"/><test-case name="6210NISTXML-SV-IV-atomic-base64Binary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="6211NISTXML-SV-IV-atomic-base64Binary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="6212NISTXML-SV-IV-atomic-base64Binary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="6213NISTXML-SV-IV-atomic-base64Binary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="6214NISTXML-SV-IV-atomic-base64Binary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="6215NISTSchema-SV-IV-atomic-base64Binary-maxLength-4 tokoe:valid" result="pass"/><test-case name="6216NISTXML-SV-IV-atomic-base64Binary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6217NISTXML-SV-IV-atomic-base64Binary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6218NISTXML-SV-IV-atomic-base64Binary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6219NISTXML-SV-IV-atomic-base64Binary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6220NISTXML-SV-IV-atomic-base64Binary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6221NISTSchema-SV-IV-atomic-base64Binary-maxLength-5 tokoe:valid" result="pass"/><test-case name="6222NISTXML-SV-IV-atomic-base64Binary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6223NISTXML-SV-IV-atomic-base64Binary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6224NISTXML-SV-IV-atomic-base64Binary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6225NISTXML-SV-IV-atomic-base64Binary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6226NISTXML-SV-IV-atomic-base64Binary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6227NISTSchema-SV-IV-atomic-base64Binary-minLength-1 tokoe:valid" result="pass"/><test-case name="6228NISTXML-SV-IV-atomic-base64Binary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6229NISTXML-SV-IV-atomic-base64Binary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6230NISTXML-SV-IV-atomic-base64Binary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6231NISTXML-SV-IV-atomic-base64Binary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6232NISTXML-SV-IV-atomic-base64Binary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6233NISTSchema-SV-IV-atomic-base64Binary-minLength-2 tokoe:valid" result="pass"/><test-case name="6234NISTXML-SV-IV-atomic-base64Binary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6235NISTXML-SV-IV-atomic-base64Binary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6236NISTXML-SV-IV-atomic-base64Binary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6237NISTXML-SV-IV-atomic-base64Binary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6238NISTXML-SV-IV-atomic-base64Binary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6239NISTSchema-SV-IV-atomic-base64Binary-minLength-3 tokoe:valid" result="pass"/><test-case name="6240NISTXML-SV-IV-atomic-base64Binary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6241NISTXML-SV-IV-atomic-base64Binary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6242NISTXML-SV-IV-atomic-base64Binary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6243NISTXML-SV-IV-atomic-base64Binary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6244NISTXML-SV-IV-atomic-base64Binary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6245NISTSchema-SV-IV-atomic-base64Binary-minLength-4 tokoe:valid" result="pass"/><test-case name="6246NISTXML-SV-IV-atomic-base64Binary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6247NISTXML-SV-IV-atomic-base64Binary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6248NISTXML-SV-IV-atomic-base64Binary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6249NISTXML-SV-IV-atomic-base64Binary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6250NISTXML-SV-IV-atomic-base64Binary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6251NISTSchema-SV-IV-atomic-base64Binary-minLength-5 tokoe:valid" result="pass"/><test-case name="6252NISTXML-SV-IV-atomic-base64Binary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6253NISTXML-SV-IV-atomic-base64Binary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6254NISTXML-SV-IV-atomic-base64Binary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6255NISTXML-SV-IV-atomic-base64Binary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6256NISTXML-SV-IV-atomic-base64Binary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6257NISTSchema-SV-IV-atomic-base64Binary-length-1 tokoe:valid" result="pass"/><test-case name="6258NISTXML-SV-IV-atomic-base64Binary-length-1-1 tokoe:valid" result="pass"/><test-case name="6259NISTXML-SV-IV-atomic-base64Binary-length-1-2 tokoe:valid" result="pass"/><test-case name="6260NISTXML-SV-IV-atomic-base64Binary-length-1-3 tokoe:valid" result="pass"/><test-case name="6261NISTXML-SV-IV-atomic-base64Binary-length-1-4 tokoe:valid" result="pass"/><test-case name="6262NISTXML-SV-IV-atomic-base64Binary-length-1-5 tokoe:valid" result="pass"/><test-case name="6263NISTSchema-SV-IV-atomic-base64Binary-length-2 tokoe:valid" result="pass"/><test-case name="6264NISTXML-SV-IV-atomic-base64Binary-length-2-1 tokoe:valid" result="pass"/><test-case name="6265NISTXML-SV-IV-atomic-base64Binary-length-2-2 tokoe:valid" result="pass"/><test-case name="6266NISTXML-SV-IV-atomic-base64Binary-length-2-3 tokoe:valid" result="pass"/><test-case name="6267NISTXML-SV-IV-atomic-base64Binary-length-2-4 tokoe:valid" result="pass"/><test-case name="6268NISTXML-SV-IV-atomic-base64Binary-length-2-5 tokoe:valid" result="pass"/><test-case name="6269NISTSchema-SV-IV-atomic-base64Binary-length-3 tokoe:valid" result="pass"/><test-case name="6270NISTXML-SV-IV-atomic-base64Binary-length-3-1 tokoe:valid" result="pass"/><test-case name="6271NISTXML-SV-IV-atomic-base64Binary-length-3-2 tokoe:valid" result="pass"/><test-case name="6272NISTXML-SV-IV-atomic-base64Binary-length-3-3 tokoe:valid" result="pass"/><test-case name="6273NISTXML-SV-IV-atomic-base64Binary-length-3-4 tokoe:valid" result="pass"/><test-case name="6274NISTXML-SV-IV-atomic-base64Binary-length-3-5 tokoe:valid" result="pass"/><test-case name="6275NISTSchema-SV-IV-atomic-base64Binary-length-4 tokoe:valid" result="pass"/><test-case name="6276NISTXML-SV-IV-atomic-base64Binary-length-4-1 tokoe:valid" result="pass"/><test-case name="6277NISTXML-SV-IV-atomic-base64Binary-length-4-2 tokoe:valid" result="pass"/><test-case name="6278NISTXML-SV-IV-atomic-base64Binary-length-4-3 tokoe:valid" result="pass"/><test-case name="6279NISTXML-SV-IV-atomic-base64Binary-length-4-4 tokoe:valid" result="pass"/><test-case name="6280NISTXML-SV-IV-atomic-base64Binary-length-4-5 tokoe:valid" result="pass"/><test-case name="6281NISTSchema-SV-IV-atomic-base64Binary-length-5 tokoe:valid" result="pass"/><test-case name="6282NISTXML-SV-IV-atomic-base64Binary-length-5-1 tokoe:valid" result="pass"/><test-case name="6283NISTXML-SV-IV-atomic-base64Binary-length-5-2 tokoe:valid" result="pass"/><test-case name="6284NISTXML-SV-IV-atomic-base64Binary-length-5-3 tokoe:valid" result="pass"/><test-case name="6285NISTXML-SV-IV-atomic-base64Binary-length-5-4 tokoe:valid" result="pass"/><test-case name="6286NISTXML-SV-IV-atomic-base64Binary-length-5-5 tokoe:valid" result="pass"/><test-case name="6287NISTSchema-SV-IV-atomic-base64Binary-pattern-1 tokoe:valid" result="pass"/><test-case name="6288NISTXML-SV-IV-atomic-base64Binary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6289NISTXML-SV-IV-atomic-base64Binary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6290NISTXML-SV-IV-atomic-base64Binary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6291NISTXML-SV-IV-atomic-base64Binary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6292NISTXML-SV-IV-atomic-base64Binary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6293NISTSchema-SV-IV-atomic-base64Binary-pattern-2 tokoe:valid" result="pass"/><test-case name="6294NISTXML-SV-IV-atomic-base64Binary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6295NISTXML-SV-IV-atomic-base64Binary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6296NISTXML-SV-IV-atomic-base64Binary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6297NISTXML-SV-IV-atomic-base64Binary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6298NISTXML-SV-IV-atomic-base64Binary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6299NISTSchema-SV-IV-atomic-base64Binary-pattern-3 tokoe:valid" result="pass"/><test-case name="6300NISTXML-SV-IV-atomic-base64Binary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6301NISTXML-SV-IV-atomic-base64Binary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6302NISTXML-SV-IV-atomic-base64Binary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6303NISTXML-SV-IV-atomic-base64Binary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6304NISTXML-SV-IV-atomic-base64Binary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6305NISTSchema-SV-IV-atomic-base64Binary-pattern-4 tokoe:valid" result="pass"/><test-case name="6306NISTXML-SV-IV-atomic-base64Binary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6307NISTXML-SV-IV-atomic-base64Binary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6308NISTXML-SV-IV-atomic-base64Binary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6309NISTXML-SV-IV-atomic-base64Binary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6310NISTXML-SV-IV-atomic-base64Binary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6311NISTSchema-SV-IV-atomic-base64Binary-pattern-5 tokoe:valid" result="pass"/><test-case name="6312NISTXML-SV-IV-atomic-base64Binary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6313NISTXML-SV-IV-atomic-base64Binary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6314NISTXML-SV-IV-atomic-base64Binary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6315NISTXML-SV-IV-atomic-base64Binary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6316NISTXML-SV-IV-atomic-base64Binary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6317NISTSchema-SV-IV-atomic-base64Binary-enumeration-1 tokoe:valid" result="pass"/><test-case name="6318NISTXML-SV-IV-atomic-base64Binary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6319NISTXML-SV-IV-atomic-base64Binary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6320NISTXML-SV-IV-atomic-base64Binary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6321NISTXML-SV-IV-atomic-base64Binary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6322NISTXML-SV-IV-atomic-base64Binary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6323NISTSchema-SV-IV-atomic-base64Binary-enumeration-2 tokoe:valid" result="pass"/><test-case name="6324NISTXML-SV-IV-atomic-base64Binary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6325NISTXML-SV-IV-atomic-base64Binary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6326NISTXML-SV-IV-atomic-base64Binary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6327NISTXML-SV-IV-atomic-base64Binary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6328NISTXML-SV-IV-atomic-base64Binary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6329NISTSchema-SV-IV-atomic-base64Binary-enumeration-3 tokoe:valid" result="pass"/><test-case name="6330NISTXML-SV-IV-atomic-base64Binary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6331NISTXML-SV-IV-atomic-base64Binary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6332NISTXML-SV-IV-atomic-base64Binary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6333NISTXML-SV-IV-atomic-base64Binary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6334NISTXML-SV-IV-atomic-base64Binary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6335NISTSchema-SV-IV-atomic-base64Binary-enumeration-4 tokoe:valid" result="pass"/><test-case name="6336NISTXML-SV-IV-atomic-base64Binary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6337NISTXML-SV-IV-atomic-base64Binary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6338NISTXML-SV-IV-atomic-base64Binary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6339NISTXML-SV-IV-atomic-base64Binary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6340NISTXML-SV-IV-atomic-base64Binary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6341NISTSchema-SV-IV-atomic-base64Binary-enumeration-5 tokoe:valid" result="pass"/><test-case name="6342NISTXML-SV-IV-atomic-base64Binary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6343NISTXML-SV-IV-atomic-base64Binary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6344NISTXML-SV-IV-atomic-base64Binary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6345NISTXML-SV-IV-atomic-base64Binary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6346NISTXML-SV-IV-atomic-base64Binary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6347NISTSchema-SV-IV-atomic-base64Binary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6348NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6349NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6350NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6351NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6352NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6353NISTSchema-SV-IV-atomic-hexBinary-maxLength-1 tokoe:valid" result="pass"/><test-case name="6354NISTXML-SV-IV-atomic-hexBinary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="6355NISTXML-SV-IV-atomic-hexBinary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="6356NISTXML-SV-IV-atomic-hexBinary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="6357NISTXML-SV-IV-atomic-hexBinary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="6358NISTXML-SV-IV-atomic-hexBinary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="6359NISTSchema-SV-IV-atomic-hexBinary-maxLength-2 tokoe:valid" result="pass"/><test-case name="6360NISTXML-SV-IV-atomic-hexBinary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="6361NISTXML-SV-IV-atomic-hexBinary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="6362NISTXML-SV-IV-atomic-hexBinary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="6363NISTXML-SV-IV-atomic-hexBinary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="6364NISTXML-SV-IV-atomic-hexBinary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="6365NISTSchema-SV-IV-atomic-hexBinary-maxLength-3 tokoe:valid" result="pass"/><test-case name="6366NISTXML-SV-IV-atomic-hexBinary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="6367NISTXML-SV-IV-atomic-hexBinary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="6368NISTXML-SV-IV-atomic-hexBinary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="6369NISTXML-SV-IV-atomic-hexBinary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="6370NISTXML-SV-IV-atomic-hexBinary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="6371NISTSchema-SV-IV-atomic-hexBinary-maxLength-4 tokoe:valid" result="pass"/><test-case name="6372NISTXML-SV-IV-atomic-hexBinary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6373NISTXML-SV-IV-atomic-hexBinary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6374NISTXML-SV-IV-atomic-hexBinary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6375NISTXML-SV-IV-atomic-hexBinary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6376NISTXML-SV-IV-atomic-hexBinary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6377NISTSchema-SV-IV-atomic-hexBinary-maxLength-5 tokoe:valid" result="pass"/><test-case name="6378NISTXML-SV-IV-atomic-hexBinary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6379NISTXML-SV-IV-atomic-hexBinary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6380NISTXML-SV-IV-atomic-hexBinary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6381NISTXML-SV-IV-atomic-hexBinary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6382NISTXML-SV-IV-atomic-hexBinary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6383NISTSchema-SV-IV-atomic-hexBinary-minLength-1 tokoe:valid" result="pass"/><test-case name="6384NISTXML-SV-IV-atomic-hexBinary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6385NISTXML-SV-IV-atomic-hexBinary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6386NISTXML-SV-IV-atomic-hexBinary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6387NISTXML-SV-IV-atomic-hexBinary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6388NISTXML-SV-IV-atomic-hexBinary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6389NISTSchema-SV-IV-atomic-hexBinary-minLength-2 tokoe:valid" result="pass"/><test-case name="6390NISTXML-SV-IV-atomic-hexBinary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6391NISTXML-SV-IV-atomic-hexBinary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6392NISTXML-SV-IV-atomic-hexBinary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6393NISTXML-SV-IV-atomic-hexBinary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6394NISTXML-SV-IV-atomic-hexBinary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6395NISTSchema-SV-IV-atomic-hexBinary-minLength-3 tokoe:valid" result="pass"/><test-case name="6396NISTXML-SV-IV-atomic-hexBinary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6397NISTXML-SV-IV-atomic-hexBinary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6398NISTXML-SV-IV-atomic-hexBinary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6399NISTXML-SV-IV-atomic-hexBinary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6400NISTXML-SV-IV-atomic-hexBinary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6401NISTSchema-SV-IV-atomic-hexBinary-minLength-4 tokoe:valid" result="pass"/><test-case name="6402NISTXML-SV-IV-atomic-hexBinary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6403NISTXML-SV-IV-atomic-hexBinary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6404NISTXML-SV-IV-atomic-hexBinary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6405NISTXML-SV-IV-atomic-hexBinary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6406NISTXML-SV-IV-atomic-hexBinary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6407NISTSchema-SV-IV-atomic-hexBinary-minLength-5 tokoe:valid" result="pass"/><test-case name="6408NISTXML-SV-IV-atomic-hexBinary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6409NISTXML-SV-IV-atomic-hexBinary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6410NISTXML-SV-IV-atomic-hexBinary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6411NISTXML-SV-IV-atomic-hexBinary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6412NISTXML-SV-IV-atomic-hexBinary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6413NISTSchema-SV-IV-atomic-hexBinary-length-1 tokoe:valid" result="pass"/><test-case name="6414NISTXML-SV-IV-atomic-hexBinary-length-1-1 tokoe:valid" result="pass"/><test-case name="6415NISTXML-SV-IV-atomic-hexBinary-length-1-2 tokoe:valid" result="pass"/><test-case name="6416NISTXML-SV-IV-atomic-hexBinary-length-1-3 tokoe:valid" result="pass"/><test-case name="6417NISTXML-SV-IV-atomic-hexBinary-length-1-4 tokoe:valid" result="pass"/><test-case name="6418NISTXML-SV-IV-atomic-hexBinary-length-1-5 tokoe:valid" result="pass"/><test-case name="6419NISTSchema-SV-IV-atomic-hexBinary-length-2 tokoe:valid" result="pass"/><test-case name="6420NISTXML-SV-IV-atomic-hexBinary-length-2-1 tokoe:valid" result="pass"/><test-case name="6421NISTXML-SV-IV-atomic-hexBinary-length-2-2 tokoe:valid" result="pass"/><test-case name="6422NISTXML-SV-IV-atomic-hexBinary-length-2-3 tokoe:valid" result="pass"/><test-case name="6423NISTXML-SV-IV-atomic-hexBinary-length-2-4 tokoe:valid" result="pass"/><test-case name="6424NISTXML-SV-IV-atomic-hexBinary-length-2-5 tokoe:valid" result="pass"/><test-case name="6425NISTSchema-SV-IV-atomic-hexBinary-length-3 tokoe:valid" result="pass"/><test-case name="6426NISTXML-SV-IV-atomic-hexBinary-length-3-1 tokoe:valid" result="pass"/><test-case name="6427NISTXML-SV-IV-atomic-hexBinary-length-3-2 tokoe:valid" result="pass"/><test-case name="6428NISTXML-SV-IV-atomic-hexBinary-length-3-3 tokoe:valid" result="pass"/><test-case name="6429NISTXML-SV-IV-atomic-hexBinary-length-3-4 tokoe:valid" result="pass"/><test-case name="6430NISTXML-SV-IV-atomic-hexBinary-length-3-5 tokoe:valid" result="pass"/><test-case name="6431NISTSchema-SV-IV-atomic-hexBinary-length-4 tokoe:valid" result="pass"/><test-case name="6432NISTXML-SV-IV-atomic-hexBinary-length-4-1 tokoe:valid" result="pass"/><test-case name="6433NISTXML-SV-IV-atomic-hexBinary-length-4-2 tokoe:valid" result="pass"/><test-case name="6434NISTXML-SV-IV-atomic-hexBinary-length-4-3 tokoe:valid" result="pass"/><test-case name="6435NISTXML-SV-IV-atomic-hexBinary-length-4-4 tokoe:valid" result="pass"/><test-case name="6436NISTXML-SV-IV-atomic-hexBinary-length-4-5 tokoe:valid" result="pass"/><test-case name="6437NISTSchema-SV-IV-atomic-hexBinary-length-5 tokoe:valid" result="pass"/><test-case name="6438NISTXML-SV-IV-atomic-hexBinary-length-5-1 tokoe:valid" result="pass"/><test-case name="6439NISTXML-SV-IV-atomic-hexBinary-length-5-2 tokoe:valid" result="pass"/><test-case name="6440NISTXML-SV-IV-atomic-hexBinary-length-5-3 tokoe:valid" result="pass"/><test-case name="6441NISTXML-SV-IV-atomic-hexBinary-length-5-4 tokoe:valid" result="pass"/><test-case name="6442NISTXML-SV-IV-atomic-hexBinary-length-5-5 tokoe:valid" result="pass"/><test-case name="6443NISTSchema-SV-IV-atomic-hexBinary-pattern-1 tokoe:valid" result="pass"/><test-case name="6444NISTXML-SV-IV-atomic-hexBinary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6445NISTXML-SV-IV-atomic-hexBinary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6446NISTXML-SV-IV-atomic-hexBinary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6447NISTXML-SV-IV-atomic-hexBinary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6448NISTXML-SV-IV-atomic-hexBinary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6449NISTSchema-SV-IV-atomic-hexBinary-pattern-2 tokoe:valid" result="pass"/><test-case name="6450NISTXML-SV-IV-atomic-hexBinary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6451NISTXML-SV-IV-atomic-hexBinary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6452NISTXML-SV-IV-atomic-hexBinary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6453NISTXML-SV-IV-atomic-hexBinary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6454NISTXML-SV-IV-atomic-hexBinary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6455NISTSchema-SV-IV-atomic-hexBinary-pattern-3 tokoe:valid" result="pass"/><test-case name="6456NISTXML-SV-IV-atomic-hexBinary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6457NISTXML-SV-IV-atomic-hexBinary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6458NISTXML-SV-IV-atomic-hexBinary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6459NISTXML-SV-IV-atomic-hexBinary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6460NISTXML-SV-IV-atomic-hexBinary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6461NISTSchema-SV-IV-atomic-hexBinary-pattern-4 tokoe:valid" result="pass"/><test-case name="6462NISTXML-SV-IV-atomic-hexBinary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6463NISTXML-SV-IV-atomic-hexBinary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6464NISTXML-SV-IV-atomic-hexBinary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6465NISTXML-SV-IV-atomic-hexBinary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6466NISTXML-SV-IV-atomic-hexBinary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6467NISTSchema-SV-IV-atomic-hexBinary-pattern-5 tokoe:valid" result="pass"/><test-case name="6468NISTXML-SV-IV-atomic-hexBinary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6469NISTXML-SV-IV-atomic-hexBinary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6470NISTXML-SV-IV-atomic-hexBinary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6471NISTXML-SV-IV-atomic-hexBinary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6472NISTXML-SV-IV-atomic-hexBinary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6473NISTSchema-SV-IV-atomic-hexBinary-enumeration-1 tokoe:valid" result="pass"/><test-case name="6474NISTXML-SV-IV-atomic-hexBinary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6475NISTXML-SV-IV-atomic-hexBinary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6476NISTXML-SV-IV-atomic-hexBinary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6477NISTXML-SV-IV-atomic-hexBinary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6478NISTXML-SV-IV-atomic-hexBinary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6479NISTSchema-SV-IV-atomic-hexBinary-enumeration-2 tokoe:valid" result="pass"/><test-case name="6480NISTXML-SV-IV-atomic-hexBinary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6481NISTXML-SV-IV-atomic-hexBinary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6482NISTXML-SV-IV-atomic-hexBinary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6483NISTXML-SV-IV-atomic-hexBinary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6484NISTXML-SV-IV-atomic-hexBinary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6485NISTSchema-SV-IV-atomic-hexBinary-enumeration-3 tokoe:valid" result="pass"/><test-case name="6486NISTXML-SV-IV-atomic-hexBinary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6487NISTXML-SV-IV-atomic-hexBinary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6488NISTXML-SV-IV-atomic-hexBinary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6489NISTXML-SV-IV-atomic-hexBinary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6490NISTXML-SV-IV-atomic-hexBinary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6491NISTSchema-SV-IV-atomic-hexBinary-enumeration-4 tokoe:valid" result="pass"/><test-case name="6492NISTXML-SV-IV-atomic-hexBinary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6493NISTXML-SV-IV-atomic-hexBinary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6494NISTXML-SV-IV-atomic-hexBinary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6495NISTXML-SV-IV-atomic-hexBinary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6496NISTXML-SV-IV-atomic-hexBinary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6497NISTSchema-SV-IV-atomic-hexBinary-enumeration-5 tokoe:valid" result="pass"/><test-case name="6498NISTXML-SV-IV-atomic-hexBinary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6499NISTXML-SV-IV-atomic-hexBinary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6500NISTXML-SV-IV-atomic-hexBinary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6501NISTXML-SV-IV-atomic-hexBinary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6502NISTXML-SV-IV-atomic-hexBinary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6503NISTSchema-SV-IV-atomic-hexBinary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6504NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6505NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6506NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6507NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6508NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6509NISTSchema-SV-II-atomic-double-pattern-1 tokoe:valid" result="pass"/><test-case name="6510NISTXML-SV-II-atomic-double-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="6511NISTXML-SV-II-atomic-double-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="6512NISTXML-SV-II-atomic-double-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="6513NISTXML-SV-II-atomic-double-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="6514NISTXML-SV-II-atomic-double-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="6515NISTSchema-SV-II-atomic-double-pattern-2 tokoe:valid" result="pass"/><test-case name="6516NISTXML-SV-II-atomic-double-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="6517NISTXML-SV-II-atomic-double-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="6518NISTXML-SV-II-atomic-double-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="6519NISTXML-SV-II-atomic-double-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="6520NISTXML-SV-II-atomic-double-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="6521NISTSchema-SV-II-atomic-double-pattern-3 tokoe:valid" result="pass"/><test-case name="6522NISTXML-SV-II-atomic-double-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="6523NISTXML-SV-II-atomic-double-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="6524NISTXML-SV-II-atomic-double-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="6525NISTXML-SV-II-atomic-double-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="6526NISTXML-SV-II-atomic-double-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="6527NISTSchema-SV-II-atomic-double-pattern-4 tokoe:valid" result="pass"/><test-case name="6528NISTXML-SV-II-atomic-double-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="6529NISTXML-SV-II-atomic-double-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="6530NISTXML-SV-II-atomic-double-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="6531NISTXML-SV-II-atomic-double-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="6532NISTXML-SV-II-atomic-double-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="6533NISTSchema-SV-II-atomic-double-pattern-5 tokoe:valid" result="pass"/><test-case name="6534NISTXML-SV-II-atomic-double-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="6535NISTXML-SV-II-atomic-double-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="6536NISTXML-SV-II-atomic-double-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="6537NISTXML-SV-II-atomic-double-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="6538NISTXML-SV-II-atomic-double-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="6539NISTSchema-SV-II-atomic-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="6540NISTXML-SV-II-atomic-double-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="6541NISTXML-SV-II-atomic-double-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="6542NISTXML-SV-II-atomic-double-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="6543NISTXML-SV-II-atomic-double-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="6544NISTXML-SV-II-atomic-double-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="6545NISTSchema-SV-II-atomic-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="6546NISTXML-SV-II-atomic-double-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="6547NISTXML-SV-II-atomic-double-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="6548NISTXML-SV-II-atomic-double-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="6549NISTXML-SV-II-atomic-double-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="6550NISTXML-SV-II-atomic-double-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="6551NISTSchema-SV-II-atomic-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="6552NISTXML-SV-II-atomic-double-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="6553NISTXML-SV-II-atomic-double-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="6554NISTXML-SV-II-atomic-double-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="6555NISTXML-SV-II-atomic-double-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="6556NISTXML-SV-II-atomic-double-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="6557NISTSchema-SV-II-atomic-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="6558NISTXML-SV-II-atomic-double-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="6559NISTXML-SV-II-atomic-double-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="6560NISTXML-SV-II-atomic-double-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="6561NISTXML-SV-II-atomic-double-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="6562NISTXML-SV-II-atomic-double-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="6563NISTSchema-SV-II-atomic-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="6564NISTXML-SV-II-atomic-double-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="6565NISTXML-SV-II-atomic-double-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="6566NISTXML-SV-II-atomic-double-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="6567NISTXML-SV-II-atomic-double-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="6568NISTXML-SV-II-atomic-double-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="6569NISTSchema-SV-II-atomic-float-pattern-1 tokoe:valid" result="pass"/><test-case name="6570NISTXML-SV-II-atomic-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="6571NISTXML-SV-II-atomic-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="6572NISTXML-SV-II-atomic-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="6573NISTXML-SV-II-atomic-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="6574NISTXML-SV-II-atomic-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="6575NISTSchema-SV-II-atomic-float-pattern-2 tokoe:valid" result="pass"/><test-case name="6576NISTXML-SV-II-atomic-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="6577NISTXML-SV-II-atomic-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="6578NISTXML-SV-II-atomic-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="6579NISTXML-SV-II-atomic-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="6580NISTXML-SV-II-atomic-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="6581NISTSchema-SV-II-atomic-float-pattern-3 tokoe:valid" result="pass"/><test-case name="6582NISTXML-SV-II-atomic-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="6583NISTXML-SV-II-atomic-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="6584NISTXML-SV-II-atomic-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="6585NISTXML-SV-II-atomic-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="6586NISTXML-SV-II-atomic-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="6587NISTSchema-SV-II-atomic-float-pattern-4 tokoe:valid" result="pass"/><test-case name="6588NISTXML-SV-II-atomic-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="6589NISTXML-SV-II-atomic-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="6590NISTXML-SV-II-atomic-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="6591NISTXML-SV-II-atomic-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="6592NISTXML-SV-II-atomic-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="6593NISTSchema-SV-II-atomic-float-pattern-5 tokoe:valid" result="pass"/><test-case name="6594NISTXML-SV-II-atomic-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="6595NISTXML-SV-II-atomic-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="6596NISTXML-SV-II-atomic-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="6597NISTXML-SV-II-atomic-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="6598NISTXML-SV-II-atomic-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="6599NISTSchema-SV-II-atomic-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="6600NISTXML-SV-II-atomic-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="6601NISTXML-SV-II-atomic-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="6602NISTXML-SV-II-atomic-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="6603NISTXML-SV-II-atomic-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="6604NISTXML-SV-II-atomic-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="6605NISTSchema-SV-II-atomic-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="6606NISTXML-SV-II-atomic-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="6607NISTXML-SV-II-atomic-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="6608NISTXML-SV-II-atomic-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="6609NISTXML-SV-II-atomic-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="6610NISTXML-SV-II-atomic-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="6611NISTSchema-SV-II-atomic-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="6612NISTXML-SV-II-atomic-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="6613NISTXML-SV-II-atomic-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="6614NISTXML-SV-II-atomic-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="6615NISTXML-SV-II-atomic-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="6616NISTXML-SV-II-atomic-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="6617NISTSchema-SV-II-atomic-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="6618NISTXML-SV-II-atomic-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="6619NISTXML-SV-II-atomic-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="6620NISTXML-SV-II-atomic-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="6621NISTXML-SV-II-atomic-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="6622NISTXML-SV-II-atomic-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="6623NISTSchema-SV-II-atomic-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="6624NISTXML-SV-II-atomic-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="6625NISTXML-SV-II-atomic-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="6626NISTXML-SV-II-atomic-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="6627NISTXML-SV-II-atomic-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="6628NISTXML-SV-II-atomic-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="6629NISTSchema-SV-II-atomic-decimal-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6630NISTXML-SV-II-atomic-decimal-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6631NISTXML-SV-II-atomic-decimal-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6632NISTXML-SV-II-atomic-decimal-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6633NISTXML-SV-II-atomic-decimal-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6634NISTXML-SV-II-atomic-decimal-minInclusive-2-5 tokoe:invalid" result="fail"/><test-case name="6635NISTSchema-SV-II-atomic-decimal-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6636NISTXML-SV-II-atomic-decimal-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6637NISTXML-SV-II-atomic-decimal-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6638NISTXML-SV-II-atomic-decimal-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6639NISTXML-SV-II-atomic-decimal-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6640NISTXML-SV-II-atomic-decimal-minInclusive-3-5 tokoe:invalid" result="fail"/><test-case name="6641NISTSchema-SV-II-atomic-decimal-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6642NISTXML-SV-II-atomic-decimal-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6643NISTXML-SV-II-atomic-decimal-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6644NISTXML-SV-II-atomic-decimal-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6645NISTXML-SV-II-atomic-decimal-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6646NISTXML-SV-II-atomic-decimal-minInclusive-4-5 tokoe:invalid" result="fail"/><test-case name="6647NISTSchema-SV-II-atomic-decimal-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6648NISTXML-SV-II-atomic-decimal-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6649NISTXML-SV-II-atomic-decimal-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6650NISTXML-SV-II-atomic-decimal-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6651NISTXML-SV-II-atomic-decimal-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6652NISTXML-SV-II-atomic-decimal-minInclusive-5-5 tokoe:invalid" result="fail"/><test-case name="6653NISTSchema-SV-II-atomic-decimal-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6654NISTXML-SV-II-atomic-decimal-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6655NISTXML-SV-II-atomic-decimal-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6656NISTXML-SV-II-atomic-decimal-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6657NISTXML-SV-II-atomic-decimal-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6658NISTXML-SV-II-atomic-decimal-minInclusive-6-5 tokoe:invalid" result="fail"/><test-case name="6659NISTSchema-SV-II-atomic-decimal-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6660NISTXML-SV-II-atomic-decimal-maxInclusive-1-1 tokoe:invalid" result="fail"/><test-case name="6661NISTXML-SV-II-atomic-decimal-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6662NISTXML-SV-II-atomic-decimal-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6663NISTXML-SV-II-atomic-decimal-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6664NISTXML-SV-II-atomic-decimal-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6665NISTSchema-SV-II-atomic-decimal-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6666NISTXML-SV-II-atomic-decimal-maxInclusive-2-1 tokoe:invalid" result="fail"/><test-case name="6667NISTXML-SV-II-atomic-decimal-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6668NISTXML-SV-II-atomic-decimal-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6669NISTXML-SV-II-atomic-decimal-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6670NISTXML-SV-II-atomic-decimal-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6671NISTSchema-SV-II-atomic-decimal-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6672NISTXML-SV-II-atomic-decimal-maxInclusive-3-1 tokoe:invalid" result="fail"/><test-case name="6673NISTXML-SV-II-atomic-decimal-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6674NISTXML-SV-II-atomic-decimal-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6675NISTXML-SV-II-atomic-decimal-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6676NISTXML-SV-II-atomic-decimal-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6677NISTSchema-SV-II-atomic-decimal-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6678NISTXML-SV-II-atomic-decimal-maxInclusive-4-1 tokoe:invalid" result="fail"/><test-case name="6679NISTXML-SV-II-atomic-decimal-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6680NISTXML-SV-II-atomic-decimal-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6681NISTXML-SV-II-atomic-decimal-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6682NISTXML-SV-II-atomic-decimal-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6683NISTSchema-SV-II-atomic-decimal-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6684NISTXML-SV-II-atomic-decimal-maxInclusive-5-1 tokoe:invalid" result="fail"/><test-case name="6685NISTXML-SV-II-atomic-decimal-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6686NISTXML-SV-II-atomic-decimal-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6687NISTXML-SV-II-atomic-decimal-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6688NISTXML-SV-II-atomic-decimal-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6689NISTSchema-SV-II-atomic-decimal-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="6690NISTXML-SV-II-atomic-decimal-fractionDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6691NISTXML-SV-II-atomic-decimal-fractionDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6692NISTXML-SV-II-atomic-decimal-fractionDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6693NISTXML-SV-II-atomic-decimal-fractionDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6694NISTXML-SV-II-atomic-decimal-fractionDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6695NISTSchema-SV-II-atomic-decimal-fractionDigits-2 tokoe:valid" result="pass"/><test-case name="6696NISTXML-SV-II-atomic-decimal-fractionDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6697NISTXML-SV-II-atomic-decimal-fractionDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6698NISTXML-SV-II-atomic-decimal-fractionDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6699NISTXML-SV-II-atomic-decimal-fractionDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6700NISTXML-SV-II-atomic-decimal-fractionDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6701NISTSchema-SV-II-atomic-decimal-fractionDigits-3 tokoe:valid" result="pass"/><test-case name="6702NISTXML-SV-II-atomic-decimal-fractionDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6703NISTXML-SV-II-atomic-decimal-fractionDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6704NISTXML-SV-II-atomic-decimal-fractionDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6705NISTXML-SV-II-atomic-decimal-fractionDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6706NISTXML-SV-II-atomic-decimal-fractionDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6707NISTSchema-SV-II-atomic-decimal-fractionDigits-4 tokoe:valid" result="pass"/><test-case name="6708NISTXML-SV-II-atomic-decimal-fractionDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6709NISTXML-SV-II-atomic-decimal-fractionDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6710NISTXML-SV-II-atomic-decimal-fractionDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6711NISTXML-SV-II-atomic-decimal-fractionDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6712NISTXML-SV-II-atomic-decimal-fractionDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6713NISTSchema-SV-II-atomic-decimal-fractionDigits-5 tokoe:valid" result="pass"/><test-case name="6714NISTXML-SV-II-atomic-decimal-fractionDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6715NISTXML-SV-II-atomic-decimal-fractionDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6716NISTXML-SV-II-atomic-decimal-fractionDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6717NISTXML-SV-II-atomic-decimal-fractionDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6718NISTXML-SV-II-atomic-decimal-fractionDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6719NISTSchema-SV-II-atomic-decimal-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6720NISTXML-SV-II-atomic-decimal-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6721NISTXML-SV-II-atomic-decimal-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6722NISTXML-SV-II-atomic-decimal-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6723NISTXML-SV-II-atomic-decimal-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6724NISTXML-SV-II-atomic-decimal-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6725NISTSchema-SV-II-atomic-decimal-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6726NISTXML-SV-II-atomic-decimal-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6727NISTXML-SV-II-atomic-decimal-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6728NISTXML-SV-II-atomic-decimal-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6729NISTXML-SV-II-atomic-decimal-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6730NISTXML-SV-II-atomic-decimal-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6731NISTSchema-SV-II-atomic-decimal-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6732NISTXML-SV-II-atomic-decimal-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6733NISTXML-SV-II-atomic-decimal-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6734NISTXML-SV-II-atomic-decimal-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6735NISTXML-SV-II-atomic-decimal-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6736NISTXML-SV-II-atomic-decimal-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6737NISTSchema-SV-II-atomic-decimal-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6738NISTXML-SV-II-atomic-decimal-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6739NISTXML-SV-II-atomic-decimal-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6740NISTXML-SV-II-atomic-decimal-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6741NISTXML-SV-II-atomic-decimal-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6742NISTXML-SV-II-atomic-decimal-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6743NISTSchema-SV-II-atomic-decimal-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6744NISTXML-SV-II-atomic-decimal-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6745NISTXML-SV-II-atomic-decimal-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6746NISTXML-SV-II-atomic-decimal-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6747NISTXML-SV-II-atomic-decimal-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6748NISTXML-SV-II-atomic-decimal-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6749NISTSchema-SV-II-atomic-integer-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6750NISTXML-SV-II-atomic-integer-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6751NISTXML-SV-II-atomic-integer-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6752NISTXML-SV-II-atomic-integer-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6753NISTXML-SV-II-atomic-integer-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6754NISTXML-SV-II-atomic-integer-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6755NISTSchema-SV-II-atomic-integer-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6756NISTXML-SV-II-atomic-integer-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6757NISTXML-SV-II-atomic-integer-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6758NISTXML-SV-II-atomic-integer-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6759NISTXML-SV-II-atomic-integer-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6760NISTXML-SV-II-atomic-integer-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6761NISTSchema-SV-II-atomic-integer-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6762NISTXML-SV-II-atomic-integer-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6763NISTXML-SV-II-atomic-integer-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6764NISTXML-SV-II-atomic-integer-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6765NISTXML-SV-II-atomic-integer-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6766NISTXML-SV-II-atomic-integer-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6767NISTSchema-SV-II-atomic-integer-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6768NISTXML-SV-II-atomic-integer-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6769NISTXML-SV-II-atomic-integer-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6770NISTXML-SV-II-atomic-integer-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6771NISTXML-SV-II-atomic-integer-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6772NISTXML-SV-II-atomic-integer-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6773NISTSchema-SV-II-atomic-integer-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6774NISTXML-SV-II-atomic-integer-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6775NISTXML-SV-II-atomic-integer-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6776NISTXML-SV-II-atomic-integer-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6777NISTXML-SV-II-atomic-integer-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6778NISTXML-SV-II-atomic-integer-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6779NISTSchema-SV-II-atomic-integer-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6780NISTXML-SV-II-atomic-integer-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6781NISTXML-SV-II-atomic-integer-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6782NISTXML-SV-II-atomic-integer-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6783NISTXML-SV-II-atomic-integer-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6784NISTXML-SV-II-atomic-integer-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6785NISTSchema-SV-II-atomic-integer-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6786NISTXML-SV-II-atomic-integer-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6787NISTXML-SV-II-atomic-integer-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6788NISTXML-SV-II-atomic-integer-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6789NISTXML-SV-II-atomic-integer-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6790NISTXML-SV-II-atomic-integer-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6791NISTSchema-SV-II-atomic-integer-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6792NISTXML-SV-II-atomic-integer-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6793NISTXML-SV-II-atomic-integer-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6794NISTXML-SV-II-atomic-integer-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6795NISTXML-SV-II-atomic-integer-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6796NISTXML-SV-II-atomic-integer-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6797NISTSchema-SV-II-atomic-integer-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6798NISTXML-SV-II-atomic-integer-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6799NISTXML-SV-II-atomic-integer-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6800NISTXML-SV-II-atomic-integer-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6801NISTXML-SV-II-atomic-integer-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6802NISTXML-SV-II-atomic-integer-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6803NISTSchema-SV-II-atomic-integer-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6804NISTXML-SV-II-atomic-integer-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6805NISTXML-SV-II-atomic-integer-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6806NISTXML-SV-II-atomic-integer-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6807NISTXML-SV-II-atomic-integer-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6808NISTXML-SV-II-atomic-integer-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6809NISTSchema-SV-II-atomic-integer-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6810NISTXML-SV-II-atomic-integer-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6811NISTXML-SV-II-atomic-integer-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6812NISTXML-SV-II-atomic-integer-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6813NISTXML-SV-II-atomic-integer-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6814NISTXML-SV-II-atomic-integer-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6815NISTSchema-SV-II-atomic-integer-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6816NISTXML-SV-II-atomic-integer-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6817NISTXML-SV-II-atomic-integer-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6818NISTXML-SV-II-atomic-integer-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6819NISTXML-SV-II-atomic-integer-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6820NISTXML-SV-II-atomic-integer-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6821NISTSchema-SV-II-atomic-integer-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6822NISTXML-SV-II-atomic-integer-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6823NISTXML-SV-II-atomic-integer-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6824NISTXML-SV-II-atomic-integer-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6825NISTXML-SV-II-atomic-integer-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6826NISTXML-SV-II-atomic-integer-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6827NISTSchema-SV-II-atomic-integer-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6828NISTXML-SV-II-atomic-integer-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6829NISTXML-SV-II-atomic-integer-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6830NISTXML-SV-II-atomic-integer-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6831NISTXML-SV-II-atomic-integer-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6832NISTXML-SV-II-atomic-integer-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6833NISTSchema-SV-II-atomic-integer-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6834NISTXML-SV-II-atomic-integer-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6835NISTXML-SV-II-atomic-integer-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6836NISTXML-SV-II-atomic-integer-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6837NISTXML-SV-II-atomic-integer-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6838NISTXML-SV-II-atomic-integer-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6839NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6840NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6841NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6842NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6843NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6844NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6845NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6846NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6847NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6848NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6849NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6850NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6851NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6852NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6853NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6854NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6855NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6856NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6857NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6858NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6859NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6860NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6861NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6862NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6863NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6864NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6865NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6866NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6867NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6868NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6869NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6870NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6871NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6872NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6873NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6874NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6875NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6876NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6877NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6878NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6879NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6880NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6881NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6882NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6883NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6884NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6885NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6886NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6887NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6888NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6889NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6890NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6891NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6892NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6893NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6894NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6895NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6896NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6897NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6898NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6899NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6900NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6901NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6902NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6903NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6904NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6905NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6906NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6907NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6908NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6909NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6910NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6911NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6912NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6913NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6914NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6915NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6916NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6917NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6918NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6919NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6920NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6921NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6922NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6923NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6924NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6925NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6926NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6927NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6928NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6929NISTSchema-SV-II-atomic-negativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6930NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6931NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6932NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6933NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6934NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6935NISTSchema-SV-II-atomic-negativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6936NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6937NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6938NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6939NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6940NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6941NISTSchema-SV-II-atomic-negativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6942NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6943NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6944NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6945NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6946NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6947NISTSchema-SV-II-atomic-negativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6948NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6949NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6950NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6951NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6952NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6953NISTSchema-SV-II-atomic-negativeInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6954NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6955NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6956NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6957NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6958NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6959NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6960NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6961NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6962NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6963NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6964NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6965NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6966NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6967NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6968NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6969NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6970NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6971NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6972NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6973NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6974NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6975NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6976NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6977NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6978NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6979NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6980NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6981NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6982NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6983NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6984NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6985NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6986NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6987NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6988NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6989NISTSchema-SV-II-atomic-negativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6990NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6991NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6992NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6993NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6994NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6995NISTSchema-SV-II-atomic-negativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6996NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6997NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6998NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6999NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7000NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7001NISTSchema-SV-II-atomic-negativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7002NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7003NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7004NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7005NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7006NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7007NISTSchema-SV-II-atomic-negativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7008NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7009NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7010NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7011NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7012NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7013NISTSchema-SV-II-atomic-negativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7014NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7015NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7016NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7017NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7018NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7019NISTSchema-SV-II-atomic-long-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7020NISTXML-SV-II-atomic-long-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7021NISTXML-SV-II-atomic-long-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7022NISTXML-SV-II-atomic-long-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7023NISTXML-SV-II-atomic-long-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7024NISTXML-SV-II-atomic-long-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7025NISTSchema-SV-II-atomic-long-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7026NISTXML-SV-II-atomic-long-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7027NISTXML-SV-II-atomic-long-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7028NISTXML-SV-II-atomic-long-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7029NISTXML-SV-II-atomic-long-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7030NISTXML-SV-II-atomic-long-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7031NISTSchema-SV-II-atomic-long-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7032NISTXML-SV-II-atomic-long-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7033NISTXML-SV-II-atomic-long-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7034NISTXML-SV-II-atomic-long-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7035NISTXML-SV-II-atomic-long-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7036NISTXML-SV-II-atomic-long-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7037NISTSchema-SV-II-atomic-long-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7038NISTXML-SV-II-atomic-long-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7039NISTXML-SV-II-atomic-long-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7040NISTXML-SV-II-atomic-long-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7041NISTXML-SV-II-atomic-long-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7042NISTXML-SV-II-atomic-long-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7043NISTSchema-SV-II-atomic-long-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7044NISTXML-SV-II-atomic-long-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7045NISTXML-SV-II-atomic-long-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7046NISTXML-SV-II-atomic-long-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7047NISTXML-SV-II-atomic-long-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7048NISTXML-SV-II-atomic-long-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7049NISTSchema-SV-II-atomic-long-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7050NISTXML-SV-II-atomic-long-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7051NISTXML-SV-II-atomic-long-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7052NISTXML-SV-II-atomic-long-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7053NISTXML-SV-II-atomic-long-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7054NISTXML-SV-II-atomic-long-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7055NISTSchema-SV-II-atomic-long-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7056NISTXML-SV-II-atomic-long-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7057NISTXML-SV-II-atomic-long-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7058NISTXML-SV-II-atomic-long-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7059NISTXML-SV-II-atomic-long-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7060NISTXML-SV-II-atomic-long-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7061NISTSchema-SV-II-atomic-long-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7062NISTXML-SV-II-atomic-long-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7063NISTXML-SV-II-atomic-long-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7064NISTXML-SV-II-atomic-long-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7065NISTXML-SV-II-atomic-long-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7066NISTXML-SV-II-atomic-long-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7067NISTSchema-SV-II-atomic-long-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7068NISTXML-SV-II-atomic-long-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7069NISTXML-SV-II-atomic-long-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7070NISTXML-SV-II-atomic-long-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7071NISTXML-SV-II-atomic-long-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7072NISTXML-SV-II-atomic-long-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7073NISTSchema-SV-II-atomic-long-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7074NISTXML-SV-II-atomic-long-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7075NISTXML-SV-II-atomic-long-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7076NISTXML-SV-II-atomic-long-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7077NISTXML-SV-II-atomic-long-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7078NISTXML-SV-II-atomic-long-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7079NISTSchema-SV-II-atomic-long-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7080NISTXML-SV-II-atomic-long-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7081NISTXML-SV-II-atomic-long-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7082NISTXML-SV-II-atomic-long-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7083NISTXML-SV-II-atomic-long-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7084NISTXML-SV-II-atomic-long-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7085NISTSchema-SV-II-atomic-long-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7086NISTXML-SV-II-atomic-long-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7087NISTXML-SV-II-atomic-long-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7088NISTXML-SV-II-atomic-long-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7089NISTXML-SV-II-atomic-long-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7090NISTXML-SV-II-atomic-long-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7091NISTSchema-SV-II-atomic-long-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7092NISTXML-SV-II-atomic-long-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7093NISTXML-SV-II-atomic-long-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7094NISTXML-SV-II-atomic-long-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7095NISTXML-SV-II-atomic-long-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7096NISTXML-SV-II-atomic-long-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7097NISTSchema-SV-II-atomic-long-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7098NISTXML-SV-II-atomic-long-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7099NISTXML-SV-II-atomic-long-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7100NISTXML-SV-II-atomic-long-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7101NISTXML-SV-II-atomic-long-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7102NISTXML-SV-II-atomic-long-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7103NISTSchema-SV-II-atomic-long-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7104NISTXML-SV-II-atomic-long-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7105NISTXML-SV-II-atomic-long-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7106NISTXML-SV-II-atomic-long-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7107NISTXML-SV-II-atomic-long-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7108NISTXML-SV-II-atomic-long-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7109NISTSchema-SV-II-atomic-int-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7110NISTXML-SV-II-atomic-int-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7111NISTXML-SV-II-atomic-int-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7112NISTXML-SV-II-atomic-int-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7113NISTXML-SV-II-atomic-int-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7114NISTXML-SV-II-atomic-int-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7115NISTSchema-SV-II-atomic-int-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7116NISTXML-SV-II-atomic-int-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7117NISTXML-SV-II-atomic-int-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7118NISTXML-SV-II-atomic-int-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7119NISTXML-SV-II-atomic-int-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7120NISTXML-SV-II-atomic-int-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7121NISTSchema-SV-II-atomic-int-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7122NISTXML-SV-II-atomic-int-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7123NISTXML-SV-II-atomic-int-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7124NISTXML-SV-II-atomic-int-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7125NISTXML-SV-II-atomic-int-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7126NISTXML-SV-II-atomic-int-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7127NISTSchema-SV-II-atomic-int-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7128NISTXML-SV-II-atomic-int-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7129NISTXML-SV-II-atomic-int-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7130NISTXML-SV-II-atomic-int-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7131NISTXML-SV-II-atomic-int-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7132NISTXML-SV-II-atomic-int-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7133NISTSchema-SV-II-atomic-int-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7134NISTXML-SV-II-atomic-int-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7135NISTXML-SV-II-atomic-int-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7136NISTXML-SV-II-atomic-int-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7137NISTXML-SV-II-atomic-int-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7138NISTXML-SV-II-atomic-int-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7139NISTSchema-SV-II-atomic-int-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7140NISTXML-SV-II-atomic-int-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7141NISTXML-SV-II-atomic-int-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7142NISTXML-SV-II-atomic-int-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7143NISTXML-SV-II-atomic-int-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7144NISTXML-SV-II-atomic-int-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7145NISTSchema-SV-II-atomic-int-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7146NISTXML-SV-II-atomic-int-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7147NISTXML-SV-II-atomic-int-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7148NISTXML-SV-II-atomic-int-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7149NISTXML-SV-II-atomic-int-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7150NISTXML-SV-II-atomic-int-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7151NISTSchema-SV-II-atomic-int-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7152NISTXML-SV-II-atomic-int-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7153NISTXML-SV-II-atomic-int-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7154NISTXML-SV-II-atomic-int-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7155NISTXML-SV-II-atomic-int-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7156NISTXML-SV-II-atomic-int-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7157NISTSchema-SV-II-atomic-int-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7158NISTXML-SV-II-atomic-int-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7159NISTXML-SV-II-atomic-int-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7160NISTXML-SV-II-atomic-int-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7161NISTXML-SV-II-atomic-int-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7162NISTXML-SV-II-atomic-int-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7163NISTSchema-SV-II-atomic-int-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7164NISTXML-SV-II-atomic-int-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7165NISTXML-SV-II-atomic-int-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7166NISTXML-SV-II-atomic-int-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7167NISTXML-SV-II-atomic-int-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7168NISTXML-SV-II-atomic-int-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7169NISTSchema-SV-II-atomic-int-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7170NISTXML-SV-II-atomic-int-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7171NISTXML-SV-II-atomic-int-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7172NISTXML-SV-II-atomic-int-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7173NISTXML-SV-II-atomic-int-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7174NISTXML-SV-II-atomic-int-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7175NISTSchema-SV-II-atomic-int-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7176NISTXML-SV-II-atomic-int-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7177NISTXML-SV-II-atomic-int-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7178NISTXML-SV-II-atomic-int-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7179NISTXML-SV-II-atomic-int-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7180NISTXML-SV-II-atomic-int-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7181NISTSchema-SV-II-atomic-int-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7182NISTXML-SV-II-atomic-int-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7183NISTXML-SV-II-atomic-int-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7184NISTXML-SV-II-atomic-int-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7185NISTXML-SV-II-atomic-int-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7186NISTXML-SV-II-atomic-int-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7187NISTSchema-SV-II-atomic-int-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7188NISTXML-SV-II-atomic-int-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7189NISTXML-SV-II-atomic-int-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7190NISTXML-SV-II-atomic-int-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7191NISTXML-SV-II-atomic-int-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7192NISTXML-SV-II-atomic-int-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7193NISTSchema-SV-II-atomic-int-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7194NISTXML-SV-II-atomic-int-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7195NISTXML-SV-II-atomic-int-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7196NISTXML-SV-II-atomic-int-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7197NISTXML-SV-II-atomic-int-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7198NISTXML-SV-II-atomic-int-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7199NISTSchema-SV-II-atomic-short-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7200NISTXML-SV-II-atomic-short-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7201NISTXML-SV-II-atomic-short-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7202NISTXML-SV-II-atomic-short-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7203NISTXML-SV-II-atomic-short-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7204NISTXML-SV-II-atomic-short-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7205NISTSchema-SV-II-atomic-short-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7206NISTXML-SV-II-atomic-short-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7207NISTXML-SV-II-atomic-short-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7208NISTXML-SV-II-atomic-short-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7209NISTXML-SV-II-atomic-short-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7210NISTXML-SV-II-atomic-short-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7211NISTSchema-SV-II-atomic-short-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7212NISTXML-SV-II-atomic-short-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7213NISTXML-SV-II-atomic-short-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7214NISTXML-SV-II-atomic-short-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7215NISTXML-SV-II-atomic-short-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7216NISTXML-SV-II-atomic-short-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7217NISTSchema-SV-II-atomic-short-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7218NISTXML-SV-II-atomic-short-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7219NISTXML-SV-II-atomic-short-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7220NISTXML-SV-II-atomic-short-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7221NISTXML-SV-II-atomic-short-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7222NISTXML-SV-II-atomic-short-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7223NISTSchema-SV-II-atomic-short-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7224NISTXML-SV-II-atomic-short-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7225NISTXML-SV-II-atomic-short-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7226NISTXML-SV-II-atomic-short-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7227NISTXML-SV-II-atomic-short-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7228NISTXML-SV-II-atomic-short-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7229NISTSchema-SV-II-atomic-short-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7230NISTXML-SV-II-atomic-short-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7231NISTXML-SV-II-atomic-short-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7232NISTXML-SV-II-atomic-short-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7233NISTXML-SV-II-atomic-short-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7234NISTXML-SV-II-atomic-short-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7235NISTSchema-SV-II-atomic-short-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7236NISTXML-SV-II-atomic-short-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7237NISTXML-SV-II-atomic-short-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7238NISTXML-SV-II-atomic-short-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7239NISTXML-SV-II-atomic-short-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7240NISTXML-SV-II-atomic-short-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7241NISTSchema-SV-II-atomic-short-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7242NISTXML-SV-II-atomic-short-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7243NISTXML-SV-II-atomic-short-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7244NISTXML-SV-II-atomic-short-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7245NISTXML-SV-II-atomic-short-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7246NISTXML-SV-II-atomic-short-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7247NISTSchema-SV-II-atomic-short-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7248NISTXML-SV-II-atomic-short-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7249NISTXML-SV-II-atomic-short-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7250NISTXML-SV-II-atomic-short-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7251NISTXML-SV-II-atomic-short-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7252NISTXML-SV-II-atomic-short-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7253NISTSchema-SV-II-atomic-short-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7254NISTXML-SV-II-atomic-short-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7255NISTXML-SV-II-atomic-short-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7256NISTXML-SV-II-atomic-short-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7257NISTXML-SV-II-atomic-short-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7258NISTXML-SV-II-atomic-short-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7259NISTSchema-SV-II-atomic-short-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7260NISTXML-SV-II-atomic-short-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7261NISTXML-SV-II-atomic-short-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7262NISTXML-SV-II-atomic-short-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7263NISTXML-SV-II-atomic-short-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7264NISTXML-SV-II-atomic-short-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7265NISTSchema-SV-II-atomic-short-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7266NISTXML-SV-II-atomic-short-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7267NISTXML-SV-II-atomic-short-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7268NISTXML-SV-II-atomic-short-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7269NISTXML-SV-II-atomic-short-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7270NISTXML-SV-II-atomic-short-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7271NISTSchema-SV-II-atomic-short-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7272NISTXML-SV-II-atomic-short-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7273NISTXML-SV-II-atomic-short-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7274NISTXML-SV-II-atomic-short-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7275NISTXML-SV-II-atomic-short-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7276NISTXML-SV-II-atomic-short-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7277NISTSchema-SV-II-atomic-short-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7278NISTXML-SV-II-atomic-short-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7279NISTXML-SV-II-atomic-short-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7280NISTXML-SV-II-atomic-short-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7281NISTXML-SV-II-atomic-short-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7282NISTXML-SV-II-atomic-short-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7283NISTSchema-SV-II-atomic-byte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7284NISTXML-SV-II-atomic-byte-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7285NISTXML-SV-II-atomic-byte-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7286NISTXML-SV-II-atomic-byte-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7287NISTXML-SV-II-atomic-byte-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7288NISTXML-SV-II-atomic-byte-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7289NISTSchema-SV-II-atomic-byte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7290NISTXML-SV-II-atomic-byte-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7291NISTXML-SV-II-atomic-byte-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7292NISTXML-SV-II-atomic-byte-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7293NISTXML-SV-II-atomic-byte-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7294NISTXML-SV-II-atomic-byte-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7295NISTSchema-SV-II-atomic-byte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7296NISTXML-SV-II-atomic-byte-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7297NISTXML-SV-II-atomic-byte-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7298NISTXML-SV-II-atomic-byte-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7299NISTXML-SV-II-atomic-byte-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7300NISTXML-SV-II-atomic-byte-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7301NISTSchema-SV-II-atomic-byte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7302NISTXML-SV-II-atomic-byte-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7303NISTXML-SV-II-atomic-byte-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7304NISTXML-SV-II-atomic-byte-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7305NISTXML-SV-II-atomic-byte-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7306NISTXML-SV-II-atomic-byte-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7307NISTSchema-SV-II-atomic-byte-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7308NISTXML-SV-II-atomic-byte-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7309NISTXML-SV-II-atomic-byte-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7310NISTXML-SV-II-atomic-byte-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7311NISTXML-SV-II-atomic-byte-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7312NISTXML-SV-II-atomic-byte-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7313NISTSchema-SV-II-atomic-byte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7314NISTXML-SV-II-atomic-byte-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7315NISTXML-SV-II-atomic-byte-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7316NISTXML-SV-II-atomic-byte-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7317NISTXML-SV-II-atomic-byte-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7318NISTXML-SV-II-atomic-byte-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7319NISTSchema-SV-II-atomic-byte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7320NISTXML-SV-II-atomic-byte-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7321NISTXML-SV-II-atomic-byte-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7322NISTXML-SV-II-atomic-byte-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7323NISTXML-SV-II-atomic-byte-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7324NISTXML-SV-II-atomic-byte-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7325NISTSchema-SV-II-atomic-byte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7326NISTXML-SV-II-atomic-byte-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7327NISTXML-SV-II-atomic-byte-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7328NISTXML-SV-II-atomic-byte-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7329NISTXML-SV-II-atomic-byte-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7330NISTXML-SV-II-atomic-byte-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7331NISTSchema-SV-II-atomic-byte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7332NISTXML-SV-II-atomic-byte-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7333NISTXML-SV-II-atomic-byte-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7334NISTXML-SV-II-atomic-byte-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7335NISTXML-SV-II-atomic-byte-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7336NISTXML-SV-II-atomic-byte-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7337NISTSchema-SV-II-atomic-byte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7338NISTXML-SV-II-atomic-byte-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7339NISTXML-SV-II-atomic-byte-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7340NISTXML-SV-II-atomic-byte-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7341NISTXML-SV-II-atomic-byte-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7342NISTXML-SV-II-atomic-byte-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7343NISTSchema-SV-II-atomic-byte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7344NISTXML-SV-II-atomic-byte-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7345NISTXML-SV-II-atomic-byte-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7346NISTXML-SV-II-atomic-byte-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7347NISTXML-SV-II-atomic-byte-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7348NISTXML-SV-II-atomic-byte-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7349NISTSchema-SV-II-atomic-byte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7350NISTXML-SV-II-atomic-byte-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7351NISTXML-SV-II-atomic-byte-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7352NISTXML-SV-II-atomic-byte-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7353NISTXML-SV-II-atomic-byte-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7354NISTXML-SV-II-atomic-byte-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7355NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7356NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7357NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7358NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7359NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7360NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7361NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7362NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7363NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7364NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7365NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7366NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7367NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7368NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7369NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7370NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7371NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7372NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7373NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7374NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7375NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7376NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7377NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7378NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7379NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7380NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7381NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7382NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7383NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7384NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7385NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7386NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7387NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7388NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7389NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7390NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7391NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7392NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7393NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7394NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7395NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7396NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7397NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7398NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7399NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7400NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7401NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7402NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7403NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7404NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7405NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7406NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7407NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7408NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7409NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7410NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7411NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7412NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7413NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7414NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7415NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7416NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7417NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7418NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7419NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7420NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7421NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7422NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7423NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7424NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7425NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7426NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7427NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7428NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7429NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7430NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7431NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7432NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7433NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7434NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7435NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7436NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7437NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7438NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7439NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7440NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7441NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7442NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7443NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7444NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7445NISTSchema-SV-II-atomic-unsignedLong-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7446NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7447NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7448NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7449NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7450NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7451NISTSchema-SV-II-atomic-unsignedLong-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7452NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7453NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7454NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7455NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7456NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7457NISTSchema-SV-II-atomic-unsignedLong-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7458NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7459NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7460NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7461NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7462NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7463NISTSchema-SV-II-atomic-unsignedLong-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7464NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7465NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7466NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7467NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7468NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7469NISTSchema-SV-II-atomic-unsignedLong-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7470NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7471NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7472NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7473NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7474NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7475NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7476NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7477NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7478NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7479NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7480NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7481NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7482NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7483NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7484NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7485NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7486NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7487NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7488NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7489NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7490NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7491NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7492NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7493NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7494NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7495NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7496NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7497NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7498NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7499NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7500NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7501NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7502NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7503NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7504NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7505NISTSchema-SV-II-atomic-unsignedLong-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7506NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7507NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7508NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7509NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7510NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7511NISTSchema-SV-II-atomic-unsignedLong-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7512NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7513NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7514NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7515NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7516NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7517NISTSchema-SV-II-atomic-unsignedLong-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7518NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7519NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7520NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7521NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7522NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7523NISTSchema-SV-II-atomic-unsignedLong-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7524NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7525NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7526NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7527NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7528NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7529NISTSchema-SV-II-atomic-unsignedLong-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7530NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7531NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7532NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7533NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7534NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7535NISTSchema-SV-II-atomic-unsignedInt-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7536NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7537NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7538NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7539NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7540NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7541NISTSchema-SV-II-atomic-unsignedInt-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7542NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7543NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7544NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7545NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7546NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7547NISTSchema-SV-II-atomic-unsignedInt-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7548NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7549NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7550NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7551NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7552NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7553NISTSchema-SV-II-atomic-unsignedInt-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7554NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7555NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7556NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7557NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7558NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7559NISTSchema-SV-II-atomic-unsignedInt-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7560NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7561NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7562NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7563NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7564NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7565NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7566NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7567NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7568NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7569NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7570NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7571NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7572NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7573NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7574NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7575NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7576NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7577NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7578NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7579NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7580NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7581NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7582NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7583NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7584NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7585NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7586NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7587NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7588NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7589NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7590NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7591NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7592NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7593NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7594NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7595NISTSchema-SV-II-atomic-unsignedInt-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7596NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7597NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7598NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7599NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7600NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7601NISTSchema-SV-II-atomic-unsignedInt-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7602NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7603NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7604NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7605NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7606NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7607NISTSchema-SV-II-atomic-unsignedInt-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7608NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7609NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7610NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7611NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7612NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7613NISTSchema-SV-II-atomic-unsignedInt-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7614NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7615NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7616NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7617NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7618NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7619NISTSchema-SV-II-atomic-unsignedInt-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7620NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7621NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7622NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7623NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7624NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7625NISTSchema-SV-II-atomic-unsignedShort-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7626NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7627NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7628NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7629NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7630NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7631NISTSchema-SV-II-atomic-unsignedShort-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7632NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7633NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7634NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7635NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7636NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7637NISTSchema-SV-II-atomic-unsignedShort-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7638NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7639NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7640NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7641NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7642NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7643NISTSchema-SV-II-atomic-unsignedShort-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7644NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7645NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7646NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7647NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7648NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7649NISTSchema-SV-II-atomic-unsignedShort-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7650NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7651NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7652NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7653NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7654NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7655NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7656NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7657NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7658NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7659NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7660NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7661NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7662NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7663NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7664NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7665NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7666NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7667NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7668NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7669NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7670NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7671NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7672NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7673NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7674NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7675NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7676NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7677NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7678NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7679NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7680NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7681NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7682NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7683NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7684NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7685NISTSchema-SV-II-atomic-unsignedShort-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7686NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7687NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7688NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7689NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7690NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7691NISTSchema-SV-II-atomic-unsignedShort-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7692NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7693NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7694NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7695NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7696NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7697NISTSchema-SV-II-atomic-unsignedShort-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7698NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7699NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7700NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7701NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7702NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7703NISTSchema-SV-II-atomic-unsignedShort-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7704NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7705NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7706NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7707NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7708NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7709NISTSchema-SV-II-atomic-unsignedByte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7710NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7711NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7712NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7713NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7714NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7715NISTSchema-SV-II-atomic-unsignedByte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7716NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7717NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7718NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7719NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7720NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7721NISTSchema-SV-II-atomic-unsignedByte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7722NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7723NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7724NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7725NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7726NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7727NISTSchema-SV-II-atomic-unsignedByte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7728NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7729NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7730NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7731NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7732NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7733NISTSchema-SV-II-atomic-unsignedByte-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7734NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7735NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7736NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7737NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7738NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7739NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7740NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7741NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7742NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7743NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7744NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7745NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7746NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7747NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7748NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7749NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7750NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7751NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7752NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7753NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7754NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7755NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7756NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7757NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7758NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7759NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7760NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7761NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7762NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7763NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7764NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7765NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7766NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7767NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7768NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7769NISTSchema-SV-II-atomic-unsignedByte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7770NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7771NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7772NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7773NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7774NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7775NISTSchema-SV-II-atomic-unsignedByte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7776NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7777NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7778NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7779NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7780NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7781NISTSchema-SV-II-atomic-positiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7782NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7783NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7784NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7785NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7786NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7787NISTSchema-SV-II-atomic-positiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7788NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7789NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7790NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7791NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7792NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7793NISTSchema-SV-II-atomic-positiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7794NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7795NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7796NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7797NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7798NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7799NISTSchema-SV-II-atomic-positiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7800NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7801NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7802NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7803NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7804NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7805NISTSchema-SV-II-atomic-positiveInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7806NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7807NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7808NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7809NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7810NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7811NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7812NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7813NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7814NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7815NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7816NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7817NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7818NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7819NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7820NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7821NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7822NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7823NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7824NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7825NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7826NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7827NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7828NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7829NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7830NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7831NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7832NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7833NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7834NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7835NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7836NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7837NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7838NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7839NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7840NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7841NISTSchema-SV-II-atomic-positiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7842NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7843NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7844NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7845NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7846NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7847NISTSchema-SV-II-atomic-positiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7848NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7849NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7850NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7851NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7852NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7853NISTSchema-SV-II-atomic-positiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7854NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7855NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7856NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7857NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7858NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7859NISTSchema-SV-II-atomic-positiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7860NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7861NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7862NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7863NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7864NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7865NISTSchema-SV-II-atomic-positiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7866NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7867NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7868NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7869NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7870NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7871NISTSchema-SV-II-atomic-duration-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7872NISTXML-SV-II-atomic-duration-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7873NISTXML-SV-II-atomic-duration-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7874NISTXML-SV-II-atomic-duration-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7875NISTXML-SV-II-atomic-duration-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7876NISTXML-SV-II-atomic-duration-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7877NISTSchema-SV-II-atomic-duration-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7878NISTXML-SV-II-atomic-duration-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7879NISTXML-SV-II-atomic-duration-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7880NISTXML-SV-II-atomic-duration-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7881NISTXML-SV-II-atomic-duration-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7882NISTXML-SV-II-atomic-duration-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7883NISTSchema-SV-II-atomic-duration-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7884NISTXML-SV-II-atomic-duration-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7885NISTXML-SV-II-atomic-duration-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7886NISTXML-SV-II-atomic-duration-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7887NISTXML-SV-II-atomic-duration-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7888NISTXML-SV-II-atomic-duration-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7889NISTSchema-SV-II-atomic-duration-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7890NISTXML-SV-II-atomic-duration-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7891NISTXML-SV-II-atomic-duration-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7892NISTXML-SV-II-atomic-duration-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7893NISTXML-SV-II-atomic-duration-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7894NISTXML-SV-II-atomic-duration-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7895NISTSchema-SV-II-atomic-duration-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7896NISTXML-SV-II-atomic-duration-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7897NISTXML-SV-II-atomic-duration-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7898NISTXML-SV-II-atomic-duration-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7899NISTXML-SV-II-atomic-duration-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7900NISTXML-SV-II-atomic-duration-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7901NISTSchema-SV-II-atomic-duration-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7902NISTXML-SV-II-atomic-duration-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7903NISTXML-SV-II-atomic-duration-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7904NISTXML-SV-II-atomic-duration-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7905NISTXML-SV-II-atomic-duration-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7906NISTXML-SV-II-atomic-duration-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7907NISTSchema-SV-II-atomic-duration-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7908NISTXML-SV-II-atomic-duration-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7909NISTXML-SV-II-atomic-duration-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7910NISTXML-SV-II-atomic-duration-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7911NISTXML-SV-II-atomic-duration-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7912NISTXML-SV-II-atomic-duration-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7913NISTSchema-SV-II-atomic-duration-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7914NISTXML-SV-II-atomic-duration-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7915NISTXML-SV-II-atomic-duration-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7916NISTXML-SV-II-atomic-duration-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7917NISTXML-SV-II-atomic-duration-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7918NISTXML-SV-II-atomic-duration-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7919NISTSchema-SV-II-atomic-duration-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7920NISTXML-SV-II-atomic-duration-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7921NISTXML-SV-II-atomic-duration-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7922NISTXML-SV-II-atomic-duration-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7923NISTXML-SV-II-atomic-duration-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7924NISTXML-SV-II-atomic-duration-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7925NISTSchema-SV-II-atomic-duration-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7926NISTXML-SV-II-atomic-duration-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7927NISTXML-SV-II-atomic-duration-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7928NISTXML-SV-II-atomic-duration-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7929NISTXML-SV-II-atomic-duration-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7930NISTXML-SV-II-atomic-duration-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7931NISTSchema-SV-II-atomic-dateTime-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7932NISTXML-SV-II-atomic-dateTime-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7933NISTXML-SV-II-atomic-dateTime-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7934NISTXML-SV-II-atomic-dateTime-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7935NISTXML-SV-II-atomic-dateTime-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7936NISTXML-SV-II-atomic-dateTime-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7937NISTSchema-SV-II-atomic-dateTime-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7938NISTXML-SV-II-atomic-dateTime-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7939NISTXML-SV-II-atomic-dateTime-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7940NISTXML-SV-II-atomic-dateTime-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7941NISTXML-SV-II-atomic-dateTime-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7942NISTXML-SV-II-atomic-dateTime-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7943NISTSchema-SV-II-atomic-dateTime-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7944NISTXML-SV-II-atomic-dateTime-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7945NISTXML-SV-II-atomic-dateTime-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7946NISTXML-SV-II-atomic-dateTime-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7947NISTXML-SV-II-atomic-dateTime-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7948NISTXML-SV-II-atomic-dateTime-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7949NISTSchema-SV-II-atomic-dateTime-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7950NISTXML-SV-II-atomic-dateTime-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7951NISTXML-SV-II-atomic-dateTime-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7952NISTXML-SV-II-atomic-dateTime-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7953NISTXML-SV-II-atomic-dateTime-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7954NISTXML-SV-II-atomic-dateTime-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7955NISTSchema-SV-II-atomic-dateTime-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7956NISTXML-SV-II-atomic-dateTime-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7957NISTXML-SV-II-atomic-dateTime-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7958NISTXML-SV-II-atomic-dateTime-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7959NISTXML-SV-II-atomic-dateTime-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7960NISTXML-SV-II-atomic-dateTime-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7961NISTSchema-SV-II-atomic-dateTime-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7962NISTXML-SV-II-atomic-dateTime-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7963NISTXML-SV-II-atomic-dateTime-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7964NISTXML-SV-II-atomic-dateTime-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7965NISTXML-SV-II-atomic-dateTime-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7966NISTXML-SV-II-atomic-dateTime-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7967NISTSchema-SV-II-atomic-dateTime-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7968NISTXML-SV-II-atomic-dateTime-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7969NISTXML-SV-II-atomic-dateTime-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7970NISTXML-SV-II-atomic-dateTime-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7971NISTXML-SV-II-atomic-dateTime-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7972NISTXML-SV-II-atomic-dateTime-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7973NISTSchema-SV-II-atomic-dateTime-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7974NISTXML-SV-II-atomic-dateTime-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7975NISTXML-SV-II-atomic-dateTime-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7976NISTXML-SV-II-atomic-dateTime-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7977NISTXML-SV-II-atomic-dateTime-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7978NISTXML-SV-II-atomic-dateTime-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7979NISTSchema-SV-II-atomic-dateTime-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7980NISTXML-SV-II-atomic-dateTime-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7981NISTXML-SV-II-atomic-dateTime-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7982NISTXML-SV-II-atomic-dateTime-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7983NISTXML-SV-II-atomic-dateTime-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7984NISTXML-SV-II-atomic-dateTime-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7985NISTSchema-SV-II-atomic-dateTime-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7986NISTXML-SV-II-atomic-dateTime-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7987NISTXML-SV-II-atomic-dateTime-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7988NISTXML-SV-II-atomic-dateTime-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7989NISTXML-SV-II-atomic-dateTime-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7990NISTXML-SV-II-atomic-dateTime-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7991NISTSchema-SV-II-atomic-time-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7992NISTXML-SV-II-atomic-time-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7993NISTXML-SV-II-atomic-time-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7994NISTXML-SV-II-atomic-time-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7995NISTXML-SV-II-atomic-time-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7996NISTXML-SV-II-atomic-time-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7997NISTSchema-SV-II-atomic-time-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7998NISTXML-SV-II-atomic-time-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7999NISTXML-SV-II-atomic-time-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8000NISTXML-SV-II-atomic-time-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8001NISTXML-SV-II-atomic-time-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8002NISTXML-SV-II-atomic-time-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8003NISTSchema-SV-II-atomic-time-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8004NISTXML-SV-II-atomic-time-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8005NISTXML-SV-II-atomic-time-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8006NISTXML-SV-II-atomic-time-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8007NISTXML-SV-II-atomic-time-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8008NISTXML-SV-II-atomic-time-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8009NISTSchema-SV-II-atomic-time-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8010NISTXML-SV-II-atomic-time-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8011NISTXML-SV-II-atomic-time-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8012NISTXML-SV-II-atomic-time-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8013NISTXML-SV-II-atomic-time-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8014NISTXML-SV-II-atomic-time-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8015NISTSchema-SV-II-atomic-time-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8016NISTXML-SV-II-atomic-time-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8017NISTXML-SV-II-atomic-time-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8018NISTXML-SV-II-atomic-time-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8019NISTXML-SV-II-atomic-time-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8020NISTXML-SV-II-atomic-time-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8021NISTSchema-SV-II-atomic-time-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8022NISTXML-SV-II-atomic-time-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8023NISTXML-SV-II-atomic-time-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8024NISTXML-SV-II-atomic-time-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8025NISTXML-SV-II-atomic-time-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8026NISTXML-SV-II-atomic-time-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8027NISTSchema-SV-II-atomic-time-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8028NISTXML-SV-II-atomic-time-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8029NISTXML-SV-II-atomic-time-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8030NISTXML-SV-II-atomic-time-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8031NISTXML-SV-II-atomic-time-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8032NISTXML-SV-II-atomic-time-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8033NISTSchema-SV-II-atomic-time-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8034NISTXML-SV-II-atomic-time-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8035NISTXML-SV-II-atomic-time-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8036NISTXML-SV-II-atomic-time-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8037NISTXML-SV-II-atomic-time-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8038NISTXML-SV-II-atomic-time-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8039NISTSchema-SV-II-atomic-time-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8040NISTXML-SV-II-atomic-time-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8041NISTXML-SV-II-atomic-time-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8042NISTXML-SV-II-atomic-time-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8043NISTXML-SV-II-atomic-time-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8044NISTXML-SV-II-atomic-time-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8045NISTSchema-SV-II-atomic-time-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8046NISTXML-SV-II-atomic-time-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8047NISTXML-SV-II-atomic-time-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8048NISTXML-SV-II-atomic-time-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8049NISTXML-SV-II-atomic-time-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8050NISTXML-SV-II-atomic-time-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8051NISTSchema-SV-II-atomic-date-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8052NISTXML-SV-II-atomic-date-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8053NISTXML-SV-II-atomic-date-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8054NISTXML-SV-II-atomic-date-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8055NISTXML-SV-II-atomic-date-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8056NISTXML-SV-II-atomic-date-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8057NISTSchema-SV-II-atomic-date-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8058NISTXML-SV-II-atomic-date-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8059NISTXML-SV-II-atomic-date-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8060NISTXML-SV-II-atomic-date-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8061NISTXML-SV-II-atomic-date-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8062NISTXML-SV-II-atomic-date-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8063NISTSchema-SV-II-atomic-date-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8064NISTXML-SV-II-atomic-date-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8065NISTXML-SV-II-atomic-date-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8066NISTXML-SV-II-atomic-date-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8067NISTXML-SV-II-atomic-date-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8068NISTXML-SV-II-atomic-date-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8069NISTSchema-SV-II-atomic-date-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8070NISTXML-SV-II-atomic-date-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8071NISTXML-SV-II-atomic-date-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8072NISTXML-SV-II-atomic-date-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8073NISTXML-SV-II-atomic-date-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8074NISTXML-SV-II-atomic-date-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8075NISTSchema-SV-II-atomic-date-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8076NISTXML-SV-II-atomic-date-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8077NISTXML-SV-II-atomic-date-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8078NISTXML-SV-II-atomic-date-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8079NISTXML-SV-II-atomic-date-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8080NISTXML-SV-II-atomic-date-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8081NISTSchema-SV-II-atomic-date-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8082NISTXML-SV-II-atomic-date-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8083NISTXML-SV-II-atomic-date-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8084NISTXML-SV-II-atomic-date-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8085NISTXML-SV-II-atomic-date-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8086NISTXML-SV-II-atomic-date-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8087NISTSchema-SV-II-atomic-date-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8088NISTXML-SV-II-atomic-date-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8089NISTXML-SV-II-atomic-date-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8090NISTXML-SV-II-atomic-date-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8091NISTXML-SV-II-atomic-date-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8092NISTXML-SV-II-atomic-date-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8093NISTSchema-SV-II-atomic-date-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8094NISTXML-SV-II-atomic-date-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8095NISTXML-SV-II-atomic-date-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8096NISTXML-SV-II-atomic-date-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8097NISTXML-SV-II-atomic-date-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8098NISTXML-SV-II-atomic-date-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8099NISTSchema-SV-II-atomic-date-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8100NISTXML-SV-II-atomic-date-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8101NISTXML-SV-II-atomic-date-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8102NISTXML-SV-II-atomic-date-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8103NISTXML-SV-II-atomic-date-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8104NISTXML-SV-II-atomic-date-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8105NISTSchema-SV-II-atomic-date-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8106NISTXML-SV-II-atomic-date-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8107NISTXML-SV-II-atomic-date-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8108NISTXML-SV-II-atomic-date-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8109NISTXML-SV-II-atomic-date-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8110NISTXML-SV-II-atomic-date-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8111NISTSchema-SV-II-atomic-gYearMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8112NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8113NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8114NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8115NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8116NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8117NISTSchema-SV-II-atomic-gYearMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8118NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8119NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8120NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8121NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8122NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8123NISTSchema-SV-II-atomic-gYearMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8124NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8125NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8126NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8127NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8128NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8129NISTSchema-SV-II-atomic-gYearMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8130NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8131NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8132NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8133NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8134NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8135NISTSchema-SV-II-atomic-gYearMonth-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8136NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8137NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8138NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8139NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8140NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8141NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8142NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8143NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8144NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8145NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8146NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8147NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8148NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8149NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8150NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8151NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8152NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8153NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8154NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8155NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8156NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8157NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8158NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8159NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8160NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8161NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8162NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8163NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8164NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8165NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8166NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8167NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8168NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8169NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8170NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8171NISTSchema-SV-II-atomic-gYear-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8172NISTXML-SV-II-atomic-gYear-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8173NISTXML-SV-II-atomic-gYear-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8174NISTXML-SV-II-atomic-gYear-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8175NISTXML-SV-II-atomic-gYear-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8176NISTXML-SV-II-atomic-gYear-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8177NISTSchema-SV-II-atomic-gYear-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8178NISTXML-SV-II-atomic-gYear-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8179NISTXML-SV-II-atomic-gYear-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8180NISTXML-SV-II-atomic-gYear-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8181NISTXML-SV-II-atomic-gYear-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8182NISTXML-SV-II-atomic-gYear-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8183NISTSchema-SV-II-atomic-gYear-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8184NISTXML-SV-II-atomic-gYear-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8185NISTXML-SV-II-atomic-gYear-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8186NISTXML-SV-II-atomic-gYear-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8187NISTXML-SV-II-atomic-gYear-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8188NISTXML-SV-II-atomic-gYear-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8189NISTSchema-SV-II-atomic-gYear-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8190NISTXML-SV-II-atomic-gYear-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8191NISTXML-SV-II-atomic-gYear-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8192NISTXML-SV-II-atomic-gYear-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8193NISTXML-SV-II-atomic-gYear-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8194NISTXML-SV-II-atomic-gYear-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8195NISTSchema-SV-II-atomic-gYear-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8196NISTXML-SV-II-atomic-gYear-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8197NISTXML-SV-II-atomic-gYear-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8198NISTXML-SV-II-atomic-gYear-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8199NISTXML-SV-II-atomic-gYear-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8200NISTXML-SV-II-atomic-gYear-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8201NISTSchema-SV-II-atomic-gYear-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8202NISTXML-SV-II-atomic-gYear-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8203NISTXML-SV-II-atomic-gYear-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8204NISTXML-SV-II-atomic-gYear-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8205NISTXML-SV-II-atomic-gYear-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8206NISTXML-SV-II-atomic-gYear-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8207NISTSchema-SV-II-atomic-gYear-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8208NISTXML-SV-II-atomic-gYear-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8209NISTXML-SV-II-atomic-gYear-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8210NISTXML-SV-II-atomic-gYear-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8211NISTXML-SV-II-atomic-gYear-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8212NISTXML-SV-II-atomic-gYear-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8213NISTSchema-SV-II-atomic-gYear-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8214NISTXML-SV-II-atomic-gYear-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8215NISTXML-SV-II-atomic-gYear-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8216NISTXML-SV-II-atomic-gYear-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8217NISTXML-SV-II-atomic-gYear-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8218NISTXML-SV-II-atomic-gYear-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8219NISTSchema-SV-II-atomic-gYear-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8220NISTXML-SV-II-atomic-gYear-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8221NISTXML-SV-II-atomic-gYear-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8222NISTXML-SV-II-atomic-gYear-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8223NISTXML-SV-II-atomic-gYear-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8224NISTXML-SV-II-atomic-gYear-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8225NISTSchema-SV-II-atomic-gYear-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8226NISTXML-SV-II-atomic-gYear-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8227NISTXML-SV-II-atomic-gYear-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8228NISTXML-SV-II-atomic-gYear-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8229NISTXML-SV-II-atomic-gYear-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8230NISTXML-SV-II-atomic-gYear-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8231NISTSchema-SV-II-atomic-gMonthDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8232NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8233NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8234NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8235NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8236NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8237NISTSchema-SV-II-atomic-gMonthDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8238NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8239NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8240NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8241NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8242NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8243NISTSchema-SV-II-atomic-gMonthDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8244NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8245NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8246NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8247NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8248NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8249NISTSchema-SV-II-atomic-gMonthDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8250NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8251NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8252NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8253NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8254NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8255NISTSchema-SV-II-atomic-gMonthDay-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8256NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8257NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8258NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8259NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8260NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8261NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8262NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8263NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8264NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8265NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8266NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8267NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8268NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8269NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8270NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8271NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8272NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8273NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8274NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8275NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8276NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8277NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8278NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8279NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8280NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8281NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8282NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8283NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8284NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8285NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8286NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8287NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8288NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8289NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8290NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8291NISTSchema-SV-II-atomic-gDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8292NISTXML-SV-II-atomic-gDay-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8293NISTXML-SV-II-atomic-gDay-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8294NISTXML-SV-II-atomic-gDay-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8295NISTXML-SV-II-atomic-gDay-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8296NISTXML-SV-II-atomic-gDay-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8297NISTSchema-SV-II-atomic-gDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8298NISTXML-SV-II-atomic-gDay-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8299NISTXML-SV-II-atomic-gDay-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8300NISTXML-SV-II-atomic-gDay-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8301NISTXML-SV-II-atomic-gDay-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8302NISTXML-SV-II-atomic-gDay-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8303NISTSchema-SV-II-atomic-gDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8304NISTXML-SV-II-atomic-gDay-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8305NISTXML-SV-II-atomic-gDay-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8306NISTXML-SV-II-atomic-gDay-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8307NISTXML-SV-II-atomic-gDay-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8308NISTXML-SV-II-atomic-gDay-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8309NISTSchema-SV-II-atomic-gDay-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8310NISTXML-SV-II-atomic-gDay-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8311NISTXML-SV-II-atomic-gDay-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8312NISTXML-SV-II-atomic-gDay-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8313NISTXML-SV-II-atomic-gDay-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8314NISTXML-SV-II-atomic-gDay-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8315NISTSchema-SV-II-atomic-gDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8316NISTXML-SV-II-atomic-gDay-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8317NISTXML-SV-II-atomic-gDay-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8318NISTXML-SV-II-atomic-gDay-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8319NISTXML-SV-II-atomic-gDay-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8320NISTXML-SV-II-atomic-gDay-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8321NISTSchema-SV-II-atomic-gDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8322NISTXML-SV-II-atomic-gDay-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8323NISTSchema-SV-II-atomic-gDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8324NISTXML-SV-II-atomic-gDay-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8325NISTXML-SV-II-atomic-gDay-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8326NISTXML-SV-II-atomic-gDay-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8327NISTXML-SV-II-atomic-gDay-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8328NISTXML-SV-II-atomic-gDay-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8329NISTSchema-SV-II-atomic-gDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8330NISTXML-SV-II-atomic-gDay-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8331NISTXML-SV-II-atomic-gDay-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8332NISTXML-SV-II-atomic-gDay-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8333NISTXML-SV-II-atomic-gDay-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8334NISTXML-SV-II-atomic-gDay-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8335NISTSchema-SV-II-atomic-gDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8336NISTXML-SV-II-atomic-gDay-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8337NISTXML-SV-II-atomic-gDay-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8338NISTXML-SV-II-atomic-gDay-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8339NISTXML-SV-II-atomic-gDay-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8340NISTXML-SV-II-atomic-gDay-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8341NISTSchema-SV-II-atomic-gMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8342NISTXML-SV-II-atomic-gMonth-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8343NISTXML-SV-II-atomic-gMonth-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8344NISTXML-SV-II-atomic-gMonth-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8345NISTXML-SV-II-atomic-gMonth-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8346NISTXML-SV-II-atomic-gMonth-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8347NISTSchema-SV-II-atomic-gMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8348NISTXML-SV-II-atomic-gMonth-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8349NISTXML-SV-II-atomic-gMonth-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8350NISTXML-SV-II-atomic-gMonth-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8351NISTXML-SV-II-atomic-gMonth-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8352NISTXML-SV-II-atomic-gMonth-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8353NISTSchema-SV-II-atomic-gMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8354NISTXML-SV-II-atomic-gMonth-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8355NISTXML-SV-II-atomic-gMonth-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8356NISTXML-SV-II-atomic-gMonth-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8357NISTXML-SV-II-atomic-gMonth-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8358NISTXML-SV-II-atomic-gMonth-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8359NISTSchema-SV-II-atomic-gMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8360NISTXML-SV-II-atomic-gMonth-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8361NISTXML-SV-II-atomic-gMonth-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8362NISTXML-SV-II-atomic-gMonth-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8363NISTXML-SV-II-atomic-gMonth-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8364NISTXML-SV-II-atomic-gMonth-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8365NISTSchema-SV-II-atomic-gMonth-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8366NISTXML-SV-II-atomic-gMonth-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8367NISTXML-SV-II-atomic-gMonth-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8368NISTXML-SV-II-atomic-gMonth-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8369NISTXML-SV-II-atomic-gMonth-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8370NISTXML-SV-II-atomic-gMonth-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8371NISTSchema-SV-II-atomic-gMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8372NISTXML-SV-II-atomic-gMonth-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8373NISTXML-SV-II-atomic-gMonth-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8374NISTXML-SV-II-atomic-gMonth-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8375NISTXML-SV-II-atomic-gMonth-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8376NISTXML-SV-II-atomic-gMonth-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8377NISTSchema-SV-II-atomic-gMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8378NISTXML-SV-II-atomic-gMonth-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8379NISTXML-SV-II-atomic-gMonth-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8380NISTXML-SV-II-atomic-gMonth-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8381NISTXML-SV-II-atomic-gMonth-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8382NISTXML-SV-II-atomic-gMonth-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8383NISTSchema-SV-II-atomic-gMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8384NISTXML-SV-II-atomic-gMonth-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8385NISTXML-SV-II-atomic-gMonth-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8386NISTXML-SV-II-atomic-gMonth-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8387NISTXML-SV-II-atomic-gMonth-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8388NISTXML-SV-II-atomic-gMonth-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8389NISTSchema-SV-II-atomic-gMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8390NISTXML-SV-II-atomic-gMonth-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8391NISTXML-SV-II-atomic-gMonth-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8392NISTXML-SV-II-atomic-gMonth-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8393NISTXML-SV-II-atomic-gMonth-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8394NISTXML-SV-II-atomic-gMonth-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8395NISTSchema-SV-II-atomic-gMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8396NISTXML-SV-II-atomic-gMonth-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8397NISTXML-SV-II-atomic-gMonth-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8398NISTXML-SV-II-atomic-gMonth-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8399NISTXML-SV-II-atomic-gMonth-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8400NISTXML-SV-II-atomic-gMonth-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8401NISTSchema-SV-II-atomic-decimal-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8402NISTXML-SV-II-atomic-decimal-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8403NISTSchema-SV-II-atomic-decimal-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8404NISTXML-SV-II-atomic-decimal-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8405NISTXML-SV-II-atomic-decimal-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8406NISTXML-SV-II-atomic-decimal-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8407NISTXML-SV-II-atomic-decimal-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8408NISTXML-SV-II-atomic-decimal-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8409NISTSchema-SV-II-atomic-decimal-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8410NISTXML-SV-II-atomic-decimal-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8411NISTXML-SV-II-atomic-decimal-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8412NISTXML-SV-II-atomic-decimal-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8413NISTXML-SV-II-atomic-decimal-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8414NISTXML-SV-II-atomic-decimal-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8415NISTSchema-SV-II-atomic-decimal-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8416NISTXML-SV-II-atomic-decimal-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8417NISTXML-SV-II-atomic-decimal-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8418NISTXML-SV-II-atomic-decimal-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8419NISTXML-SV-II-atomic-decimal-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8420NISTXML-SV-II-atomic-decimal-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8421NISTSchema-SV-II-atomic-decimal-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8422NISTXML-SV-II-atomic-decimal-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8423NISTXML-SV-II-atomic-decimal-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8424NISTXML-SV-II-atomic-decimal-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8425NISTXML-SV-II-atomic-decimal-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8426NISTXML-SV-II-atomic-decimal-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8427NISTSchema-SV-II-atomic-decimal-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8428NISTXML-SV-II-atomic-decimal-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8429NISTXML-SV-II-atomic-decimal-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8430NISTXML-SV-II-atomic-decimal-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8431NISTXML-SV-II-atomic-decimal-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8432NISTXML-SV-II-atomic-decimal-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8433NISTSchema-SV-II-atomic-decimal-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8434NISTXML-SV-II-atomic-decimal-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8435NISTXML-SV-II-atomic-decimal-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8436NISTXML-SV-II-atomic-decimal-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8437NISTXML-SV-II-atomic-decimal-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8438NISTXML-SV-II-atomic-decimal-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8439NISTSchema-SV-II-atomic-decimal-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8440NISTXML-SV-II-atomic-decimal-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8441NISTXML-SV-II-atomic-decimal-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8442NISTXML-SV-II-atomic-decimal-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8443NISTXML-SV-II-atomic-decimal-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8444NISTXML-SV-II-atomic-decimal-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8445NISTSchema-SV-II-atomic-decimal-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8446NISTXML-SV-II-atomic-decimal-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8447NISTXML-SV-II-atomic-decimal-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8448NISTXML-SV-II-atomic-decimal-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8449NISTXML-SV-II-atomic-decimal-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8450NISTXML-SV-II-atomic-decimal-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8451NISTSchema-SV-II-atomic-decimal-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8452NISTXML-SV-II-atomic-decimal-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8453NISTSchema-SV-II-atomic-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="8454NISTXML-SV-II-atomic-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8455NISTXML-SV-II-atomic-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8456NISTXML-SV-II-atomic-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8457NISTXML-SV-II-atomic-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8458NISTXML-SV-II-atomic-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8459NISTSchema-SV-II-atomic-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="8460NISTXML-SV-II-atomic-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8461NISTXML-SV-II-atomic-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8462NISTXML-SV-II-atomic-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8463NISTXML-SV-II-atomic-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8464NISTXML-SV-II-atomic-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8465NISTSchema-SV-II-atomic-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="8466NISTXML-SV-II-atomic-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8467NISTXML-SV-II-atomic-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8468NISTXML-SV-II-atomic-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8469NISTXML-SV-II-atomic-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8470NISTXML-SV-II-atomic-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8471NISTSchema-SV-II-atomic-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="8472NISTXML-SV-II-atomic-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8473NISTXML-SV-II-atomic-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8474NISTXML-SV-II-atomic-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8475NISTXML-SV-II-atomic-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8476NISTXML-SV-II-atomic-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8477NISTSchema-SV-II-atomic-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="8478NISTXML-SV-II-atomic-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8479NISTXML-SV-II-atomic-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8480NISTXML-SV-II-atomic-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8481NISTXML-SV-II-atomic-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8482NISTXML-SV-II-atomic-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8483NISTSchema-SV-II-atomic-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="8484NISTXML-SV-II-atomic-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8485NISTXML-SV-II-atomic-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8486NISTXML-SV-II-atomic-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8487NISTXML-SV-II-atomic-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8488NISTXML-SV-II-atomic-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8489NISTSchema-SV-II-atomic-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="8490NISTXML-SV-II-atomic-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8491NISTXML-SV-II-atomic-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8492NISTXML-SV-II-atomic-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8493NISTXML-SV-II-atomic-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8494NISTXML-SV-II-atomic-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8495NISTSchema-SV-II-atomic-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="8496NISTXML-SV-II-atomic-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8497NISTXML-SV-II-atomic-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8498NISTXML-SV-II-atomic-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8499NISTXML-SV-II-atomic-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8500NISTXML-SV-II-atomic-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8501NISTSchema-SV-II-atomic-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="8502NISTXML-SV-II-atomic-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8503NISTXML-SV-II-atomic-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8504NISTXML-SV-II-atomic-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8505NISTXML-SV-II-atomic-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8506NISTXML-SV-II-atomic-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8507NISTSchema-SV-II-atomic-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="8508NISTXML-SV-II-atomic-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8509NISTXML-SV-II-atomic-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8510NISTXML-SV-II-atomic-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8511NISTXML-SV-II-atomic-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8512NISTXML-SV-II-atomic-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8513NISTSchema-SV-II-atomic-integer-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8514NISTXML-SV-II-atomic-integer-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8515NISTSchema-SV-II-atomic-integer-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8516NISTXML-SV-II-atomic-integer-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8517NISTXML-SV-II-atomic-integer-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8518NISTXML-SV-II-atomic-integer-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8519NISTXML-SV-II-atomic-integer-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8520NISTXML-SV-II-atomic-integer-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8521NISTSchema-SV-II-atomic-integer-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8522NISTXML-SV-II-atomic-integer-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8523NISTXML-SV-II-atomic-integer-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8524NISTXML-SV-II-atomic-integer-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8525NISTXML-SV-II-atomic-integer-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8526NISTXML-SV-II-atomic-integer-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8527NISTSchema-SV-II-atomic-integer-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8528NISTXML-SV-II-atomic-integer-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8529NISTXML-SV-II-atomic-integer-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8530NISTXML-SV-II-atomic-integer-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8531NISTXML-SV-II-atomic-integer-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8532NISTXML-SV-II-atomic-integer-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8533NISTSchema-SV-II-atomic-integer-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8534NISTXML-SV-II-atomic-integer-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8535NISTXML-SV-II-atomic-integer-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8536NISTXML-SV-II-atomic-integer-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8537NISTXML-SV-II-atomic-integer-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8538NISTXML-SV-II-atomic-integer-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8539NISTSchema-SV-II-atomic-integer-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8540NISTXML-SV-II-atomic-integer-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8541NISTXML-SV-II-atomic-integer-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8542NISTXML-SV-II-atomic-integer-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8543NISTXML-SV-II-atomic-integer-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8544NISTXML-SV-II-atomic-integer-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8545NISTSchema-SV-II-atomic-integer-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8546NISTXML-SV-II-atomic-integer-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8547NISTXML-SV-II-atomic-integer-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8548NISTXML-SV-II-atomic-integer-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8549NISTXML-SV-II-atomic-integer-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8550NISTXML-SV-II-atomic-integer-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8551NISTSchema-SV-II-atomic-integer-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8552NISTXML-SV-II-atomic-integer-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8553NISTXML-SV-II-atomic-integer-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8554NISTXML-SV-II-atomic-integer-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8555NISTXML-SV-II-atomic-integer-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8556NISTXML-SV-II-atomic-integer-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8557NISTSchema-SV-II-atomic-integer-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8558NISTXML-SV-II-atomic-integer-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8559NISTXML-SV-II-atomic-integer-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8560NISTXML-SV-II-atomic-integer-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8561NISTXML-SV-II-atomic-integer-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8562NISTXML-SV-II-atomic-integer-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8563NISTSchema-SV-II-atomic-integer-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8564NISTXML-SV-II-atomic-integer-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8565NISTSchema-SV-II-atomic-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="8566NISTXML-SV-II-atomic-integer-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8567NISTXML-SV-II-atomic-integer-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8568NISTXML-SV-II-atomic-integer-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8569NISTXML-SV-II-atomic-integer-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8570NISTXML-SV-II-atomic-integer-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8571NISTSchema-SV-II-atomic-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="8572NISTXML-SV-II-atomic-integer-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8573NISTXML-SV-II-atomic-integer-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8574NISTXML-SV-II-atomic-integer-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8575NISTXML-SV-II-atomic-integer-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8576NISTXML-SV-II-atomic-integer-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8577NISTSchema-SV-II-atomic-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="8578NISTXML-SV-II-atomic-integer-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8579NISTXML-SV-II-atomic-integer-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8580NISTXML-SV-II-atomic-integer-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8581NISTXML-SV-II-atomic-integer-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8582NISTXML-SV-II-atomic-integer-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8583NISTSchema-SV-II-atomic-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="8584NISTXML-SV-II-atomic-integer-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8585NISTXML-SV-II-atomic-integer-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8586NISTXML-SV-II-atomic-integer-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8587NISTXML-SV-II-atomic-integer-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8588NISTXML-SV-II-atomic-integer-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8589NISTSchema-SV-II-atomic-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="8590NISTXML-SV-II-atomic-integer-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8591NISTXML-SV-II-atomic-integer-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8592NISTXML-SV-II-atomic-integer-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8593NISTXML-SV-II-atomic-integer-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8594NISTXML-SV-II-atomic-integer-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8595NISTSchema-SV-II-atomic-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="8596NISTXML-SV-II-atomic-integer-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8597NISTXML-SV-II-atomic-integer-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8598NISTXML-SV-II-atomic-integer-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8599NISTXML-SV-II-atomic-integer-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8600NISTXML-SV-II-atomic-integer-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8601NISTSchema-SV-II-atomic-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="8602NISTXML-SV-II-atomic-integer-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8603NISTXML-SV-II-atomic-integer-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8604NISTXML-SV-II-atomic-integer-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8605NISTXML-SV-II-atomic-integer-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8606NISTXML-SV-II-atomic-integer-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8607NISTSchema-SV-II-atomic-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="8608NISTXML-SV-II-atomic-integer-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8609NISTXML-SV-II-atomic-integer-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8610NISTXML-SV-II-atomic-integer-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8611NISTXML-SV-II-atomic-integer-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8612NISTXML-SV-II-atomic-integer-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8613NISTSchema-SV-II-atomic-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="8614NISTXML-SV-II-atomic-integer-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8615NISTXML-SV-II-atomic-integer-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8616NISTXML-SV-II-atomic-integer-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8617NISTXML-SV-II-atomic-integer-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8618NISTXML-SV-II-atomic-integer-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8619NISTSchema-SV-II-atomic-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="8620NISTXML-SV-II-atomic-integer-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8621NISTXML-SV-II-atomic-integer-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8622NISTXML-SV-II-atomic-integer-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8623NISTXML-SV-II-atomic-integer-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8624NISTXML-SV-II-atomic-integer-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8625NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8626NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8627NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8628NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8629NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8630NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8631NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8632NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8633NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8634NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8635NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8636NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8637NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8638NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8639NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8640NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8641NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8642NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8643NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8644NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8645NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8646NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8647NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8648NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8649NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8650NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8651NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8652NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8653NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8654NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8655NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8656NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8657NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8658NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8659NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8660NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8661NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8662NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8663NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8664NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8665NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8666NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8667NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8668NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8669NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8670NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8671NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8672NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8673NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8674NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8675NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8676NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8677NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="8678NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8679NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8680NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8681NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8682NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8683NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="8684NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8685NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8686NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8687NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8688NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8689NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="8690NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8691NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8692NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8693NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8694NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8695NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="8696NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8697NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8698NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8699NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8700NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8701NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="8702NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8703NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8704NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8705NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8706NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8707NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="8708NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8709NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8710NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8711NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8712NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8713NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="8714NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8715NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8716NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8717NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8718NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8719NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="8720NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8721NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8722NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8723NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8724NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8725NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="8726NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8727NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8728NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8729NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8730NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8731NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="8732NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8733NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8734NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8735NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8736NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8737NISTSchema-SV-II-atomic-negativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8738NISTXML-SV-II-atomic-negativeInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8739NISTSchema-SV-II-atomic-negativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8740NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8741NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8742NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8743NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8744NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8745NISTSchema-SV-II-atomic-negativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8746NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8747NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8748NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8749NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8750NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8751NISTSchema-SV-II-atomic-negativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8752NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8753NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8754NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8755NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8756NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8757NISTSchema-SV-II-atomic-negativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8758NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8759NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8760NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8761NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8762NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8763NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8764NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8765NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8766NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8767NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8768NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8769NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8770NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8771NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8772NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8773NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8774NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8775NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8776NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8777NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8778NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8779NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8780NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8781NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8782NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8783NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8784NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8785NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8786NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8787NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8788NISTXML-SV-II-atomic-negativeInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8789NISTSchema-SV-II-atomic-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="8790NISTXML-SV-II-atomic-negativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8791NISTXML-SV-II-atomic-negativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8792NISTXML-SV-II-atomic-negativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8793NISTXML-SV-II-atomic-negativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8794NISTXML-SV-II-atomic-negativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8795NISTSchema-SV-II-atomic-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="8796NISTXML-SV-II-atomic-negativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8797NISTXML-SV-II-atomic-negativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8798NISTXML-SV-II-atomic-negativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8799NISTXML-SV-II-atomic-negativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8800NISTXML-SV-II-atomic-negativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8801NISTSchema-SV-II-atomic-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="8802NISTXML-SV-II-atomic-negativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8803NISTXML-SV-II-atomic-negativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8804NISTXML-SV-II-atomic-negativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8805NISTXML-SV-II-atomic-negativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8806NISTXML-SV-II-atomic-negativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8807NISTSchema-SV-II-atomic-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="8808NISTXML-SV-II-atomic-negativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8809NISTXML-SV-II-atomic-negativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8810NISTXML-SV-II-atomic-negativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8811NISTXML-SV-II-atomic-negativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8812NISTXML-SV-II-atomic-negativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8813NISTSchema-SV-II-atomic-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="8814NISTXML-SV-II-atomic-negativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8815NISTXML-SV-II-atomic-negativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8816NISTXML-SV-II-atomic-negativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8817NISTXML-SV-II-atomic-negativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8818NISTXML-SV-II-atomic-negativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8819NISTSchema-SV-II-atomic-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="8820NISTXML-SV-II-atomic-negativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8821NISTXML-SV-II-atomic-negativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8822NISTXML-SV-II-atomic-negativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8823NISTXML-SV-II-atomic-negativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8824NISTXML-SV-II-atomic-negativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8825NISTSchema-SV-II-atomic-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="8826NISTXML-SV-II-atomic-negativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8827NISTXML-SV-II-atomic-negativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8828NISTXML-SV-II-atomic-negativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8829NISTXML-SV-II-atomic-negativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8830NISTXML-SV-II-atomic-negativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8831NISTSchema-SV-II-atomic-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="8832NISTXML-SV-II-atomic-negativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8833NISTXML-SV-II-atomic-negativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8834NISTXML-SV-II-atomic-negativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8835NISTXML-SV-II-atomic-negativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8836NISTXML-SV-II-atomic-negativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8837NISTSchema-SV-II-atomic-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="8838NISTXML-SV-II-atomic-negativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8839NISTXML-SV-II-atomic-negativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8840NISTXML-SV-II-atomic-negativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8841NISTXML-SV-II-atomic-negativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8842NISTXML-SV-II-atomic-negativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8843NISTSchema-SV-II-atomic-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="8844NISTXML-SV-II-atomic-negativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8845NISTXML-SV-II-atomic-negativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8846NISTXML-SV-II-atomic-negativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8847NISTXML-SV-II-atomic-negativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8848NISTXML-SV-II-atomic-negativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8849NISTSchema-SV-II-atomic-long-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8850NISTXML-SV-II-atomic-long-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8851NISTSchema-SV-II-atomic-long-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8852NISTXML-SV-II-atomic-long-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8853NISTXML-SV-II-atomic-long-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8854NISTXML-SV-II-atomic-long-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8855NISTXML-SV-II-atomic-long-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8856NISTXML-SV-II-atomic-long-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8857NISTSchema-SV-II-atomic-long-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8858NISTXML-SV-II-atomic-long-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8859NISTXML-SV-II-atomic-long-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8860NISTXML-SV-II-atomic-long-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8861NISTXML-SV-II-atomic-long-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8862NISTXML-SV-II-atomic-long-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8863NISTSchema-SV-II-atomic-long-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8864NISTXML-SV-II-atomic-long-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8865NISTXML-SV-II-atomic-long-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8866NISTXML-SV-II-atomic-long-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8867NISTXML-SV-II-atomic-long-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8868NISTXML-SV-II-atomic-long-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8869NISTSchema-SV-II-atomic-long-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8870NISTXML-SV-II-atomic-long-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8871NISTXML-SV-II-atomic-long-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8872NISTXML-SV-II-atomic-long-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8873NISTXML-SV-II-atomic-long-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8874NISTXML-SV-II-atomic-long-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8875NISTSchema-SV-II-atomic-long-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8876NISTXML-SV-II-atomic-long-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8877NISTXML-SV-II-atomic-long-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8878NISTXML-SV-II-atomic-long-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8879NISTXML-SV-II-atomic-long-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8880NISTXML-SV-II-atomic-long-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8881NISTSchema-SV-II-atomic-long-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8882NISTXML-SV-II-atomic-long-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8883NISTXML-SV-II-atomic-long-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8884NISTXML-SV-II-atomic-long-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8885NISTXML-SV-II-atomic-long-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8886NISTXML-SV-II-atomic-long-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8887NISTSchema-SV-II-atomic-long-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8888NISTXML-SV-II-atomic-long-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8889NISTXML-SV-II-atomic-long-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8890NISTXML-SV-II-atomic-long-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8891NISTXML-SV-II-atomic-long-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8892NISTXML-SV-II-atomic-long-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8893NISTSchema-SV-II-atomic-long-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8894NISTXML-SV-II-atomic-long-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8895NISTXML-SV-II-atomic-long-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8896NISTXML-SV-II-atomic-long-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8897NISTXML-SV-II-atomic-long-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8898NISTXML-SV-II-atomic-long-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8899NISTSchema-SV-II-atomic-long-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8900NISTXML-SV-II-atomic-long-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8901NISTSchema-SV-II-atomic-long-pattern-1 tokoe:valid" result="pass"/><test-case name="8902NISTXML-SV-II-atomic-long-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8903NISTXML-SV-II-atomic-long-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8904NISTXML-SV-II-atomic-long-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8905NISTXML-SV-II-atomic-long-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8906NISTXML-SV-II-atomic-long-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8907NISTSchema-SV-II-atomic-long-pattern-2 tokoe:valid" result="pass"/><test-case name="8908NISTXML-SV-II-atomic-long-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8909NISTXML-SV-II-atomic-long-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8910NISTXML-SV-II-atomic-long-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8911NISTXML-SV-II-atomic-long-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8912NISTXML-SV-II-atomic-long-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8913NISTSchema-SV-II-atomic-long-pattern-3 tokoe:valid" result="pass"/><test-case name="8914NISTXML-SV-II-atomic-long-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8915NISTXML-SV-II-atomic-long-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8916NISTXML-SV-II-atomic-long-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8917NISTXML-SV-II-atomic-long-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8918NISTXML-SV-II-atomic-long-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8919NISTSchema-SV-II-atomic-long-pattern-4 tokoe:valid" result="pass"/><test-case name="8920NISTXML-SV-II-atomic-long-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8921NISTXML-SV-II-atomic-long-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8922NISTXML-SV-II-atomic-long-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8923NISTXML-SV-II-atomic-long-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8924NISTXML-SV-II-atomic-long-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8925NISTSchema-SV-II-atomic-long-pattern-5 tokoe:valid" result="pass"/><test-case name="8926NISTXML-SV-II-atomic-long-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8927NISTXML-SV-II-atomic-long-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8928NISTXML-SV-II-atomic-long-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8929NISTXML-SV-II-atomic-long-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8930NISTXML-SV-II-atomic-long-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8931NISTSchema-SV-II-atomic-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="8932NISTXML-SV-II-atomic-long-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8933NISTXML-SV-II-atomic-long-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8934NISTXML-SV-II-atomic-long-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8935NISTXML-SV-II-atomic-long-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8936NISTXML-SV-II-atomic-long-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8937NISTSchema-SV-II-atomic-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="8938NISTXML-SV-II-atomic-long-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8939NISTXML-SV-II-atomic-long-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8940NISTXML-SV-II-atomic-long-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8941NISTXML-SV-II-atomic-long-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8942NISTXML-SV-II-atomic-long-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8943NISTSchema-SV-II-atomic-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="8944NISTXML-SV-II-atomic-long-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8945NISTXML-SV-II-atomic-long-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8946NISTXML-SV-II-atomic-long-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8947NISTXML-SV-II-atomic-long-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8948NISTXML-SV-II-atomic-long-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8949NISTSchema-SV-II-atomic-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="8950NISTXML-SV-II-atomic-long-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8951NISTXML-SV-II-atomic-long-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8952NISTXML-SV-II-atomic-long-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8953NISTXML-SV-II-atomic-long-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8954NISTXML-SV-II-atomic-long-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8955NISTSchema-SV-II-atomic-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="8956NISTXML-SV-II-atomic-long-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8957NISTXML-SV-II-atomic-long-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8958NISTXML-SV-II-atomic-long-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8959NISTXML-SV-II-atomic-long-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8960NISTXML-SV-II-atomic-long-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8961NISTSchema-SV-II-atomic-int-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8962NISTXML-SV-II-atomic-int-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8963NISTSchema-SV-II-atomic-int-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8964NISTXML-SV-II-atomic-int-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8965NISTXML-SV-II-atomic-int-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8966NISTXML-SV-II-atomic-int-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8967NISTXML-SV-II-atomic-int-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8968NISTXML-SV-II-atomic-int-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8969NISTSchema-SV-II-atomic-int-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8970NISTXML-SV-II-atomic-int-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8971NISTXML-SV-II-atomic-int-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8972NISTXML-SV-II-atomic-int-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8973NISTXML-SV-II-atomic-int-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8974NISTXML-SV-II-atomic-int-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8975NISTSchema-SV-II-atomic-int-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8976NISTXML-SV-II-atomic-int-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8977NISTXML-SV-II-atomic-int-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8978NISTXML-SV-II-atomic-int-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8979NISTXML-SV-II-atomic-int-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8980NISTXML-SV-II-atomic-int-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8981NISTSchema-SV-II-atomic-int-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8982NISTXML-SV-II-atomic-int-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8983NISTXML-SV-II-atomic-int-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8984NISTXML-SV-II-atomic-int-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8985NISTXML-SV-II-atomic-int-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8986NISTXML-SV-II-atomic-int-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8987NISTSchema-SV-II-atomic-int-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8988NISTXML-SV-II-atomic-int-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8989NISTXML-SV-II-atomic-int-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8990NISTXML-SV-II-atomic-int-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8991NISTXML-SV-II-atomic-int-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8992NISTXML-SV-II-atomic-int-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8993NISTSchema-SV-II-atomic-int-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8994NISTXML-SV-II-atomic-int-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8995NISTXML-SV-II-atomic-int-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8996NISTXML-SV-II-atomic-int-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8997NISTXML-SV-II-atomic-int-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8998NISTXML-SV-II-atomic-int-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8999NISTSchema-SV-II-atomic-int-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9000NISTXML-SV-II-atomic-int-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9001NISTXML-SV-II-atomic-int-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9002NISTXML-SV-II-atomic-int-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9003NISTXML-SV-II-atomic-int-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9004NISTXML-SV-II-atomic-int-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9005NISTSchema-SV-II-atomic-int-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9006NISTXML-SV-II-atomic-int-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9007NISTXML-SV-II-atomic-int-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9008NISTXML-SV-II-atomic-int-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9009NISTXML-SV-II-atomic-int-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9010NISTXML-SV-II-atomic-int-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9011NISTSchema-SV-II-atomic-int-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9012NISTXML-SV-II-atomic-int-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9013NISTSchema-SV-II-atomic-int-pattern-1 tokoe:valid" result="pass"/><test-case name="9014NISTXML-SV-II-atomic-int-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9015NISTXML-SV-II-atomic-int-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9016NISTXML-SV-II-atomic-int-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9017NISTXML-SV-II-atomic-int-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9018NISTXML-SV-II-atomic-int-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9019NISTSchema-SV-II-atomic-int-pattern-2 tokoe:valid" result="pass"/><test-case name="9020NISTXML-SV-II-atomic-int-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9021NISTXML-SV-II-atomic-int-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9022NISTXML-SV-II-atomic-int-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9023NISTXML-SV-II-atomic-int-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9024NISTXML-SV-II-atomic-int-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9025NISTSchema-SV-II-atomic-int-pattern-3 tokoe:valid" result="pass"/><test-case name="9026NISTXML-SV-II-atomic-int-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9027NISTXML-SV-II-atomic-int-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9028NISTXML-SV-II-atomic-int-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9029NISTXML-SV-II-atomic-int-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9030NISTXML-SV-II-atomic-int-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9031NISTSchema-SV-II-atomic-int-pattern-4 tokoe:valid" result="pass"/><test-case name="9032NISTXML-SV-II-atomic-int-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9033NISTXML-SV-II-atomic-int-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9034NISTXML-SV-II-atomic-int-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9035NISTXML-SV-II-atomic-int-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9036NISTXML-SV-II-atomic-int-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9037NISTSchema-SV-II-atomic-int-pattern-5 tokoe:valid" result="pass"/><test-case name="9038NISTXML-SV-II-atomic-int-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9039NISTXML-SV-II-atomic-int-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9040NISTXML-SV-II-atomic-int-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9041NISTXML-SV-II-atomic-int-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9042NISTXML-SV-II-atomic-int-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9043NISTSchema-SV-II-atomic-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="9044NISTXML-SV-II-atomic-int-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9045NISTXML-SV-II-atomic-int-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9046NISTXML-SV-II-atomic-int-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9047NISTXML-SV-II-atomic-int-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9048NISTXML-SV-II-atomic-int-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9049NISTSchema-SV-II-atomic-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="9050NISTXML-SV-II-atomic-int-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9051NISTXML-SV-II-atomic-int-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9052NISTXML-SV-II-atomic-int-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9053NISTXML-SV-II-atomic-int-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9054NISTXML-SV-II-atomic-int-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9055NISTSchema-SV-II-atomic-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="9056NISTXML-SV-II-atomic-int-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9057NISTXML-SV-II-atomic-int-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9058NISTXML-SV-II-atomic-int-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9059NISTXML-SV-II-atomic-int-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9060NISTXML-SV-II-atomic-int-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9061NISTSchema-SV-II-atomic-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="9062NISTXML-SV-II-atomic-int-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9063NISTXML-SV-II-atomic-int-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9064NISTXML-SV-II-atomic-int-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9065NISTXML-SV-II-atomic-int-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9066NISTXML-SV-II-atomic-int-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9067NISTSchema-SV-II-atomic-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="9068NISTXML-SV-II-atomic-int-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9069NISTXML-SV-II-atomic-int-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9070NISTXML-SV-II-atomic-int-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9071NISTXML-SV-II-atomic-int-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9072NISTXML-SV-II-atomic-int-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9073NISTSchema-SV-II-atomic-short-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9074NISTXML-SV-II-atomic-short-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9075NISTSchema-SV-II-atomic-short-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9076NISTXML-SV-II-atomic-short-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9077NISTXML-SV-II-atomic-short-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9078NISTXML-SV-II-atomic-short-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9079NISTXML-SV-II-atomic-short-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9080NISTXML-SV-II-atomic-short-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9081NISTSchema-SV-II-atomic-short-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9082NISTXML-SV-II-atomic-short-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9083NISTXML-SV-II-atomic-short-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9084NISTXML-SV-II-atomic-short-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9085NISTXML-SV-II-atomic-short-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9086NISTXML-SV-II-atomic-short-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9087NISTSchema-SV-II-atomic-short-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9088NISTXML-SV-II-atomic-short-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9089NISTXML-SV-II-atomic-short-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9090NISTXML-SV-II-atomic-short-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9091NISTXML-SV-II-atomic-short-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9092NISTXML-SV-II-atomic-short-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9093NISTSchema-SV-II-atomic-short-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9094NISTXML-SV-II-atomic-short-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9095NISTXML-SV-II-atomic-short-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9096NISTXML-SV-II-atomic-short-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9097NISTXML-SV-II-atomic-short-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9098NISTXML-SV-II-atomic-short-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9099NISTSchema-SV-II-atomic-short-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9100NISTXML-SV-II-atomic-short-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9101NISTXML-SV-II-atomic-short-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9102NISTXML-SV-II-atomic-short-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9103NISTXML-SV-II-atomic-short-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9104NISTXML-SV-II-atomic-short-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9105NISTSchema-SV-II-atomic-short-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9106NISTXML-SV-II-atomic-short-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9107NISTXML-SV-II-atomic-short-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9108NISTXML-SV-II-atomic-short-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9109NISTXML-SV-II-atomic-short-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9110NISTXML-SV-II-atomic-short-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9111NISTSchema-SV-II-atomic-short-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9112NISTXML-SV-II-atomic-short-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9113NISTXML-SV-II-atomic-short-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9114NISTXML-SV-II-atomic-short-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9115NISTXML-SV-II-atomic-short-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9116NISTXML-SV-II-atomic-short-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9117NISTSchema-SV-II-atomic-short-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9118NISTXML-SV-II-atomic-short-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9119NISTXML-SV-II-atomic-short-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9120NISTXML-SV-II-atomic-short-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9121NISTXML-SV-II-atomic-short-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9122NISTXML-SV-II-atomic-short-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9123NISTSchema-SV-II-atomic-short-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9124NISTXML-SV-II-atomic-short-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9125NISTSchema-SV-II-atomic-short-pattern-1 tokoe:valid" result="pass"/><test-case name="9126NISTXML-SV-II-atomic-short-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9127NISTXML-SV-II-atomic-short-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9128NISTXML-SV-II-atomic-short-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9129NISTXML-SV-II-atomic-short-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9130NISTXML-SV-II-atomic-short-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9131NISTSchema-SV-II-atomic-short-pattern-2 tokoe:valid" result="pass"/><test-case name="9132NISTXML-SV-II-atomic-short-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9133NISTXML-SV-II-atomic-short-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9134NISTXML-SV-II-atomic-short-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9135NISTXML-SV-II-atomic-short-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9136NISTXML-SV-II-atomic-short-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9137NISTSchema-SV-II-atomic-short-pattern-3 tokoe:valid" result="pass"/><test-case name="9138NISTXML-SV-II-atomic-short-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9139NISTXML-SV-II-atomic-short-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9140NISTXML-SV-II-atomic-short-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9141NISTXML-SV-II-atomic-short-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9142NISTXML-SV-II-atomic-short-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9143NISTSchema-SV-II-atomic-short-pattern-4 tokoe:valid" result="pass"/><test-case name="9144NISTXML-SV-II-atomic-short-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9145NISTXML-SV-II-atomic-short-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9146NISTXML-SV-II-atomic-short-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9147NISTXML-SV-II-atomic-short-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9148NISTXML-SV-II-atomic-short-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9149NISTSchema-SV-II-atomic-short-pattern-5 tokoe:valid" result="pass"/><test-case name="9150NISTXML-SV-II-atomic-short-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9151NISTXML-SV-II-atomic-short-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9152NISTXML-SV-II-atomic-short-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9153NISTXML-SV-II-atomic-short-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9154NISTXML-SV-II-atomic-short-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9155NISTSchema-SV-II-atomic-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="9156NISTXML-SV-II-atomic-short-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9157NISTXML-SV-II-atomic-short-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9158NISTXML-SV-II-atomic-short-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9159NISTXML-SV-II-atomic-short-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9160NISTXML-SV-II-atomic-short-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9161NISTSchema-SV-II-atomic-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="9162NISTXML-SV-II-atomic-short-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9163NISTXML-SV-II-atomic-short-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9164NISTXML-SV-II-atomic-short-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9165NISTXML-SV-II-atomic-short-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9166NISTXML-SV-II-atomic-short-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9167NISTSchema-SV-II-atomic-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="9168NISTXML-SV-II-atomic-short-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9169NISTXML-SV-II-atomic-short-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9170NISTXML-SV-II-atomic-short-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9171NISTXML-SV-II-atomic-short-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9172NISTXML-SV-II-atomic-short-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9173NISTSchema-SV-II-atomic-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="9174NISTXML-SV-II-atomic-short-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9175NISTXML-SV-II-atomic-short-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9176NISTXML-SV-II-atomic-short-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9177NISTXML-SV-II-atomic-short-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9178NISTXML-SV-II-atomic-short-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9179NISTSchema-SV-II-atomic-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="9180NISTXML-SV-II-atomic-short-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9181NISTXML-SV-II-atomic-short-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9182NISTXML-SV-II-atomic-short-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9183NISTXML-SV-II-atomic-short-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9184NISTXML-SV-II-atomic-short-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9185NISTSchema-SV-II-atomic-byte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9186NISTXML-SV-II-atomic-byte-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9187NISTSchema-SV-II-atomic-byte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9188NISTXML-SV-II-atomic-byte-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9189NISTXML-SV-II-atomic-byte-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9190NISTXML-SV-II-atomic-byte-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9191NISTXML-SV-II-atomic-byte-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9192NISTXML-SV-II-atomic-byte-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9193NISTSchema-SV-II-atomic-byte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9194NISTXML-SV-II-atomic-byte-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9195NISTXML-SV-II-atomic-byte-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9196NISTXML-SV-II-atomic-byte-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9197NISTXML-SV-II-atomic-byte-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9198NISTXML-SV-II-atomic-byte-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9199NISTSchema-SV-II-atomic-byte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9200NISTXML-SV-II-atomic-byte-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9201NISTXML-SV-II-atomic-byte-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9202NISTXML-SV-II-atomic-byte-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9203NISTXML-SV-II-atomic-byte-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9204NISTXML-SV-II-atomic-byte-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9205NISTSchema-SV-II-atomic-byte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9206NISTXML-SV-II-atomic-byte-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9207NISTXML-SV-II-atomic-byte-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9208NISTXML-SV-II-atomic-byte-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9209NISTXML-SV-II-atomic-byte-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9210NISTXML-SV-II-atomic-byte-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9211NISTSchema-SV-II-atomic-byte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9212NISTXML-SV-II-atomic-byte-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9213NISTXML-SV-II-atomic-byte-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9214NISTXML-SV-II-atomic-byte-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9215NISTXML-SV-II-atomic-byte-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9216NISTXML-SV-II-atomic-byte-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9217NISTSchema-SV-II-atomic-byte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9218NISTXML-SV-II-atomic-byte-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9219NISTXML-SV-II-atomic-byte-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9220NISTXML-SV-II-atomic-byte-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9221NISTXML-SV-II-atomic-byte-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9222NISTXML-SV-II-atomic-byte-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9223NISTSchema-SV-II-atomic-byte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9224NISTXML-SV-II-atomic-byte-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9225NISTXML-SV-II-atomic-byte-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9226NISTXML-SV-II-atomic-byte-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9227NISTXML-SV-II-atomic-byte-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9228NISTXML-SV-II-atomic-byte-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9229NISTSchema-SV-II-atomic-byte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9230NISTXML-SV-II-atomic-byte-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9231NISTXML-SV-II-atomic-byte-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9232NISTXML-SV-II-atomic-byte-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9233NISTXML-SV-II-atomic-byte-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9234NISTXML-SV-II-atomic-byte-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9235NISTSchema-SV-II-atomic-byte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9236NISTXML-SV-II-atomic-byte-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9237NISTSchema-SV-II-atomic-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="9238NISTXML-SV-II-atomic-byte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9239NISTXML-SV-II-atomic-byte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9240NISTXML-SV-II-atomic-byte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9241NISTXML-SV-II-atomic-byte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9242NISTXML-SV-II-atomic-byte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9243NISTSchema-SV-II-atomic-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="9244NISTXML-SV-II-atomic-byte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9245NISTXML-SV-II-atomic-byte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9246NISTXML-SV-II-atomic-byte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9247NISTXML-SV-II-atomic-byte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9248NISTXML-SV-II-atomic-byte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9249NISTSchema-SV-II-atomic-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="9250NISTXML-SV-II-atomic-byte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9251NISTXML-SV-II-atomic-byte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9252NISTXML-SV-II-atomic-byte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9253NISTXML-SV-II-atomic-byte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9254NISTXML-SV-II-atomic-byte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9255NISTSchema-SV-II-atomic-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="9256NISTXML-SV-II-atomic-byte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9257NISTXML-SV-II-atomic-byte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9258NISTXML-SV-II-atomic-byte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9259NISTXML-SV-II-atomic-byte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9260NISTXML-SV-II-atomic-byte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9261NISTSchema-SV-II-atomic-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="9262NISTXML-SV-II-atomic-byte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9263NISTXML-SV-II-atomic-byte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9264NISTXML-SV-II-atomic-byte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9265NISTXML-SV-II-atomic-byte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9266NISTXML-SV-II-atomic-byte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9267NISTSchema-SV-II-atomic-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="9268NISTXML-SV-II-atomic-byte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9269NISTXML-SV-II-atomic-byte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9270NISTXML-SV-II-atomic-byte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9271NISTXML-SV-II-atomic-byte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9272NISTXML-SV-II-atomic-byte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9273NISTSchema-SV-II-atomic-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="9274NISTXML-SV-II-atomic-byte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9275NISTXML-SV-II-atomic-byte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9276NISTXML-SV-II-atomic-byte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9277NISTXML-SV-II-atomic-byte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9278NISTXML-SV-II-atomic-byte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9279NISTSchema-SV-II-atomic-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="9280NISTXML-SV-II-atomic-byte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9281NISTXML-SV-II-atomic-byte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9282NISTXML-SV-II-atomic-byte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9283NISTXML-SV-II-atomic-byte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9284NISTXML-SV-II-atomic-byte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9285NISTSchema-SV-II-atomic-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="9286NISTXML-SV-II-atomic-byte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9287NISTXML-SV-II-atomic-byte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9288NISTXML-SV-II-atomic-byte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9289NISTXML-SV-II-atomic-byte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9290NISTXML-SV-II-atomic-byte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9291NISTSchema-SV-II-atomic-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="9292NISTXML-SV-II-atomic-byte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9293NISTXML-SV-II-atomic-byte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9294NISTXML-SV-II-atomic-byte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9295NISTXML-SV-II-atomic-byte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9296NISTXML-SV-II-atomic-byte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9297NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9298NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9299NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9300NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9301NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9302NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9303NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9304NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9305NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9306NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9307NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9308NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9309NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9310NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9311NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9312NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9313NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9314NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9315NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9316NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9317NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9318NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9319NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9320NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9321NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9322NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9323NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9324NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9325NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9326NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9327NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9328NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9329NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9330NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9331NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9332NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9333NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9334NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9335NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9336NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9337NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9338NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9339NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9340NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9341NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9342NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9343NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9344NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9345NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9346NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9347NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9348NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9349NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="9350NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9351NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9352NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9353NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9354NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9355NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="9356NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9357NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9358NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9359NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9360NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9361NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="9362NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9363NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9364NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9365NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9366NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9367NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="9368NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9369NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9370NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9371NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9372NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9373NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="9374NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9375NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9376NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9377NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9378NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9379NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="9380NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9381NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9382NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9383NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9384NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9385NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="9386NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9387NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9388NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9389NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9390NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9391NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="9392NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9393NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9394NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9395NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9396NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9397NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="9398NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9399NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9400NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9401NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9402NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9403NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="9404NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9405NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9406NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9407NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9408NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9409NISTSchema-SV-II-atomic-unsignedLong-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9410NISTXML-SV-II-atomic-unsignedLong-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9411NISTSchema-SV-II-atomic-unsignedLong-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9412NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9413NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9414NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9415NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9416NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9417NISTSchema-SV-II-atomic-unsignedLong-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9418NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9419NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9420NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9421NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9422NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9423NISTSchema-SV-II-atomic-unsignedLong-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9424NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9425NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9426NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9427NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9428NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9429NISTSchema-SV-II-atomic-unsignedLong-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9430NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9431NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9432NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9433NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9434NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9435NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9436NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9437NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9438NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9439NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9440NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9441NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9442NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9443NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9444NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9445NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9446NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9447NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9448NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9449NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9450NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9451NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9452NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9453NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9454NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9455NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9456NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9457NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9458NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9459NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9460NISTXML-SV-II-atomic-unsignedLong-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9461NISTSchema-SV-II-atomic-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="9462NISTXML-SV-II-atomic-unsignedLong-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9463NISTXML-SV-II-atomic-unsignedLong-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9464NISTXML-SV-II-atomic-unsignedLong-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9465NISTXML-SV-II-atomic-unsignedLong-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9466NISTXML-SV-II-atomic-unsignedLong-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9467NISTSchema-SV-II-atomic-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="9468NISTXML-SV-II-atomic-unsignedLong-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9469NISTXML-SV-II-atomic-unsignedLong-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9470NISTXML-SV-II-atomic-unsignedLong-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9471NISTXML-SV-II-atomic-unsignedLong-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9472NISTXML-SV-II-atomic-unsignedLong-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9473NISTSchema-SV-II-atomic-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="9474NISTXML-SV-II-atomic-unsignedLong-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9475NISTXML-SV-II-atomic-unsignedLong-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9476NISTXML-SV-II-atomic-unsignedLong-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9477NISTXML-SV-II-atomic-unsignedLong-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9478NISTXML-SV-II-atomic-unsignedLong-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9479NISTSchema-SV-II-atomic-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="9480NISTXML-SV-II-atomic-unsignedLong-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9481NISTXML-SV-II-atomic-unsignedLong-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9482NISTXML-SV-II-atomic-unsignedLong-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9483NISTXML-SV-II-atomic-unsignedLong-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9484NISTXML-SV-II-atomic-unsignedLong-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9485NISTSchema-SV-II-atomic-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="9486NISTXML-SV-II-atomic-unsignedLong-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9487NISTXML-SV-II-atomic-unsignedLong-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9488NISTXML-SV-II-atomic-unsignedLong-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9489NISTXML-SV-II-atomic-unsignedLong-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9490NISTXML-SV-II-atomic-unsignedLong-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9491NISTSchema-SV-II-atomic-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="9492NISTXML-SV-II-atomic-unsignedLong-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9493NISTXML-SV-II-atomic-unsignedLong-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9494NISTXML-SV-II-atomic-unsignedLong-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9495NISTXML-SV-II-atomic-unsignedLong-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9496NISTXML-SV-II-atomic-unsignedLong-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9497NISTSchema-SV-II-atomic-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="9498NISTXML-SV-II-atomic-unsignedLong-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9499NISTXML-SV-II-atomic-unsignedLong-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9500NISTXML-SV-II-atomic-unsignedLong-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9501NISTXML-SV-II-atomic-unsignedLong-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9502NISTXML-SV-II-atomic-unsignedLong-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9503NISTSchema-SV-II-atomic-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="9504NISTXML-SV-II-atomic-unsignedLong-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9505NISTXML-SV-II-atomic-unsignedLong-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9506NISTXML-SV-II-atomic-unsignedLong-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9507NISTXML-SV-II-atomic-unsignedLong-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9508NISTXML-SV-II-atomic-unsignedLong-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9509NISTSchema-SV-II-atomic-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="9510NISTXML-SV-II-atomic-unsignedLong-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9511NISTXML-SV-II-atomic-unsignedLong-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9512NISTXML-SV-II-atomic-unsignedLong-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9513NISTXML-SV-II-atomic-unsignedLong-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9514NISTXML-SV-II-atomic-unsignedLong-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9515NISTSchema-SV-II-atomic-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="9516NISTXML-SV-II-atomic-unsignedLong-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9517NISTXML-SV-II-atomic-unsignedLong-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9518NISTXML-SV-II-atomic-unsignedLong-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9519NISTXML-SV-II-atomic-unsignedLong-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9520NISTXML-SV-II-atomic-unsignedLong-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9521NISTSchema-SV-II-atomic-unsignedInt-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9522NISTXML-SV-II-atomic-unsignedInt-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9523NISTSchema-SV-II-atomic-unsignedInt-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9524NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9525NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9526NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9527NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9528NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9529NISTSchema-SV-II-atomic-unsignedInt-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9530NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9531NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9532NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9533NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9534NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9535NISTSchema-SV-II-atomic-unsignedInt-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9536NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9537NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9538NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9539NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9540NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9541NISTSchema-SV-II-atomic-unsignedInt-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9542NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9543NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9544NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9545NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9546NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9547NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9548NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9549NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9550NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9551NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9552NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9553NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9554NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9555NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9556NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9557NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9558NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9559NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9560NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9561NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9562NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9563NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9564NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9565NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9566NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9567NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9568NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9569NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9570NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9571NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9572NISTXML-SV-II-atomic-unsignedInt-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9573NISTSchema-SV-II-atomic-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="9574NISTXML-SV-II-atomic-unsignedInt-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9575NISTXML-SV-II-atomic-unsignedInt-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9576NISTXML-SV-II-atomic-unsignedInt-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9577NISTXML-SV-II-atomic-unsignedInt-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9578NISTXML-SV-II-atomic-unsignedInt-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9579NISTSchema-SV-II-atomic-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="9580NISTXML-SV-II-atomic-unsignedInt-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9581NISTXML-SV-II-atomic-unsignedInt-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9582NISTXML-SV-II-atomic-unsignedInt-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9583NISTXML-SV-II-atomic-unsignedInt-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9584NISTXML-SV-II-atomic-unsignedInt-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9585NISTSchema-SV-II-atomic-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="9586NISTXML-SV-II-atomic-unsignedInt-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9587NISTXML-SV-II-atomic-unsignedInt-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9588NISTXML-SV-II-atomic-unsignedInt-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9589NISTXML-SV-II-atomic-unsignedInt-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9590NISTXML-SV-II-atomic-unsignedInt-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9591NISTSchema-SV-II-atomic-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="9592NISTXML-SV-II-atomic-unsignedInt-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9593NISTXML-SV-II-atomic-unsignedInt-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9594NISTXML-SV-II-atomic-unsignedInt-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9595NISTXML-SV-II-atomic-unsignedInt-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9596NISTXML-SV-II-atomic-unsignedInt-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9597NISTSchema-SV-II-atomic-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="9598NISTXML-SV-II-atomic-unsignedInt-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9599NISTXML-SV-II-atomic-unsignedInt-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9600NISTXML-SV-II-atomic-unsignedInt-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9601NISTXML-SV-II-atomic-unsignedInt-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9602NISTXML-SV-II-atomic-unsignedInt-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9603NISTSchema-SV-II-atomic-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="9604NISTXML-SV-II-atomic-unsignedInt-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9605NISTXML-SV-II-atomic-unsignedInt-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9606NISTXML-SV-II-atomic-unsignedInt-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9607NISTXML-SV-II-atomic-unsignedInt-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9608NISTXML-SV-II-atomic-unsignedInt-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9609NISTSchema-SV-II-atomic-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="9610NISTXML-SV-II-atomic-unsignedInt-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9611NISTXML-SV-II-atomic-unsignedInt-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9612NISTXML-SV-II-atomic-unsignedInt-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9613NISTXML-SV-II-atomic-unsignedInt-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9614NISTXML-SV-II-atomic-unsignedInt-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9615NISTSchema-SV-II-atomic-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="9616NISTXML-SV-II-atomic-unsignedInt-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9617NISTXML-SV-II-atomic-unsignedInt-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9618NISTXML-SV-II-atomic-unsignedInt-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9619NISTXML-SV-II-atomic-unsignedInt-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9620NISTXML-SV-II-atomic-unsignedInt-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9621NISTSchema-SV-II-atomic-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="9622NISTXML-SV-II-atomic-unsignedInt-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9623NISTXML-SV-II-atomic-unsignedInt-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9624NISTXML-SV-II-atomic-unsignedInt-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9625NISTXML-SV-II-atomic-unsignedInt-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9626NISTXML-SV-II-atomic-unsignedInt-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9627NISTSchema-SV-II-atomic-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="9628NISTXML-SV-II-atomic-unsignedInt-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9629NISTXML-SV-II-atomic-unsignedInt-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9630NISTXML-SV-II-atomic-unsignedInt-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9631NISTXML-SV-II-atomic-unsignedInt-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9632NISTXML-SV-II-atomic-unsignedInt-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9633NISTSchema-SV-II-atomic-unsignedShort-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9634NISTXML-SV-II-atomic-unsignedShort-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9635NISTSchema-SV-II-atomic-unsignedShort-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9636NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9637NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9638NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9639NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9640NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9641NISTSchema-SV-II-atomic-unsignedShort-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9642NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9643NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9644NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9645NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9646NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9647NISTSchema-SV-II-atomic-unsignedShort-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9648NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9649NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9650NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9651NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9652NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9653NISTSchema-SV-II-atomic-unsignedShort-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9654NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9655NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9656NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9657NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9658NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9659NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9660NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9661NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9662NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9663NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9664NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9665NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9666NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9667NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9668NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9669NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9670NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9671NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9672NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9673NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9674NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9675NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9676NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9677NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9678NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9679NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9680NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9681NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9682NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9683NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9684NISTXML-SV-II-atomic-unsignedShort-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9685NISTSchema-SV-II-atomic-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="9686NISTXML-SV-II-atomic-unsignedShort-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9687NISTXML-SV-II-atomic-unsignedShort-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9688NISTXML-SV-II-atomic-unsignedShort-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9689NISTXML-SV-II-atomic-unsignedShort-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9690NISTXML-SV-II-atomic-unsignedShort-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9691NISTSchema-SV-II-atomic-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="9692NISTXML-SV-II-atomic-unsignedShort-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9693NISTXML-SV-II-atomic-unsignedShort-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9694NISTXML-SV-II-atomic-unsignedShort-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9695NISTXML-SV-II-atomic-unsignedShort-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9696NISTXML-SV-II-atomic-unsignedShort-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9697NISTSchema-SV-II-atomic-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="9698NISTXML-SV-II-atomic-unsignedShort-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9699NISTXML-SV-II-atomic-unsignedShort-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9700NISTXML-SV-II-atomic-unsignedShort-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9701NISTXML-SV-II-atomic-unsignedShort-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9702NISTXML-SV-II-atomic-unsignedShort-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9703NISTSchema-SV-II-atomic-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="9704NISTXML-SV-II-atomic-unsignedShort-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9705NISTXML-SV-II-atomic-unsignedShort-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9706NISTXML-SV-II-atomic-unsignedShort-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9707NISTXML-SV-II-atomic-unsignedShort-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9708NISTXML-SV-II-atomic-unsignedShort-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9709NISTSchema-SV-II-atomic-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="9710NISTXML-SV-II-atomic-unsignedShort-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9711NISTXML-SV-II-atomic-unsignedShort-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9712NISTXML-SV-II-atomic-unsignedShort-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9713NISTXML-SV-II-atomic-unsignedShort-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9714NISTXML-SV-II-atomic-unsignedShort-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9715NISTSchema-SV-II-atomic-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="9716NISTXML-SV-II-atomic-unsignedShort-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9717NISTXML-SV-II-atomic-unsignedShort-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9718NISTXML-SV-II-atomic-unsignedShort-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9719NISTXML-SV-II-atomic-unsignedShort-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9720NISTXML-SV-II-atomic-unsignedShort-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9721NISTSchema-SV-II-atomic-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="9722NISTXML-SV-II-atomic-unsignedShort-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9723NISTXML-SV-II-atomic-unsignedShort-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9724NISTXML-SV-II-atomic-unsignedShort-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9725NISTXML-SV-II-atomic-unsignedShort-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9726NISTXML-SV-II-atomic-unsignedShort-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9727NISTSchema-SV-II-atomic-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="9728NISTXML-SV-II-atomic-unsignedShort-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9729NISTXML-SV-II-atomic-unsignedShort-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9730NISTXML-SV-II-atomic-unsignedShort-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9731NISTXML-SV-II-atomic-unsignedShort-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9732NISTXML-SV-II-atomic-unsignedShort-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9733NISTSchema-SV-II-atomic-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="9734NISTXML-SV-II-atomic-unsignedShort-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9735NISTXML-SV-II-atomic-unsignedShort-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9736NISTXML-SV-II-atomic-unsignedShort-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9737NISTXML-SV-II-atomic-unsignedShort-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9738NISTXML-SV-II-atomic-unsignedShort-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9739NISTSchema-SV-II-atomic-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="9740NISTXML-SV-II-atomic-unsignedShort-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9741NISTXML-SV-II-atomic-unsignedShort-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9742NISTXML-SV-II-atomic-unsignedShort-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9743NISTXML-SV-II-atomic-unsignedShort-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9744NISTXML-SV-II-atomic-unsignedShort-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9745NISTSchema-SV-II-atomic-unsignedByte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9746NISTXML-SV-II-atomic-unsignedByte-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9747NISTSchema-SV-II-atomic-unsignedByte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9748NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9749NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9750NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9751NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9752NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9753NISTSchema-SV-II-atomic-unsignedByte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9754NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9755NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9756NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9757NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9758NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9759NISTSchema-SV-II-atomic-unsignedByte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9760NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9761NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9762NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9763NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9764NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9765NISTSchema-SV-II-atomic-unsignedByte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9766NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9767NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9768NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9769NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9770NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9771NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9772NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9773NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9774NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9775NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9776NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9777NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9778NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9779NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9780NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9781NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9782NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9783NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9784NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9785NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9786NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9787NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9788NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9789NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9790NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9791NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9792NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9793NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9794NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9795NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9796NISTXML-SV-II-atomic-unsignedByte-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9797NISTSchema-SV-II-atomic-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="9798NISTXML-SV-II-atomic-unsignedByte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9799NISTXML-SV-II-atomic-unsignedByte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9800NISTXML-SV-II-atomic-unsignedByte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9801NISTXML-SV-II-atomic-unsignedByte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9802NISTXML-SV-II-atomic-unsignedByte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9803NISTSchema-SV-II-atomic-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="9804NISTXML-SV-II-atomic-unsignedByte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9805NISTXML-SV-II-atomic-unsignedByte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9806NISTXML-SV-II-atomic-unsignedByte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9807NISTXML-SV-II-atomic-unsignedByte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9808NISTXML-SV-II-atomic-unsignedByte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9809NISTSchema-SV-II-atomic-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="9810NISTXML-SV-II-atomic-unsignedByte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9811NISTXML-SV-II-atomic-unsignedByte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9812NISTXML-SV-II-atomic-unsignedByte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9813NISTXML-SV-II-atomic-unsignedByte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9814NISTXML-SV-II-atomic-unsignedByte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9815NISTSchema-SV-II-atomic-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="9816NISTXML-SV-II-atomic-unsignedByte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9817NISTXML-SV-II-atomic-unsignedByte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9818NISTXML-SV-II-atomic-unsignedByte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9819NISTXML-SV-II-atomic-unsignedByte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9820NISTXML-SV-II-atomic-unsignedByte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9821NISTSchema-SV-II-atomic-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="9822NISTXML-SV-II-atomic-unsignedByte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9823NISTXML-SV-II-atomic-unsignedByte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9824NISTXML-SV-II-atomic-unsignedByte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9825NISTXML-SV-II-atomic-unsignedByte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9826NISTXML-SV-II-atomic-unsignedByte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9827NISTSchema-SV-II-atomic-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="9828NISTXML-SV-II-atomic-unsignedByte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9829NISTXML-SV-II-atomic-unsignedByte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9830NISTXML-SV-II-atomic-unsignedByte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9831NISTXML-SV-II-atomic-unsignedByte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9832NISTXML-SV-II-atomic-unsignedByte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9833NISTSchema-SV-II-atomic-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="9834NISTXML-SV-II-atomic-unsignedByte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9835NISTXML-SV-II-atomic-unsignedByte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9836NISTXML-SV-II-atomic-unsignedByte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9837NISTXML-SV-II-atomic-unsignedByte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9838NISTXML-SV-II-atomic-unsignedByte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9839NISTSchema-SV-II-atomic-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="9840NISTXML-SV-II-atomic-unsignedByte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9841NISTXML-SV-II-atomic-unsignedByte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9842NISTXML-SV-II-atomic-unsignedByte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9843NISTXML-SV-II-atomic-unsignedByte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9844NISTXML-SV-II-atomic-unsignedByte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9845NISTSchema-SV-II-atomic-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="9846NISTXML-SV-II-atomic-unsignedByte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9847NISTXML-SV-II-atomic-unsignedByte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9848NISTXML-SV-II-atomic-unsignedByte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9849NISTXML-SV-II-atomic-unsignedByte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9850NISTXML-SV-II-atomic-unsignedByte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9851NISTSchema-SV-II-atomic-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="9852NISTXML-SV-II-atomic-unsignedByte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9853NISTXML-SV-II-atomic-unsignedByte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9854NISTXML-SV-II-atomic-unsignedByte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9855NISTXML-SV-II-atomic-unsignedByte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9856NISTXML-SV-II-atomic-unsignedByte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9857NISTSchema-SV-II-atomic-positiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9858NISTXML-SV-II-atomic-positiveInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9859NISTSchema-SV-II-atomic-positiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9860NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9861NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9862NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9863NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9864NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9865NISTSchema-SV-II-atomic-positiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9866NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9867NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9868NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9869NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9870NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9871NISTSchema-SV-II-atomic-positiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9872NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9873NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9874NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9875NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9876NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9877NISTSchema-SV-II-atomic-positiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9878NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9879NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9880NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9881NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9882NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9883NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9884NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9885NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9886NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9887NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9888NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9889NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9890NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9891NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9892NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9893NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9894NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9895NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9896NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9897NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9898NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9899NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9900NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9901NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9902NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9903NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9904NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9905NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9906NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9907NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9908NISTXML-SV-II-atomic-positiveInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9909NISTSchema-SV-II-atomic-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="9910NISTXML-SV-II-atomic-positiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9911NISTXML-SV-II-atomic-positiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9912NISTXML-SV-II-atomic-positiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9913NISTXML-SV-II-atomic-positiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9914NISTXML-SV-II-atomic-positiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9915NISTSchema-SV-II-atomic-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="9916NISTXML-SV-II-atomic-positiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9917NISTXML-SV-II-atomic-positiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9918NISTXML-SV-II-atomic-positiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9919NISTXML-SV-II-atomic-positiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9920NISTXML-SV-II-atomic-positiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9921NISTSchema-SV-II-atomic-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="9922NISTXML-SV-II-atomic-positiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9923NISTXML-SV-II-atomic-positiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9924NISTXML-SV-II-atomic-positiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9925NISTXML-SV-II-atomic-positiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9926NISTXML-SV-II-atomic-positiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9927NISTSchema-SV-II-atomic-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="9928NISTXML-SV-II-atomic-positiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9929NISTXML-SV-II-atomic-positiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9930NISTXML-SV-II-atomic-positiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9931NISTXML-SV-II-atomic-positiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9932NISTXML-SV-II-atomic-positiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9933NISTSchema-SV-II-atomic-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="9934NISTXML-SV-II-atomic-positiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9935NISTXML-SV-II-atomic-positiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9936NISTXML-SV-II-atomic-positiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9937NISTXML-SV-II-atomic-positiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9938NISTXML-SV-II-atomic-positiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9939NISTSchema-SV-II-atomic-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="9940NISTXML-SV-II-atomic-positiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9941NISTXML-SV-II-atomic-positiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9942NISTXML-SV-II-atomic-positiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9943NISTXML-SV-II-atomic-positiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9944NISTXML-SV-II-atomic-positiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9945NISTSchema-SV-II-atomic-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="9946NISTXML-SV-II-atomic-positiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9947NISTXML-SV-II-atomic-positiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9948NISTXML-SV-II-atomic-positiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9949NISTXML-SV-II-atomic-positiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9950NISTXML-SV-II-atomic-positiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9951NISTSchema-SV-II-atomic-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="9952NISTXML-SV-II-atomic-positiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9953NISTXML-SV-II-atomic-positiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9954NISTXML-SV-II-atomic-positiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9955NISTXML-SV-II-atomic-positiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9956NISTXML-SV-II-atomic-positiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9957NISTSchema-SV-II-atomic-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="9958NISTXML-SV-II-atomic-positiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9959NISTXML-SV-II-atomic-positiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9960NISTXML-SV-II-atomic-positiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9961NISTXML-SV-II-atomic-positiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9962NISTXML-SV-II-atomic-positiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9963NISTSchema-SV-II-atomic-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="9964NISTXML-SV-II-atomic-positiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9965NISTXML-SV-II-atomic-positiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9966NISTXML-SV-II-atomic-positiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9967NISTXML-SV-II-atomic-positiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9968NISTXML-SV-II-atomic-positiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9969NISTSchema-SV-II-atomic-duration-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9970NISTXML-SV-II-atomic-duration-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9971NISTSchema-SV-II-atomic-duration-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9972NISTXML-SV-II-atomic-duration-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9973NISTXML-SV-II-atomic-duration-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9974NISTXML-SV-II-atomic-duration-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9975NISTXML-SV-II-atomic-duration-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9976NISTXML-SV-II-atomic-duration-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9977NISTSchema-SV-II-atomic-duration-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9978NISTXML-SV-II-atomic-duration-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9979NISTXML-SV-II-atomic-duration-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9980NISTXML-SV-II-atomic-duration-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9981NISTXML-SV-II-atomic-duration-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9982NISTXML-SV-II-atomic-duration-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9983NISTSchema-SV-II-atomic-duration-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9984NISTXML-SV-II-atomic-duration-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9985NISTXML-SV-II-atomic-duration-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9986NISTXML-SV-II-atomic-duration-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9987NISTXML-SV-II-atomic-duration-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9988NISTXML-SV-II-atomic-duration-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9989NISTSchema-SV-II-atomic-duration-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9990NISTXML-SV-II-atomic-duration-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9991NISTXML-SV-II-atomic-duration-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9992NISTXML-SV-II-atomic-duration-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9993NISTXML-SV-II-atomic-duration-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9994NISTXML-SV-II-atomic-duration-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9995NISTSchema-SV-II-atomic-duration-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9996NISTXML-SV-II-atomic-duration-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9997NISTXML-SV-II-atomic-duration-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9998NISTXML-SV-II-atomic-duration-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9999NISTXML-SV-II-atomic-duration-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10000NISTXML-SV-II-atomic-duration-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10001NISTSchema-SV-II-atomic-duration-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10002NISTXML-SV-II-atomic-duration-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10003NISTXML-SV-II-atomic-duration-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10004NISTXML-SV-II-atomic-duration-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10005NISTXML-SV-II-atomic-duration-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10006NISTXML-SV-II-atomic-duration-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10007NISTSchema-SV-II-atomic-duration-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10008NISTXML-SV-II-atomic-duration-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10009NISTXML-SV-II-atomic-duration-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10010NISTXML-SV-II-atomic-duration-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10011NISTXML-SV-II-atomic-duration-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10012NISTXML-SV-II-atomic-duration-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10013NISTSchema-SV-II-atomic-duration-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10014NISTXML-SV-II-atomic-duration-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10015NISTXML-SV-II-atomic-duration-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10016NISTXML-SV-II-atomic-duration-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10017NISTXML-SV-II-atomic-duration-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10018NISTXML-SV-II-atomic-duration-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10019NISTSchema-SV-II-atomic-duration-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10020NISTXML-SV-II-atomic-duration-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10021NISTSchema-SV-II-atomic-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="10022NISTXML-SV-II-atomic-duration-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10023NISTXML-SV-II-atomic-duration-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10024NISTXML-SV-II-atomic-duration-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10025NISTXML-SV-II-atomic-duration-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10026NISTXML-SV-II-atomic-duration-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10027NISTSchema-SV-II-atomic-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="10028NISTXML-SV-II-atomic-duration-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10029NISTXML-SV-II-atomic-duration-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10030NISTXML-SV-II-atomic-duration-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10031NISTXML-SV-II-atomic-duration-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10032NISTXML-SV-II-atomic-duration-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10033NISTSchema-SV-II-atomic-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="10034NISTXML-SV-II-atomic-duration-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10035NISTXML-SV-II-atomic-duration-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10036NISTXML-SV-II-atomic-duration-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10037NISTXML-SV-II-atomic-duration-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10038NISTXML-SV-II-atomic-duration-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10039NISTSchema-SV-II-atomic-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="10040NISTXML-SV-II-atomic-duration-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10041NISTXML-SV-II-atomic-duration-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10042NISTXML-SV-II-atomic-duration-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10043NISTXML-SV-II-atomic-duration-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10044NISTXML-SV-II-atomic-duration-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10045NISTSchema-SV-II-atomic-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="10046NISTXML-SV-II-atomic-duration-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10047NISTXML-SV-II-atomic-duration-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10048NISTXML-SV-II-atomic-duration-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10049NISTXML-SV-II-atomic-duration-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10050NISTXML-SV-II-atomic-duration-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10051NISTSchema-SV-II-atomic-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="10052NISTXML-SV-II-atomic-duration-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10053NISTXML-SV-II-atomic-duration-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10054NISTXML-SV-II-atomic-duration-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10055NISTXML-SV-II-atomic-duration-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10056NISTXML-SV-II-atomic-duration-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10057NISTSchema-SV-II-atomic-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="10058NISTXML-SV-II-atomic-duration-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10059NISTXML-SV-II-atomic-duration-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10060NISTXML-SV-II-atomic-duration-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10061NISTXML-SV-II-atomic-duration-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10062NISTXML-SV-II-atomic-duration-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10063NISTSchema-SV-II-atomic-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="10064NISTXML-SV-II-atomic-duration-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10065NISTXML-SV-II-atomic-duration-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10066NISTXML-SV-II-atomic-duration-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10067NISTXML-SV-II-atomic-duration-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10068NISTXML-SV-II-atomic-duration-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10069NISTSchema-SV-II-atomic-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="10070NISTXML-SV-II-atomic-duration-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10071NISTXML-SV-II-atomic-duration-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10072NISTXML-SV-II-atomic-duration-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10073NISTXML-SV-II-atomic-duration-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10074NISTXML-SV-II-atomic-duration-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10075NISTSchema-SV-II-atomic-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="10076NISTXML-SV-II-atomic-duration-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10077NISTXML-SV-II-atomic-duration-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10078NISTXML-SV-II-atomic-duration-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10079NISTXML-SV-II-atomic-duration-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10080NISTXML-SV-II-atomic-duration-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10081NISTSchema-SV-II-atomic-dateTime-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10082NISTXML-SV-II-atomic-dateTime-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10083NISTSchema-SV-II-atomic-dateTime-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10084NISTXML-SV-II-atomic-dateTime-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10085NISTXML-SV-II-atomic-dateTime-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10086NISTXML-SV-II-atomic-dateTime-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10087NISTXML-SV-II-atomic-dateTime-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10088NISTXML-SV-II-atomic-dateTime-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10089NISTSchema-SV-II-atomic-dateTime-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10090NISTXML-SV-II-atomic-dateTime-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10091NISTXML-SV-II-atomic-dateTime-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10092NISTXML-SV-II-atomic-dateTime-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10093NISTXML-SV-II-atomic-dateTime-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10094NISTXML-SV-II-atomic-dateTime-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10095NISTSchema-SV-II-atomic-dateTime-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10096NISTXML-SV-II-atomic-dateTime-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10097NISTXML-SV-II-atomic-dateTime-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10098NISTXML-SV-II-atomic-dateTime-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10099NISTXML-SV-II-atomic-dateTime-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10100NISTXML-SV-II-atomic-dateTime-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10101NISTSchema-SV-II-atomic-dateTime-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10102NISTXML-SV-II-atomic-dateTime-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10103NISTXML-SV-II-atomic-dateTime-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10104NISTXML-SV-II-atomic-dateTime-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10105NISTXML-SV-II-atomic-dateTime-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10106NISTXML-SV-II-atomic-dateTime-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10107NISTSchema-SV-II-atomic-dateTime-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10108NISTXML-SV-II-atomic-dateTime-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10109NISTXML-SV-II-atomic-dateTime-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10110NISTXML-SV-II-atomic-dateTime-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10111NISTXML-SV-II-atomic-dateTime-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10112NISTXML-SV-II-atomic-dateTime-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10113NISTSchema-SV-II-atomic-dateTime-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10114NISTXML-SV-II-atomic-dateTime-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10115NISTXML-SV-II-atomic-dateTime-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10116NISTXML-SV-II-atomic-dateTime-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10117NISTXML-SV-II-atomic-dateTime-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10118NISTXML-SV-II-atomic-dateTime-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10119NISTSchema-SV-II-atomic-dateTime-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10120NISTXML-SV-II-atomic-dateTime-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10121NISTXML-SV-II-atomic-dateTime-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10122NISTXML-SV-II-atomic-dateTime-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10123NISTXML-SV-II-atomic-dateTime-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10124NISTXML-SV-II-atomic-dateTime-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10125NISTSchema-SV-II-atomic-dateTime-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10126NISTXML-SV-II-atomic-dateTime-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10127NISTXML-SV-II-atomic-dateTime-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10128NISTXML-SV-II-atomic-dateTime-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10129NISTXML-SV-II-atomic-dateTime-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10130NISTXML-SV-II-atomic-dateTime-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10131NISTSchema-SV-II-atomic-dateTime-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10132NISTXML-SV-II-atomic-dateTime-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10133NISTSchema-SV-II-atomic-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="10134NISTXML-SV-II-atomic-dateTime-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10135NISTXML-SV-II-atomic-dateTime-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10136NISTXML-SV-II-atomic-dateTime-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10137NISTXML-SV-II-atomic-dateTime-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10138NISTXML-SV-II-atomic-dateTime-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10139NISTSchema-SV-II-atomic-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="10140NISTXML-SV-II-atomic-dateTime-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10141NISTXML-SV-II-atomic-dateTime-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10142NISTXML-SV-II-atomic-dateTime-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10143NISTXML-SV-II-atomic-dateTime-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10144NISTXML-SV-II-atomic-dateTime-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10145NISTSchema-SV-II-atomic-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="10146NISTXML-SV-II-atomic-dateTime-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10147NISTXML-SV-II-atomic-dateTime-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10148NISTXML-SV-II-atomic-dateTime-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10149NISTXML-SV-II-atomic-dateTime-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10150NISTXML-SV-II-atomic-dateTime-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10151NISTSchema-SV-II-atomic-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="10152NISTXML-SV-II-atomic-dateTime-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10153NISTXML-SV-II-atomic-dateTime-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10154NISTXML-SV-II-atomic-dateTime-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10155NISTXML-SV-II-atomic-dateTime-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10156NISTXML-SV-II-atomic-dateTime-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10157NISTSchema-SV-II-atomic-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="10158NISTXML-SV-II-atomic-dateTime-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10159NISTXML-SV-II-atomic-dateTime-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10160NISTXML-SV-II-atomic-dateTime-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10161NISTXML-SV-II-atomic-dateTime-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10162NISTXML-SV-II-atomic-dateTime-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10163NISTSchema-SV-II-atomic-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="10164NISTXML-SV-II-atomic-dateTime-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10165NISTXML-SV-II-atomic-dateTime-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10166NISTXML-SV-II-atomic-dateTime-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10167NISTXML-SV-II-atomic-dateTime-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10168NISTXML-SV-II-atomic-dateTime-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10169NISTSchema-SV-II-atomic-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="10170NISTXML-SV-II-atomic-dateTime-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10171NISTXML-SV-II-atomic-dateTime-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10172NISTXML-SV-II-atomic-dateTime-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10173NISTXML-SV-II-atomic-dateTime-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10174NISTXML-SV-II-atomic-dateTime-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10175NISTSchema-SV-II-atomic-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="10176NISTXML-SV-II-atomic-dateTime-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10177NISTXML-SV-II-atomic-dateTime-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10178NISTXML-SV-II-atomic-dateTime-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10179NISTXML-SV-II-atomic-dateTime-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10180NISTXML-SV-II-atomic-dateTime-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10181NISTSchema-SV-II-atomic-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="10182NISTXML-SV-II-atomic-dateTime-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10183NISTXML-SV-II-atomic-dateTime-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10184NISTXML-SV-II-atomic-dateTime-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10185NISTXML-SV-II-atomic-dateTime-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10186NISTXML-SV-II-atomic-dateTime-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10187NISTSchema-SV-II-atomic-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="10188NISTXML-SV-II-atomic-dateTime-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10189NISTXML-SV-II-atomic-dateTime-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10190NISTXML-SV-II-atomic-dateTime-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10191NISTXML-SV-II-atomic-dateTime-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10192NISTXML-SV-II-atomic-dateTime-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10193NISTSchema-SV-II-atomic-time-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10194NISTXML-SV-II-atomic-time-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10195NISTSchema-SV-II-atomic-time-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10196NISTXML-SV-II-atomic-time-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10197NISTXML-SV-II-atomic-time-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10198NISTXML-SV-II-atomic-time-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10199NISTXML-SV-II-atomic-time-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10200NISTXML-SV-II-atomic-time-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10201NISTSchema-SV-II-atomic-time-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10202NISTXML-SV-II-atomic-time-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10203NISTXML-SV-II-atomic-time-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10204NISTXML-SV-II-atomic-time-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10205NISTXML-SV-II-atomic-time-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10206NISTXML-SV-II-atomic-time-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10207NISTSchema-SV-II-atomic-time-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10208NISTXML-SV-II-atomic-time-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10209NISTXML-SV-II-atomic-time-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10210NISTXML-SV-II-atomic-time-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10211NISTXML-SV-II-atomic-time-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10212NISTXML-SV-II-atomic-time-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10213NISTSchema-SV-II-atomic-time-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10214NISTXML-SV-II-atomic-time-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10215NISTXML-SV-II-atomic-time-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10216NISTXML-SV-II-atomic-time-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10217NISTXML-SV-II-atomic-time-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10218NISTXML-SV-II-atomic-time-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10219NISTSchema-SV-II-atomic-time-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10220NISTXML-SV-II-atomic-time-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10221NISTXML-SV-II-atomic-time-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10222NISTXML-SV-II-atomic-time-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10223NISTXML-SV-II-atomic-time-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10224NISTXML-SV-II-atomic-time-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10225NISTSchema-SV-II-atomic-time-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10226NISTXML-SV-II-atomic-time-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10227NISTXML-SV-II-atomic-time-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10228NISTXML-SV-II-atomic-time-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10229NISTXML-SV-II-atomic-time-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10230NISTXML-SV-II-atomic-time-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10231NISTSchema-SV-II-atomic-time-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10232NISTXML-SV-II-atomic-time-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10233NISTXML-SV-II-atomic-time-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10234NISTXML-SV-II-atomic-time-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10235NISTXML-SV-II-atomic-time-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10236NISTXML-SV-II-atomic-time-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10237NISTSchema-SV-II-atomic-time-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10238NISTXML-SV-II-atomic-time-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10239NISTXML-SV-II-atomic-time-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10240NISTXML-SV-II-atomic-time-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10241NISTXML-SV-II-atomic-time-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10242NISTXML-SV-II-atomic-time-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10243NISTSchema-SV-II-atomic-time-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10244NISTXML-SV-II-atomic-time-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10245NISTSchema-SV-II-atomic-time-pattern-1 tokoe:valid" result="pass"/><test-case name="10246NISTXML-SV-II-atomic-time-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10247NISTXML-SV-II-atomic-time-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10248NISTXML-SV-II-atomic-time-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10249NISTXML-SV-II-atomic-time-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10250NISTXML-SV-II-atomic-time-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10251NISTSchema-SV-II-atomic-time-pattern-2 tokoe:valid" result="pass"/><test-case name="10252NISTXML-SV-II-atomic-time-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10253NISTXML-SV-II-atomic-time-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10254NISTXML-SV-II-atomic-time-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10255NISTXML-SV-II-atomic-time-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10256NISTXML-SV-II-atomic-time-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10257NISTSchema-SV-II-atomic-time-pattern-3 tokoe:valid" result="pass"/><test-case name="10258NISTXML-SV-II-atomic-time-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10259NISTXML-SV-II-atomic-time-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10260NISTXML-SV-II-atomic-time-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10261NISTXML-SV-II-atomic-time-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10262NISTXML-SV-II-atomic-time-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10263NISTSchema-SV-II-atomic-time-pattern-4 tokoe:valid" result="pass"/><test-case name="10264NISTXML-SV-II-atomic-time-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10265NISTXML-SV-II-atomic-time-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10266NISTXML-SV-II-atomic-time-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10267NISTXML-SV-II-atomic-time-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10268NISTXML-SV-II-atomic-time-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10269NISTSchema-SV-II-atomic-time-pattern-5 tokoe:valid" result="pass"/><test-case name="10270NISTXML-SV-II-atomic-time-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10271NISTXML-SV-II-atomic-time-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10272NISTXML-SV-II-atomic-time-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10273NISTXML-SV-II-atomic-time-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10274NISTXML-SV-II-atomic-time-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10275NISTSchema-SV-II-atomic-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="10276NISTXML-SV-II-atomic-time-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10277NISTXML-SV-II-atomic-time-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10278NISTXML-SV-II-atomic-time-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10279NISTXML-SV-II-atomic-time-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10280NISTXML-SV-II-atomic-time-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10281NISTSchema-SV-II-atomic-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="10282NISTXML-SV-II-atomic-time-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10283NISTXML-SV-II-atomic-time-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10284NISTXML-SV-II-atomic-time-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10285NISTXML-SV-II-atomic-time-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10286NISTXML-SV-II-atomic-time-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10287NISTSchema-SV-II-atomic-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="10288NISTXML-SV-II-atomic-time-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10289NISTXML-SV-II-atomic-time-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10290NISTXML-SV-II-atomic-time-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10291NISTXML-SV-II-atomic-time-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10292NISTXML-SV-II-atomic-time-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10293NISTSchema-SV-II-atomic-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="10294NISTXML-SV-II-atomic-time-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10295NISTXML-SV-II-atomic-time-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10296NISTXML-SV-II-atomic-time-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10297NISTXML-SV-II-atomic-time-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10298NISTXML-SV-II-atomic-time-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10299NISTSchema-SV-II-atomic-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="10300NISTXML-SV-II-atomic-time-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10301NISTXML-SV-II-atomic-time-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10302NISTXML-SV-II-atomic-time-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10303NISTXML-SV-II-atomic-time-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10304NISTXML-SV-II-atomic-time-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10305NISTSchema-SV-II-atomic-date-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10306NISTXML-SV-II-atomic-date-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10307NISTSchema-SV-II-atomic-date-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10308NISTXML-SV-II-atomic-date-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10309NISTXML-SV-II-atomic-date-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10310NISTXML-SV-II-atomic-date-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10311NISTXML-SV-II-atomic-date-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10312NISTXML-SV-II-atomic-date-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10313NISTSchema-SV-II-atomic-date-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10314NISTXML-SV-II-atomic-date-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10315NISTXML-SV-II-atomic-date-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10316NISTXML-SV-II-atomic-date-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10317NISTXML-SV-II-atomic-date-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10318NISTXML-SV-II-atomic-date-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10319NISTSchema-SV-II-atomic-date-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10320NISTXML-SV-II-atomic-date-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10321NISTXML-SV-II-atomic-date-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10322NISTXML-SV-II-atomic-date-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10323NISTXML-SV-II-atomic-date-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10324NISTXML-SV-II-atomic-date-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10325NISTSchema-SV-II-atomic-date-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10326NISTXML-SV-II-atomic-date-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10327NISTXML-SV-II-atomic-date-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10328NISTXML-SV-II-atomic-date-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10329NISTXML-SV-II-atomic-date-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10330NISTXML-SV-II-atomic-date-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10331NISTSchema-SV-II-atomic-date-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10332NISTXML-SV-II-atomic-date-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10333NISTXML-SV-II-atomic-date-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10334NISTXML-SV-II-atomic-date-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10335NISTXML-SV-II-atomic-date-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10336NISTXML-SV-II-atomic-date-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10337NISTSchema-SV-II-atomic-date-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10338NISTXML-SV-II-atomic-date-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10339NISTXML-SV-II-atomic-date-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10340NISTXML-SV-II-atomic-date-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10341NISTXML-SV-II-atomic-date-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10342NISTXML-SV-II-atomic-date-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10343NISTSchema-SV-II-atomic-date-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10344NISTXML-SV-II-atomic-date-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10345NISTXML-SV-II-atomic-date-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10346NISTXML-SV-II-atomic-date-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10347NISTXML-SV-II-atomic-date-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10348NISTXML-SV-II-atomic-date-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10349NISTSchema-SV-II-atomic-date-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10350NISTXML-SV-II-atomic-date-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10351NISTXML-SV-II-atomic-date-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10352NISTXML-SV-II-atomic-date-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10353NISTXML-SV-II-atomic-date-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10354NISTXML-SV-II-atomic-date-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10355NISTSchema-SV-II-atomic-date-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10356NISTXML-SV-II-atomic-date-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10357NISTSchema-SV-II-atomic-date-pattern-1 tokoe:valid" result="pass"/><test-case name="10358NISTXML-SV-II-atomic-date-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10359NISTXML-SV-II-atomic-date-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10360NISTXML-SV-II-atomic-date-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10361NISTXML-SV-II-atomic-date-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10362NISTXML-SV-II-atomic-date-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10363NISTSchema-SV-II-atomic-date-pattern-2 tokoe:valid" result="pass"/><test-case name="10364NISTXML-SV-II-atomic-date-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10365NISTXML-SV-II-atomic-date-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10366NISTXML-SV-II-atomic-date-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10367NISTXML-SV-II-atomic-date-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10368NISTXML-SV-II-atomic-date-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10369NISTSchema-SV-II-atomic-date-pattern-3 tokoe:valid" result="pass"/><test-case name="10370NISTXML-SV-II-atomic-date-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10371NISTXML-SV-II-atomic-date-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10372NISTXML-SV-II-atomic-date-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10373NISTXML-SV-II-atomic-date-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10374NISTXML-SV-II-atomic-date-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10375NISTSchema-SV-II-atomic-date-pattern-4 tokoe:valid" result="pass"/><test-case name="10376NISTXML-SV-II-atomic-date-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10377NISTXML-SV-II-atomic-date-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10378NISTXML-SV-II-atomic-date-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10379NISTXML-SV-II-atomic-date-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10380NISTXML-SV-II-atomic-date-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10381NISTSchema-SV-II-atomic-date-pattern-5 tokoe:valid" result="pass"/><test-case name="10382NISTXML-SV-II-atomic-date-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10383NISTXML-SV-II-atomic-date-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10384NISTXML-SV-II-atomic-date-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10385NISTXML-SV-II-atomic-date-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10386NISTXML-SV-II-atomic-date-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10387NISTSchema-SV-II-atomic-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="10388NISTXML-SV-II-atomic-date-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10389NISTXML-SV-II-atomic-date-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10390NISTXML-SV-II-atomic-date-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10391NISTXML-SV-II-atomic-date-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10392NISTXML-SV-II-atomic-date-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10393NISTSchema-SV-II-atomic-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="10394NISTXML-SV-II-atomic-date-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10395NISTXML-SV-II-atomic-date-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10396NISTXML-SV-II-atomic-date-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10397NISTXML-SV-II-atomic-date-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10398NISTXML-SV-II-atomic-date-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10399NISTSchema-SV-II-atomic-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="10400NISTXML-SV-II-atomic-date-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10401NISTXML-SV-II-atomic-date-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10402NISTXML-SV-II-atomic-date-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10403NISTXML-SV-II-atomic-date-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10404NISTXML-SV-II-atomic-date-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10405NISTSchema-SV-II-atomic-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="10406NISTXML-SV-II-atomic-date-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10407NISTXML-SV-II-atomic-date-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10408NISTXML-SV-II-atomic-date-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10409NISTXML-SV-II-atomic-date-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10410NISTXML-SV-II-atomic-date-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10411NISTSchema-SV-II-atomic-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="10412NISTXML-SV-II-atomic-date-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10413NISTXML-SV-II-atomic-date-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10414NISTXML-SV-II-atomic-date-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10415NISTXML-SV-II-atomic-date-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10416NISTXML-SV-II-atomic-date-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10417NISTSchema-SV-II-atomic-gYearMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10418NISTXML-SV-II-atomic-gYearMonth-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10419NISTSchema-SV-II-atomic-gYearMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10420NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10421NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10422NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10423NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10424NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10425NISTSchema-SV-II-atomic-gYearMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10426NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10427NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10428NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10429NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10430NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10431NISTSchema-SV-II-atomic-gYearMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10432NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10433NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10434NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10435NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10436NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10437NISTSchema-SV-II-atomic-gYearMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10438NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10439NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10440NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10441NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10442NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10443NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10444NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10445NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10446NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10447NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10448NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10449NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10450NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10451NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10452NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10453NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10454NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10455NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10456NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10457NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10458NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10459NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10460NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10461NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10462NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10463NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10464NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10465NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10466NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10467NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10468NISTXML-SV-II-atomic-gYearMonth-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10469NISTSchema-SV-II-atomic-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="10470NISTXML-SV-II-atomic-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10471NISTXML-SV-II-atomic-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10472NISTXML-SV-II-atomic-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10473NISTXML-SV-II-atomic-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10474NISTXML-SV-II-atomic-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10475NISTSchema-SV-II-atomic-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="10476NISTXML-SV-II-atomic-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10477NISTXML-SV-II-atomic-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10478NISTXML-SV-II-atomic-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10479NISTXML-SV-II-atomic-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10480NISTXML-SV-II-atomic-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10481NISTSchema-SV-II-atomic-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="10482NISTXML-SV-II-atomic-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10483NISTXML-SV-II-atomic-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10484NISTXML-SV-II-atomic-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10485NISTXML-SV-II-atomic-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10486NISTXML-SV-II-atomic-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10487NISTSchema-SV-II-atomic-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="10488NISTXML-SV-II-atomic-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10489NISTXML-SV-II-atomic-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10490NISTXML-SV-II-atomic-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10491NISTXML-SV-II-atomic-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10492NISTXML-SV-II-atomic-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10493NISTSchema-SV-II-atomic-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="10494NISTXML-SV-II-atomic-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10495NISTXML-SV-II-atomic-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10496NISTXML-SV-II-atomic-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10497NISTXML-SV-II-atomic-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10498NISTXML-SV-II-atomic-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10499NISTSchema-SV-II-atomic-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="10500NISTXML-SV-II-atomic-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10501NISTXML-SV-II-atomic-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10502NISTXML-SV-II-atomic-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10503NISTXML-SV-II-atomic-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10504NISTXML-SV-II-atomic-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10505NISTSchema-SV-II-atomic-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="10506NISTXML-SV-II-atomic-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10507NISTXML-SV-II-atomic-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10508NISTXML-SV-II-atomic-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10509NISTXML-SV-II-atomic-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10510NISTXML-SV-II-atomic-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10511NISTSchema-SV-II-atomic-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="10512NISTXML-SV-II-atomic-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10513NISTXML-SV-II-atomic-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10514NISTXML-SV-II-atomic-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10515NISTXML-SV-II-atomic-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10516NISTXML-SV-II-atomic-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10517NISTSchema-SV-II-atomic-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="10518NISTXML-SV-II-atomic-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10519NISTXML-SV-II-atomic-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10520NISTXML-SV-II-atomic-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10521NISTXML-SV-II-atomic-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10522NISTXML-SV-II-atomic-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10523NISTSchema-SV-II-atomic-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="10524NISTXML-SV-II-atomic-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10525NISTXML-SV-II-atomic-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10526NISTXML-SV-II-atomic-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10527NISTXML-SV-II-atomic-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10528NISTXML-SV-II-atomic-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10529NISTSchema-SV-II-atomic-gYear-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10530NISTXML-SV-II-atomic-gYear-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10531NISTSchema-SV-II-atomic-gYear-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10532NISTXML-SV-II-atomic-gYear-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10533NISTXML-SV-II-atomic-gYear-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10534NISTXML-SV-II-atomic-gYear-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10535NISTXML-SV-II-atomic-gYear-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10536NISTXML-SV-II-atomic-gYear-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10537NISTSchema-SV-II-atomic-gYear-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10538NISTXML-SV-II-atomic-gYear-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10539NISTXML-SV-II-atomic-gYear-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10540NISTXML-SV-II-atomic-gYear-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10541NISTXML-SV-II-atomic-gYear-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10542NISTXML-SV-II-atomic-gYear-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10543NISTSchema-SV-II-atomic-gYear-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10544NISTXML-SV-II-atomic-gYear-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10545NISTXML-SV-II-atomic-gYear-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10546NISTXML-SV-II-atomic-gYear-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10547NISTXML-SV-II-atomic-gYear-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10548NISTXML-SV-II-atomic-gYear-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10549NISTSchema-SV-II-atomic-gYear-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10550NISTXML-SV-II-atomic-gYear-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10551NISTXML-SV-II-atomic-gYear-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10552NISTXML-SV-II-atomic-gYear-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10553NISTXML-SV-II-atomic-gYear-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10554NISTXML-SV-II-atomic-gYear-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10555NISTSchema-SV-II-atomic-gYear-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10556NISTXML-SV-II-atomic-gYear-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10557NISTXML-SV-II-atomic-gYear-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10558NISTXML-SV-II-atomic-gYear-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10559NISTXML-SV-II-atomic-gYear-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10560NISTXML-SV-II-atomic-gYear-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10561NISTSchema-SV-II-atomic-gYear-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10562NISTXML-SV-II-atomic-gYear-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10563NISTXML-SV-II-atomic-gYear-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10564NISTXML-SV-II-atomic-gYear-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10565NISTXML-SV-II-atomic-gYear-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10566NISTXML-SV-II-atomic-gYear-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10567NISTSchema-SV-II-atomic-gYear-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10568NISTXML-SV-II-atomic-gYear-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10569NISTXML-SV-II-atomic-gYear-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10570NISTXML-SV-II-atomic-gYear-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10571NISTXML-SV-II-atomic-gYear-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10572NISTXML-SV-II-atomic-gYear-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10573NISTSchema-SV-II-atomic-gYear-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10574NISTXML-SV-II-atomic-gYear-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10575NISTXML-SV-II-atomic-gYear-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10576NISTXML-SV-II-atomic-gYear-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10577NISTXML-SV-II-atomic-gYear-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10578NISTXML-SV-II-atomic-gYear-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10579NISTSchema-SV-II-atomic-gYear-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10580NISTXML-SV-II-atomic-gYear-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10581NISTSchema-SV-II-atomic-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="10582NISTXML-SV-II-atomic-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10583NISTXML-SV-II-atomic-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10584NISTXML-SV-II-atomic-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10585NISTXML-SV-II-atomic-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10586NISTXML-SV-II-atomic-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10587NISTSchema-SV-II-atomic-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="10588NISTXML-SV-II-atomic-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10589NISTXML-SV-II-atomic-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10590NISTXML-SV-II-atomic-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10591NISTXML-SV-II-atomic-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10592NISTXML-SV-II-atomic-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10593NISTSchema-SV-II-atomic-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="10594NISTXML-SV-II-atomic-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10595NISTXML-SV-II-atomic-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10596NISTXML-SV-II-atomic-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10597NISTXML-SV-II-atomic-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10598NISTXML-SV-II-atomic-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10599NISTSchema-SV-II-atomic-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="10600NISTXML-SV-II-atomic-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10601NISTXML-SV-II-atomic-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10602NISTXML-SV-II-atomic-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10603NISTXML-SV-II-atomic-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10604NISTXML-SV-II-atomic-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10605NISTSchema-SV-II-atomic-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="10606NISTXML-SV-II-atomic-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10607NISTXML-SV-II-atomic-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10608NISTXML-SV-II-atomic-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10609NISTXML-SV-II-atomic-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10610NISTXML-SV-II-atomic-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10611NISTSchema-SV-II-atomic-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="10612NISTXML-SV-II-atomic-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10613NISTXML-SV-II-atomic-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10614NISTXML-SV-II-atomic-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10615NISTXML-SV-II-atomic-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10616NISTXML-SV-II-atomic-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10617NISTSchema-SV-II-atomic-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="10618NISTXML-SV-II-atomic-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10619NISTXML-SV-II-atomic-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10620NISTXML-SV-II-atomic-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10621NISTXML-SV-II-atomic-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10622NISTXML-SV-II-atomic-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10623NISTSchema-SV-II-atomic-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="10624NISTXML-SV-II-atomic-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10625NISTXML-SV-II-atomic-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10626NISTXML-SV-II-atomic-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10627NISTXML-SV-II-atomic-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10628NISTXML-SV-II-atomic-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10629NISTSchema-SV-II-atomic-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="10630NISTXML-SV-II-atomic-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10631NISTXML-SV-II-atomic-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10632NISTXML-SV-II-atomic-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10633NISTXML-SV-II-atomic-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10634NISTXML-SV-II-atomic-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10635NISTSchema-SV-II-atomic-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="10636NISTXML-SV-II-atomic-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10637NISTXML-SV-II-atomic-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10638NISTXML-SV-II-atomic-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10639NISTXML-SV-II-atomic-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10640NISTXML-SV-II-atomic-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10641NISTSchema-SV-II-atomic-gMonthDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10642NISTXML-SV-II-atomic-gMonthDay-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10643NISTSchema-SV-II-atomic-gMonthDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10644NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10645NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10646NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10647NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10648NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10649NISTSchema-SV-II-atomic-gMonthDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10650NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10651NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10652NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10653NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10654NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10655NISTSchema-SV-II-atomic-gMonthDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10656NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10657NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10658NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10659NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10660NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10661NISTSchema-SV-II-atomic-gMonthDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10662NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10663NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10664NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10665NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10666NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10667NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10668NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10669NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10670NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10671NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10672NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10673NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10674NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10675NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10676NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10677NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10678NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10679NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10680NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10681NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10682NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10683NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10684NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10685NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10686NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10687NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10688NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10689NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10690NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10691NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10692NISTXML-SV-II-atomic-gMonthDay-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10693NISTSchema-SV-II-atomic-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="10694NISTXML-SV-II-atomic-gMonthDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10695NISTXML-SV-II-atomic-gMonthDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10696NISTXML-SV-II-atomic-gMonthDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10697NISTXML-SV-II-atomic-gMonthDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10698NISTXML-SV-II-atomic-gMonthDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10699NISTSchema-SV-II-atomic-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="10700NISTXML-SV-II-atomic-gMonthDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10701NISTXML-SV-II-atomic-gMonthDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10702NISTXML-SV-II-atomic-gMonthDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10703NISTXML-SV-II-atomic-gMonthDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10704NISTXML-SV-II-atomic-gMonthDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10705NISTSchema-SV-II-atomic-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="10706NISTXML-SV-II-atomic-gMonthDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10707NISTXML-SV-II-atomic-gMonthDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10708NISTXML-SV-II-atomic-gMonthDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10709NISTXML-SV-II-atomic-gMonthDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10710NISTXML-SV-II-atomic-gMonthDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10711NISTSchema-SV-II-atomic-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="10712NISTXML-SV-II-atomic-gMonthDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10713NISTXML-SV-II-atomic-gMonthDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10714NISTXML-SV-II-atomic-gMonthDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10715NISTXML-SV-II-atomic-gMonthDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10716NISTXML-SV-II-atomic-gMonthDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10717NISTSchema-SV-II-atomic-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="10718NISTXML-SV-II-atomic-gMonthDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10719NISTXML-SV-II-atomic-gMonthDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10720NISTXML-SV-II-atomic-gMonthDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10721NISTXML-SV-II-atomic-gMonthDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10722NISTXML-SV-II-atomic-gMonthDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10723NISTSchema-SV-II-atomic-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="10724NISTXML-SV-II-atomic-gMonthDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10725NISTXML-SV-II-atomic-gMonthDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10726NISTXML-SV-II-atomic-gMonthDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10727NISTXML-SV-II-atomic-gMonthDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10728NISTXML-SV-II-atomic-gMonthDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10729NISTSchema-SV-II-atomic-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="10730NISTXML-SV-II-atomic-gMonthDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10731NISTXML-SV-II-atomic-gMonthDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10732NISTXML-SV-II-atomic-gMonthDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10733NISTXML-SV-II-atomic-gMonthDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10734NISTXML-SV-II-atomic-gMonthDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10735NISTSchema-SV-II-atomic-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="10736NISTXML-SV-II-atomic-gMonthDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10737NISTXML-SV-II-atomic-gMonthDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10738NISTXML-SV-II-atomic-gMonthDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10739NISTXML-SV-II-atomic-gMonthDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10740NISTXML-SV-II-atomic-gMonthDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10741NISTSchema-SV-II-atomic-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="10742NISTXML-SV-II-atomic-gMonthDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10743NISTXML-SV-II-atomic-gMonthDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10744NISTXML-SV-II-atomic-gMonthDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10745NISTXML-SV-II-atomic-gMonthDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10746NISTXML-SV-II-atomic-gMonthDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10747NISTSchema-SV-II-atomic-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="10748NISTXML-SV-II-atomic-gMonthDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10749NISTXML-SV-II-atomic-gMonthDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10750NISTXML-SV-II-atomic-gMonthDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10751NISTXML-SV-II-atomic-gMonthDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10752NISTXML-SV-II-atomic-gMonthDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10753NISTSchema-SV-II-atomic-gDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10754NISTXML-SV-II-atomic-gDay-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10755NISTSchema-SV-II-atomic-gDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10756NISTXML-SV-II-atomic-gDay-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10757NISTXML-SV-II-atomic-gDay-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10758NISTXML-SV-II-atomic-gDay-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10759NISTXML-SV-II-atomic-gDay-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10760NISTXML-SV-II-atomic-gDay-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10761NISTSchema-SV-II-atomic-gDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10762NISTXML-SV-II-atomic-gDay-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10763NISTXML-SV-II-atomic-gDay-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10764NISTXML-SV-II-atomic-gDay-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10765NISTXML-SV-II-atomic-gDay-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10766NISTXML-SV-II-atomic-gDay-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10767NISTSchema-SV-II-atomic-gDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10768NISTXML-SV-II-atomic-gDay-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10769NISTXML-SV-II-atomic-gDay-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10770NISTXML-SV-II-atomic-gDay-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10771NISTXML-SV-II-atomic-gDay-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10772NISTXML-SV-II-atomic-gDay-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10773NISTSchema-SV-II-atomic-gDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10774NISTXML-SV-II-atomic-gDay-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10775NISTXML-SV-II-atomic-gDay-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10776NISTXML-SV-II-atomic-gDay-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10777NISTXML-SV-II-atomic-gDay-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10778NISTXML-SV-II-atomic-gDay-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10779NISTSchema-SV-II-atomic-gDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10780NISTXML-SV-II-atomic-gDay-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10781NISTXML-SV-II-atomic-gDay-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10782NISTXML-SV-II-atomic-gDay-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10783NISTXML-SV-II-atomic-gDay-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10784NISTXML-SV-II-atomic-gDay-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10785NISTSchema-SV-II-atomic-gDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10786NISTXML-SV-II-atomic-gDay-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10787NISTXML-SV-II-atomic-gDay-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10788NISTXML-SV-II-atomic-gDay-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10789NISTXML-SV-II-atomic-gDay-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10790NISTXML-SV-II-atomic-gDay-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10791NISTSchema-SV-II-atomic-gDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10792NISTXML-SV-II-atomic-gDay-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10793NISTXML-SV-II-atomic-gDay-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10794NISTXML-SV-II-atomic-gDay-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10795NISTXML-SV-II-atomic-gDay-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10796NISTXML-SV-II-atomic-gDay-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10797NISTSchema-SV-II-atomic-gDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10798NISTXML-SV-II-atomic-gDay-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10799NISTXML-SV-II-atomic-gDay-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10800NISTXML-SV-II-atomic-gDay-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10801NISTXML-SV-II-atomic-gDay-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10802NISTXML-SV-II-atomic-gDay-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10803NISTSchema-SV-II-atomic-gDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10804NISTXML-SV-II-atomic-gDay-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10805NISTSchema-SV-II-atomic-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="10806NISTXML-SV-II-atomic-gDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10807NISTXML-SV-II-atomic-gDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10808NISTXML-SV-II-atomic-gDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10809NISTXML-SV-II-atomic-gDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10810NISTXML-SV-II-atomic-gDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10811NISTSchema-SV-II-atomic-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="10812NISTXML-SV-II-atomic-gDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10813NISTXML-SV-II-atomic-gDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10814NISTXML-SV-II-atomic-gDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10815NISTXML-SV-II-atomic-gDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10816NISTXML-SV-II-atomic-gDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10817NISTSchema-SV-II-atomic-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="10818NISTXML-SV-II-atomic-gDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10819NISTXML-SV-II-atomic-gDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10820NISTXML-SV-II-atomic-gDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10821NISTXML-SV-II-atomic-gDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10822NISTXML-SV-II-atomic-gDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10823NISTSchema-SV-II-atomic-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="10824NISTXML-SV-II-atomic-gDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10825NISTXML-SV-II-atomic-gDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10826NISTXML-SV-II-atomic-gDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10827NISTXML-SV-II-atomic-gDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10828NISTXML-SV-II-atomic-gDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10829NISTSchema-SV-II-atomic-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="10830NISTXML-SV-II-atomic-gDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10831NISTXML-SV-II-atomic-gDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10832NISTXML-SV-II-atomic-gDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10833NISTXML-SV-II-atomic-gDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10834NISTXML-SV-II-atomic-gDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10835NISTSchema-SV-II-atomic-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="10836NISTXML-SV-II-atomic-gDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10837NISTXML-SV-II-atomic-gDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10838NISTXML-SV-II-atomic-gDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10839NISTXML-SV-II-atomic-gDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10840NISTXML-SV-II-atomic-gDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10841NISTSchema-SV-II-atomic-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="10842NISTXML-SV-II-atomic-gDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10843NISTXML-SV-II-atomic-gDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10844NISTXML-SV-II-atomic-gDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10845NISTXML-SV-II-atomic-gDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10846NISTXML-SV-II-atomic-gDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10847NISTSchema-SV-II-atomic-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="10848NISTXML-SV-II-atomic-gDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10849NISTXML-SV-II-atomic-gDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10850NISTXML-SV-II-atomic-gDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10851NISTXML-SV-II-atomic-gDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10852NISTXML-SV-II-atomic-gDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10853NISTSchema-SV-II-atomic-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="10854NISTXML-SV-II-atomic-gDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10855NISTXML-SV-II-atomic-gDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10856NISTXML-SV-II-atomic-gDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10857NISTXML-SV-II-atomic-gDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10858NISTXML-SV-II-atomic-gDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10859NISTSchema-SV-II-atomic-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="10860NISTXML-SV-II-atomic-gDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10861NISTXML-SV-II-atomic-gDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10862NISTXML-SV-II-atomic-gDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10863NISTXML-SV-II-atomic-gDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10864NISTXML-SV-II-atomic-gDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10865NISTSchema-SV-II-atomic-gMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10866NISTXML-SV-II-atomic-gMonth-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10867NISTSchema-SV-II-atomic-gMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10868NISTXML-SV-II-atomic-gMonth-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10869NISTXML-SV-II-atomic-gMonth-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10870NISTXML-SV-II-atomic-gMonth-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10871NISTXML-SV-II-atomic-gMonth-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10872NISTXML-SV-II-atomic-gMonth-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10873NISTSchema-SV-II-atomic-gMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10874NISTXML-SV-II-atomic-gMonth-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10875NISTSchema-SV-II-atomic-gMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10876NISTXML-SV-II-atomic-gMonth-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10877NISTXML-SV-II-atomic-gMonth-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10878NISTXML-SV-II-atomic-gMonth-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10879NISTXML-SV-II-atomic-gMonth-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10880NISTXML-SV-II-atomic-gMonth-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10881NISTSchema-SV-II-atomic-gMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10882NISTXML-SV-II-atomic-gMonth-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10883NISTXML-SV-II-atomic-gMonth-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10884NISTXML-SV-II-atomic-gMonth-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10885NISTXML-SV-II-atomic-gMonth-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10886NISTXML-SV-II-atomic-gMonth-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10887NISTSchema-SV-II-atomic-gMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10888NISTXML-SV-II-atomic-gMonth-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10889NISTXML-SV-II-atomic-gMonth-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10890NISTXML-SV-II-atomic-gMonth-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10891NISTXML-SV-II-atomic-gMonth-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10892NISTXML-SV-II-atomic-gMonth-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10893NISTSchema-SV-II-atomic-gMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10894NISTXML-SV-II-atomic-gMonth-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10895NISTXML-SV-II-atomic-gMonth-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10896NISTXML-SV-II-atomic-gMonth-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10897NISTXML-SV-II-atomic-gMonth-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10898NISTXML-SV-II-atomic-gMonth-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10899NISTSchema-SV-II-atomic-gMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10900NISTXML-SV-II-atomic-gMonth-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10901NISTXML-SV-II-atomic-gMonth-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10902NISTXML-SV-II-atomic-gMonth-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10903NISTXML-SV-II-atomic-gMonth-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10904NISTXML-SV-II-atomic-gMonth-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10905NISTSchema-SV-II-atomic-gMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10906NISTXML-SV-II-atomic-gMonth-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10907NISTXML-SV-II-atomic-gMonth-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10908NISTXML-SV-II-atomic-gMonth-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10909NISTXML-SV-II-atomic-gMonth-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10910NISTXML-SV-II-atomic-gMonth-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10911NISTSchema-SV-II-atomic-gMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10912NISTXML-SV-II-atomic-gMonth-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10913NISTSchema-SV-II-atomic-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="10914NISTXML-SV-II-atomic-gMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10915NISTXML-SV-II-atomic-gMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10916NISTXML-SV-II-atomic-gMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10917NISTXML-SV-II-atomic-gMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10918NISTXML-SV-II-atomic-gMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10919NISTSchema-SV-II-atomic-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="10920NISTXML-SV-II-atomic-gMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10921NISTXML-SV-II-atomic-gMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10922NISTXML-SV-II-atomic-gMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10923NISTXML-SV-II-atomic-gMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10924NISTXML-SV-II-atomic-gMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10925NISTSchema-SV-II-atomic-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="10926NISTXML-SV-II-atomic-gMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10927NISTXML-SV-II-atomic-gMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10928NISTXML-SV-II-atomic-gMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10929NISTXML-SV-II-atomic-gMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10930NISTXML-SV-II-atomic-gMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10931NISTSchema-SV-II-atomic-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="10932NISTXML-SV-II-atomic-gMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10933NISTXML-SV-II-atomic-gMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10934NISTXML-SV-II-atomic-gMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10935NISTXML-SV-II-atomic-gMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10936NISTXML-SV-II-atomic-gMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10937NISTSchema-SV-II-atomic-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="10938NISTXML-SV-II-atomic-gMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10939NISTXML-SV-II-atomic-gMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10940NISTXML-SV-II-atomic-gMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10941NISTXML-SV-II-atomic-gMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10942NISTXML-SV-II-atomic-gMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10943NISTSchema-SV-II-atomic-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="10944NISTXML-SV-II-atomic-gMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10945NISTXML-SV-II-atomic-gMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10946NISTXML-SV-II-atomic-gMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10947NISTXML-SV-II-atomic-gMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10948NISTXML-SV-II-atomic-gMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10949NISTSchema-SV-II-atomic-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="10950NISTXML-SV-II-atomic-gMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10951NISTXML-SV-II-atomic-gMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10952NISTXML-SV-II-atomic-gMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10953NISTXML-SV-II-atomic-gMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10954NISTXML-SV-II-atomic-gMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10955NISTSchema-SV-II-atomic-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="10956NISTXML-SV-II-atomic-gMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10957NISTXML-SV-II-atomic-gMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10958NISTXML-SV-II-atomic-gMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10959NISTXML-SV-II-atomic-gMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10960NISTXML-SV-II-atomic-gMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10961NISTSchema-SV-II-atomic-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="10962NISTXML-SV-II-atomic-gMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10963NISTXML-SV-II-atomic-gMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10964NISTXML-SV-II-atomic-gMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10965NISTXML-SV-II-atomic-gMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10966NISTXML-SV-II-atomic-gMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10967NISTSchema-SV-II-atomic-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="10968NISTXML-SV-II-atomic-gMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10969NISTXML-SV-II-atomic-gMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10970NISTXML-SV-II-atomic-gMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10971NISTXML-SV-II-atomic-gMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10972NISTXML-SV-II-atomic-gMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10973NISTSchema-SV-II-atomic-string-minLength-2 tokoe:valid" result="pass"/><test-case name="10974NISTXML-SV-II-atomic-string-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="10975NISTXML-SV-II-atomic-string-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="10976NISTXML-SV-II-atomic-string-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="10977NISTXML-SV-II-atomic-string-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="10978NISTXML-SV-II-atomic-string-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="10979NISTSchema-SV-II-atomic-string-minLength-3 tokoe:valid" result="pass"/><test-case name="10980NISTXML-SV-II-atomic-string-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="10981NISTXML-SV-II-atomic-string-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="10982NISTXML-SV-II-atomic-string-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="10983NISTXML-SV-II-atomic-string-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="10984NISTXML-SV-II-atomic-string-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="10985NISTSchema-SV-II-atomic-string-minLength-4 tokoe:valid" result="pass"/><test-case name="10986NISTXML-SV-II-atomic-string-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="10987NISTXML-SV-II-atomic-string-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="10988NISTXML-SV-II-atomic-string-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="10989NISTXML-SV-II-atomic-string-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="10990NISTXML-SV-II-atomic-string-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="10991NISTSchema-SV-II-atomic-string-minLength-5 tokoe:valid" result="pass"/><test-case name="10992NISTXML-SV-II-atomic-string-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="10993NISTXML-SV-II-atomic-string-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="10994NISTXML-SV-II-atomic-string-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="10995NISTXML-SV-II-atomic-string-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="10996NISTXML-SV-II-atomic-string-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="10997NISTSchema-SV-II-atomic-string-minLength-6 tokoe:valid" result="pass"/><test-case name="10998NISTXML-SV-II-atomic-string-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="10999NISTXML-SV-II-atomic-string-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11000NISTXML-SV-II-atomic-string-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11001NISTXML-SV-II-atomic-string-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11002NISTXML-SV-II-atomic-string-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11003NISTSchema-SV-II-atomic-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="11004NISTXML-SV-II-atomic-normalizedString-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11005NISTXML-SV-II-atomic-normalizedString-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11006NISTXML-SV-II-atomic-normalizedString-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11007NISTXML-SV-II-atomic-normalizedString-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11008NISTXML-SV-II-atomic-normalizedString-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11009NISTSchema-SV-II-atomic-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="11010NISTXML-SV-II-atomic-normalizedString-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11011NISTXML-SV-II-atomic-normalizedString-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11012NISTXML-SV-II-atomic-normalizedString-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11013NISTXML-SV-II-atomic-normalizedString-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11014NISTXML-SV-II-atomic-normalizedString-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11015NISTSchema-SV-II-atomic-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="11016NISTXML-SV-II-atomic-normalizedString-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11017NISTXML-SV-II-atomic-normalizedString-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11018NISTXML-SV-II-atomic-normalizedString-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11019NISTXML-SV-II-atomic-normalizedString-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11020NISTXML-SV-II-atomic-normalizedString-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11021NISTSchema-SV-II-atomic-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="11022NISTXML-SV-II-atomic-normalizedString-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11023NISTXML-SV-II-atomic-normalizedString-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11024NISTXML-SV-II-atomic-normalizedString-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11025NISTXML-SV-II-atomic-normalizedString-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11026NISTXML-SV-II-atomic-normalizedString-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11027NISTSchema-SV-II-atomic-normalizedString-minLength-6 tokoe:valid" result="pass"/><test-case name="11028NISTXML-SV-II-atomic-normalizedString-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11029NISTXML-SV-II-atomic-normalizedString-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11030NISTXML-SV-II-atomic-normalizedString-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11031NISTXML-SV-II-atomic-normalizedString-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11032NISTXML-SV-II-atomic-normalizedString-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11033NISTSchema-SV-II-atomic-token-minLength-2 tokoe:valid" result="pass"/><test-case name="11034NISTXML-SV-II-atomic-token-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11035NISTXML-SV-II-atomic-token-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11036NISTXML-SV-II-atomic-token-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11037NISTXML-SV-II-atomic-token-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11038NISTXML-SV-II-atomic-token-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11039NISTSchema-SV-II-atomic-token-minLength-3 tokoe:valid" result="pass"/><test-case name="11040NISTXML-SV-II-atomic-token-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11041NISTXML-SV-II-atomic-token-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11042NISTXML-SV-II-atomic-token-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11043NISTXML-SV-II-atomic-token-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11044NISTXML-SV-II-atomic-token-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11045NISTSchema-SV-II-atomic-token-minLength-4 tokoe:valid" result="pass"/><test-case name="11046NISTXML-SV-II-atomic-token-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11047NISTXML-SV-II-atomic-token-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11048NISTXML-SV-II-atomic-token-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11049NISTXML-SV-II-atomic-token-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11050NISTXML-SV-II-atomic-token-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11051NISTSchema-SV-II-atomic-token-minLength-5 tokoe:valid" result="pass"/><test-case name="11052NISTXML-SV-II-atomic-token-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11053NISTXML-SV-II-atomic-token-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11054NISTXML-SV-II-atomic-token-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11055NISTXML-SV-II-atomic-token-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11056NISTXML-SV-II-atomic-token-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11057NISTSchema-SV-II-atomic-token-minLength-6 tokoe:valid" result="pass"/><test-case name="11058NISTXML-SV-II-atomic-token-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11059NISTXML-SV-II-atomic-token-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11060NISTXML-SV-II-atomic-token-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11061NISTXML-SV-II-atomic-token-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11062NISTXML-SV-II-atomic-token-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11063NISTSchema-SV-II-atomic-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="11064NISTXML-SV-II-atomic-Name-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11065NISTXML-SV-II-atomic-Name-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11066NISTXML-SV-II-atomic-Name-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11067NISTXML-SV-II-atomic-Name-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11068NISTXML-SV-II-atomic-Name-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11069NISTSchema-SV-II-atomic-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="11070NISTXML-SV-II-atomic-Name-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11071NISTXML-SV-II-atomic-Name-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11072NISTXML-SV-II-atomic-Name-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11073NISTXML-SV-II-atomic-Name-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11074NISTXML-SV-II-atomic-Name-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11075NISTSchema-SV-II-atomic-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="11076NISTXML-SV-II-atomic-Name-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11077NISTXML-SV-II-atomic-Name-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11078NISTXML-SV-II-atomic-Name-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11079NISTXML-SV-II-atomic-Name-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11080NISTXML-SV-II-atomic-Name-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11081NISTSchema-SV-II-atomic-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="11082NISTXML-SV-II-atomic-Name-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11083NISTXML-SV-II-atomic-Name-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11084NISTXML-SV-II-atomic-Name-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11085NISTXML-SV-II-atomic-Name-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11086NISTXML-SV-II-atomic-Name-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11087NISTSchema-SV-II-atomic-Name-minLength-6 tokoe:valid" result="pass"/><test-case name="11088NISTXML-SV-II-atomic-Name-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11089NISTXML-SV-II-atomic-Name-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11090NISTXML-SV-II-atomic-Name-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11091NISTXML-SV-II-atomic-Name-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11092NISTXML-SV-II-atomic-Name-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11093NISTSchema-SV-II-atomic-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="11094NISTXML-SV-II-atomic-NMTOKEN-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11095NISTXML-SV-II-atomic-NMTOKEN-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11096NISTXML-SV-II-atomic-NMTOKEN-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11097NISTXML-SV-II-atomic-NMTOKEN-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11098NISTXML-SV-II-atomic-NMTOKEN-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11099NISTSchema-SV-II-atomic-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="11100NISTXML-SV-II-atomic-NMTOKEN-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11101NISTXML-SV-II-atomic-NMTOKEN-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11102NISTXML-SV-II-atomic-NMTOKEN-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11103NISTXML-SV-II-atomic-NMTOKEN-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11104NISTXML-SV-II-atomic-NMTOKEN-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11105NISTSchema-SV-II-atomic-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="11106NISTXML-SV-II-atomic-NMTOKEN-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11107NISTXML-SV-II-atomic-NMTOKEN-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11108NISTXML-SV-II-atomic-NMTOKEN-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11109NISTXML-SV-II-atomic-NMTOKEN-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11110NISTXML-SV-II-atomic-NMTOKEN-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11111NISTSchema-SV-II-atomic-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="11112NISTXML-SV-II-atomic-NMTOKEN-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11113NISTXML-SV-II-atomic-NMTOKEN-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11114NISTXML-SV-II-atomic-NMTOKEN-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11115NISTXML-SV-II-atomic-NMTOKEN-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11116NISTXML-SV-II-atomic-NMTOKEN-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11117NISTSchema-SV-II-atomic-NMTOKEN-minLength-6 tokoe:valid" result="pass"/><test-case name="11118NISTXML-SV-II-atomic-NMTOKEN-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11119NISTXML-SV-II-atomic-NMTOKEN-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11120NISTXML-SV-II-atomic-NMTOKEN-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11121NISTXML-SV-II-atomic-NMTOKEN-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11122NISTXML-SV-II-atomic-NMTOKEN-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11123NISTSchema-SV-II-atomic-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="11124NISTXML-SV-II-atomic-NCName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11125NISTXML-SV-II-atomic-NCName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11126NISTXML-SV-II-atomic-NCName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11127NISTXML-SV-II-atomic-NCName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11128NISTXML-SV-II-atomic-NCName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11129NISTSchema-SV-II-atomic-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="11130NISTXML-SV-II-atomic-NCName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11131NISTXML-SV-II-atomic-NCName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11132NISTXML-SV-II-atomic-NCName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11133NISTXML-SV-II-atomic-NCName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11134NISTXML-SV-II-atomic-NCName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11135NISTSchema-SV-II-atomic-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="11136NISTXML-SV-II-atomic-NCName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11137NISTXML-SV-II-atomic-NCName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11138NISTXML-SV-II-atomic-NCName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11139NISTXML-SV-II-atomic-NCName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11140NISTXML-SV-II-atomic-NCName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11141NISTSchema-SV-II-atomic-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="11142NISTXML-SV-II-atomic-NCName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11143NISTXML-SV-II-atomic-NCName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11144NISTXML-SV-II-atomic-NCName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11145NISTXML-SV-II-atomic-NCName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11146NISTXML-SV-II-atomic-NCName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11147NISTSchema-SV-II-atomic-NCName-minLength-6 tokoe:valid" result="pass"/><test-case name="11148NISTXML-SV-II-atomic-NCName-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11149NISTXML-SV-II-atomic-NCName-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11150NISTXML-SV-II-atomic-NCName-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11151NISTXML-SV-II-atomic-NCName-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11152NISTXML-SV-II-atomic-NCName-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11153NISTSchema-SV-II-atomic-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="11154NISTXML-SV-II-atomic-ID-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11155NISTXML-SV-II-atomic-ID-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11156NISTXML-SV-II-atomic-ID-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11157NISTXML-SV-II-atomic-ID-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11158NISTXML-SV-II-atomic-ID-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11159NISTSchema-SV-II-atomic-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="11160NISTXML-SV-II-atomic-ID-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11161NISTXML-SV-II-atomic-ID-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11162NISTXML-SV-II-atomic-ID-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11163NISTXML-SV-II-atomic-ID-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11164NISTXML-SV-II-atomic-ID-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11165NISTSchema-SV-II-atomic-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="11166NISTXML-SV-II-atomic-ID-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11167NISTXML-SV-II-atomic-ID-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11168NISTXML-SV-II-atomic-ID-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11169NISTXML-SV-II-atomic-ID-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11170NISTXML-SV-II-atomic-ID-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11171NISTSchema-SV-II-atomic-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="11172NISTXML-SV-II-atomic-ID-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11173NISTXML-SV-II-atomic-ID-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11174NISTXML-SV-II-atomic-ID-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11175NISTXML-SV-II-atomic-ID-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11176NISTXML-SV-II-atomic-ID-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11177NISTSchema-SV-II-atomic-ID-minLength-6 tokoe:valid" result="pass"/><test-case name="11178NISTXML-SV-II-atomic-ID-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11179NISTXML-SV-II-atomic-ID-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11180NISTXML-SV-II-atomic-ID-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11181NISTXML-SV-II-atomic-ID-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11182NISTXML-SV-II-atomic-ID-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11183NISTSchema-SV-II-atomic-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="11184NISTXML-SV-II-atomic-string-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11185NISTXML-SV-II-atomic-string-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11186NISTXML-SV-II-atomic-string-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11187NISTXML-SV-II-atomic-string-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11188NISTXML-SV-II-atomic-string-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11189NISTSchema-SV-II-atomic-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="11190NISTXML-SV-II-atomic-string-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11191NISTXML-SV-II-atomic-string-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11192NISTXML-SV-II-atomic-string-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11193NISTXML-SV-II-atomic-string-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11194NISTXML-SV-II-atomic-string-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11195NISTSchema-SV-II-atomic-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="11196NISTXML-SV-II-atomic-string-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11197NISTXML-SV-II-atomic-string-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11198NISTXML-SV-II-atomic-string-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11199NISTXML-SV-II-atomic-string-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11200NISTXML-SV-II-atomic-string-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11201NISTSchema-SV-II-atomic-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="11202NISTXML-SV-II-atomic-string-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11203NISTXML-SV-II-atomic-string-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11204NISTXML-SV-II-atomic-string-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11205NISTXML-SV-II-atomic-string-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11206NISTXML-SV-II-atomic-string-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11207NISTSchema-SV-II-atomic-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="11208NISTXML-SV-II-atomic-string-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11209NISTXML-SV-II-atomic-string-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11210NISTXML-SV-II-atomic-string-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11211NISTXML-SV-II-atomic-string-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11212NISTXML-SV-II-atomic-string-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11213NISTSchema-SV-II-atomic-string-length-1 tokoe:valid" result="pass"/><test-case name="11214NISTXML-SV-II-atomic-string-length-1-1 tokoe:invalid" result="pass"/><test-case name="11215NISTXML-SV-II-atomic-string-length-1-2 tokoe:invalid" result="pass"/><test-case name="11216NISTXML-SV-II-atomic-string-length-1-3 tokoe:invalid" result="pass"/><test-case name="11217NISTXML-SV-II-atomic-string-length-1-4 tokoe:invalid" result="pass"/><test-case name="11218NISTXML-SV-II-atomic-string-length-1-5 tokoe:invalid" result="pass"/><test-case name="11219NISTSchema-SV-II-atomic-string-length-2 tokoe:valid" result="pass"/><test-case name="11220NISTXML-SV-II-atomic-string-length-2-1 tokoe:invalid" result="pass"/><test-case name="11221NISTXML-SV-II-atomic-string-length-2-2 tokoe:invalid" result="pass"/><test-case name="11222NISTXML-SV-II-atomic-string-length-2-3 tokoe:invalid" result="pass"/><test-case name="11223NISTXML-SV-II-atomic-string-length-2-4 tokoe:invalid" result="pass"/><test-case name="11224NISTXML-SV-II-atomic-string-length-2-5 tokoe:invalid" result="pass"/><test-case name="11225NISTSchema-SV-II-atomic-string-length-3 tokoe:valid" result="pass"/><test-case name="11226NISTXML-SV-II-atomic-string-length-3-1 tokoe:invalid" result="pass"/><test-case name="11227NISTXML-SV-II-atomic-string-length-3-2 tokoe:invalid" result="pass"/><test-case name="11228NISTXML-SV-II-atomic-string-length-3-3 tokoe:invalid" result="pass"/><test-case name="11229NISTXML-SV-II-atomic-string-length-3-4 tokoe:invalid" result="pass"/><test-case name="11230NISTXML-SV-II-atomic-string-length-3-5 tokoe:invalid" result="pass"/><test-case name="11231NISTSchema-SV-II-atomic-string-length-4 tokoe:valid" result="pass"/><test-case name="11232NISTXML-SV-II-atomic-string-length-4-1 tokoe:invalid" result="pass"/><test-case name="11233NISTXML-SV-II-atomic-string-length-4-2 tokoe:invalid" result="pass"/><test-case name="11234NISTXML-SV-II-atomic-string-length-4-3 tokoe:invalid" result="pass"/><test-case name="11235NISTXML-SV-II-atomic-string-length-4-4 tokoe:invalid" result="pass"/><test-case name="11236NISTXML-SV-II-atomic-string-length-4-5 tokoe:invalid" result="pass"/><test-case name="11237NISTSchema-SV-II-atomic-string-length-5 tokoe:valid" result="pass"/><test-case name="11238NISTXML-SV-II-atomic-string-length-5-1 tokoe:invalid" result="pass"/><test-case name="11239NISTXML-SV-II-atomic-string-length-5-2 tokoe:invalid" result="pass"/><test-case name="11240NISTXML-SV-II-atomic-string-length-5-3 tokoe:invalid" result="pass"/><test-case name="11241NISTXML-SV-II-atomic-string-length-5-4 tokoe:invalid" result="pass"/><test-case name="11242NISTXML-SV-II-atomic-string-length-5-5 tokoe:invalid" result="pass"/><test-case name="11243NISTSchema-SV-II-atomic-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="11244NISTXML-SV-II-atomic-normalizedString-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11245NISTXML-SV-II-atomic-normalizedString-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11246NISTXML-SV-II-atomic-normalizedString-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11247NISTXML-SV-II-atomic-normalizedString-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11248NISTXML-SV-II-atomic-normalizedString-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11249NISTSchema-SV-II-atomic-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="11250NISTXML-SV-II-atomic-normalizedString-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11251NISTXML-SV-II-atomic-normalizedString-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11252NISTXML-SV-II-atomic-normalizedString-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11253NISTXML-SV-II-atomic-normalizedString-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11254NISTXML-SV-II-atomic-normalizedString-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11255NISTSchema-SV-II-atomic-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="11256NISTXML-SV-II-atomic-normalizedString-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11257NISTXML-SV-II-atomic-normalizedString-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11258NISTXML-SV-II-atomic-normalizedString-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11259NISTXML-SV-II-atomic-normalizedString-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11260NISTXML-SV-II-atomic-normalizedString-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11261NISTSchema-SV-II-atomic-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="11262NISTXML-SV-II-atomic-normalizedString-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11263NISTXML-SV-II-atomic-normalizedString-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11264NISTXML-SV-II-atomic-normalizedString-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11265NISTXML-SV-II-atomic-normalizedString-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11266NISTXML-SV-II-atomic-normalizedString-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11267NISTSchema-SV-II-atomic-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="11268NISTXML-SV-II-atomic-normalizedString-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11269NISTXML-SV-II-atomic-normalizedString-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11270NISTXML-SV-II-atomic-normalizedString-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11271NISTXML-SV-II-atomic-normalizedString-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11272NISTXML-SV-II-atomic-normalizedString-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11273NISTSchema-SV-II-atomic-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="11274NISTXML-SV-II-atomic-normalizedString-length-1-1 tokoe:invalid" result="pass"/><test-case name="11275NISTXML-SV-II-atomic-normalizedString-length-1-2 tokoe:invalid" result="pass"/><test-case name="11276NISTXML-SV-II-atomic-normalizedString-length-1-3 tokoe:invalid" result="pass"/><test-case name="11277NISTXML-SV-II-atomic-normalizedString-length-1-4 tokoe:invalid" result="pass"/><test-case name="11278NISTXML-SV-II-atomic-normalizedString-length-1-5 tokoe:invalid" result="pass"/><test-case name="11279NISTSchema-SV-II-atomic-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="11280NISTXML-SV-II-atomic-normalizedString-length-2-1 tokoe:invalid" result="pass"/><test-case name="11281NISTXML-SV-II-atomic-normalizedString-length-2-2 tokoe:invalid" result="pass"/><test-case name="11282NISTXML-SV-II-atomic-normalizedString-length-2-3 tokoe:invalid" result="pass"/><test-case name="11283NISTXML-SV-II-atomic-normalizedString-length-2-4 tokoe:invalid" result="pass"/><test-case name="11284NISTXML-SV-II-atomic-normalizedString-length-2-5 tokoe:invalid" result="pass"/><test-case name="11285NISTSchema-SV-II-atomic-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="11286NISTXML-SV-II-atomic-normalizedString-length-3-1 tokoe:invalid" result="pass"/><test-case name="11287NISTXML-SV-II-atomic-normalizedString-length-3-2 tokoe:invalid" result="pass"/><test-case name="11288NISTXML-SV-II-atomic-normalizedString-length-3-3 tokoe:invalid" result="pass"/><test-case name="11289NISTXML-SV-II-atomic-normalizedString-length-3-4 tokoe:invalid" result="pass"/><test-case name="11290NISTXML-SV-II-atomic-normalizedString-length-3-5 tokoe:invalid" result="pass"/><test-case name="11291NISTSchema-SV-II-atomic-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="11292NISTXML-SV-II-atomic-normalizedString-length-4-1 tokoe:invalid" result="pass"/><test-case name="11293NISTXML-SV-II-atomic-normalizedString-length-4-2 tokoe:invalid" result="pass"/><test-case name="11294NISTXML-SV-II-atomic-normalizedString-length-4-3 tokoe:invalid" result="pass"/><test-case name="11295NISTXML-SV-II-atomic-normalizedString-length-4-4 tokoe:invalid" result="pass"/><test-case name="11296NISTXML-SV-II-atomic-normalizedString-length-4-5 tokoe:invalid" result="pass"/><test-case name="11297NISTSchema-SV-II-atomic-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="11298NISTXML-SV-II-atomic-normalizedString-length-5-1 tokoe:invalid" result="pass"/><test-case name="11299NISTXML-SV-II-atomic-normalizedString-length-5-2 tokoe:invalid" result="pass"/><test-case name="11300NISTXML-SV-II-atomic-normalizedString-length-5-3 tokoe:invalid" result="pass"/><test-case name="11301NISTXML-SV-II-atomic-normalizedString-length-5-4 tokoe:invalid" result="pass"/><test-case name="11302NISTXML-SV-II-atomic-normalizedString-length-5-5 tokoe:invalid" result="pass"/><test-case name="11303NISTSchema-SV-II-atomic-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="11304NISTXML-SV-II-atomic-token-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11305NISTXML-SV-II-atomic-token-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11306NISTXML-SV-II-atomic-token-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11307NISTXML-SV-II-atomic-token-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11308NISTXML-SV-II-atomic-token-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11309NISTSchema-SV-II-atomic-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="11310NISTXML-SV-II-atomic-token-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11311NISTXML-SV-II-atomic-token-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11312NISTXML-SV-II-atomic-token-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11313NISTXML-SV-II-atomic-token-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11314NISTXML-SV-II-atomic-token-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11315NISTSchema-SV-II-atomic-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="11316NISTXML-SV-II-atomic-token-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11317NISTXML-SV-II-atomic-token-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11318NISTXML-SV-II-atomic-token-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11319NISTXML-SV-II-atomic-token-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11320NISTXML-SV-II-atomic-token-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11321NISTSchema-SV-II-atomic-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="11322NISTXML-SV-II-atomic-token-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11323NISTXML-SV-II-atomic-token-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11324NISTXML-SV-II-atomic-token-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11325NISTXML-SV-II-atomic-token-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11326NISTXML-SV-II-atomic-token-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11327NISTSchema-SV-II-atomic-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="11328NISTXML-SV-II-atomic-token-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11329NISTXML-SV-II-atomic-token-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11330NISTXML-SV-II-atomic-token-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11331NISTXML-SV-II-atomic-token-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11332NISTXML-SV-II-atomic-token-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11333NISTSchema-SV-II-atomic-token-length-1 tokoe:valid" result="pass"/><test-case name="11334NISTXML-SV-II-atomic-token-length-1-1 tokoe:invalid" result="pass"/><test-case name="11335NISTXML-SV-II-atomic-token-length-1-2 tokoe:invalid" result="pass"/><test-case name="11336NISTXML-SV-II-atomic-token-length-1-3 tokoe:invalid" result="pass"/><test-case name="11337NISTXML-SV-II-atomic-token-length-1-4 tokoe:invalid" result="pass"/><test-case name="11338NISTXML-SV-II-atomic-token-length-1-5 tokoe:invalid" result="pass"/><test-case name="11339NISTSchema-SV-II-atomic-token-length-2 tokoe:valid" result="pass"/><test-case name="11340NISTXML-SV-II-atomic-token-length-2-1 tokoe:invalid" result="pass"/><test-case name="11341NISTXML-SV-II-atomic-token-length-2-2 tokoe:invalid" result="pass"/><test-case name="11342NISTXML-SV-II-atomic-token-length-2-3 tokoe:invalid" result="pass"/><test-case name="11343NISTXML-SV-II-atomic-token-length-2-4 tokoe:invalid" result="pass"/><test-case name="11344NISTXML-SV-II-atomic-token-length-2-5 tokoe:invalid" result="pass"/><test-case name="11345NISTSchema-SV-II-atomic-token-length-3 tokoe:valid" result="pass"/><test-case name="11346NISTXML-SV-II-atomic-token-length-3-1 tokoe:invalid" result="pass"/><test-case name="11347NISTXML-SV-II-atomic-token-length-3-2 tokoe:invalid" result="pass"/><test-case name="11348NISTXML-SV-II-atomic-token-length-3-3 tokoe:invalid" result="pass"/><test-case name="11349NISTXML-SV-II-atomic-token-length-3-4 tokoe:invalid" result="pass"/><test-case name="11350NISTXML-SV-II-atomic-token-length-3-5 tokoe:invalid" result="pass"/><test-case name="11351NISTSchema-SV-II-atomic-token-length-4 tokoe:valid" result="pass"/><test-case name="11352NISTXML-SV-II-atomic-token-length-4-1 tokoe:invalid" result="pass"/><test-case name="11353NISTXML-SV-II-atomic-token-length-4-2 tokoe:invalid" result="pass"/><test-case name="11354NISTXML-SV-II-atomic-token-length-4-3 tokoe:invalid" result="pass"/><test-case name="11355NISTXML-SV-II-atomic-token-length-4-4 tokoe:invalid" result="pass"/><test-case name="11356NISTXML-SV-II-atomic-token-length-4-5 tokoe:invalid" result="pass"/><test-case name="11357NISTSchema-SV-II-atomic-token-length-5 tokoe:valid" result="pass"/><test-case name="11358NISTXML-SV-II-atomic-token-length-5-1 tokoe:invalid" result="pass"/><test-case name="11359NISTXML-SV-II-atomic-token-length-5-2 tokoe:invalid" result="pass"/><test-case name="11360NISTXML-SV-II-atomic-token-length-5-3 tokoe:invalid" result="pass"/><test-case name="11361NISTXML-SV-II-atomic-token-length-5-4 tokoe:invalid" result="pass"/><test-case name="11362NISTXML-SV-II-atomic-token-length-5-5 tokoe:invalid" result="pass"/><test-case name="11363NISTSchema-SV-II-atomic-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="11364NISTXML-SV-II-atomic-Name-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11365NISTXML-SV-II-atomic-Name-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11366NISTXML-SV-II-atomic-Name-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11367NISTXML-SV-II-atomic-Name-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11368NISTXML-SV-II-atomic-Name-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11369NISTSchema-SV-II-atomic-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="11370NISTXML-SV-II-atomic-Name-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11371NISTXML-SV-II-atomic-Name-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11372NISTXML-SV-II-atomic-Name-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11373NISTXML-SV-II-atomic-Name-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11374NISTXML-SV-II-atomic-Name-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11375NISTSchema-SV-II-atomic-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="11376NISTXML-SV-II-atomic-Name-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11377NISTXML-SV-II-atomic-Name-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11378NISTXML-SV-II-atomic-Name-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11379NISTXML-SV-II-atomic-Name-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11380NISTXML-SV-II-atomic-Name-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11381NISTSchema-SV-II-atomic-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="11382NISTXML-SV-II-atomic-Name-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11383NISTXML-SV-II-atomic-Name-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11384NISTXML-SV-II-atomic-Name-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11385NISTXML-SV-II-atomic-Name-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11386NISTXML-SV-II-atomic-Name-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11387NISTSchema-SV-II-atomic-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="11388NISTXML-SV-II-atomic-Name-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11389NISTXML-SV-II-atomic-Name-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11390NISTXML-SV-II-atomic-Name-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11391NISTXML-SV-II-atomic-Name-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11392NISTXML-SV-II-atomic-Name-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11393NISTSchema-SV-II-atomic-Name-length-1 tokoe:valid" result="pass"/><test-case name="11394NISTXML-SV-II-atomic-Name-length-1-1 tokoe:invalid" result="pass"/><test-case name="11395NISTXML-SV-II-atomic-Name-length-1-2 tokoe:invalid" result="pass"/><test-case name="11396NISTXML-SV-II-atomic-Name-length-1-3 tokoe:invalid" result="pass"/><test-case name="11397NISTXML-SV-II-atomic-Name-length-1-4 tokoe:invalid" result="pass"/><test-case name="11398NISTXML-SV-II-atomic-Name-length-1-5 tokoe:invalid" result="pass"/><test-case name="11399NISTSchema-SV-II-atomic-Name-length-2 tokoe:valid" result="pass"/><test-case name="11400NISTXML-SV-II-atomic-Name-length-2-1 tokoe:invalid" result="pass"/><test-case name="11401NISTXML-SV-II-atomic-Name-length-2-2 tokoe:invalid" result="pass"/><test-case name="11402NISTXML-SV-II-atomic-Name-length-2-3 tokoe:invalid" result="pass"/><test-case name="11403NISTXML-SV-II-atomic-Name-length-2-4 tokoe:invalid" result="pass"/><test-case name="11404NISTXML-SV-II-atomic-Name-length-2-5 tokoe:invalid" result="pass"/><test-case name="11405NISTSchema-SV-II-atomic-Name-length-3 tokoe:valid" result="pass"/><test-case name="11406NISTXML-SV-II-atomic-Name-length-3-1 tokoe:invalid" result="pass"/><test-case name="11407NISTXML-SV-II-atomic-Name-length-3-2 tokoe:invalid" result="pass"/><test-case name="11408NISTXML-SV-II-atomic-Name-length-3-3 tokoe:invalid" result="pass"/><test-case name="11409NISTXML-SV-II-atomic-Name-length-3-4 tokoe:invalid" result="pass"/><test-case name="11410NISTXML-SV-II-atomic-Name-length-3-5 tokoe:invalid" result="pass"/><test-case name="11411NISTSchema-SV-II-atomic-Name-length-4 tokoe:valid" result="pass"/><test-case name="11412NISTXML-SV-II-atomic-Name-length-4-1 tokoe:invalid" result="pass"/><test-case name="11413NISTXML-SV-II-atomic-Name-length-4-2 tokoe:invalid" result="pass"/><test-case name="11414NISTXML-SV-II-atomic-Name-length-4-3 tokoe:invalid" result="pass"/><test-case name="11415NISTXML-SV-II-atomic-Name-length-4-4 tokoe:invalid" result="pass"/><test-case name="11416NISTXML-SV-II-atomic-Name-length-4-5 tokoe:invalid" result="pass"/><test-case name="11417NISTSchema-SV-II-atomic-Name-length-5 tokoe:valid" result="pass"/><test-case name="11418NISTXML-SV-II-atomic-Name-length-5-1 tokoe:invalid" result="pass"/><test-case name="11419NISTXML-SV-II-atomic-Name-length-5-2 tokoe:invalid" result="pass"/><test-case name="11420NISTXML-SV-II-atomic-Name-length-5-3 tokoe:invalid" result="pass"/><test-case name="11421NISTXML-SV-II-atomic-Name-length-5-4 tokoe:invalid" result="pass"/><test-case name="11422NISTXML-SV-II-atomic-Name-length-5-5 tokoe:invalid" result="pass"/><test-case name="11423NISTSchema-SV-II-atomic-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="11424NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11425NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11426NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11427NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11428NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11429NISTSchema-SV-II-atomic-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="11430NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11431NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11432NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11433NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11434NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11435NISTSchema-SV-II-atomic-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="11436NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11437NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11438NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11439NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11440NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11441NISTSchema-SV-II-atomic-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="11442NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11443NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11444NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11445NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11446NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11447NISTSchema-SV-II-atomic-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="11448NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11449NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11450NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11451NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11452NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11453NISTSchema-SV-II-atomic-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="11454NISTXML-SV-II-atomic-NMTOKEN-length-1-1 tokoe:invalid" result="pass"/><test-case name="11455NISTXML-SV-II-atomic-NMTOKEN-length-1-2 tokoe:invalid" result="pass"/><test-case name="11456NISTXML-SV-II-atomic-NMTOKEN-length-1-3 tokoe:invalid" result="pass"/><test-case name="11457NISTXML-SV-II-atomic-NMTOKEN-length-1-4 tokoe:invalid" result="pass"/><test-case name="11458NISTXML-SV-II-atomic-NMTOKEN-length-1-5 tokoe:invalid" result="pass"/><test-case name="11459NISTSchema-SV-II-atomic-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="11460NISTXML-SV-II-atomic-NMTOKEN-length-2-1 tokoe:invalid" result="pass"/><test-case name="11461NISTXML-SV-II-atomic-NMTOKEN-length-2-2 tokoe:invalid" result="pass"/><test-case name="11462NISTXML-SV-II-atomic-NMTOKEN-length-2-3 tokoe:invalid" result="pass"/><test-case name="11463NISTXML-SV-II-atomic-NMTOKEN-length-2-4 tokoe:invalid" result="pass"/><test-case name="11464NISTXML-SV-II-atomic-NMTOKEN-length-2-5 tokoe:invalid" result="pass"/><test-case name="11465NISTSchema-SV-II-atomic-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="11466NISTXML-SV-II-atomic-NMTOKEN-length-3-1 tokoe:invalid" result="pass"/><test-case name="11467NISTXML-SV-II-atomic-NMTOKEN-length-3-2 tokoe:invalid" result="pass"/><test-case name="11468NISTXML-SV-II-atomic-NMTOKEN-length-3-3 tokoe:invalid" result="pass"/><test-case name="11469NISTXML-SV-II-atomic-NMTOKEN-length-3-4 tokoe:invalid" result="pass"/><test-case name="11470NISTXML-SV-II-atomic-NMTOKEN-length-3-5 tokoe:invalid" result="pass"/><test-case name="11471NISTSchema-SV-II-atomic-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="11472NISTXML-SV-II-atomic-NMTOKEN-length-4-1 tokoe:invalid" result="pass"/><test-case name="11473NISTXML-SV-II-atomic-NMTOKEN-length-4-2 tokoe:invalid" result="pass"/><test-case name="11474NISTXML-SV-II-atomic-NMTOKEN-length-4-3 tokoe:invalid" result="pass"/><test-case name="11475NISTXML-SV-II-atomic-NMTOKEN-length-4-4 tokoe:invalid" result="pass"/><test-case name="11476NISTXML-SV-II-atomic-NMTOKEN-length-4-5 tokoe:invalid" result="pass"/><test-case name="11477NISTSchema-SV-II-atomic-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="11478NISTXML-SV-II-atomic-NMTOKEN-length-5-1 tokoe:invalid" result="pass"/><test-case name="11479NISTXML-SV-II-atomic-NMTOKEN-length-5-2 tokoe:invalid" result="pass"/><test-case name="11480NISTXML-SV-II-atomic-NMTOKEN-length-5-3 tokoe:invalid" result="pass"/><test-case name="11481NISTXML-SV-II-atomic-NMTOKEN-length-5-4 tokoe:invalid" result="pass"/><test-case name="11482NISTXML-SV-II-atomic-NMTOKEN-length-5-5 tokoe:invalid" result="pass"/><test-case name="11483NISTSchema-SV-II-atomic-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="11484NISTXML-SV-II-atomic-NCName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11485NISTXML-SV-II-atomic-NCName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11486NISTXML-SV-II-atomic-NCName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11487NISTXML-SV-II-atomic-NCName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11488NISTXML-SV-II-atomic-NCName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11489NISTSchema-SV-II-atomic-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="11490NISTXML-SV-II-atomic-NCName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11491NISTXML-SV-II-atomic-NCName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11492NISTXML-SV-II-atomic-NCName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11493NISTXML-SV-II-atomic-NCName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11494NISTXML-SV-II-atomic-NCName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11495NISTSchema-SV-II-atomic-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="11496NISTXML-SV-II-atomic-NCName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11497NISTXML-SV-II-atomic-NCName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11498NISTXML-SV-II-atomic-NCName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11499NISTXML-SV-II-atomic-NCName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11500NISTXML-SV-II-atomic-NCName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11501NISTSchema-SV-II-atomic-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="11502NISTXML-SV-II-atomic-NCName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11503NISTXML-SV-II-atomic-NCName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11504NISTXML-SV-II-atomic-NCName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11505NISTXML-SV-II-atomic-NCName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11506NISTXML-SV-II-atomic-NCName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11507NISTSchema-SV-II-atomic-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="11508NISTXML-SV-II-atomic-NCName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11509NISTXML-SV-II-atomic-NCName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11510NISTXML-SV-II-atomic-NCName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11511NISTXML-SV-II-atomic-NCName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11512NISTXML-SV-II-atomic-NCName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11513NISTSchema-SV-II-atomic-NCName-length-1 tokoe:valid" result="pass"/><test-case name="11514NISTXML-SV-II-atomic-NCName-length-1-1 tokoe:invalid" result="pass"/><test-case name="11515NISTXML-SV-II-atomic-NCName-length-1-2 tokoe:invalid" result="pass"/><test-case name="11516NISTXML-SV-II-atomic-NCName-length-1-3 tokoe:invalid" result="pass"/><test-case name="11517NISTXML-SV-II-atomic-NCName-length-1-4 tokoe:invalid" result="pass"/><test-case name="11518NISTXML-SV-II-atomic-NCName-length-1-5 tokoe:invalid" result="pass"/><test-case name="11519NISTSchema-SV-II-atomic-NCName-length-2 tokoe:valid" result="pass"/><test-case name="11520NISTXML-SV-II-atomic-NCName-length-2-1 tokoe:invalid" result="pass"/><test-case name="11521NISTXML-SV-II-atomic-NCName-length-2-2 tokoe:invalid" result="pass"/><test-case name="11522NISTXML-SV-II-atomic-NCName-length-2-3 tokoe:invalid" result="pass"/><test-case name="11523NISTXML-SV-II-atomic-NCName-length-2-4 tokoe:invalid" result="pass"/><test-case name="11524NISTXML-SV-II-atomic-NCName-length-2-5 tokoe:invalid" result="pass"/><test-case name="11525NISTSchema-SV-II-atomic-NCName-length-3 tokoe:valid" result="pass"/><test-case name="11526NISTXML-SV-II-atomic-NCName-length-3-1 tokoe:invalid" result="pass"/><test-case name="11527NISTXML-SV-II-atomic-NCName-length-3-2 tokoe:invalid" result="pass"/><test-case name="11528NISTXML-SV-II-atomic-NCName-length-3-3 tokoe:invalid" result="pass"/><test-case name="11529NISTXML-SV-II-atomic-NCName-length-3-4 tokoe:invalid" result="pass"/><test-case name="11530NISTXML-SV-II-atomic-NCName-length-3-5 tokoe:invalid" result="pass"/><test-case name="11531NISTSchema-SV-II-atomic-NCName-length-4 tokoe:valid" result="pass"/><test-case name="11532NISTXML-SV-II-atomic-NCName-length-4-1 tokoe:invalid" result="pass"/><test-case name="11533NISTXML-SV-II-atomic-NCName-length-4-2 tokoe:invalid" result="pass"/><test-case name="11534NISTXML-SV-II-atomic-NCName-length-4-3 tokoe:invalid" result="pass"/><test-case name="11535NISTXML-SV-II-atomic-NCName-length-4-4 tokoe:invalid" result="pass"/><test-case name="11536NISTXML-SV-II-atomic-NCName-length-4-5 tokoe:invalid" result="pass"/><test-case name="11537NISTSchema-SV-II-atomic-NCName-length-5 tokoe:valid" result="pass"/><test-case name="11538NISTXML-SV-II-atomic-NCName-length-5-1 tokoe:invalid" result="pass"/><test-case name="11539NISTXML-SV-II-atomic-NCName-length-5-2 tokoe:invalid" result="pass"/><test-case name="11540NISTXML-SV-II-atomic-NCName-length-5-3 tokoe:invalid" result="pass"/><test-case name="11541NISTXML-SV-II-atomic-NCName-length-5-4 tokoe:invalid" result="pass"/><test-case name="11542NISTXML-SV-II-atomic-NCName-length-5-5 tokoe:invalid" result="pass"/><test-case name="11543NISTSchema-SV-II-atomic-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="11544NISTXML-SV-II-atomic-ID-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11545NISTXML-SV-II-atomic-ID-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11546NISTXML-SV-II-atomic-ID-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11547NISTXML-SV-II-atomic-ID-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11548NISTXML-SV-II-atomic-ID-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11549NISTSchema-SV-II-atomic-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="11550NISTXML-SV-II-atomic-ID-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11551NISTXML-SV-II-atomic-ID-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11552NISTXML-SV-II-atomic-ID-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11553NISTXML-SV-II-atomic-ID-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11554NISTXML-SV-II-atomic-ID-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11555NISTSchema-SV-II-atomic-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="11556NISTXML-SV-II-atomic-ID-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11557NISTXML-SV-II-atomic-ID-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11558NISTXML-SV-II-atomic-ID-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11559NISTXML-SV-II-atomic-ID-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11560NISTXML-SV-II-atomic-ID-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11561NISTSchema-SV-II-atomic-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="11562NISTXML-SV-II-atomic-ID-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11563NISTXML-SV-II-atomic-ID-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11564NISTXML-SV-II-atomic-ID-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11565NISTXML-SV-II-atomic-ID-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11566NISTXML-SV-II-atomic-ID-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11567NISTSchema-SV-II-atomic-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="11568NISTXML-SV-II-atomic-ID-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11569NISTXML-SV-II-atomic-ID-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11570NISTXML-SV-II-atomic-ID-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11571NISTXML-SV-II-atomic-ID-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11572NISTXML-SV-II-atomic-ID-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11573NISTSchema-SV-II-atomic-ID-length-1 tokoe:valid" result="pass"/><test-case name="11574NISTXML-SV-II-atomic-ID-length-1-1 tokoe:invalid" result="pass"/><test-case name="11575NISTXML-SV-II-atomic-ID-length-1-2 tokoe:invalid" result="pass"/><test-case name="11576NISTXML-SV-II-atomic-ID-length-1-3 tokoe:invalid" result="pass"/><test-case name="11577NISTXML-SV-II-atomic-ID-length-1-4 tokoe:invalid" result="pass"/><test-case name="11578NISTXML-SV-II-atomic-ID-length-1-5 tokoe:invalid" result="pass"/><test-case name="11579NISTSchema-SV-II-atomic-ID-length-2 tokoe:valid" result="pass"/><test-case name="11580NISTXML-SV-II-atomic-ID-length-2-1 tokoe:invalid" result="pass"/><test-case name="11581NISTXML-SV-II-atomic-ID-length-2-2 tokoe:invalid" result="pass"/><test-case name="11582NISTXML-SV-II-atomic-ID-length-2-3 tokoe:invalid" result="pass"/><test-case name="11583NISTXML-SV-II-atomic-ID-length-2-4 tokoe:invalid" result="pass"/><test-case name="11584NISTXML-SV-II-atomic-ID-length-2-5 tokoe:invalid" result="pass"/><test-case name="11585NISTSchema-SV-II-atomic-ID-length-3 tokoe:valid" result="pass"/><test-case name="11586NISTXML-SV-II-atomic-ID-length-3-1 tokoe:invalid" result="pass"/><test-case name="11587NISTXML-SV-II-atomic-ID-length-3-2 tokoe:invalid" result="pass"/><test-case name="11588NISTXML-SV-II-atomic-ID-length-3-3 tokoe:invalid" result="pass"/><test-case name="11589NISTXML-SV-II-atomic-ID-length-3-4 tokoe:invalid" result="pass"/><test-case name="11590NISTXML-SV-II-atomic-ID-length-3-5 tokoe:invalid" result="pass"/><test-case name="11591NISTSchema-SV-II-atomic-ID-length-4 tokoe:valid" result="pass"/><test-case name="11592NISTXML-SV-II-atomic-ID-length-4-1 tokoe:invalid" result="pass"/><test-case name="11593NISTXML-SV-II-atomic-ID-length-4-2 tokoe:invalid" result="pass"/><test-case name="11594NISTXML-SV-II-atomic-ID-length-4-3 tokoe:invalid" result="pass"/><test-case name="11595NISTXML-SV-II-atomic-ID-length-4-4 tokoe:invalid" result="pass"/><test-case name="11596NISTXML-SV-II-atomic-ID-length-4-5 tokoe:invalid" result="pass"/><test-case name="11597NISTSchema-SV-II-atomic-ID-length-5 tokoe:valid" result="pass"/><test-case name="11598NISTXML-SV-II-atomic-ID-length-5-1 tokoe:invalid" result="pass"/><test-case name="11599NISTXML-SV-II-atomic-ID-length-5-2 tokoe:invalid" result="pass"/><test-case name="11600NISTXML-SV-II-atomic-ID-length-5-3 tokoe:invalid" result="pass"/><test-case name="11601NISTXML-SV-II-atomic-ID-length-5-4 tokoe:invalid" result="pass"/><test-case name="11602NISTXML-SV-II-atomic-ID-length-5-5 tokoe:invalid" result="pass"/><test-case name="11603NISTSchema-SV-II-atomic-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="11604NISTXML-SV-II-atomic-anyURI-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11605NISTXML-SV-II-atomic-anyURI-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11606NISTXML-SV-II-atomic-anyURI-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11607NISTXML-SV-II-atomic-anyURI-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11608NISTXML-SV-II-atomic-anyURI-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11609NISTSchema-SV-II-atomic-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="11610NISTXML-SV-II-atomic-anyURI-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11611NISTXML-SV-II-atomic-anyURI-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11612NISTXML-SV-II-atomic-anyURI-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11613NISTXML-SV-II-atomic-anyURI-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11614NISTXML-SV-II-atomic-anyURI-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11615NISTSchema-SV-II-atomic-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="11616NISTXML-SV-II-atomic-anyURI-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11617NISTXML-SV-II-atomic-anyURI-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11618NISTXML-SV-II-atomic-anyURI-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11619NISTXML-SV-II-atomic-anyURI-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11620NISTXML-SV-II-atomic-anyURI-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11621NISTSchema-SV-II-atomic-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="11622NISTXML-SV-II-atomic-anyURI-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11623NISTXML-SV-II-atomic-anyURI-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11624NISTXML-SV-II-atomic-anyURI-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11625NISTXML-SV-II-atomic-anyURI-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11626NISTXML-SV-II-atomic-anyURI-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11627NISTSchema-SV-II-atomic-anyURI-minLength-6 tokoe:valid" result="pass"/><test-case name="11628NISTXML-SV-II-atomic-anyURI-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11629NISTXML-SV-II-atomic-anyURI-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11630NISTXML-SV-II-atomic-anyURI-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11631NISTXML-SV-II-atomic-anyURI-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11632NISTXML-SV-II-atomic-anyURI-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11633NISTSchema-SV-II-atomic-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="11634NISTXML-SV-II-atomic-anyURI-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11635NISTXML-SV-II-atomic-anyURI-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11636NISTXML-SV-II-atomic-anyURI-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11637NISTXML-SV-II-atomic-anyURI-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11638NISTXML-SV-II-atomic-anyURI-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11639NISTSchema-SV-II-atomic-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="11640NISTXML-SV-II-atomic-anyURI-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11641NISTXML-SV-II-atomic-anyURI-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11642NISTXML-SV-II-atomic-anyURI-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11643NISTXML-SV-II-atomic-anyURI-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11644NISTXML-SV-II-atomic-anyURI-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11645NISTSchema-SV-II-atomic-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="11646NISTXML-SV-II-atomic-anyURI-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11647NISTXML-SV-II-atomic-anyURI-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11648NISTXML-SV-II-atomic-anyURI-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11649NISTXML-SV-II-atomic-anyURI-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11650NISTXML-SV-II-atomic-anyURI-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11651NISTSchema-SV-II-atomic-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="11652NISTXML-SV-II-atomic-anyURI-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11653NISTXML-SV-II-atomic-anyURI-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11654NISTXML-SV-II-atomic-anyURI-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11655NISTXML-SV-II-atomic-anyURI-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11656NISTXML-SV-II-atomic-anyURI-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11657NISTSchema-SV-II-atomic-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="11658NISTXML-SV-II-atomic-anyURI-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11659NISTXML-SV-II-atomic-anyURI-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11660NISTXML-SV-II-atomic-anyURI-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11661NISTXML-SV-II-atomic-anyURI-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11662NISTXML-SV-II-atomic-anyURI-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11663NISTSchema-SV-II-atomic-language-minLength-2 tokoe:valid" result="pass"/><test-case name="11664NISTXML-SV-II-atomic-language-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11665NISTXML-SV-II-atomic-language-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11666NISTXML-SV-II-atomic-language-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11667NISTXML-SV-II-atomic-language-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11668NISTXML-SV-II-atomic-language-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11669NISTSchema-SV-II-atomic-language-minLength-3 tokoe:valid" result="pass"/><test-case name="11670NISTXML-SV-II-atomic-language-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11671NISTXML-SV-II-atomic-language-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11672NISTXML-SV-II-atomic-language-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11673NISTXML-SV-II-atomic-language-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11674NISTXML-SV-II-atomic-language-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11675NISTSchema-SV-II-atomic-language-minLength-4 tokoe:valid" result="pass"/><test-case name="11676NISTXML-SV-II-atomic-language-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11677NISTXML-SV-II-atomic-language-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11678NISTXML-SV-II-atomic-language-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11679NISTXML-SV-II-atomic-language-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11680NISTXML-SV-II-atomic-language-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11681NISTSchema-SV-II-atomic-language-minLength-6 tokoe:valid" result="pass"/><test-case name="11682NISTXML-SV-II-atomic-language-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11683NISTXML-SV-II-atomic-language-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11684NISTXML-SV-II-atomic-language-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11685NISTXML-SV-II-atomic-language-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11686NISTXML-SV-II-atomic-language-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11687NISTSchema-SV-II-atomic-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="11688NISTXML-SV-II-atomic-language-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11689NISTXML-SV-II-atomic-language-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11690NISTXML-SV-II-atomic-language-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11691NISTXML-SV-II-atomic-language-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11692NISTXML-SV-II-atomic-language-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11693NISTSchema-SV-II-atomic-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="11694NISTXML-SV-II-atomic-language-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11695NISTXML-SV-II-atomic-language-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11696NISTXML-SV-II-atomic-language-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11697NISTXML-SV-II-atomic-language-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11698NISTXML-SV-II-atomic-language-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11699NISTSchema-SV-II-atomic-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="11700NISTXML-SV-II-atomic-language-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11701NISTXML-SV-II-atomic-language-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11702NISTXML-SV-II-atomic-language-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11703NISTXML-SV-II-atomic-language-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11704NISTXML-SV-II-atomic-language-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11705NISTSchema-SV-II-atomic-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="11706NISTXML-SV-II-atomic-language-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11707NISTXML-SV-II-atomic-language-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11708NISTXML-SV-II-atomic-language-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11709NISTXML-SV-II-atomic-language-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11710NISTXML-SV-II-atomic-language-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11711NISTSchema-SV-II-atomic-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="11712NISTXML-SV-II-atomic-language-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11713NISTXML-SV-II-atomic-language-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11714NISTXML-SV-II-atomic-language-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11715NISTXML-SV-II-atomic-language-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11716NISTXML-SV-II-atomic-language-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11717NISTSchema-SV-II-atomic-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="11718NISTXML-SV-II-atomic-anyURI-length-1-1 tokoe:invalid" result="pass"/><test-case name="11719NISTXML-SV-II-atomic-anyURI-length-1-2 tokoe:invalid" result="pass"/><test-case name="11720NISTXML-SV-II-atomic-anyURI-length-1-3 tokoe:invalid" result="pass"/><test-case name="11721NISTXML-SV-II-atomic-anyURI-length-1-4 tokoe:invalid" result="pass"/><test-case name="11722NISTXML-SV-II-atomic-anyURI-length-1-5 tokoe:invalid" result="pass"/><test-case name="11723NISTSchema-SV-II-atomic-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="11724NISTXML-SV-II-atomic-anyURI-length-2-1 tokoe:invalid" result="pass"/><test-case name="11725NISTXML-SV-II-atomic-anyURI-length-2-2 tokoe:invalid" result="pass"/><test-case name="11726NISTXML-SV-II-atomic-anyURI-length-2-3 tokoe:invalid" result="pass"/><test-case name="11727NISTXML-SV-II-atomic-anyURI-length-2-4 tokoe:invalid" result="pass"/><test-case name="11728NISTXML-SV-II-atomic-anyURI-length-2-5 tokoe:invalid" result="pass"/><test-case name="11729NISTSchema-SV-II-atomic-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="11730NISTXML-SV-II-atomic-anyURI-length-3-1 tokoe:invalid" result="pass"/><test-case name="11731NISTXML-SV-II-atomic-anyURI-length-3-2 tokoe:invalid" result="pass"/><test-case name="11732NISTXML-SV-II-atomic-anyURI-length-3-3 tokoe:invalid" result="pass"/><test-case name="11733NISTXML-SV-II-atomic-anyURI-length-3-4 tokoe:invalid" result="pass"/><test-case name="11734NISTXML-SV-II-atomic-anyURI-length-3-5 tokoe:invalid" result="pass"/><test-case name="11735NISTSchema-SV-II-atomic-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="11736NISTXML-SV-II-atomic-anyURI-length-4-1 tokoe:invalid" result="pass"/><test-case name="11737NISTXML-SV-II-atomic-anyURI-length-4-2 tokoe:invalid" result="pass"/><test-case name="11738NISTXML-SV-II-atomic-anyURI-length-4-3 tokoe:invalid" result="pass"/><test-case name="11739NISTXML-SV-II-atomic-anyURI-length-4-4 tokoe:invalid" result="pass"/><test-case name="11740NISTXML-SV-II-atomic-anyURI-length-4-5 tokoe:invalid" result="pass"/><test-case name="11741NISTSchema-SV-II-atomic-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="11742NISTXML-SV-II-atomic-anyURI-length-5-1 tokoe:invalid" result="pass"/><test-case name="11743NISTXML-SV-II-atomic-anyURI-length-5-2 tokoe:invalid" result="pass"/><test-case name="11744NISTXML-SV-II-atomic-anyURI-length-5-3 tokoe:invalid" result="pass"/><test-case name="11745NISTXML-SV-II-atomic-anyURI-length-5-4 tokoe:invalid" result="pass"/><test-case name="11746NISTXML-SV-II-atomic-anyURI-length-5-5 tokoe:invalid" result="pass"/><test-case name="11747NISTSchema-SV-II-atomic-language-length-1 tokoe:valid" result="pass"/><test-case name="11748NISTXML-SV-II-atomic-language-length-1-1 tokoe:invalid" result="pass"/><test-case name="11749NISTXML-SV-II-atomic-language-length-1-2 tokoe:invalid" result="pass"/><test-case name="11750NISTXML-SV-II-atomic-language-length-1-3 tokoe:invalid" result="pass"/><test-case name="11751NISTXML-SV-II-atomic-language-length-1-4 tokoe:invalid" result="pass"/><test-case name="11752NISTXML-SV-II-atomic-language-length-1-5 tokoe:invalid" result="pass"/><test-case name="11753NISTSchema-SV-II-atomic-language-length-2 tokoe:valid" result="pass"/><test-case name="11754NISTXML-SV-II-atomic-language-length-2-1 tokoe:invalid" result="pass"/><test-case name="11755NISTXML-SV-II-atomic-language-length-2-2 tokoe:invalid" result="pass"/><test-case name="11756NISTXML-SV-II-atomic-language-length-2-3 tokoe:invalid" result="pass"/><test-case name="11757NISTXML-SV-II-atomic-language-length-2-4 tokoe:invalid" result="pass"/><test-case name="11758NISTXML-SV-II-atomic-language-length-2-5 tokoe:invalid" result="pass"/><test-case name="11759NISTSchema-SV-II-atomic-language-length-3 tokoe:valid" result="pass"/><test-case name="11760NISTXML-SV-II-atomic-language-length-3-1 tokoe:invalid" result="pass"/><test-case name="11761NISTXML-SV-II-atomic-language-length-3-2 tokoe:invalid" result="pass"/><test-case name="11762NISTXML-SV-II-atomic-language-length-3-3 tokoe:invalid" result="pass"/><test-case name="11763NISTXML-SV-II-atomic-language-length-3-4 tokoe:invalid" result="pass"/><test-case name="11764NISTXML-SV-II-atomic-language-length-3-5 tokoe:invalid" result="pass"/><test-case name="11765NISTSchema-SV-II-atomic-language-length-4 tokoe:valid" result="pass"/><test-case name="11766NISTXML-SV-II-atomic-language-length-4-1 tokoe:invalid" result="pass"/><test-case name="11767NISTXML-SV-II-atomic-language-length-4-2 tokoe:invalid" result="pass"/><test-case name="11768NISTXML-SV-II-atomic-language-length-4-3 tokoe:invalid" result="pass"/><test-case name="11769NISTXML-SV-II-atomic-language-length-4-4 tokoe:invalid" result="pass"/><test-case name="11770NISTXML-SV-II-atomic-language-length-4-5 tokoe:invalid" result="pass"/><test-case name="11771NISTSchema-SV-II-atomic-language-length-5 tokoe:valid" result="pass"/><test-case name="11772NISTXML-SV-II-atomic-language-length-5-1 tokoe:invalid" result="pass"/><test-case name="11773NISTXML-SV-II-atomic-language-length-5-2 tokoe:invalid" result="pass"/><test-case name="11774NISTXML-SV-II-atomic-language-length-5-3 tokoe:invalid" result="pass"/><test-case name="11775NISTXML-SV-II-atomic-language-length-5-4 tokoe:invalid" result="pass"/><test-case name="11776NISTXML-SV-II-atomic-language-length-5-5 tokoe:invalid" result="pass"/><test-case name="11777NISTSchema-SV-II-atomic-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="11778NISTXML-SV-II-atomic-anyURI-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="11779NISTXML-SV-II-atomic-anyURI-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="11780NISTXML-SV-II-atomic-anyURI-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="11781NISTXML-SV-II-atomic-anyURI-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="11782NISTXML-SV-II-atomic-anyURI-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="11783NISTSchema-SV-II-atomic-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="11784NISTXML-SV-II-atomic-anyURI-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="11785NISTXML-SV-II-atomic-anyURI-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="11786NISTXML-SV-II-atomic-anyURI-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="11787NISTXML-SV-II-atomic-anyURI-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="11788NISTXML-SV-II-atomic-anyURI-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="11789NISTSchema-SV-II-atomic-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="11790NISTXML-SV-II-atomic-anyURI-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="11791NISTXML-SV-II-atomic-anyURI-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="11792NISTXML-SV-II-atomic-anyURI-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="11793NISTXML-SV-II-atomic-anyURI-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="11794NISTXML-SV-II-atomic-anyURI-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="11795NISTSchema-SV-II-atomic-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="11796NISTXML-SV-II-atomic-anyURI-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="11797NISTXML-SV-II-atomic-anyURI-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="11798NISTXML-SV-II-atomic-anyURI-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="11799NISTXML-SV-II-atomic-anyURI-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="11800NISTXML-SV-II-atomic-anyURI-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="11801NISTSchema-SV-II-atomic-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="11802NISTXML-SV-II-atomic-anyURI-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="11803NISTXML-SV-II-atomic-anyURI-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="11804NISTXML-SV-II-atomic-anyURI-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="11805NISTXML-SV-II-atomic-anyURI-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="11806NISTXML-SV-II-atomic-anyURI-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="11807NISTSchema-SV-II-atomic-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="11808NISTXML-SV-II-atomic-anyURI-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="11809NISTXML-SV-II-atomic-anyURI-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="11810NISTXML-SV-II-atomic-anyURI-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="11811NISTXML-SV-II-atomic-anyURI-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="11812NISTXML-SV-II-atomic-anyURI-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="11813NISTSchema-SV-II-atomic-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="11814NISTXML-SV-II-atomic-anyURI-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="11815NISTXML-SV-II-atomic-anyURI-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="11816NISTXML-SV-II-atomic-anyURI-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="11817NISTXML-SV-II-atomic-anyURI-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="11818NISTXML-SV-II-atomic-anyURI-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="11819NISTSchema-SV-II-atomic-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="11820NISTXML-SV-II-atomic-anyURI-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="11821NISTXML-SV-II-atomic-anyURI-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="11822NISTXML-SV-II-atomic-anyURI-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="11823NISTXML-SV-II-atomic-anyURI-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="11824NISTXML-SV-II-atomic-anyURI-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="11825NISTSchema-SV-II-atomic-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="11826NISTXML-SV-II-atomic-anyURI-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="11827NISTXML-SV-II-atomic-anyURI-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="11828NISTXML-SV-II-atomic-anyURI-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="11829NISTXML-SV-II-atomic-anyURI-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="11830NISTXML-SV-II-atomic-anyURI-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="11831NISTSchema-SV-II-atomic-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="11832NISTXML-SV-II-atomic-anyURI-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="11833NISTXML-SV-II-atomic-anyURI-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="11834NISTXML-SV-II-atomic-anyURI-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="11835NISTXML-SV-II-atomic-anyURI-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="11836NISTXML-SV-II-atomic-anyURI-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="11837NISTSchema-SV-IV-list-decimal-maxLength-1 tokoe:valid" result="pass"/><test-case name="11838NISTXML-SV-IV-list-decimal-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="11839NISTXML-SV-IV-list-decimal-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="11840NISTXML-SV-IV-list-decimal-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="11841NISTXML-SV-IV-list-decimal-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="11842NISTXML-SV-IV-list-decimal-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="11843NISTSchema-SV-IV-list-decimal-maxLength-2 tokoe:valid" result="pass"/><test-case name="11844NISTXML-SV-IV-list-decimal-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="11845NISTXML-SV-IV-list-decimal-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="11846NISTXML-SV-IV-list-decimal-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="11847NISTXML-SV-IV-list-decimal-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="11848NISTXML-SV-IV-list-decimal-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="11849NISTSchema-SV-IV-list-decimal-maxLength-3 tokoe:valid" result="pass"/><test-case name="11850NISTXML-SV-IV-list-decimal-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="11851NISTXML-SV-IV-list-decimal-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="11852NISTXML-SV-IV-list-decimal-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="11853NISTXML-SV-IV-list-decimal-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="11854NISTXML-SV-IV-list-decimal-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="11855NISTSchema-SV-IV-list-decimal-maxLength-4 tokoe:valid" result="pass"/><test-case name="11856NISTXML-SV-IV-list-decimal-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="11857NISTXML-SV-IV-list-decimal-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="11858NISTXML-SV-IV-list-decimal-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="11859NISTXML-SV-IV-list-decimal-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="11860NISTXML-SV-IV-list-decimal-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="11861NISTSchema-SV-IV-list-decimal-maxLength-5 tokoe:valid" result="pass"/><test-case name="11862NISTXML-SV-IV-list-decimal-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="11863NISTXML-SV-IV-list-decimal-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="11864NISTXML-SV-IV-list-decimal-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="11865NISTXML-SV-IV-list-decimal-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="11866NISTXML-SV-IV-list-decimal-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="11867NISTSchema-SV-IV-list-decimal-minLength-1 tokoe:valid" result="pass"/><test-case name="11868NISTXML-SV-IV-list-decimal-minLength-1-1 tokoe:valid" result="pass"/><test-case name="11869NISTXML-SV-IV-list-decimal-minLength-1-2 tokoe:valid" result="pass"/><test-case name="11870NISTXML-SV-IV-list-decimal-minLength-1-3 tokoe:valid" result="pass"/><test-case name="11871NISTXML-SV-IV-list-decimal-minLength-1-4 tokoe:valid" result="pass"/><test-case name="11872NISTXML-SV-IV-list-decimal-minLength-1-5 tokoe:valid" result="pass"/><test-case name="11873NISTSchema-SV-IV-list-decimal-minLength-2 tokoe:valid" result="pass"/><test-case name="11874NISTXML-SV-IV-list-decimal-minLength-2-1 tokoe:valid" result="pass"/><test-case name="11875NISTXML-SV-IV-list-decimal-minLength-2-2 tokoe:valid" result="pass"/><test-case name="11876NISTXML-SV-IV-list-decimal-minLength-2-3 tokoe:valid" result="pass"/><test-case name="11877NISTXML-SV-IV-list-decimal-minLength-2-4 tokoe:valid" result="pass"/><test-case name="11878NISTXML-SV-IV-list-decimal-minLength-2-5 tokoe:valid" result="pass"/><test-case name="11879NISTSchema-SV-IV-list-decimal-minLength-3 tokoe:valid" result="pass"/><test-case name="11880NISTXML-SV-IV-list-decimal-minLength-3-1 tokoe:valid" result="pass"/><test-case name="11881NISTXML-SV-IV-list-decimal-minLength-3-2 tokoe:valid" result="pass"/><test-case name="11882NISTXML-SV-IV-list-decimal-minLength-3-3 tokoe:valid" result="pass"/><test-case name="11883NISTXML-SV-IV-list-decimal-minLength-3-4 tokoe:valid" result="pass"/><test-case name="11884NISTXML-SV-IV-list-decimal-minLength-3-5 tokoe:valid" result="pass"/><test-case name="11885NISTSchema-SV-IV-list-decimal-minLength-4 tokoe:valid" result="pass"/><test-case name="11886NISTXML-SV-IV-list-decimal-minLength-4-1 tokoe:valid" result="pass"/><test-case name="11887NISTXML-SV-IV-list-decimal-minLength-4-2 tokoe:valid" result="pass"/><test-case name="11888NISTXML-SV-IV-list-decimal-minLength-4-3 tokoe:valid" result="pass"/><test-case name="11889NISTXML-SV-IV-list-decimal-minLength-4-4 tokoe:valid" result="pass"/><test-case name="11890NISTXML-SV-IV-list-decimal-minLength-4-5 tokoe:valid" result="pass"/><test-case name="11891NISTSchema-SV-IV-list-decimal-minLength-5 tokoe:valid" result="pass"/><test-case name="11892NISTXML-SV-IV-list-decimal-minLength-5-1 tokoe:valid" result="pass"/><test-case name="11893NISTXML-SV-IV-list-decimal-minLength-5-2 tokoe:valid" result="pass"/><test-case name="11894NISTXML-SV-IV-list-decimal-minLength-5-3 tokoe:valid" result="pass"/><test-case name="11895NISTXML-SV-IV-list-decimal-minLength-5-4 tokoe:valid" result="pass"/><test-case name="11896NISTXML-SV-IV-list-decimal-minLength-5-5 tokoe:valid" result="pass"/><test-case name="11897NISTSchema-SV-IV-list-decimal-length-1 tokoe:valid" result="pass"/><test-case name="11898NISTXML-SV-IV-list-decimal-length-1-1 tokoe:valid" result="pass"/><test-case name="11899NISTXML-SV-IV-list-decimal-length-1-2 tokoe:valid" result="pass"/><test-case name="11900NISTXML-SV-IV-list-decimal-length-1-3 tokoe:valid" result="pass"/><test-case name="11901NISTXML-SV-IV-list-decimal-length-1-4 tokoe:valid" result="pass"/><test-case name="11902NISTXML-SV-IV-list-decimal-length-1-5 tokoe:valid" result="pass"/><test-case name="11903NISTSchema-SV-IV-list-decimal-length-2 tokoe:valid" result="pass"/><test-case name="11904NISTXML-SV-IV-list-decimal-length-2-1 tokoe:valid" result="pass"/><test-case name="11905NISTXML-SV-IV-list-decimal-length-2-2 tokoe:valid" result="pass"/><test-case name="11906NISTXML-SV-IV-list-decimal-length-2-3 tokoe:valid" result="pass"/><test-case name="11907NISTXML-SV-IV-list-decimal-length-2-4 tokoe:valid" result="pass"/><test-case name="11908NISTXML-SV-IV-list-decimal-length-2-5 tokoe:valid" result="pass"/><test-case name="11909NISTSchema-SV-IV-list-decimal-length-3 tokoe:valid" result="pass"/><test-case name="11910NISTXML-SV-IV-list-decimal-length-3-1 tokoe:valid" result="pass"/><test-case name="11911NISTXML-SV-IV-list-decimal-length-3-2 tokoe:valid" result="pass"/><test-case name="11912NISTXML-SV-IV-list-decimal-length-3-3 tokoe:valid" result="pass"/><test-case name="11913NISTXML-SV-IV-list-decimal-length-3-4 tokoe:valid" result="pass"/><test-case name="11914NISTXML-SV-IV-list-decimal-length-3-5 tokoe:valid" result="pass"/><test-case name="11915NISTSchema-SV-IV-list-decimal-length-4 tokoe:valid" result="pass"/><test-case name="11916NISTXML-SV-IV-list-decimal-length-4-1 tokoe:valid" result="pass"/><test-case name="11917NISTXML-SV-IV-list-decimal-length-4-2 tokoe:valid" result="pass"/><test-case name="11918NISTXML-SV-IV-list-decimal-length-4-3 tokoe:valid" result="pass"/><test-case name="11919NISTXML-SV-IV-list-decimal-length-4-4 tokoe:valid" result="pass"/><test-case name="11920NISTXML-SV-IV-list-decimal-length-4-5 tokoe:valid" result="pass"/><test-case name="11921NISTSchema-SV-IV-list-decimal-length-5 tokoe:valid" result="pass"/><test-case name="11922NISTXML-SV-IV-list-decimal-length-5-1 tokoe:valid" result="pass"/><test-case name="11923NISTXML-SV-IV-list-decimal-length-5-2 tokoe:valid" result="pass"/><test-case name="11924NISTXML-SV-IV-list-decimal-length-5-3 tokoe:valid" result="pass"/><test-case name="11925NISTXML-SV-IV-list-decimal-length-5-4 tokoe:valid" result="pass"/><test-case name="11926NISTXML-SV-IV-list-decimal-length-5-5 tokoe:valid" result="pass"/><test-case name="11927NISTSchema-SV-IV-list-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="11928NISTXML-SV-IV-list-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="11929NISTXML-SV-IV-list-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="11930NISTXML-SV-IV-list-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="11931NISTXML-SV-IV-list-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="11932NISTXML-SV-IV-list-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="11933NISTSchema-SV-IV-list-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="11934NISTXML-SV-IV-list-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="11935NISTXML-SV-IV-list-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="11936NISTXML-SV-IV-list-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="11937NISTXML-SV-IV-list-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="11938NISTXML-SV-IV-list-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="11939NISTSchema-SV-IV-list-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="11940NISTXML-SV-IV-list-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="11941NISTXML-SV-IV-list-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="11942NISTXML-SV-IV-list-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="11943NISTXML-SV-IV-list-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="11944NISTXML-SV-IV-list-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="11945NISTSchema-SV-IV-list-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="11946NISTXML-SV-IV-list-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="11947NISTXML-SV-IV-list-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="11948NISTXML-SV-IV-list-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="11949NISTXML-SV-IV-list-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="11950NISTXML-SV-IV-list-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="11951NISTSchema-SV-IV-list-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="11952NISTXML-SV-IV-list-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="11953NISTXML-SV-IV-list-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="11954NISTXML-SV-IV-list-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="11955NISTXML-SV-IV-list-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="11956NISTXML-SV-IV-list-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="11957NISTSchema-SV-IV-list-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="11958NISTXML-SV-IV-list-decimal-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="11959NISTXML-SV-IV-list-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="11960NISTXML-SV-IV-list-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="11961NISTXML-SV-IV-list-decimal-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="11962NISTXML-SV-IV-list-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="11963NISTSchema-SV-IV-list-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="11964NISTXML-SV-IV-list-decimal-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="11965NISTXML-SV-IV-list-decimal-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="11966NISTXML-SV-IV-list-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="11967NISTXML-SV-IV-list-decimal-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="11968NISTXML-SV-IV-list-decimal-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="11969NISTSchema-SV-IV-list-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="11970NISTXML-SV-IV-list-decimal-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="11971NISTXML-SV-IV-list-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="11972NISTXML-SV-IV-list-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="11973NISTXML-SV-IV-list-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="11974NISTXML-SV-IV-list-decimal-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="11975NISTSchema-SV-IV-list-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="11976NISTXML-SV-IV-list-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="11977NISTXML-SV-IV-list-decimal-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="11978NISTXML-SV-IV-list-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="11979NISTXML-SV-IV-list-decimal-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="11980NISTXML-SV-IV-list-decimal-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="11981NISTSchema-SV-IV-list-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="11982NISTXML-SV-IV-list-decimal-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="11983NISTXML-SV-IV-list-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="11984NISTXML-SV-IV-list-decimal-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="11985NISTXML-SV-IV-list-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="11986NISTXML-SV-IV-list-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="11987NISTSchema-SV-IV-list-decimal-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="11988NISTXML-SV-IV-list-decimal-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="11989NISTXML-SV-IV-list-decimal-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="11990NISTXML-SV-IV-list-decimal-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="11991NISTXML-SV-IV-list-decimal-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="11992NISTXML-SV-IV-list-decimal-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="11993NISTSchema-SV-IV-list-integer-maxLength-1 tokoe:valid" result="pass"/><test-case name="11994NISTXML-SV-IV-list-integer-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="11995NISTXML-SV-IV-list-integer-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="11996NISTXML-SV-IV-list-integer-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="11997NISTXML-SV-IV-list-integer-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="11998NISTXML-SV-IV-list-integer-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="11999NISTSchema-SV-IV-list-integer-maxLength-2 tokoe:valid" result="pass"/><test-case name="12000NISTXML-SV-IV-list-integer-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12001NISTXML-SV-IV-list-integer-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12002NISTXML-SV-IV-list-integer-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12003NISTXML-SV-IV-list-integer-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12004NISTXML-SV-IV-list-integer-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12005NISTSchema-SV-IV-list-integer-maxLength-3 tokoe:valid" result="pass"/><test-case name="12006NISTXML-SV-IV-list-integer-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12007NISTXML-SV-IV-list-integer-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12008NISTXML-SV-IV-list-integer-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12009NISTXML-SV-IV-list-integer-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12010NISTXML-SV-IV-list-integer-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12011NISTSchema-SV-IV-list-integer-maxLength-4 tokoe:valid" result="pass"/><test-case name="12012NISTXML-SV-IV-list-integer-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12013NISTXML-SV-IV-list-integer-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12014NISTXML-SV-IV-list-integer-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12015NISTXML-SV-IV-list-integer-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12016NISTXML-SV-IV-list-integer-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12017NISTSchema-SV-IV-list-integer-maxLength-5 tokoe:valid" result="pass"/><test-case name="12018NISTXML-SV-IV-list-integer-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12019NISTXML-SV-IV-list-integer-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12020NISTXML-SV-IV-list-integer-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12021NISTXML-SV-IV-list-integer-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12022NISTXML-SV-IV-list-integer-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12023NISTSchema-SV-IV-list-integer-minLength-1 tokoe:valid" result="pass"/><test-case name="12024NISTXML-SV-IV-list-integer-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12025NISTXML-SV-IV-list-integer-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12026NISTXML-SV-IV-list-integer-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12027NISTXML-SV-IV-list-integer-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12028NISTXML-SV-IV-list-integer-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12029NISTSchema-SV-IV-list-integer-minLength-2 tokoe:valid" result="pass"/><test-case name="12030NISTXML-SV-IV-list-integer-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12031NISTXML-SV-IV-list-integer-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12032NISTXML-SV-IV-list-integer-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12033NISTXML-SV-IV-list-integer-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12034NISTXML-SV-IV-list-integer-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12035NISTSchema-SV-IV-list-integer-minLength-3 tokoe:valid" result="pass"/><test-case name="12036NISTXML-SV-IV-list-integer-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12037NISTXML-SV-IV-list-integer-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12038NISTXML-SV-IV-list-integer-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12039NISTXML-SV-IV-list-integer-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12040NISTXML-SV-IV-list-integer-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12041NISTSchema-SV-IV-list-integer-minLength-4 tokoe:valid" result="pass"/><test-case name="12042NISTXML-SV-IV-list-integer-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12043NISTXML-SV-IV-list-integer-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12044NISTXML-SV-IV-list-integer-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12045NISTXML-SV-IV-list-integer-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12046NISTXML-SV-IV-list-integer-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12047NISTSchema-SV-IV-list-integer-minLength-5 tokoe:valid" result="pass"/><test-case name="12048NISTXML-SV-IV-list-integer-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12049NISTXML-SV-IV-list-integer-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12050NISTXML-SV-IV-list-integer-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12051NISTXML-SV-IV-list-integer-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12052NISTXML-SV-IV-list-integer-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12053NISTSchema-SV-IV-list-integer-length-1 tokoe:valid" result="pass"/><test-case name="12054NISTXML-SV-IV-list-integer-length-1-1 tokoe:valid" result="pass"/><test-case name="12055NISTXML-SV-IV-list-integer-length-1-2 tokoe:valid" result="pass"/><test-case name="12056NISTXML-SV-IV-list-integer-length-1-3 tokoe:valid" result="pass"/><test-case name="12057NISTXML-SV-IV-list-integer-length-1-4 tokoe:valid" result="pass"/><test-case name="12058NISTXML-SV-IV-list-integer-length-1-5 tokoe:valid" result="pass"/><test-case name="12059NISTSchema-SV-IV-list-integer-length-2 tokoe:valid" result="pass"/><test-case name="12060NISTXML-SV-IV-list-integer-length-2-1 tokoe:valid" result="pass"/><test-case name="12061NISTXML-SV-IV-list-integer-length-2-2 tokoe:valid" result="pass"/><test-case name="12062NISTXML-SV-IV-list-integer-length-2-3 tokoe:valid" result="pass"/><test-case name="12063NISTXML-SV-IV-list-integer-length-2-4 tokoe:valid" result="pass"/><test-case name="12064NISTXML-SV-IV-list-integer-length-2-5 tokoe:valid" result="pass"/><test-case name="12065NISTSchema-SV-IV-list-integer-length-3 tokoe:valid" result="pass"/><test-case name="12066NISTXML-SV-IV-list-integer-length-3-1 tokoe:valid" result="pass"/><test-case name="12067NISTXML-SV-IV-list-integer-length-3-2 tokoe:valid" result="pass"/><test-case name="12068NISTXML-SV-IV-list-integer-length-3-3 tokoe:valid" result="pass"/><test-case name="12069NISTXML-SV-IV-list-integer-length-3-4 tokoe:valid" result="pass"/><test-case name="12070NISTXML-SV-IV-list-integer-length-3-5 tokoe:valid" result="pass"/><test-case name="12071NISTSchema-SV-IV-list-integer-length-4 tokoe:valid" result="pass"/><test-case name="12072NISTXML-SV-IV-list-integer-length-4-1 tokoe:valid" result="pass"/><test-case name="12073NISTXML-SV-IV-list-integer-length-4-2 tokoe:valid" result="pass"/><test-case name="12074NISTXML-SV-IV-list-integer-length-4-3 tokoe:valid" result="pass"/><test-case name="12075NISTXML-SV-IV-list-integer-length-4-4 tokoe:valid" result="pass"/><test-case name="12076NISTXML-SV-IV-list-integer-length-4-5 tokoe:valid" result="pass"/><test-case name="12077NISTSchema-SV-IV-list-integer-length-5 tokoe:valid" result="pass"/><test-case name="12078NISTXML-SV-IV-list-integer-length-5-1 tokoe:valid" result="pass"/><test-case name="12079NISTXML-SV-IV-list-integer-length-5-2 tokoe:valid" result="pass"/><test-case name="12080NISTXML-SV-IV-list-integer-length-5-3 tokoe:valid" result="pass"/><test-case name="12081NISTXML-SV-IV-list-integer-length-5-4 tokoe:valid" result="pass"/><test-case name="12082NISTXML-SV-IV-list-integer-length-5-5 tokoe:valid" result="pass"/><test-case name="12083NISTSchema-SV-IV-list-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="12084NISTXML-SV-IV-list-integer-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12085NISTXML-SV-IV-list-integer-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12086NISTXML-SV-IV-list-integer-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12087NISTXML-SV-IV-list-integer-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12088NISTXML-SV-IV-list-integer-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12089NISTSchema-SV-IV-list-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="12090NISTXML-SV-IV-list-integer-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12091NISTXML-SV-IV-list-integer-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12092NISTXML-SV-IV-list-integer-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12093NISTXML-SV-IV-list-integer-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12094NISTXML-SV-IV-list-integer-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12095NISTSchema-SV-IV-list-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="12096NISTXML-SV-IV-list-integer-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12097NISTXML-SV-IV-list-integer-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12098NISTXML-SV-IV-list-integer-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12099NISTXML-SV-IV-list-integer-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12100NISTXML-SV-IV-list-integer-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12101NISTSchema-SV-IV-list-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="12102NISTXML-SV-IV-list-integer-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12103NISTXML-SV-IV-list-integer-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12104NISTXML-SV-IV-list-integer-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12105NISTXML-SV-IV-list-integer-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12106NISTXML-SV-IV-list-integer-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12107NISTSchema-SV-IV-list-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="12108NISTXML-SV-IV-list-integer-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12109NISTXML-SV-IV-list-integer-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12110NISTXML-SV-IV-list-integer-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12111NISTXML-SV-IV-list-integer-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12112NISTXML-SV-IV-list-integer-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12113NISTSchema-SV-IV-list-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="12114NISTXML-SV-IV-list-integer-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12115NISTXML-SV-IV-list-integer-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12116NISTXML-SV-IV-list-integer-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12117NISTXML-SV-IV-list-integer-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12118NISTXML-SV-IV-list-integer-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12119NISTSchema-SV-IV-list-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="12120NISTXML-SV-IV-list-integer-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12121NISTXML-SV-IV-list-integer-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12122NISTXML-SV-IV-list-integer-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12123NISTXML-SV-IV-list-integer-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12124NISTXML-SV-IV-list-integer-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12125NISTSchema-SV-IV-list-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="12126NISTXML-SV-IV-list-integer-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12127NISTXML-SV-IV-list-integer-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12128NISTXML-SV-IV-list-integer-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12129NISTXML-SV-IV-list-integer-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12130NISTXML-SV-IV-list-integer-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12131NISTSchema-SV-IV-list-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="12132NISTXML-SV-IV-list-integer-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12133NISTXML-SV-IV-list-integer-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12134NISTXML-SV-IV-list-integer-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12135NISTXML-SV-IV-list-integer-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12136NISTXML-SV-IV-list-integer-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12137NISTSchema-SV-IV-list-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="12138NISTXML-SV-IV-list-integer-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12139NISTXML-SV-IV-list-integer-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12140NISTXML-SV-IV-list-integer-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12141NISTXML-SV-IV-list-integer-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12142NISTXML-SV-IV-list-integer-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12143NISTSchema-SV-IV-list-integer-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12144NISTXML-SV-IV-list-integer-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12145NISTXML-SV-IV-list-integer-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12146NISTXML-SV-IV-list-integer-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12147NISTXML-SV-IV-list-integer-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12148NISTXML-SV-IV-list-integer-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12149NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="12150NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12151NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12152NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12153NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12154NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12155NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="12156NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12157NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12158NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12159NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12160NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12161NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="12162NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12163NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12164NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12165NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12166NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12167NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="12168NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12169NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12170NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12171NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12172NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12173NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="12174NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12175NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12176NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12177NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12178NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12179NISTSchema-SV-IV-list-nonPositiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="12180NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12181NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12182NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12183NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12184NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12185NISTSchema-SV-IV-list-nonPositiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="12186NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12187NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12188NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12189NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12190NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12191NISTSchema-SV-IV-list-nonPositiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="12192NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12193NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12194NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12195NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12196NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12197NISTSchema-SV-IV-list-nonPositiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="12198NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12199NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12200NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12201NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12202NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12203NISTSchema-SV-IV-list-nonPositiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="12204NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12205NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12206NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12207NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12208NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12209NISTSchema-SV-IV-list-nonPositiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="12210NISTXML-SV-IV-list-nonPositiveInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="12211NISTXML-SV-IV-list-nonPositiveInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="12212NISTXML-SV-IV-list-nonPositiveInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="12213NISTXML-SV-IV-list-nonPositiveInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="12214NISTXML-SV-IV-list-nonPositiveInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="12215NISTSchema-SV-IV-list-nonPositiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="12216NISTXML-SV-IV-list-nonPositiveInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="12217NISTXML-SV-IV-list-nonPositiveInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="12218NISTXML-SV-IV-list-nonPositiveInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="12219NISTXML-SV-IV-list-nonPositiveInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="12220NISTXML-SV-IV-list-nonPositiveInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="12221NISTSchema-SV-IV-list-nonPositiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="12222NISTXML-SV-IV-list-nonPositiveInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="12223NISTXML-SV-IV-list-nonPositiveInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="12224NISTXML-SV-IV-list-nonPositiveInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="12225NISTXML-SV-IV-list-nonPositiveInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="12226NISTXML-SV-IV-list-nonPositiveInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="12227NISTSchema-SV-IV-list-nonPositiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="12228NISTXML-SV-IV-list-nonPositiveInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="12229NISTXML-SV-IV-list-nonPositiveInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="12230NISTXML-SV-IV-list-nonPositiveInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="12231NISTXML-SV-IV-list-nonPositiveInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="12232NISTXML-SV-IV-list-nonPositiveInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="12233NISTSchema-SV-IV-list-nonPositiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="12234NISTXML-SV-IV-list-nonPositiveInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="12235NISTXML-SV-IV-list-nonPositiveInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="12236NISTXML-SV-IV-list-nonPositiveInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="12237NISTXML-SV-IV-list-nonPositiveInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="12238NISTXML-SV-IV-list-nonPositiveInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="12239NISTSchema-SV-IV-list-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="12240NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12241NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12242NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12243NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12244NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12245NISTSchema-SV-IV-list-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="12246NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12247NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12248NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12249NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12250NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12251NISTSchema-SV-IV-list-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="12252NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12253NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12254NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12255NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12256NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12257NISTSchema-SV-IV-list-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="12258NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12259NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12260NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12261NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12262NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12263NISTSchema-SV-IV-list-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="12264NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12265NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12266NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12267NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12268NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12269NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="12270NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12271NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12272NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12273NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12274NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12275NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="12276NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12277NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12278NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12279NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12280NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12281NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="12282NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12283NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12284NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12285NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12286NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12287NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="12288NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12289NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12290NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12291NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12292NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12293NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="12294NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12295NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12296NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12297NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12298NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12299NISTSchema-SV-IV-list-nonPositiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12300NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12301NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12302NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12303NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12304NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12305NISTSchema-SV-IV-list-negativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="12306NISTXML-SV-IV-list-negativeInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12307NISTXML-SV-IV-list-negativeInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12308NISTXML-SV-IV-list-negativeInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12309NISTXML-SV-IV-list-negativeInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12310NISTXML-SV-IV-list-negativeInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12311NISTSchema-SV-IV-list-negativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="12312NISTXML-SV-IV-list-negativeInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12313NISTXML-SV-IV-list-negativeInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12314NISTXML-SV-IV-list-negativeInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12315NISTXML-SV-IV-list-negativeInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12316NISTXML-SV-IV-list-negativeInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12317NISTSchema-SV-IV-list-negativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="12318NISTXML-SV-IV-list-negativeInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12319NISTXML-SV-IV-list-negativeInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12320NISTXML-SV-IV-list-negativeInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12321NISTXML-SV-IV-list-negativeInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12322NISTXML-SV-IV-list-negativeInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12323NISTSchema-SV-IV-list-negativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="12324NISTXML-SV-IV-list-negativeInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12325NISTXML-SV-IV-list-negativeInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12326NISTXML-SV-IV-list-negativeInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12327NISTXML-SV-IV-list-negativeInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12328NISTXML-SV-IV-list-negativeInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12329NISTSchema-SV-IV-list-negativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="12330NISTXML-SV-IV-list-negativeInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12331NISTXML-SV-IV-list-negativeInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12332NISTXML-SV-IV-list-negativeInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12333NISTXML-SV-IV-list-negativeInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12334NISTXML-SV-IV-list-negativeInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12335NISTSchema-SV-IV-list-negativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="12336NISTXML-SV-IV-list-negativeInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12337NISTXML-SV-IV-list-negativeInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12338NISTXML-SV-IV-list-negativeInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12339NISTXML-SV-IV-list-negativeInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12340NISTXML-SV-IV-list-negativeInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12341NISTSchema-SV-IV-list-negativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="12342NISTXML-SV-IV-list-negativeInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12343NISTXML-SV-IV-list-negativeInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12344NISTXML-SV-IV-list-negativeInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12345NISTXML-SV-IV-list-negativeInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12346NISTXML-SV-IV-list-negativeInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12347NISTSchema-SV-IV-list-negativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="12348NISTXML-SV-IV-list-negativeInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12349NISTXML-SV-IV-list-negativeInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12350NISTXML-SV-IV-list-negativeInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12351NISTXML-SV-IV-list-negativeInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12352NISTXML-SV-IV-list-negativeInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12353NISTSchema-SV-IV-list-negativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="12354NISTXML-SV-IV-list-negativeInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12355NISTXML-SV-IV-list-negativeInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12356NISTXML-SV-IV-list-negativeInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12357NISTXML-SV-IV-list-negativeInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12358NISTXML-SV-IV-list-negativeInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12359NISTSchema-SV-IV-list-negativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="12360NISTXML-SV-IV-list-negativeInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12361NISTXML-SV-IV-list-negativeInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12362NISTXML-SV-IV-list-negativeInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12363NISTXML-SV-IV-list-negativeInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12364NISTXML-SV-IV-list-negativeInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12365NISTSchema-SV-IV-list-negativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="12366NISTXML-SV-IV-list-negativeInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="12367NISTXML-SV-IV-list-negativeInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="12368NISTXML-SV-IV-list-negativeInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="12369NISTXML-SV-IV-list-negativeInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="12370NISTXML-SV-IV-list-negativeInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="12371NISTSchema-SV-IV-list-negativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="12372NISTXML-SV-IV-list-negativeInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="12373NISTXML-SV-IV-list-negativeInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="12374NISTXML-SV-IV-list-negativeInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="12375NISTXML-SV-IV-list-negativeInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="12376NISTXML-SV-IV-list-negativeInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="12377NISTSchema-SV-IV-list-negativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="12378NISTXML-SV-IV-list-negativeInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="12379NISTXML-SV-IV-list-negativeInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="12380NISTXML-SV-IV-list-negativeInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="12381NISTXML-SV-IV-list-negativeInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="12382NISTXML-SV-IV-list-negativeInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="12383NISTSchema-SV-IV-list-negativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="12384NISTXML-SV-IV-list-negativeInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="12385NISTXML-SV-IV-list-negativeInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="12386NISTXML-SV-IV-list-negativeInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="12387NISTXML-SV-IV-list-negativeInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="12388NISTXML-SV-IV-list-negativeInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="12389NISTSchema-SV-IV-list-negativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="12390NISTXML-SV-IV-list-negativeInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="12391NISTXML-SV-IV-list-negativeInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="12392NISTXML-SV-IV-list-negativeInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="12393NISTXML-SV-IV-list-negativeInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="12394NISTXML-SV-IV-list-negativeInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="12395NISTSchema-SV-IV-list-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="12396NISTXML-SV-IV-list-negativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12397NISTXML-SV-IV-list-negativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12398NISTXML-SV-IV-list-negativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12399NISTXML-SV-IV-list-negativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12400NISTXML-SV-IV-list-negativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12401NISTSchema-SV-IV-list-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="12402NISTXML-SV-IV-list-negativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12403NISTXML-SV-IV-list-negativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12404NISTXML-SV-IV-list-negativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12405NISTXML-SV-IV-list-negativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12406NISTXML-SV-IV-list-negativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12407NISTSchema-SV-IV-list-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="12408NISTXML-SV-IV-list-negativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12409NISTXML-SV-IV-list-negativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12410NISTXML-SV-IV-list-negativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12411NISTXML-SV-IV-list-negativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12412NISTXML-SV-IV-list-negativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12413NISTSchema-SV-IV-list-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="12414NISTXML-SV-IV-list-negativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12415NISTXML-SV-IV-list-negativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12416NISTXML-SV-IV-list-negativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12417NISTXML-SV-IV-list-negativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12418NISTXML-SV-IV-list-negativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12419NISTSchema-SV-IV-list-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="12420NISTXML-SV-IV-list-negativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12421NISTXML-SV-IV-list-negativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12422NISTXML-SV-IV-list-negativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12423NISTXML-SV-IV-list-negativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12424NISTXML-SV-IV-list-negativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12425NISTSchema-SV-IV-list-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="12426NISTXML-SV-IV-list-negativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12427NISTXML-SV-IV-list-negativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12428NISTXML-SV-IV-list-negativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12429NISTXML-SV-IV-list-negativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12430NISTXML-SV-IV-list-negativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12431NISTSchema-SV-IV-list-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="12432NISTXML-SV-IV-list-negativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12433NISTXML-SV-IV-list-negativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12434NISTXML-SV-IV-list-negativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12435NISTXML-SV-IV-list-negativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12436NISTXML-SV-IV-list-negativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12437NISTSchema-SV-IV-list-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="12438NISTXML-SV-IV-list-negativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12439NISTXML-SV-IV-list-negativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12440NISTXML-SV-IV-list-negativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12441NISTXML-SV-IV-list-negativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12442NISTXML-SV-IV-list-negativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12443NISTSchema-SV-IV-list-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="12444NISTXML-SV-IV-list-negativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12445NISTXML-SV-IV-list-negativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12446NISTXML-SV-IV-list-negativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12447NISTXML-SV-IV-list-negativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12448NISTXML-SV-IV-list-negativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12449NISTSchema-SV-IV-list-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="12450NISTXML-SV-IV-list-negativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12451NISTXML-SV-IV-list-negativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12452NISTXML-SV-IV-list-negativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12453NISTXML-SV-IV-list-negativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12454NISTXML-SV-IV-list-negativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12455NISTSchema-SV-IV-list-negativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12456NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12457NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12458NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12459NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12460NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12461NISTSchema-SV-IV-list-long-maxLength-1 tokoe:valid" result="pass"/><test-case name="12462NISTXML-SV-IV-list-long-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12463NISTXML-SV-IV-list-long-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12464NISTXML-SV-IV-list-long-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12465NISTXML-SV-IV-list-long-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12466NISTXML-SV-IV-list-long-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12467NISTSchema-SV-IV-list-long-maxLength-2 tokoe:valid" result="pass"/><test-case name="12468NISTXML-SV-IV-list-long-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12469NISTXML-SV-IV-list-long-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12470NISTXML-SV-IV-list-long-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12471NISTXML-SV-IV-list-long-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12472NISTXML-SV-IV-list-long-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12473NISTSchema-SV-IV-list-long-maxLength-3 tokoe:valid" result="pass"/><test-case name="12474NISTXML-SV-IV-list-long-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12475NISTXML-SV-IV-list-long-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12476NISTXML-SV-IV-list-long-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12477NISTXML-SV-IV-list-long-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12478NISTXML-SV-IV-list-long-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12479NISTSchema-SV-IV-list-long-maxLength-4 tokoe:valid" result="pass"/><test-case name="12480NISTXML-SV-IV-list-long-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12481NISTXML-SV-IV-list-long-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12482NISTXML-SV-IV-list-long-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12483NISTXML-SV-IV-list-long-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12484NISTXML-SV-IV-list-long-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12485NISTSchema-SV-IV-list-long-maxLength-5 tokoe:valid" result="pass"/><test-case name="12486NISTXML-SV-IV-list-long-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12487NISTXML-SV-IV-list-long-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12488NISTXML-SV-IV-list-long-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12489NISTXML-SV-IV-list-long-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12490NISTXML-SV-IV-list-long-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12491NISTSchema-SV-IV-list-long-minLength-1 tokoe:valid" result="pass"/><test-case name="12492NISTXML-SV-IV-list-long-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12493NISTXML-SV-IV-list-long-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12494NISTXML-SV-IV-list-long-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12495NISTXML-SV-IV-list-long-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12496NISTXML-SV-IV-list-long-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12497NISTSchema-SV-IV-list-long-minLength-2 tokoe:valid" result="pass"/><test-case name="12498NISTXML-SV-IV-list-long-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12499NISTXML-SV-IV-list-long-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12500NISTXML-SV-IV-list-long-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12501NISTXML-SV-IV-list-long-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12502NISTXML-SV-IV-list-long-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12503NISTSchema-SV-IV-list-long-minLength-3 tokoe:valid" result="pass"/><test-case name="12504NISTXML-SV-IV-list-long-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12505NISTXML-SV-IV-list-long-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12506NISTXML-SV-IV-list-long-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12507NISTXML-SV-IV-list-long-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12508NISTXML-SV-IV-list-long-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12509NISTSchema-SV-IV-list-long-minLength-4 tokoe:valid" result="pass"/><test-case name="12510NISTXML-SV-IV-list-long-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12511NISTXML-SV-IV-list-long-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12512NISTXML-SV-IV-list-long-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12513NISTXML-SV-IV-list-long-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12514NISTXML-SV-IV-list-long-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12515NISTSchema-SV-IV-list-long-minLength-5 tokoe:valid" result="pass"/><test-case name="12516NISTXML-SV-IV-list-long-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12517NISTXML-SV-IV-list-long-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12518NISTXML-SV-IV-list-long-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12519NISTXML-SV-IV-list-long-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12520NISTXML-SV-IV-list-long-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12521NISTSchema-SV-IV-list-long-length-1 tokoe:valid" result="pass"/><test-case name="12522NISTXML-SV-IV-list-long-length-1-1 tokoe:valid" result="pass"/><test-case name="12523NISTXML-SV-IV-list-long-length-1-2 tokoe:valid" result="pass"/><test-case name="12524NISTXML-SV-IV-list-long-length-1-3 tokoe:valid" result="pass"/><test-case name="12525NISTXML-SV-IV-list-long-length-1-4 tokoe:valid" result="pass"/><test-case name="12526NISTXML-SV-IV-list-long-length-1-5 tokoe:valid" result="pass"/><test-case name="12527NISTSchema-SV-IV-list-long-length-2 tokoe:valid" result="pass"/><test-case name="12528NISTXML-SV-IV-list-long-length-2-1 tokoe:valid" result="pass"/><test-case name="12529NISTXML-SV-IV-list-long-length-2-2 tokoe:valid" result="pass"/><test-case name="12530NISTXML-SV-IV-list-long-length-2-3 tokoe:valid" result="pass"/><test-case name="12531NISTXML-SV-IV-list-long-length-2-4 tokoe:valid" result="pass"/><test-case name="12532NISTXML-SV-IV-list-long-length-2-5 tokoe:valid" result="pass"/><test-case name="12533NISTSchema-SV-IV-list-long-length-3 tokoe:valid" result="pass"/><test-case name="12534NISTXML-SV-IV-list-long-length-3-1 tokoe:valid" result="pass"/><test-case name="12535NISTXML-SV-IV-list-long-length-3-2 tokoe:valid" result="pass"/><test-case name="12536NISTXML-SV-IV-list-long-length-3-3 tokoe:valid" result="pass"/><test-case name="12537NISTXML-SV-IV-list-long-length-3-4 tokoe:valid" result="pass"/><test-case name="12538NISTXML-SV-IV-list-long-length-3-5 tokoe:valid" result="pass"/><test-case name="12539NISTSchema-SV-IV-list-long-length-4 tokoe:valid" result="pass"/><test-case name="12540NISTXML-SV-IV-list-long-length-4-1 tokoe:valid" result="pass"/><test-case name="12541NISTXML-SV-IV-list-long-length-4-2 tokoe:valid" result="pass"/><test-case name="12542NISTXML-SV-IV-list-long-length-4-3 tokoe:valid" result="pass"/><test-case name="12543NISTXML-SV-IV-list-long-length-4-4 tokoe:valid" result="pass"/><test-case name="12544NISTXML-SV-IV-list-long-length-4-5 tokoe:valid" result="pass"/><test-case name="12545NISTSchema-SV-IV-list-long-length-5 tokoe:valid" result="pass"/><test-case name="12546NISTXML-SV-IV-list-long-length-5-1 tokoe:valid" result="pass"/><test-case name="12547NISTXML-SV-IV-list-long-length-5-2 tokoe:valid" result="pass"/><test-case name="12548NISTXML-SV-IV-list-long-length-5-3 tokoe:valid" result="pass"/><test-case name="12549NISTXML-SV-IV-list-long-length-5-4 tokoe:valid" result="pass"/><test-case name="12550NISTXML-SV-IV-list-long-length-5-5 tokoe:valid" result="pass"/><test-case name="12551NISTSchema-SV-IV-list-long-pattern-1 tokoe:valid" result="pass"/><test-case name="12552NISTXML-SV-IV-list-long-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12553NISTXML-SV-IV-list-long-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12554NISTXML-SV-IV-list-long-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12555NISTXML-SV-IV-list-long-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12556NISTXML-SV-IV-list-long-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12557NISTSchema-SV-IV-list-long-pattern-2 tokoe:valid" result="pass"/><test-case name="12558NISTXML-SV-IV-list-long-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12559NISTXML-SV-IV-list-long-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12560NISTXML-SV-IV-list-long-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12561NISTXML-SV-IV-list-long-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12562NISTXML-SV-IV-list-long-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12563NISTSchema-SV-IV-list-long-pattern-3 tokoe:valid" result="pass"/><test-case name="12564NISTXML-SV-IV-list-long-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12565NISTXML-SV-IV-list-long-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12566NISTXML-SV-IV-list-long-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12567NISTXML-SV-IV-list-long-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12568NISTXML-SV-IV-list-long-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12569NISTSchema-SV-IV-list-long-pattern-4 tokoe:valid" result="pass"/><test-case name="12570NISTXML-SV-IV-list-long-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12571NISTXML-SV-IV-list-long-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12572NISTXML-SV-IV-list-long-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12573NISTXML-SV-IV-list-long-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12574NISTXML-SV-IV-list-long-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12575NISTSchema-SV-IV-list-long-pattern-5 tokoe:valid" result="pass"/><test-case name="12576NISTXML-SV-IV-list-long-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12577NISTXML-SV-IV-list-long-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12578NISTXML-SV-IV-list-long-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12579NISTXML-SV-IV-list-long-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12580NISTXML-SV-IV-list-long-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12581NISTSchema-SV-IV-list-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="12582NISTXML-SV-IV-list-long-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12583NISTXML-SV-IV-list-long-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12584NISTXML-SV-IV-list-long-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12585NISTXML-SV-IV-list-long-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12586NISTXML-SV-IV-list-long-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12587NISTSchema-SV-IV-list-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="12588NISTXML-SV-IV-list-long-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12589NISTXML-SV-IV-list-long-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12590NISTXML-SV-IV-list-long-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12591NISTXML-SV-IV-list-long-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12592NISTXML-SV-IV-list-long-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12593NISTSchema-SV-IV-list-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="12594NISTXML-SV-IV-list-long-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12595NISTXML-SV-IV-list-long-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12596NISTXML-SV-IV-list-long-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12597NISTXML-SV-IV-list-long-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12598NISTXML-SV-IV-list-long-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12599NISTSchema-SV-IV-list-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="12600NISTXML-SV-IV-list-long-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12601NISTXML-SV-IV-list-long-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12602NISTXML-SV-IV-list-long-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12603NISTXML-SV-IV-list-long-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12604NISTXML-SV-IV-list-long-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12605NISTSchema-SV-IV-list-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="12606NISTXML-SV-IV-list-long-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12607NISTXML-SV-IV-list-long-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12608NISTXML-SV-IV-list-long-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12609NISTXML-SV-IV-list-long-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12610NISTXML-SV-IV-list-long-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12611NISTSchema-SV-IV-list-long-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12612NISTXML-SV-IV-list-long-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12613NISTXML-SV-IV-list-long-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12614NISTXML-SV-IV-list-long-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12615NISTXML-SV-IV-list-long-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12616NISTXML-SV-IV-list-long-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12617NISTSchema-SV-IV-list-int-maxLength-1 tokoe:valid" result="pass"/><test-case name="12618NISTXML-SV-IV-list-int-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12619NISTXML-SV-IV-list-int-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12620NISTXML-SV-IV-list-int-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12621NISTXML-SV-IV-list-int-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12622NISTXML-SV-IV-list-int-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12623NISTSchema-SV-IV-list-int-maxLength-2 tokoe:valid" result="pass"/><test-case name="12624NISTXML-SV-IV-list-int-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12625NISTXML-SV-IV-list-int-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12626NISTXML-SV-IV-list-int-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12627NISTXML-SV-IV-list-int-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12628NISTXML-SV-IV-list-int-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12629NISTSchema-SV-IV-list-int-maxLength-3 tokoe:valid" result="pass"/><test-case name="12630NISTXML-SV-IV-list-int-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12631NISTXML-SV-IV-list-int-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12632NISTXML-SV-IV-list-int-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12633NISTXML-SV-IV-list-int-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12634NISTXML-SV-IV-list-int-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12635NISTSchema-SV-IV-list-int-maxLength-4 tokoe:valid" result="pass"/><test-case name="12636NISTXML-SV-IV-list-int-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12637NISTXML-SV-IV-list-int-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12638NISTXML-SV-IV-list-int-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12639NISTXML-SV-IV-list-int-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12640NISTXML-SV-IV-list-int-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12641NISTSchema-SV-IV-list-int-maxLength-5 tokoe:valid" result="pass"/><test-case name="12642NISTXML-SV-IV-list-int-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12643NISTXML-SV-IV-list-int-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12644NISTXML-SV-IV-list-int-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12645NISTXML-SV-IV-list-int-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12646NISTXML-SV-IV-list-int-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12647NISTSchema-SV-IV-list-int-minLength-1 tokoe:valid" result="pass"/><test-case name="12648NISTXML-SV-IV-list-int-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12649NISTXML-SV-IV-list-int-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12650NISTXML-SV-IV-list-int-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12651NISTXML-SV-IV-list-int-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12652NISTXML-SV-IV-list-int-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12653NISTSchema-SV-IV-list-int-minLength-2 tokoe:valid" result="pass"/><test-case name="12654NISTXML-SV-IV-list-int-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12655NISTXML-SV-IV-list-int-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12656NISTXML-SV-IV-list-int-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12657NISTXML-SV-IV-list-int-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12658NISTXML-SV-IV-list-int-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12659NISTSchema-SV-IV-list-int-minLength-3 tokoe:valid" result="pass"/><test-case name="12660NISTXML-SV-IV-list-int-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12661NISTXML-SV-IV-list-int-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12662NISTXML-SV-IV-list-int-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12663NISTXML-SV-IV-list-int-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12664NISTXML-SV-IV-list-int-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12665NISTSchema-SV-IV-list-int-minLength-4 tokoe:valid" result="pass"/><test-case name="12666NISTXML-SV-IV-list-int-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12667NISTXML-SV-IV-list-int-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12668NISTXML-SV-IV-list-int-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12669NISTXML-SV-IV-list-int-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12670NISTXML-SV-IV-list-int-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12671NISTSchema-SV-IV-list-int-minLength-5 tokoe:valid" result="pass"/><test-case name="12672NISTXML-SV-IV-list-int-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12673NISTXML-SV-IV-list-int-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12674NISTXML-SV-IV-list-int-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12675NISTXML-SV-IV-list-int-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12676NISTXML-SV-IV-list-int-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12677NISTSchema-SV-IV-list-int-length-1 tokoe:valid" result="pass"/><test-case name="12678NISTXML-SV-IV-list-int-length-1-1 tokoe:valid" result="pass"/><test-case name="12679NISTXML-SV-IV-list-int-length-1-2 tokoe:valid" result="pass"/><test-case name="12680NISTXML-SV-IV-list-int-length-1-3 tokoe:valid" result="pass"/><test-case name="12681NISTXML-SV-IV-list-int-length-1-4 tokoe:valid" result="pass"/><test-case name="12682NISTXML-SV-IV-list-int-length-1-5 tokoe:valid" result="pass"/><test-case name="12683NISTSchema-SV-IV-list-int-length-2 tokoe:valid" result="pass"/><test-case name="12684NISTXML-SV-IV-list-int-length-2-1 tokoe:valid" result="pass"/><test-case name="12685NISTXML-SV-IV-list-int-length-2-2 tokoe:valid" result="pass"/><test-case name="12686NISTXML-SV-IV-list-int-length-2-3 tokoe:valid" result="pass"/><test-case name="12687NISTXML-SV-IV-list-int-length-2-4 tokoe:valid" result="pass"/><test-case name="12688NISTXML-SV-IV-list-int-length-2-5 tokoe:valid" result="pass"/><test-case name="12689NISTSchema-SV-IV-list-int-length-3 tokoe:valid" result="pass"/><test-case name="12690NISTXML-SV-IV-list-int-length-3-1 tokoe:valid" result="pass"/><test-case name="12691NISTXML-SV-IV-list-int-length-3-2 tokoe:valid" result="pass"/><test-case name="12692NISTXML-SV-IV-list-int-length-3-3 tokoe:valid" result="pass"/><test-case name="12693NISTXML-SV-IV-list-int-length-3-4 tokoe:valid" result="pass"/><test-case name="12694NISTXML-SV-IV-list-int-length-3-5 tokoe:valid" result="pass"/><test-case name="12695NISTSchema-SV-IV-list-int-length-4 tokoe:valid" result="pass"/><test-case name="12696NISTXML-SV-IV-list-int-length-4-1 tokoe:valid" result="pass"/><test-case name="12697NISTXML-SV-IV-list-int-length-4-2 tokoe:valid" result="pass"/><test-case name="12698NISTXML-SV-IV-list-int-length-4-3 tokoe:valid" result="pass"/><test-case name="12699NISTXML-SV-IV-list-int-length-4-4 tokoe:valid" result="pass"/><test-case name="12700NISTXML-SV-IV-list-int-length-4-5 tokoe:valid" result="pass"/><test-case name="12701NISTSchema-SV-IV-list-int-length-5 tokoe:valid" result="pass"/><test-case name="12702NISTXML-SV-IV-list-int-length-5-1 tokoe:valid" result="pass"/><test-case name="12703NISTXML-SV-IV-list-int-length-5-2 tokoe:valid" result="pass"/><test-case name="12704NISTXML-SV-IV-list-int-length-5-3 tokoe:valid" result="pass"/><test-case name="12705NISTXML-SV-IV-list-int-length-5-4 tokoe:valid" result="pass"/><test-case name="12706NISTXML-SV-IV-list-int-length-5-5 tokoe:valid" result="pass"/><test-case name="12707NISTSchema-SV-IV-list-int-pattern-1 tokoe:valid" result="pass"/><test-case name="12708NISTXML-SV-IV-list-int-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12709NISTXML-SV-IV-list-int-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12710NISTXML-SV-IV-list-int-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12711NISTXML-SV-IV-list-int-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12712NISTXML-SV-IV-list-int-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12713NISTSchema-SV-IV-list-int-pattern-2 tokoe:valid" result="pass"/><test-case name="12714NISTXML-SV-IV-list-int-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12715NISTXML-SV-IV-list-int-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12716NISTXML-SV-IV-list-int-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12717NISTXML-SV-IV-list-int-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12718NISTXML-SV-IV-list-int-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12719NISTSchema-SV-IV-list-int-pattern-3 tokoe:valid" result="pass"/><test-case name="12720NISTXML-SV-IV-list-int-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12721NISTXML-SV-IV-list-int-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12722NISTXML-SV-IV-list-int-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12723NISTXML-SV-IV-list-int-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12724NISTXML-SV-IV-list-int-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12725NISTSchema-SV-IV-list-int-pattern-4 tokoe:valid" result="pass"/><test-case name="12726NISTXML-SV-IV-list-int-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12727NISTXML-SV-IV-list-int-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12728NISTXML-SV-IV-list-int-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12729NISTXML-SV-IV-list-int-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12730NISTXML-SV-IV-list-int-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12731NISTSchema-SV-IV-list-int-pattern-5 tokoe:valid" result="pass"/><test-case name="12732NISTXML-SV-IV-list-int-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12733NISTXML-SV-IV-list-int-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12734NISTXML-SV-IV-list-int-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12735NISTXML-SV-IV-list-int-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12736NISTXML-SV-IV-list-int-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12737NISTSchema-SV-IV-list-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="12738NISTXML-SV-IV-list-int-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12739NISTXML-SV-IV-list-int-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12740NISTXML-SV-IV-list-int-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12741NISTXML-SV-IV-list-int-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12742NISTXML-SV-IV-list-int-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12743NISTSchema-SV-IV-list-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="12744NISTXML-SV-IV-list-int-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12745NISTXML-SV-IV-list-int-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12746NISTXML-SV-IV-list-int-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12747NISTXML-SV-IV-list-int-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12748NISTXML-SV-IV-list-int-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12749NISTSchema-SV-IV-list-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="12750NISTXML-SV-IV-list-int-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12751NISTXML-SV-IV-list-int-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12752NISTXML-SV-IV-list-int-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12753NISTXML-SV-IV-list-int-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12754NISTXML-SV-IV-list-int-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12755NISTSchema-SV-IV-list-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="12756NISTXML-SV-IV-list-int-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12757NISTXML-SV-IV-list-int-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12758NISTXML-SV-IV-list-int-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12759NISTXML-SV-IV-list-int-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12760NISTXML-SV-IV-list-int-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12761NISTSchema-SV-IV-list-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="12762NISTXML-SV-IV-list-int-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12763NISTXML-SV-IV-list-int-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12764NISTXML-SV-IV-list-int-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12765NISTXML-SV-IV-list-int-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12766NISTXML-SV-IV-list-int-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12767NISTSchema-SV-IV-list-int-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12768NISTXML-SV-IV-list-int-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12769NISTXML-SV-IV-list-int-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12770NISTXML-SV-IV-list-int-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12771NISTXML-SV-IV-list-int-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12772NISTXML-SV-IV-list-int-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12773NISTSchema-SV-IV-list-short-maxLength-1 tokoe:valid" result="pass"/><test-case name="12774NISTXML-SV-IV-list-short-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12775NISTXML-SV-IV-list-short-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12776NISTXML-SV-IV-list-short-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12777NISTXML-SV-IV-list-short-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12778NISTXML-SV-IV-list-short-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12779NISTSchema-SV-IV-list-short-maxLength-2 tokoe:valid" result="pass"/><test-case name="12780NISTXML-SV-IV-list-short-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12781NISTXML-SV-IV-list-short-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12782NISTXML-SV-IV-list-short-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12783NISTXML-SV-IV-list-short-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12784NISTXML-SV-IV-list-short-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12785NISTSchema-SV-IV-list-short-maxLength-3 tokoe:valid" result="pass"/><test-case name="12786NISTXML-SV-IV-list-short-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12787NISTXML-SV-IV-list-short-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12788NISTXML-SV-IV-list-short-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12789NISTXML-SV-IV-list-short-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12790NISTXML-SV-IV-list-short-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12791NISTSchema-SV-IV-list-short-maxLength-4 tokoe:valid" result="pass"/><test-case name="12792NISTXML-SV-IV-list-short-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12793NISTXML-SV-IV-list-short-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12794NISTXML-SV-IV-list-short-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12795NISTXML-SV-IV-list-short-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12796NISTXML-SV-IV-list-short-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12797NISTSchema-SV-IV-list-short-maxLength-5 tokoe:valid" result="pass"/><test-case name="12798NISTXML-SV-IV-list-short-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12799NISTXML-SV-IV-list-short-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12800NISTXML-SV-IV-list-short-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12801NISTXML-SV-IV-list-short-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12802NISTXML-SV-IV-list-short-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12803NISTSchema-SV-IV-list-short-minLength-1 tokoe:valid" result="pass"/><test-case name="12804NISTXML-SV-IV-list-short-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12805NISTXML-SV-IV-list-short-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12806NISTXML-SV-IV-list-short-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12807NISTXML-SV-IV-list-short-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12808NISTXML-SV-IV-list-short-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12809NISTSchema-SV-IV-list-short-minLength-2 tokoe:valid" result="pass"/><test-case name="12810NISTXML-SV-IV-list-short-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12811NISTXML-SV-IV-list-short-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12812NISTXML-SV-IV-list-short-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12813NISTXML-SV-IV-list-short-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12814NISTXML-SV-IV-list-short-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12815NISTSchema-SV-IV-list-short-minLength-3 tokoe:valid" result="pass"/><test-case name="12816NISTXML-SV-IV-list-short-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12817NISTXML-SV-IV-list-short-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12818NISTXML-SV-IV-list-short-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12819NISTXML-SV-IV-list-short-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12820NISTXML-SV-IV-list-short-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12821NISTSchema-SV-IV-list-short-minLength-4 tokoe:valid" result="pass"/><test-case name="12822NISTXML-SV-IV-list-short-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12823NISTXML-SV-IV-list-short-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12824NISTXML-SV-IV-list-short-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12825NISTXML-SV-IV-list-short-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12826NISTXML-SV-IV-list-short-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12827NISTSchema-SV-IV-list-short-minLength-5 tokoe:valid" result="pass"/><test-case name="12828NISTXML-SV-IV-list-short-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12829NISTXML-SV-IV-list-short-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12830NISTXML-SV-IV-list-short-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12831NISTXML-SV-IV-list-short-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12832NISTXML-SV-IV-list-short-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12833NISTSchema-SV-IV-list-short-length-1 tokoe:valid" result="pass"/><test-case name="12834NISTXML-SV-IV-list-short-length-1-1 tokoe:valid" result="pass"/><test-case name="12835NISTXML-SV-IV-list-short-length-1-2 tokoe:valid" result="pass"/><test-case name="12836NISTXML-SV-IV-list-short-length-1-3 tokoe:valid" result="pass"/><test-case name="12837NISTXML-SV-IV-list-short-length-1-4 tokoe:valid" result="pass"/><test-case name="12838NISTXML-SV-IV-list-short-length-1-5 tokoe:valid" result="pass"/><test-case name="12839NISTSchema-SV-IV-list-short-length-2 tokoe:valid" result="pass"/><test-case name="12840NISTXML-SV-IV-list-short-length-2-1 tokoe:valid" result="pass"/><test-case name="12841NISTXML-SV-IV-list-short-length-2-2 tokoe:valid" result="pass"/><test-case name="12842NISTXML-SV-IV-list-short-length-2-3 tokoe:valid" result="pass"/><test-case name="12843NISTXML-SV-IV-list-short-length-2-4 tokoe:valid" result="pass"/><test-case name="12844NISTXML-SV-IV-list-short-length-2-5 tokoe:valid" result="pass"/><test-case name="12845NISTSchema-SV-IV-list-short-length-3 tokoe:valid" result="pass"/><test-case name="12846NISTXML-SV-IV-list-short-length-3-1 tokoe:valid" result="pass"/><test-case name="12847NISTXML-SV-IV-list-short-length-3-2 tokoe:valid" result="pass"/><test-case name="12848NISTXML-SV-IV-list-short-length-3-3 tokoe:valid" result="pass"/><test-case name="12849NISTXML-SV-IV-list-short-length-3-4 tokoe:valid" result="pass"/><test-case name="12850NISTXML-SV-IV-list-short-length-3-5 tokoe:valid" result="pass"/><test-case name="12851NISTSchema-SV-IV-list-short-length-4 tokoe:valid" result="pass"/><test-case name="12852NISTXML-SV-IV-list-short-length-4-1 tokoe:valid" result="pass"/><test-case name="12853NISTXML-SV-IV-list-short-length-4-2 tokoe:valid" result="pass"/><test-case name="12854NISTXML-SV-IV-list-short-length-4-3 tokoe:valid" result="pass"/><test-case name="12855NISTXML-SV-IV-list-short-length-4-4 tokoe:valid" result="pass"/><test-case name="12856NISTXML-SV-IV-list-short-length-4-5 tokoe:valid" result="pass"/><test-case name="12857NISTSchema-SV-IV-list-short-length-5 tokoe:valid" result="pass"/><test-case name="12858NISTXML-SV-IV-list-short-length-5-1 tokoe:valid" result="pass"/><test-case name="12859NISTXML-SV-IV-list-short-length-5-2 tokoe:valid" result="pass"/><test-case name="12860NISTXML-SV-IV-list-short-length-5-3 tokoe:valid" result="pass"/><test-case name="12861NISTXML-SV-IV-list-short-length-5-4 tokoe:valid" result="pass"/><test-case name="12862NISTXML-SV-IV-list-short-length-5-5 tokoe:valid" result="pass"/><test-case name="12863NISTSchema-SV-IV-list-short-pattern-1 tokoe:valid" result="pass"/><test-case name="12864NISTXML-SV-IV-list-short-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12865NISTXML-SV-IV-list-short-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12866NISTXML-SV-IV-list-short-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12867NISTXML-SV-IV-list-short-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12868NISTXML-SV-IV-list-short-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12869NISTSchema-SV-IV-list-short-pattern-2 tokoe:valid" result="pass"/><test-case name="12870NISTXML-SV-IV-list-short-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12871NISTXML-SV-IV-list-short-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12872NISTXML-SV-IV-list-short-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12873NISTXML-SV-IV-list-short-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12874NISTXML-SV-IV-list-short-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12875NISTSchema-SV-IV-list-short-pattern-3 tokoe:valid" result="pass"/><test-case name="12876NISTXML-SV-IV-list-short-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12877NISTXML-SV-IV-list-short-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12878NISTXML-SV-IV-list-short-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12879NISTXML-SV-IV-list-short-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12880NISTXML-SV-IV-list-short-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12881NISTSchema-SV-IV-list-short-pattern-4 tokoe:valid" result="pass"/><test-case name="12882NISTXML-SV-IV-list-short-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12883NISTXML-SV-IV-list-short-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12884NISTXML-SV-IV-list-short-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12885NISTXML-SV-IV-list-short-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12886NISTXML-SV-IV-list-short-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12887NISTSchema-SV-IV-list-short-pattern-5 tokoe:valid" result="pass"/><test-case name="12888NISTXML-SV-IV-list-short-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12889NISTXML-SV-IV-list-short-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12890NISTXML-SV-IV-list-short-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12891NISTXML-SV-IV-list-short-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12892NISTXML-SV-IV-list-short-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12893NISTSchema-SV-IV-list-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="12894NISTXML-SV-IV-list-short-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12895NISTXML-SV-IV-list-short-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12896NISTXML-SV-IV-list-short-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12897NISTXML-SV-IV-list-short-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12898NISTXML-SV-IV-list-short-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12899NISTSchema-SV-IV-list-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="12900NISTXML-SV-IV-list-short-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12901NISTXML-SV-IV-list-short-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12902NISTXML-SV-IV-list-short-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12903NISTXML-SV-IV-list-short-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12904NISTXML-SV-IV-list-short-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12905NISTSchema-SV-IV-list-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="12906NISTXML-SV-IV-list-short-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12907NISTXML-SV-IV-list-short-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12908NISTXML-SV-IV-list-short-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12909NISTXML-SV-IV-list-short-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12910NISTXML-SV-IV-list-short-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12911NISTSchema-SV-IV-list-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="12912NISTXML-SV-IV-list-short-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12913NISTXML-SV-IV-list-short-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12914NISTXML-SV-IV-list-short-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12915NISTXML-SV-IV-list-short-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12916NISTXML-SV-IV-list-short-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12917NISTSchema-SV-IV-list-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="12918NISTXML-SV-IV-list-short-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12919NISTXML-SV-IV-list-short-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12920NISTXML-SV-IV-list-short-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12921NISTXML-SV-IV-list-short-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12922NISTXML-SV-IV-list-short-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12923NISTSchema-SV-IV-list-short-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12924NISTXML-SV-IV-list-short-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12925NISTXML-SV-IV-list-short-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12926NISTXML-SV-IV-list-short-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12927NISTXML-SV-IV-list-short-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12928NISTXML-SV-IV-list-short-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12929NISTSchema-SV-IV-list-byte-maxLength-1 tokoe:valid" result="pass"/><test-case name="12930NISTXML-SV-IV-list-byte-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12931NISTXML-SV-IV-list-byte-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12932NISTXML-SV-IV-list-byte-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12933NISTXML-SV-IV-list-byte-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12934NISTXML-SV-IV-list-byte-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12935NISTSchema-SV-IV-list-byte-maxLength-2 tokoe:valid" result="pass"/><test-case name="12936NISTXML-SV-IV-list-byte-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12937NISTXML-SV-IV-list-byte-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12938NISTXML-SV-IV-list-byte-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12939NISTXML-SV-IV-list-byte-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12940NISTXML-SV-IV-list-byte-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12941NISTSchema-SV-IV-list-byte-maxLength-3 tokoe:valid" result="pass"/><test-case name="12942NISTXML-SV-IV-list-byte-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12943NISTXML-SV-IV-list-byte-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12944NISTXML-SV-IV-list-byte-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12945NISTXML-SV-IV-list-byte-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12946NISTXML-SV-IV-list-byte-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12947NISTSchema-SV-IV-list-byte-maxLength-4 tokoe:valid" result="pass"/><test-case name="12948NISTXML-SV-IV-list-byte-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12949NISTXML-SV-IV-list-byte-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12950NISTXML-SV-IV-list-byte-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12951NISTXML-SV-IV-list-byte-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12952NISTXML-SV-IV-list-byte-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12953NISTSchema-SV-IV-list-byte-maxLength-5 tokoe:valid" result="pass"/><test-case name="12954NISTXML-SV-IV-list-byte-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12955NISTXML-SV-IV-list-byte-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12956NISTXML-SV-IV-list-byte-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12957NISTXML-SV-IV-list-byte-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12958NISTXML-SV-IV-list-byte-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12959NISTSchema-SV-IV-list-byte-minLength-1 tokoe:valid" result="pass"/><test-case name="12960NISTXML-SV-IV-list-byte-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12961NISTXML-SV-IV-list-byte-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12962NISTXML-SV-IV-list-byte-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12963NISTXML-SV-IV-list-byte-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12964NISTXML-SV-IV-list-byte-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12965NISTSchema-SV-IV-list-byte-minLength-2 tokoe:valid" result="pass"/><test-case name="12966NISTXML-SV-IV-list-byte-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12967NISTXML-SV-IV-list-byte-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12968NISTXML-SV-IV-list-byte-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12969NISTXML-SV-IV-list-byte-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12970NISTXML-SV-IV-list-byte-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12971NISTSchema-SV-IV-list-byte-minLength-3 tokoe:valid" result="pass"/><test-case name="12972NISTXML-SV-IV-list-byte-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12973NISTXML-SV-IV-list-byte-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12974NISTXML-SV-IV-list-byte-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12975NISTXML-SV-IV-list-byte-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12976NISTXML-SV-IV-list-byte-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12977NISTSchema-SV-IV-list-byte-minLength-4 tokoe:valid" result="pass"/><test-case name="12978NISTXML-SV-IV-list-byte-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12979NISTXML-SV-IV-list-byte-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12980NISTXML-SV-IV-list-byte-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12981NISTXML-SV-IV-list-byte-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12982NISTXML-SV-IV-list-byte-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12983NISTSchema-SV-IV-list-byte-minLength-5 tokoe:valid" result="pass"/><test-case name="12984NISTXML-SV-IV-list-byte-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12985NISTXML-SV-IV-list-byte-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12986NISTXML-SV-IV-list-byte-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12987NISTXML-SV-IV-list-byte-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12988NISTXML-SV-IV-list-byte-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12989NISTSchema-SV-IV-list-byte-length-1 tokoe:valid" result="pass"/><test-case name="12990NISTXML-SV-IV-list-byte-length-1-1 tokoe:valid" result="pass"/><test-case name="12991NISTXML-SV-IV-list-byte-length-1-2 tokoe:valid" result="pass"/><test-case name="12992NISTXML-SV-IV-list-byte-length-1-3 tokoe:valid" result="pass"/><test-case name="12993NISTXML-SV-IV-list-byte-length-1-4 tokoe:valid" result="pass"/><test-case name="12994NISTXML-SV-IV-list-byte-length-1-5 tokoe:valid" result="pass"/><test-case name="12995NISTSchema-SV-IV-list-byte-length-2 tokoe:valid" result="pass"/><test-case name="12996NISTXML-SV-IV-list-byte-length-2-1 tokoe:valid" result="pass"/><test-case name="12997NISTXML-SV-IV-list-byte-length-2-2 tokoe:valid" result="pass"/><test-case name="12998NISTXML-SV-IV-list-byte-length-2-3 tokoe:valid" result="pass"/><test-case name="12999NISTXML-SV-IV-list-byte-length-2-4 tokoe:valid" result="pass"/><test-case name="13000NISTXML-SV-IV-list-byte-length-2-5 tokoe:valid" result="pass"/><test-case name="13001NISTSchema-SV-IV-list-byte-length-3 tokoe:valid" result="pass"/><test-case name="13002NISTXML-SV-IV-list-byte-length-3-1 tokoe:valid" result="pass"/><test-case name="13003NISTXML-SV-IV-list-byte-length-3-2 tokoe:valid" result="pass"/><test-case name="13004NISTXML-SV-IV-list-byte-length-3-3 tokoe:valid" result="pass"/><test-case name="13005NISTXML-SV-IV-list-byte-length-3-4 tokoe:valid" result="pass"/><test-case name="13006NISTXML-SV-IV-list-byte-length-3-5 tokoe:valid" result="pass"/><test-case name="13007NISTSchema-SV-IV-list-byte-length-4 tokoe:valid" result="pass"/><test-case name="13008NISTXML-SV-IV-list-byte-length-4-1 tokoe:valid" result="pass"/><test-case name="13009NISTXML-SV-IV-list-byte-length-4-2 tokoe:valid" result="pass"/><test-case name="13010NISTXML-SV-IV-list-byte-length-4-3 tokoe:valid" result="pass"/><test-case name="13011NISTXML-SV-IV-list-byte-length-4-4 tokoe:valid" result="pass"/><test-case name="13012NISTXML-SV-IV-list-byte-length-4-5 tokoe:valid" result="pass"/><test-case name="13013NISTSchema-SV-IV-list-byte-length-5 tokoe:valid" result="pass"/><test-case name="13014NISTXML-SV-IV-list-byte-length-5-1 tokoe:valid" result="pass"/><test-case name="13015NISTXML-SV-IV-list-byte-length-5-2 tokoe:valid" result="pass"/><test-case name="13016NISTXML-SV-IV-list-byte-length-5-3 tokoe:valid" result="pass"/><test-case name="13017NISTXML-SV-IV-list-byte-length-5-4 tokoe:valid" result="pass"/><test-case name="13018NISTXML-SV-IV-list-byte-length-5-5 tokoe:valid" result="pass"/><test-case name="13019NISTSchema-SV-IV-list-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="13020NISTXML-SV-IV-list-byte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13021NISTXML-SV-IV-list-byte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13022NISTXML-SV-IV-list-byte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13023NISTXML-SV-IV-list-byte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13024NISTXML-SV-IV-list-byte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13025NISTSchema-SV-IV-list-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="13026NISTXML-SV-IV-list-byte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13027NISTXML-SV-IV-list-byte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13028NISTXML-SV-IV-list-byte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13029NISTXML-SV-IV-list-byte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13030NISTXML-SV-IV-list-byte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13031NISTSchema-SV-IV-list-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="13032NISTXML-SV-IV-list-byte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13033NISTXML-SV-IV-list-byte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13034NISTXML-SV-IV-list-byte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13035NISTXML-SV-IV-list-byte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13036NISTXML-SV-IV-list-byte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13037NISTSchema-SV-IV-list-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="13038NISTXML-SV-IV-list-byte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13039NISTXML-SV-IV-list-byte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13040NISTXML-SV-IV-list-byte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13041NISTXML-SV-IV-list-byte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13042NISTXML-SV-IV-list-byte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13043NISTSchema-SV-IV-list-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="13044NISTXML-SV-IV-list-byte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13045NISTXML-SV-IV-list-byte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13046NISTXML-SV-IV-list-byte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13047NISTXML-SV-IV-list-byte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13048NISTXML-SV-IV-list-byte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13049NISTSchema-SV-IV-list-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="13050NISTXML-SV-IV-list-byte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13051NISTXML-SV-IV-list-byte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13052NISTXML-SV-IV-list-byte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13053NISTXML-SV-IV-list-byte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13054NISTXML-SV-IV-list-byte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13055NISTSchema-SV-IV-list-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="13056NISTXML-SV-IV-list-byte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13057NISTXML-SV-IV-list-byte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13058NISTXML-SV-IV-list-byte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13059NISTXML-SV-IV-list-byte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13060NISTXML-SV-IV-list-byte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13061NISTSchema-SV-IV-list-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="13062NISTXML-SV-IV-list-byte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13063NISTXML-SV-IV-list-byte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13064NISTXML-SV-IV-list-byte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13065NISTXML-SV-IV-list-byte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13066NISTXML-SV-IV-list-byte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13067NISTSchema-SV-IV-list-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="13068NISTXML-SV-IV-list-byte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13069NISTXML-SV-IV-list-byte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13070NISTXML-SV-IV-list-byte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13071NISTXML-SV-IV-list-byte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13072NISTXML-SV-IV-list-byte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13073NISTSchema-SV-IV-list-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="13074NISTXML-SV-IV-list-byte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13075NISTXML-SV-IV-list-byte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13076NISTXML-SV-IV-list-byte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13077NISTXML-SV-IV-list-byte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13078NISTXML-SV-IV-list-byte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13079NISTSchema-SV-IV-list-byte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13080NISTXML-SV-IV-list-byte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13081NISTXML-SV-IV-list-byte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13082NISTXML-SV-IV-list-byte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13083NISTXML-SV-IV-list-byte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13084NISTXML-SV-IV-list-byte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13085NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="13086NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13087NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13088NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13089NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13090NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13091NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="13092NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13093NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13094NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13095NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13096NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13097NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="13098NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13099NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13100NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13101NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13102NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13103NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="13104NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13105NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13106NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13107NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13108NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13109NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="13110NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13111NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13112NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13113NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13114NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13115NISTSchema-SV-IV-list-nonNegativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="13116NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13117NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13118NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13119NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13120NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13121NISTSchema-SV-IV-list-nonNegativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="13122NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13123NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13124NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13125NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13126NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13127NISTSchema-SV-IV-list-nonNegativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="13128NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13129NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13130NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13131NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13132NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13133NISTSchema-SV-IV-list-nonNegativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="13134NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13135NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13136NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13137NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13138NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13139NISTSchema-SV-IV-list-nonNegativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="13140NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13141NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13142NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13143NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13144NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13145NISTSchema-SV-IV-list-nonNegativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="13146NISTXML-SV-IV-list-nonNegativeInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="13147NISTXML-SV-IV-list-nonNegativeInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="13148NISTXML-SV-IV-list-nonNegativeInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="13149NISTXML-SV-IV-list-nonNegativeInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="13150NISTXML-SV-IV-list-nonNegativeInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="13151NISTSchema-SV-IV-list-nonNegativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="13152NISTXML-SV-IV-list-nonNegativeInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="13153NISTXML-SV-IV-list-nonNegativeInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="13154NISTXML-SV-IV-list-nonNegativeInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="13155NISTXML-SV-IV-list-nonNegativeInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="13156NISTXML-SV-IV-list-nonNegativeInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="13157NISTSchema-SV-IV-list-nonNegativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="13158NISTXML-SV-IV-list-nonNegativeInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="13159NISTXML-SV-IV-list-nonNegativeInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="13160NISTXML-SV-IV-list-nonNegativeInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="13161NISTXML-SV-IV-list-nonNegativeInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="13162NISTXML-SV-IV-list-nonNegativeInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="13163NISTSchema-SV-IV-list-nonNegativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="13164NISTXML-SV-IV-list-nonNegativeInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="13165NISTXML-SV-IV-list-nonNegativeInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="13166NISTXML-SV-IV-list-nonNegativeInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="13167NISTXML-SV-IV-list-nonNegativeInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="13168NISTXML-SV-IV-list-nonNegativeInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="13169NISTSchema-SV-IV-list-nonNegativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="13170NISTXML-SV-IV-list-nonNegativeInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="13171NISTXML-SV-IV-list-nonNegativeInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="13172NISTXML-SV-IV-list-nonNegativeInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="13173NISTXML-SV-IV-list-nonNegativeInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="13174NISTXML-SV-IV-list-nonNegativeInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="13175NISTSchema-SV-IV-list-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="13176NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13177NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13178NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13179NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13180NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13181NISTSchema-SV-IV-list-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="13182NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13183NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13184NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13185NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13186NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13187NISTSchema-SV-IV-list-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="13188NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13189NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13190NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13191NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13192NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13193NISTSchema-SV-IV-list-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="13194NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13195NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13196NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13197NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13198NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13199NISTSchema-SV-IV-list-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="13200NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13201NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13202NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13203NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13204NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13205NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="13206NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13207NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13208NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13209NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13210NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13211NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="13212NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13213NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13214NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13215NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13216NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13217NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="13218NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13219NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13220NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13221NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13222NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13223NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="13224NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13225NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13226NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13227NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13228NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13229NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="13230NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13231NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13232NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13233NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13234NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13235NISTSchema-SV-IV-list-nonNegativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13236NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13237NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13238NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13239NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13240NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13241NISTSchema-SV-IV-list-unsignedLong-maxLength-1 tokoe:valid" result="pass"/><test-case name="13242NISTXML-SV-IV-list-unsignedLong-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13243NISTXML-SV-IV-list-unsignedLong-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13244NISTXML-SV-IV-list-unsignedLong-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13245NISTXML-SV-IV-list-unsignedLong-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13246NISTXML-SV-IV-list-unsignedLong-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13247NISTSchema-SV-IV-list-unsignedLong-maxLength-2 tokoe:valid" result="pass"/><test-case name="13248NISTXML-SV-IV-list-unsignedLong-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13249NISTXML-SV-IV-list-unsignedLong-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13250NISTXML-SV-IV-list-unsignedLong-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13251NISTXML-SV-IV-list-unsignedLong-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13252NISTXML-SV-IV-list-unsignedLong-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13253NISTSchema-SV-IV-list-unsignedLong-maxLength-3 tokoe:valid" result="pass"/><test-case name="13254NISTXML-SV-IV-list-unsignedLong-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13255NISTXML-SV-IV-list-unsignedLong-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13256NISTXML-SV-IV-list-unsignedLong-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13257NISTXML-SV-IV-list-unsignedLong-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13258NISTXML-SV-IV-list-unsignedLong-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13259NISTSchema-SV-IV-list-unsignedLong-maxLength-4 tokoe:valid" result="pass"/><test-case name="13260NISTXML-SV-IV-list-unsignedLong-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13261NISTXML-SV-IV-list-unsignedLong-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13262NISTXML-SV-IV-list-unsignedLong-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13263NISTXML-SV-IV-list-unsignedLong-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13264NISTXML-SV-IV-list-unsignedLong-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13265NISTSchema-SV-IV-list-unsignedLong-maxLength-5 tokoe:valid" result="pass"/><test-case name="13266NISTXML-SV-IV-list-unsignedLong-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13267NISTXML-SV-IV-list-unsignedLong-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13268NISTXML-SV-IV-list-unsignedLong-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13269NISTXML-SV-IV-list-unsignedLong-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13270NISTXML-SV-IV-list-unsignedLong-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13271NISTSchema-SV-IV-list-unsignedLong-minLength-1 tokoe:valid" result="pass"/><test-case name="13272NISTXML-SV-IV-list-unsignedLong-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13273NISTXML-SV-IV-list-unsignedLong-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13274NISTXML-SV-IV-list-unsignedLong-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13275NISTXML-SV-IV-list-unsignedLong-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13276NISTXML-SV-IV-list-unsignedLong-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13277NISTSchema-SV-IV-list-unsignedLong-minLength-2 tokoe:valid" result="pass"/><test-case name="13278NISTXML-SV-IV-list-unsignedLong-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13279NISTXML-SV-IV-list-unsignedLong-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13280NISTXML-SV-IV-list-unsignedLong-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13281NISTXML-SV-IV-list-unsignedLong-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13282NISTXML-SV-IV-list-unsignedLong-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13283NISTSchema-SV-IV-list-unsignedLong-minLength-3 tokoe:valid" result="pass"/><test-case name="13284NISTXML-SV-IV-list-unsignedLong-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13285NISTXML-SV-IV-list-unsignedLong-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13286NISTXML-SV-IV-list-unsignedLong-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13287NISTXML-SV-IV-list-unsignedLong-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13288NISTXML-SV-IV-list-unsignedLong-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13289NISTSchema-SV-IV-list-unsignedLong-minLength-4 tokoe:valid" result="pass"/><test-case name="13290NISTXML-SV-IV-list-unsignedLong-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13291NISTXML-SV-IV-list-unsignedLong-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13292NISTXML-SV-IV-list-unsignedLong-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13293NISTXML-SV-IV-list-unsignedLong-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13294NISTXML-SV-IV-list-unsignedLong-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13295NISTSchema-SV-IV-list-unsignedLong-minLength-5 tokoe:valid" result="pass"/><test-case name="13296NISTXML-SV-IV-list-unsignedLong-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13297NISTXML-SV-IV-list-unsignedLong-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13298NISTXML-SV-IV-list-unsignedLong-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13299NISTXML-SV-IV-list-unsignedLong-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13300NISTXML-SV-IV-list-unsignedLong-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13301NISTSchema-SV-IV-list-unsignedLong-length-1 tokoe:valid" result="pass"/><test-case name="13302NISTXML-SV-IV-list-unsignedLong-length-1-1 tokoe:valid" result="pass"/><test-case name="13303NISTXML-SV-IV-list-unsignedLong-length-1-2 tokoe:valid" result="pass"/><test-case name="13304NISTXML-SV-IV-list-unsignedLong-length-1-3 tokoe:valid" result="pass"/><test-case name="13305NISTXML-SV-IV-list-unsignedLong-length-1-4 tokoe:valid" result="pass"/><test-case name="13306NISTXML-SV-IV-list-unsignedLong-length-1-5 tokoe:valid" result="pass"/><test-case name="13307NISTSchema-SV-IV-list-unsignedLong-length-2 tokoe:valid" result="pass"/><test-case name="13308NISTXML-SV-IV-list-unsignedLong-length-2-1 tokoe:valid" result="pass"/><test-case name="13309NISTXML-SV-IV-list-unsignedLong-length-2-2 tokoe:valid" result="pass"/><test-case name="13310NISTXML-SV-IV-list-unsignedLong-length-2-3 tokoe:valid" result="pass"/><test-case name="13311NISTXML-SV-IV-list-unsignedLong-length-2-4 tokoe:valid" result="pass"/><test-case name="13312NISTXML-SV-IV-list-unsignedLong-length-2-5 tokoe:valid" result="pass"/><test-case name="13313NISTSchema-SV-IV-list-unsignedLong-length-3 tokoe:valid" result="pass"/><test-case name="13314NISTXML-SV-IV-list-unsignedLong-length-3-1 tokoe:valid" result="pass"/><test-case name="13315NISTXML-SV-IV-list-unsignedLong-length-3-2 tokoe:valid" result="pass"/><test-case name="13316NISTXML-SV-IV-list-unsignedLong-length-3-3 tokoe:valid" result="pass"/><test-case name="13317NISTXML-SV-IV-list-unsignedLong-length-3-4 tokoe:valid" result="pass"/><test-case name="13318NISTXML-SV-IV-list-unsignedLong-length-3-5 tokoe:valid" result="pass"/><test-case name="13319NISTSchema-SV-IV-list-unsignedLong-length-4 tokoe:valid" result="pass"/><test-case name="13320NISTXML-SV-IV-list-unsignedLong-length-4-1 tokoe:valid" result="pass"/><test-case name="13321NISTXML-SV-IV-list-unsignedLong-length-4-2 tokoe:valid" result="pass"/><test-case name="13322NISTXML-SV-IV-list-unsignedLong-length-4-3 tokoe:valid" result="pass"/><test-case name="13323NISTXML-SV-IV-list-unsignedLong-length-4-4 tokoe:valid" result="pass"/><test-case name="13324NISTXML-SV-IV-list-unsignedLong-length-4-5 tokoe:valid" result="pass"/><test-case name="13325NISTSchema-SV-IV-list-unsignedLong-length-5 tokoe:valid" result="pass"/><test-case name="13326NISTXML-SV-IV-list-unsignedLong-length-5-1 tokoe:valid" result="pass"/><test-case name="13327NISTXML-SV-IV-list-unsignedLong-length-5-2 tokoe:valid" result="pass"/><test-case name="13328NISTXML-SV-IV-list-unsignedLong-length-5-3 tokoe:valid" result="pass"/><test-case name="13329NISTXML-SV-IV-list-unsignedLong-length-5-4 tokoe:valid" result="pass"/><test-case name="13330NISTXML-SV-IV-list-unsignedLong-length-5-5 tokoe:valid" result="pass"/><test-case name="13331NISTSchema-SV-IV-list-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="13332NISTXML-SV-IV-list-unsignedLong-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13333NISTXML-SV-IV-list-unsignedLong-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13334NISTXML-SV-IV-list-unsignedLong-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13335NISTXML-SV-IV-list-unsignedLong-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13336NISTXML-SV-IV-list-unsignedLong-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13337NISTSchema-SV-IV-list-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="13338NISTXML-SV-IV-list-unsignedLong-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13339NISTXML-SV-IV-list-unsignedLong-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13340NISTXML-SV-IV-list-unsignedLong-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13341NISTXML-SV-IV-list-unsignedLong-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13342NISTXML-SV-IV-list-unsignedLong-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13343NISTSchema-SV-IV-list-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="13344NISTXML-SV-IV-list-unsignedLong-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13345NISTXML-SV-IV-list-unsignedLong-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13346NISTXML-SV-IV-list-unsignedLong-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13347NISTXML-SV-IV-list-unsignedLong-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13348NISTXML-SV-IV-list-unsignedLong-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13349NISTSchema-SV-IV-list-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="13350NISTXML-SV-IV-list-unsignedLong-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13351NISTXML-SV-IV-list-unsignedLong-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13352NISTXML-SV-IV-list-unsignedLong-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13353NISTXML-SV-IV-list-unsignedLong-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13354NISTXML-SV-IV-list-unsignedLong-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13355NISTSchema-SV-IV-list-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="13356NISTXML-SV-IV-list-unsignedLong-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13357NISTXML-SV-IV-list-unsignedLong-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13358NISTXML-SV-IV-list-unsignedLong-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13359NISTXML-SV-IV-list-unsignedLong-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13360NISTXML-SV-IV-list-unsignedLong-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13361NISTSchema-SV-IV-list-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="13362NISTXML-SV-IV-list-unsignedLong-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13363NISTXML-SV-IV-list-unsignedLong-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13364NISTXML-SV-IV-list-unsignedLong-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13365NISTXML-SV-IV-list-unsignedLong-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13366NISTXML-SV-IV-list-unsignedLong-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13367NISTSchema-SV-IV-list-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="13368NISTXML-SV-IV-list-unsignedLong-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13369NISTXML-SV-IV-list-unsignedLong-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13370NISTXML-SV-IV-list-unsignedLong-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13371NISTXML-SV-IV-list-unsignedLong-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13372NISTXML-SV-IV-list-unsignedLong-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13373NISTSchema-SV-IV-list-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="13374NISTXML-SV-IV-list-unsignedLong-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13375NISTXML-SV-IV-list-unsignedLong-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13376NISTXML-SV-IV-list-unsignedLong-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13377NISTXML-SV-IV-list-unsignedLong-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13378NISTXML-SV-IV-list-unsignedLong-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13379NISTSchema-SV-IV-list-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="13380NISTXML-SV-IV-list-unsignedLong-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13381NISTXML-SV-IV-list-unsignedLong-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13382NISTXML-SV-IV-list-unsignedLong-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13383NISTXML-SV-IV-list-unsignedLong-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13384NISTXML-SV-IV-list-unsignedLong-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13385NISTSchema-SV-IV-list-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="13386NISTXML-SV-IV-list-unsignedLong-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13387NISTXML-SV-IV-list-unsignedLong-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13388NISTXML-SV-IV-list-unsignedLong-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13389NISTXML-SV-IV-list-unsignedLong-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13390NISTXML-SV-IV-list-unsignedLong-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13391NISTSchema-SV-IV-list-unsignedLong-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13392NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13393NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13394NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13395NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13396NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13397NISTSchema-SV-IV-list-unsignedInt-maxLength-1 tokoe:valid" result="pass"/><test-case name="13398NISTXML-SV-IV-list-unsignedInt-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13399NISTXML-SV-IV-list-unsignedInt-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13400NISTXML-SV-IV-list-unsignedInt-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13401NISTXML-SV-IV-list-unsignedInt-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13402NISTXML-SV-IV-list-unsignedInt-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13403NISTSchema-SV-IV-list-unsignedInt-maxLength-2 tokoe:valid" result="pass"/><test-case name="13404NISTXML-SV-IV-list-unsignedInt-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13405NISTXML-SV-IV-list-unsignedInt-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13406NISTXML-SV-IV-list-unsignedInt-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13407NISTXML-SV-IV-list-unsignedInt-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13408NISTXML-SV-IV-list-unsignedInt-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13409NISTSchema-SV-IV-list-unsignedInt-maxLength-3 tokoe:valid" result="pass"/><test-case name="13410NISTXML-SV-IV-list-unsignedInt-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13411NISTXML-SV-IV-list-unsignedInt-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13412NISTXML-SV-IV-list-unsignedInt-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13413NISTXML-SV-IV-list-unsignedInt-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13414NISTXML-SV-IV-list-unsignedInt-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13415NISTSchema-SV-IV-list-unsignedInt-maxLength-4 tokoe:valid" result="pass"/><test-case name="13416NISTXML-SV-IV-list-unsignedInt-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13417NISTXML-SV-IV-list-unsignedInt-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13418NISTXML-SV-IV-list-unsignedInt-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13419NISTXML-SV-IV-list-unsignedInt-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13420NISTXML-SV-IV-list-unsignedInt-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13421NISTSchema-SV-IV-list-unsignedInt-maxLength-5 tokoe:valid" result="pass"/><test-case name="13422NISTXML-SV-IV-list-unsignedInt-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13423NISTXML-SV-IV-list-unsignedInt-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13424NISTXML-SV-IV-list-unsignedInt-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13425NISTXML-SV-IV-list-unsignedInt-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13426NISTXML-SV-IV-list-unsignedInt-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13427NISTSchema-SV-IV-list-unsignedInt-minLength-1 tokoe:valid" result="pass"/><test-case name="13428NISTXML-SV-IV-list-unsignedInt-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13429NISTXML-SV-IV-list-unsignedInt-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13430NISTXML-SV-IV-list-unsignedInt-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13431NISTXML-SV-IV-list-unsignedInt-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13432NISTXML-SV-IV-list-unsignedInt-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13433NISTSchema-SV-IV-list-unsignedInt-minLength-2 tokoe:valid" result="pass"/><test-case name="13434NISTXML-SV-IV-list-unsignedInt-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13435NISTXML-SV-IV-list-unsignedInt-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13436NISTXML-SV-IV-list-unsignedInt-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13437NISTXML-SV-IV-list-unsignedInt-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13438NISTXML-SV-IV-list-unsignedInt-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13439NISTSchema-SV-IV-list-unsignedInt-minLength-3 tokoe:valid" result="pass"/><test-case name="13440NISTXML-SV-IV-list-unsignedInt-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13441NISTXML-SV-IV-list-unsignedInt-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13442NISTXML-SV-IV-list-unsignedInt-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13443NISTXML-SV-IV-list-unsignedInt-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13444NISTXML-SV-IV-list-unsignedInt-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13445NISTSchema-SV-IV-list-unsignedInt-minLength-4 tokoe:valid" result="pass"/><test-case name="13446NISTXML-SV-IV-list-unsignedInt-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13447NISTXML-SV-IV-list-unsignedInt-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13448NISTXML-SV-IV-list-unsignedInt-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13449NISTXML-SV-IV-list-unsignedInt-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13450NISTXML-SV-IV-list-unsignedInt-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13451NISTSchema-SV-IV-list-unsignedInt-minLength-5 tokoe:valid" result="pass"/><test-case name="13452NISTXML-SV-IV-list-unsignedInt-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13453NISTXML-SV-IV-list-unsignedInt-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13454NISTXML-SV-IV-list-unsignedInt-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13455NISTXML-SV-IV-list-unsignedInt-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13456NISTXML-SV-IV-list-unsignedInt-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13457NISTSchema-SV-IV-list-unsignedInt-length-1 tokoe:valid" result="pass"/><test-case name="13458NISTXML-SV-IV-list-unsignedInt-length-1-1 tokoe:valid" result="pass"/><test-case name="13459NISTXML-SV-IV-list-unsignedInt-length-1-2 tokoe:valid" result="pass"/><test-case name="13460NISTXML-SV-IV-list-unsignedInt-length-1-3 tokoe:valid" result="pass"/><test-case name="13461NISTXML-SV-IV-list-unsignedInt-length-1-4 tokoe:valid" result="pass"/><test-case name="13462NISTXML-SV-IV-list-unsignedInt-length-1-5 tokoe:valid" result="pass"/><test-case name="13463NISTSchema-SV-IV-list-unsignedInt-length-2 tokoe:valid" result="pass"/><test-case name="13464NISTXML-SV-IV-list-unsignedInt-length-2-1 tokoe:valid" result="pass"/><test-case name="13465NISTXML-SV-IV-list-unsignedInt-length-2-2 tokoe:valid" result="pass"/><test-case name="13466NISTXML-SV-IV-list-unsignedInt-length-2-3 tokoe:valid" result="pass"/><test-case name="13467NISTXML-SV-IV-list-unsignedInt-length-2-4 tokoe:valid" result="pass"/><test-case name="13468NISTXML-SV-IV-list-unsignedInt-length-2-5 tokoe:valid" result="pass"/><test-case name="13469NISTSchema-SV-IV-list-unsignedInt-length-3 tokoe:valid" result="pass"/><test-case name="13470NISTXML-SV-IV-list-unsignedInt-length-3-1 tokoe:valid" result="pass"/><test-case name="13471NISTXML-SV-IV-list-unsignedInt-length-3-2 tokoe:valid" result="pass"/><test-case name="13472NISTXML-SV-IV-list-unsignedInt-length-3-3 tokoe:valid" result="pass"/><test-case name="13473NISTXML-SV-IV-list-unsignedInt-length-3-4 tokoe:valid" result="pass"/><test-case name="13474NISTXML-SV-IV-list-unsignedInt-length-3-5 tokoe:valid" result="pass"/><test-case name="13475NISTSchema-SV-IV-list-unsignedInt-length-4 tokoe:valid" result="pass"/><test-case name="13476NISTXML-SV-IV-list-unsignedInt-length-4-1 tokoe:valid" result="pass"/><test-case name="13477NISTXML-SV-IV-list-unsignedInt-length-4-2 tokoe:valid" result="pass"/><test-case name="13478NISTXML-SV-IV-list-unsignedInt-length-4-3 tokoe:valid" result="pass"/><test-case name="13479NISTXML-SV-IV-list-unsignedInt-length-4-4 tokoe:valid" result="pass"/><test-case name="13480NISTXML-SV-IV-list-unsignedInt-length-4-5 tokoe:valid" result="pass"/><test-case name="13481NISTSchema-SV-IV-list-unsignedInt-length-5 tokoe:valid" result="pass"/><test-case name="13482NISTXML-SV-IV-list-unsignedInt-length-5-1 tokoe:valid" result="pass"/><test-case name="13483NISTXML-SV-IV-list-unsignedInt-length-5-2 tokoe:valid" result="pass"/><test-case name="13484NISTXML-SV-IV-list-unsignedInt-length-5-3 tokoe:valid" result="pass"/><test-case name="13485NISTXML-SV-IV-list-unsignedInt-length-5-4 tokoe:valid" result="pass"/><test-case name="13486NISTXML-SV-IV-list-unsignedInt-length-5-5 tokoe:valid" result="pass"/><test-case name="13487NISTSchema-SV-IV-list-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="13488NISTXML-SV-IV-list-unsignedInt-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13489NISTXML-SV-IV-list-unsignedInt-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13490NISTXML-SV-IV-list-unsignedInt-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13491NISTXML-SV-IV-list-unsignedInt-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13492NISTXML-SV-IV-list-unsignedInt-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13493NISTSchema-SV-IV-list-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="13494NISTXML-SV-IV-list-unsignedInt-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13495NISTXML-SV-IV-list-unsignedInt-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13496NISTXML-SV-IV-list-unsignedInt-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13497NISTXML-SV-IV-list-unsignedInt-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13498NISTXML-SV-IV-list-unsignedInt-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13499NISTSchema-SV-IV-list-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="13500NISTXML-SV-IV-list-unsignedInt-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13501NISTXML-SV-IV-list-unsignedInt-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13502NISTXML-SV-IV-list-unsignedInt-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13503NISTXML-SV-IV-list-unsignedInt-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13504NISTXML-SV-IV-list-unsignedInt-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13505NISTSchema-SV-IV-list-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="13506NISTXML-SV-IV-list-unsignedInt-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13507NISTXML-SV-IV-list-unsignedInt-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13508NISTXML-SV-IV-list-unsignedInt-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13509NISTXML-SV-IV-list-unsignedInt-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13510NISTXML-SV-IV-list-unsignedInt-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13511NISTSchema-SV-IV-list-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="13512NISTXML-SV-IV-list-unsignedInt-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13513NISTXML-SV-IV-list-unsignedInt-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13514NISTXML-SV-IV-list-unsignedInt-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13515NISTXML-SV-IV-list-unsignedInt-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13516NISTXML-SV-IV-list-unsignedInt-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13517NISTSchema-SV-IV-list-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="13518NISTXML-SV-IV-list-unsignedInt-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13519NISTXML-SV-IV-list-unsignedInt-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13520NISTXML-SV-IV-list-unsignedInt-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13521NISTXML-SV-IV-list-unsignedInt-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13522NISTXML-SV-IV-list-unsignedInt-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13523NISTSchema-SV-IV-list-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="13524NISTXML-SV-IV-list-unsignedInt-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13525NISTXML-SV-IV-list-unsignedInt-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13526NISTXML-SV-IV-list-unsignedInt-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13527NISTXML-SV-IV-list-unsignedInt-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13528NISTXML-SV-IV-list-unsignedInt-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13529NISTSchema-SV-IV-list-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="13530NISTXML-SV-IV-list-unsignedInt-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13531NISTXML-SV-IV-list-unsignedInt-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13532NISTXML-SV-IV-list-unsignedInt-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13533NISTXML-SV-IV-list-unsignedInt-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13534NISTXML-SV-IV-list-unsignedInt-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13535NISTSchema-SV-IV-list-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="13536NISTXML-SV-IV-list-unsignedInt-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13537NISTXML-SV-IV-list-unsignedInt-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13538NISTXML-SV-IV-list-unsignedInt-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13539NISTXML-SV-IV-list-unsignedInt-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13540NISTXML-SV-IV-list-unsignedInt-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13541NISTSchema-SV-IV-list-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="13542NISTXML-SV-IV-list-unsignedInt-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13543NISTXML-SV-IV-list-unsignedInt-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13544NISTXML-SV-IV-list-unsignedInt-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13545NISTXML-SV-IV-list-unsignedInt-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13546NISTXML-SV-IV-list-unsignedInt-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13547NISTSchema-SV-IV-list-unsignedInt-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13548NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13549NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13550NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13551NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13552NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13553NISTSchema-SV-IV-list-unsignedShort-maxLength-1 tokoe:valid" result="pass"/><test-case name="13554NISTXML-SV-IV-list-unsignedShort-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13555NISTXML-SV-IV-list-unsignedShort-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13556NISTXML-SV-IV-list-unsignedShort-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13557NISTXML-SV-IV-list-unsignedShort-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13558NISTXML-SV-IV-list-unsignedShort-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13559NISTSchema-SV-IV-list-unsignedShort-maxLength-2 tokoe:valid" result="pass"/><test-case name="13560NISTXML-SV-IV-list-unsignedShort-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13561NISTXML-SV-IV-list-unsignedShort-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13562NISTXML-SV-IV-list-unsignedShort-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13563NISTXML-SV-IV-list-unsignedShort-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13564NISTXML-SV-IV-list-unsignedShort-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13565NISTSchema-SV-IV-list-unsignedShort-maxLength-3 tokoe:valid" result="pass"/><test-case name="13566NISTXML-SV-IV-list-unsignedShort-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13567NISTXML-SV-IV-list-unsignedShort-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13568NISTXML-SV-IV-list-unsignedShort-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13569NISTXML-SV-IV-list-unsignedShort-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13570NISTXML-SV-IV-list-unsignedShort-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13571NISTSchema-SV-IV-list-unsignedShort-maxLength-4 tokoe:valid" result="pass"/><test-case name="13572NISTXML-SV-IV-list-unsignedShort-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13573NISTXML-SV-IV-list-unsignedShort-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13574NISTXML-SV-IV-list-unsignedShort-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13575NISTXML-SV-IV-list-unsignedShort-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13576NISTXML-SV-IV-list-unsignedShort-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13577NISTSchema-SV-IV-list-unsignedShort-maxLength-5 tokoe:valid" result="pass"/><test-case name="13578NISTXML-SV-IV-list-unsignedShort-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13579NISTXML-SV-IV-list-unsignedShort-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13580NISTXML-SV-IV-list-unsignedShort-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13581NISTXML-SV-IV-list-unsignedShort-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13582NISTXML-SV-IV-list-unsignedShort-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13583NISTSchema-SV-IV-list-unsignedShort-minLength-1 tokoe:valid" result="pass"/><test-case name="13584NISTXML-SV-IV-list-unsignedShort-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13585NISTXML-SV-IV-list-unsignedShort-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13586NISTXML-SV-IV-list-unsignedShort-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13587NISTXML-SV-IV-list-unsignedShort-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13588NISTXML-SV-IV-list-unsignedShort-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13589NISTSchema-SV-IV-list-unsignedShort-minLength-2 tokoe:valid" result="pass"/><test-case name="13590NISTXML-SV-IV-list-unsignedShort-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13591NISTXML-SV-IV-list-unsignedShort-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13592NISTXML-SV-IV-list-unsignedShort-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13593NISTXML-SV-IV-list-unsignedShort-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13594NISTXML-SV-IV-list-unsignedShort-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13595NISTSchema-SV-IV-list-unsignedShort-minLength-3 tokoe:valid" result="pass"/><test-case name="13596NISTXML-SV-IV-list-unsignedShort-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13597NISTXML-SV-IV-list-unsignedShort-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13598NISTXML-SV-IV-list-unsignedShort-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13599NISTXML-SV-IV-list-unsignedShort-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13600NISTXML-SV-IV-list-unsignedShort-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13601NISTSchema-SV-IV-list-unsignedShort-minLength-4 tokoe:valid" result="pass"/><test-case name="13602NISTXML-SV-IV-list-unsignedShort-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13603NISTXML-SV-IV-list-unsignedShort-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13604NISTXML-SV-IV-list-unsignedShort-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13605NISTXML-SV-IV-list-unsignedShort-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13606NISTXML-SV-IV-list-unsignedShort-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13607NISTSchema-SV-IV-list-unsignedShort-minLength-5 tokoe:valid" result="pass"/><test-case name="13608NISTXML-SV-IV-list-unsignedShort-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13609NISTXML-SV-IV-list-unsignedShort-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13610NISTXML-SV-IV-list-unsignedShort-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13611NISTXML-SV-IV-list-unsignedShort-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13612NISTXML-SV-IV-list-unsignedShort-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13613NISTSchema-SV-IV-list-unsignedShort-length-1 tokoe:valid" result="pass"/><test-case name="13614NISTXML-SV-IV-list-unsignedShort-length-1-1 tokoe:valid" result="pass"/><test-case name="13615NISTXML-SV-IV-list-unsignedShort-length-1-2 tokoe:valid" result="pass"/><test-case name="13616NISTXML-SV-IV-list-unsignedShort-length-1-3 tokoe:valid" result="pass"/><test-case name="13617NISTXML-SV-IV-list-unsignedShort-length-1-4 tokoe:valid" result="pass"/><test-case name="13618NISTXML-SV-IV-list-unsignedShort-length-1-5 tokoe:valid" result="pass"/><test-case name="13619NISTSchema-SV-IV-list-unsignedShort-length-2 tokoe:valid" result="pass"/><test-case name="13620NISTXML-SV-IV-list-unsignedShort-length-2-1 tokoe:valid" result="pass"/><test-case name="13621NISTXML-SV-IV-list-unsignedShort-length-2-2 tokoe:valid" result="pass"/><test-case name="13622NISTXML-SV-IV-list-unsignedShort-length-2-3 tokoe:valid" result="pass"/><test-case name="13623NISTXML-SV-IV-list-unsignedShort-length-2-4 tokoe:valid" result="pass"/><test-case name="13624NISTXML-SV-IV-list-unsignedShort-length-2-5 tokoe:valid" result="pass"/><test-case name="13625NISTSchema-SV-IV-list-unsignedShort-length-3 tokoe:valid" result="pass"/><test-case name="13626NISTXML-SV-IV-list-unsignedShort-length-3-1 tokoe:valid" result="pass"/><test-case name="13627NISTXML-SV-IV-list-unsignedShort-length-3-2 tokoe:valid" result="pass"/><test-case name="13628NISTXML-SV-IV-list-unsignedShort-length-3-3 tokoe:valid" result="pass"/><test-case name="13629NISTXML-SV-IV-list-unsignedShort-length-3-4 tokoe:valid" result="pass"/><test-case name="13630NISTXML-SV-IV-list-unsignedShort-length-3-5 tokoe:valid" result="pass"/><test-case name="13631NISTSchema-SV-IV-list-unsignedShort-length-4 tokoe:valid" result="pass"/><test-case name="13632NISTXML-SV-IV-list-unsignedShort-length-4-1 tokoe:valid" result="pass"/><test-case name="13633NISTXML-SV-IV-list-unsignedShort-length-4-2 tokoe:valid" result="pass"/><test-case name="13634NISTXML-SV-IV-list-unsignedShort-length-4-3 tokoe:valid" result="pass"/><test-case name="13635NISTXML-SV-IV-list-unsignedShort-length-4-4 tokoe:valid" result="pass"/><test-case name="13636NISTXML-SV-IV-list-unsignedShort-length-4-5 tokoe:valid" result="pass"/><test-case name="13637NISTSchema-SV-IV-list-unsignedShort-length-5 tokoe:valid" result="pass"/><test-case name="13638NISTXML-SV-IV-list-unsignedShort-length-5-1 tokoe:valid" result="pass"/><test-case name="13639NISTXML-SV-IV-list-unsignedShort-length-5-2 tokoe:valid" result="pass"/><test-case name="13640NISTXML-SV-IV-list-unsignedShort-length-5-3 tokoe:valid" result="pass"/><test-case name="13641NISTXML-SV-IV-list-unsignedShort-length-5-4 tokoe:valid" result="pass"/><test-case name="13642NISTXML-SV-IV-list-unsignedShort-length-5-5 tokoe:valid" result="pass"/><test-case name="13643NISTSchema-SV-IV-list-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="13644NISTXML-SV-IV-list-unsignedShort-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13645NISTXML-SV-IV-list-unsignedShort-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13646NISTXML-SV-IV-list-unsignedShort-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13647NISTXML-SV-IV-list-unsignedShort-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13648NISTXML-SV-IV-list-unsignedShort-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13649NISTSchema-SV-IV-list-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="13650NISTXML-SV-IV-list-unsignedShort-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13651NISTXML-SV-IV-list-unsignedShort-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13652NISTXML-SV-IV-list-unsignedShort-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13653NISTXML-SV-IV-list-unsignedShort-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13654NISTXML-SV-IV-list-unsignedShort-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13655NISTSchema-SV-IV-list-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="13656NISTXML-SV-IV-list-unsignedShort-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13657NISTXML-SV-IV-list-unsignedShort-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13658NISTXML-SV-IV-list-unsignedShort-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13659NISTXML-SV-IV-list-unsignedShort-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13660NISTXML-SV-IV-list-unsignedShort-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13661NISTSchema-SV-IV-list-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="13662NISTXML-SV-IV-list-unsignedShort-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13663NISTXML-SV-IV-list-unsignedShort-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13664NISTXML-SV-IV-list-unsignedShort-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13665NISTXML-SV-IV-list-unsignedShort-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13666NISTXML-SV-IV-list-unsignedShort-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13667NISTSchema-SV-IV-list-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="13668NISTXML-SV-IV-list-unsignedShort-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13669NISTXML-SV-IV-list-unsignedShort-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13670NISTXML-SV-IV-list-unsignedShort-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13671NISTXML-SV-IV-list-unsignedShort-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13672NISTXML-SV-IV-list-unsignedShort-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13673NISTSchema-SV-IV-list-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="13674NISTXML-SV-IV-list-unsignedShort-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13675NISTXML-SV-IV-list-unsignedShort-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13676NISTXML-SV-IV-list-unsignedShort-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13677NISTXML-SV-IV-list-unsignedShort-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13678NISTXML-SV-IV-list-unsignedShort-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13679NISTSchema-SV-IV-list-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="13680NISTXML-SV-IV-list-unsignedShort-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13681NISTXML-SV-IV-list-unsignedShort-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13682NISTXML-SV-IV-list-unsignedShort-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13683NISTXML-SV-IV-list-unsignedShort-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13684NISTXML-SV-IV-list-unsignedShort-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13685NISTSchema-SV-IV-list-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="13686NISTXML-SV-IV-list-unsignedShort-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13687NISTXML-SV-IV-list-unsignedShort-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13688NISTXML-SV-IV-list-unsignedShort-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13689NISTXML-SV-IV-list-unsignedShort-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13690NISTXML-SV-IV-list-unsignedShort-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13691NISTSchema-SV-IV-list-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="13692NISTXML-SV-IV-list-unsignedShort-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13693NISTXML-SV-IV-list-unsignedShort-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13694NISTXML-SV-IV-list-unsignedShort-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13695NISTXML-SV-IV-list-unsignedShort-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13696NISTXML-SV-IV-list-unsignedShort-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13697NISTSchema-SV-IV-list-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="13698NISTXML-SV-IV-list-unsignedShort-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13699NISTXML-SV-IV-list-unsignedShort-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13700NISTXML-SV-IV-list-unsignedShort-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13701NISTXML-SV-IV-list-unsignedShort-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13702NISTXML-SV-IV-list-unsignedShort-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13703NISTSchema-SV-IV-list-unsignedShort-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13704NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13705NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13706NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13707NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13708NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13709NISTSchema-SV-IV-list-unsignedByte-maxLength-1 tokoe:valid" result="pass"/><test-case name="13710NISTXML-SV-IV-list-unsignedByte-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13711NISTXML-SV-IV-list-unsignedByte-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13712NISTXML-SV-IV-list-unsignedByte-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13713NISTXML-SV-IV-list-unsignedByte-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13714NISTXML-SV-IV-list-unsignedByte-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13715NISTSchema-SV-IV-list-unsignedByte-maxLength-2 tokoe:valid" result="pass"/><test-case name="13716NISTXML-SV-IV-list-unsignedByte-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13717NISTXML-SV-IV-list-unsignedByte-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13718NISTXML-SV-IV-list-unsignedByte-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13719NISTXML-SV-IV-list-unsignedByte-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13720NISTXML-SV-IV-list-unsignedByte-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13721NISTSchema-SV-IV-list-unsignedByte-maxLength-3 tokoe:valid" result="pass"/><test-case name="13722NISTXML-SV-IV-list-unsignedByte-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13723NISTXML-SV-IV-list-unsignedByte-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13724NISTXML-SV-IV-list-unsignedByte-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13725NISTXML-SV-IV-list-unsignedByte-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13726NISTXML-SV-IV-list-unsignedByte-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13727NISTSchema-SV-IV-list-unsignedByte-maxLength-4 tokoe:valid" result="pass"/><test-case name="13728NISTXML-SV-IV-list-unsignedByte-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13729NISTXML-SV-IV-list-unsignedByte-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13730NISTXML-SV-IV-list-unsignedByte-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13731NISTXML-SV-IV-list-unsignedByte-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13732NISTXML-SV-IV-list-unsignedByte-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13733NISTSchema-SV-IV-list-unsignedByte-maxLength-5 tokoe:valid" result="pass"/><test-case name="13734NISTXML-SV-IV-list-unsignedByte-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13735NISTXML-SV-IV-list-unsignedByte-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13736NISTXML-SV-IV-list-unsignedByte-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13737NISTXML-SV-IV-list-unsignedByte-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13738NISTXML-SV-IV-list-unsignedByte-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13739NISTSchema-SV-IV-list-unsignedByte-minLength-1 tokoe:valid" result="pass"/><test-case name="13740NISTXML-SV-IV-list-unsignedByte-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13741NISTXML-SV-IV-list-unsignedByte-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13742NISTXML-SV-IV-list-unsignedByte-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13743NISTXML-SV-IV-list-unsignedByte-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13744NISTXML-SV-IV-list-unsignedByte-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13745NISTSchema-SV-IV-list-unsignedByte-minLength-2 tokoe:valid" result="pass"/><test-case name="13746NISTXML-SV-IV-list-unsignedByte-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13747NISTXML-SV-IV-list-unsignedByte-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13748NISTXML-SV-IV-list-unsignedByte-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13749NISTXML-SV-IV-list-unsignedByte-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13750NISTXML-SV-IV-list-unsignedByte-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13751NISTSchema-SV-IV-list-unsignedByte-minLength-3 tokoe:valid" result="pass"/><test-case name="13752NISTXML-SV-IV-list-unsignedByte-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13753NISTXML-SV-IV-list-unsignedByte-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13754NISTXML-SV-IV-list-unsignedByte-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13755NISTXML-SV-IV-list-unsignedByte-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13756NISTXML-SV-IV-list-unsignedByte-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13757NISTSchema-SV-IV-list-unsignedByte-minLength-4 tokoe:valid" result="pass"/><test-case name="13758NISTXML-SV-IV-list-unsignedByte-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13759NISTXML-SV-IV-list-unsignedByte-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13760NISTXML-SV-IV-list-unsignedByte-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13761NISTXML-SV-IV-list-unsignedByte-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13762NISTXML-SV-IV-list-unsignedByte-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13763NISTSchema-SV-IV-list-unsignedByte-minLength-5 tokoe:valid" result="pass"/><test-case name="13764NISTXML-SV-IV-list-unsignedByte-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13765NISTXML-SV-IV-list-unsignedByte-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13766NISTXML-SV-IV-list-unsignedByte-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13767NISTXML-SV-IV-list-unsignedByte-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13768NISTXML-SV-IV-list-unsignedByte-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13769NISTSchema-SV-IV-list-unsignedByte-length-1 tokoe:valid" result="pass"/><test-case name="13770NISTXML-SV-IV-list-unsignedByte-length-1-1 tokoe:valid" result="pass"/><test-case name="13771NISTXML-SV-IV-list-unsignedByte-length-1-2 tokoe:valid" result="pass"/><test-case name="13772NISTXML-SV-IV-list-unsignedByte-length-1-3 tokoe:valid" result="pass"/><test-case name="13773NISTXML-SV-IV-list-unsignedByte-length-1-4 tokoe:valid" result="pass"/><test-case name="13774NISTXML-SV-IV-list-unsignedByte-length-1-5 tokoe:valid" result="pass"/><test-case name="13775NISTSchema-SV-IV-list-unsignedByte-length-2 tokoe:valid" result="pass"/><test-case name="13776NISTXML-SV-IV-list-unsignedByte-length-2-1 tokoe:valid" result="pass"/><test-case name="13777NISTXML-SV-IV-list-unsignedByte-length-2-2 tokoe:valid" result="pass"/><test-case name="13778NISTXML-SV-IV-list-unsignedByte-length-2-3 tokoe:valid" result="pass"/><test-case name="13779NISTXML-SV-IV-list-unsignedByte-length-2-4 tokoe:valid" result="pass"/><test-case name="13780NISTXML-SV-IV-list-unsignedByte-length-2-5 tokoe:valid" result="pass"/><test-case name="13781NISTSchema-SV-IV-list-unsignedByte-length-3 tokoe:valid" result="pass"/><test-case name="13782NISTXML-SV-IV-list-unsignedByte-length-3-1 tokoe:valid" result="pass"/><test-case name="13783NISTXML-SV-IV-list-unsignedByte-length-3-2 tokoe:valid" result="pass"/><test-case name="13784NISTXML-SV-IV-list-unsignedByte-length-3-3 tokoe:valid" result="pass"/><test-case name="13785NISTXML-SV-IV-list-unsignedByte-length-3-4 tokoe:valid" result="pass"/><test-case name="13786NISTXML-SV-IV-list-unsignedByte-length-3-5 tokoe:valid" result="pass"/><test-case name="13787NISTSchema-SV-IV-list-unsignedByte-length-4 tokoe:valid" result="pass"/><test-case name="13788NISTXML-SV-IV-list-unsignedByte-length-4-1 tokoe:valid" result="pass"/><test-case name="13789NISTXML-SV-IV-list-unsignedByte-length-4-2 tokoe:valid" result="pass"/><test-case name="13790NISTXML-SV-IV-list-unsignedByte-length-4-3 tokoe:valid" result="pass"/><test-case name="13791NISTXML-SV-IV-list-unsignedByte-length-4-4 tokoe:valid" result="pass"/><test-case name="13792NISTXML-SV-IV-list-unsignedByte-length-4-5 tokoe:valid" result="pass"/><test-case name="13793NISTSchema-SV-IV-list-unsignedByte-length-5 tokoe:valid" result="pass"/><test-case name="13794NISTXML-SV-IV-list-unsignedByte-length-5-1 tokoe:valid" result="pass"/><test-case name="13795NISTXML-SV-IV-list-unsignedByte-length-5-2 tokoe:valid" result="pass"/><test-case name="13796NISTXML-SV-IV-list-unsignedByte-length-5-3 tokoe:valid" result="pass"/><test-case name="13797NISTXML-SV-IV-list-unsignedByte-length-5-4 tokoe:valid" result="pass"/><test-case name="13798NISTXML-SV-IV-list-unsignedByte-length-5-5 tokoe:valid" result="pass"/><test-case name="13799NISTSchema-SV-IV-list-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="13800NISTXML-SV-IV-list-unsignedByte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13801NISTXML-SV-IV-list-unsignedByte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13802NISTXML-SV-IV-list-unsignedByte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13803NISTXML-SV-IV-list-unsignedByte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13804NISTXML-SV-IV-list-unsignedByte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13805NISTSchema-SV-IV-list-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="13806NISTXML-SV-IV-list-unsignedByte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13807NISTXML-SV-IV-list-unsignedByte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13808NISTXML-SV-IV-list-unsignedByte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13809NISTXML-SV-IV-list-unsignedByte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13810NISTXML-SV-IV-list-unsignedByte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13811NISTSchema-SV-IV-list-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="13812NISTXML-SV-IV-list-unsignedByte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13813NISTXML-SV-IV-list-unsignedByte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13814NISTXML-SV-IV-list-unsignedByte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13815NISTXML-SV-IV-list-unsignedByte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13816NISTXML-SV-IV-list-unsignedByte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13817NISTSchema-SV-IV-list-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="13818NISTXML-SV-IV-list-unsignedByte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13819NISTXML-SV-IV-list-unsignedByte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13820NISTXML-SV-IV-list-unsignedByte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13821NISTXML-SV-IV-list-unsignedByte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13822NISTXML-SV-IV-list-unsignedByte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13823NISTSchema-SV-IV-list-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="13824NISTXML-SV-IV-list-unsignedByte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13825NISTXML-SV-IV-list-unsignedByte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13826NISTXML-SV-IV-list-unsignedByte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13827NISTXML-SV-IV-list-unsignedByte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13828NISTXML-SV-IV-list-unsignedByte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13829NISTSchema-SV-IV-list-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="13830NISTXML-SV-IV-list-unsignedByte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13831NISTXML-SV-IV-list-unsignedByte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13832NISTXML-SV-IV-list-unsignedByte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13833NISTXML-SV-IV-list-unsignedByte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13834NISTXML-SV-IV-list-unsignedByte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13835NISTSchema-SV-IV-list-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="13836NISTXML-SV-IV-list-unsignedByte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13837NISTXML-SV-IV-list-unsignedByte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13838NISTXML-SV-IV-list-unsignedByte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13839NISTXML-SV-IV-list-unsignedByte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13840NISTXML-SV-IV-list-unsignedByte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13841NISTSchema-SV-IV-list-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="13842NISTXML-SV-IV-list-unsignedByte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13843NISTXML-SV-IV-list-unsignedByte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13844NISTXML-SV-IV-list-unsignedByte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13845NISTXML-SV-IV-list-unsignedByte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13846NISTXML-SV-IV-list-unsignedByte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13847NISTSchema-SV-IV-list-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="13848NISTXML-SV-IV-list-unsignedByte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13849NISTXML-SV-IV-list-unsignedByte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13850NISTXML-SV-IV-list-unsignedByte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13851NISTXML-SV-IV-list-unsignedByte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13852NISTXML-SV-IV-list-unsignedByte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13853NISTSchema-SV-IV-list-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="13854NISTXML-SV-IV-list-unsignedByte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13855NISTXML-SV-IV-list-unsignedByte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13856NISTXML-SV-IV-list-unsignedByte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13857NISTXML-SV-IV-list-unsignedByte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13858NISTXML-SV-IV-list-unsignedByte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13859NISTSchema-SV-IV-list-unsignedByte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13860NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13861NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13862NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13863NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13864NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13865NISTSchema-SV-IV-list-positiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="13866NISTXML-SV-IV-list-positiveInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13867NISTXML-SV-IV-list-positiveInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13868NISTXML-SV-IV-list-positiveInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13869NISTXML-SV-IV-list-positiveInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13870NISTXML-SV-IV-list-positiveInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13871NISTSchema-SV-IV-list-positiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="13872NISTXML-SV-IV-list-positiveInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13873NISTXML-SV-IV-list-positiveInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13874NISTXML-SV-IV-list-positiveInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13875NISTXML-SV-IV-list-positiveInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13876NISTXML-SV-IV-list-positiveInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13877NISTSchema-SV-IV-list-positiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="13878NISTXML-SV-IV-list-positiveInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13879NISTXML-SV-IV-list-positiveInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13880NISTXML-SV-IV-list-positiveInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13881NISTXML-SV-IV-list-positiveInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13882NISTXML-SV-IV-list-positiveInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13883NISTSchema-SV-IV-list-positiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="13884NISTXML-SV-IV-list-positiveInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13885NISTXML-SV-IV-list-positiveInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13886NISTXML-SV-IV-list-positiveInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13887NISTXML-SV-IV-list-positiveInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13888NISTXML-SV-IV-list-positiveInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13889NISTSchema-SV-IV-list-positiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="13890NISTXML-SV-IV-list-positiveInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13891NISTXML-SV-IV-list-positiveInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13892NISTXML-SV-IV-list-positiveInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13893NISTXML-SV-IV-list-positiveInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13894NISTXML-SV-IV-list-positiveInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13895NISTSchema-SV-IV-list-positiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="13896NISTXML-SV-IV-list-positiveInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13897NISTXML-SV-IV-list-positiveInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13898NISTXML-SV-IV-list-positiveInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13899NISTXML-SV-IV-list-positiveInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13900NISTXML-SV-IV-list-positiveInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13901NISTSchema-SV-IV-list-positiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="13902NISTXML-SV-IV-list-positiveInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13903NISTXML-SV-IV-list-positiveInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13904NISTXML-SV-IV-list-positiveInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13905NISTXML-SV-IV-list-positiveInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13906NISTXML-SV-IV-list-positiveInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13907NISTSchema-SV-IV-list-positiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="13908NISTXML-SV-IV-list-positiveInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13909NISTXML-SV-IV-list-positiveInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13910NISTXML-SV-IV-list-positiveInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13911NISTXML-SV-IV-list-positiveInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13912NISTXML-SV-IV-list-positiveInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13913NISTSchema-SV-IV-list-positiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="13914NISTXML-SV-IV-list-positiveInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13915NISTXML-SV-IV-list-positiveInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13916NISTXML-SV-IV-list-positiveInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13917NISTXML-SV-IV-list-positiveInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13918NISTXML-SV-IV-list-positiveInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13919NISTSchema-SV-IV-list-positiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="13920NISTXML-SV-IV-list-positiveInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13921NISTXML-SV-IV-list-positiveInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13922NISTXML-SV-IV-list-positiveInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13923NISTXML-SV-IV-list-positiveInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13924NISTXML-SV-IV-list-positiveInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13925NISTSchema-SV-IV-list-positiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="13926NISTXML-SV-IV-list-positiveInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="13927NISTXML-SV-IV-list-positiveInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="13928NISTXML-SV-IV-list-positiveInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="13929NISTXML-SV-IV-list-positiveInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="13930NISTXML-SV-IV-list-positiveInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="13931NISTSchema-SV-IV-list-positiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="13932NISTXML-SV-IV-list-positiveInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="13933NISTXML-SV-IV-list-positiveInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="13934NISTXML-SV-IV-list-positiveInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="13935NISTXML-SV-IV-list-positiveInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="13936NISTXML-SV-IV-list-positiveInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="13937NISTSchema-SV-IV-list-positiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="13938NISTXML-SV-IV-list-positiveInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="13939NISTXML-SV-IV-list-positiveInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="13940NISTXML-SV-IV-list-positiveInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="13941NISTXML-SV-IV-list-positiveInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="13942NISTXML-SV-IV-list-positiveInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="13943NISTSchema-SV-IV-list-positiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="13944NISTXML-SV-IV-list-positiveInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="13945NISTXML-SV-IV-list-positiveInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="13946NISTXML-SV-IV-list-positiveInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="13947NISTXML-SV-IV-list-positiveInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="13948NISTXML-SV-IV-list-positiveInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="13949NISTSchema-SV-IV-list-positiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="13950NISTXML-SV-IV-list-positiveInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="13951NISTXML-SV-IV-list-positiveInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="13952NISTXML-SV-IV-list-positiveInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="13953NISTXML-SV-IV-list-positiveInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="13954NISTXML-SV-IV-list-positiveInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="13955NISTSchema-SV-IV-list-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="13956NISTXML-SV-IV-list-positiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13957NISTXML-SV-IV-list-positiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13958NISTXML-SV-IV-list-positiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13959NISTXML-SV-IV-list-positiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13960NISTXML-SV-IV-list-positiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13961NISTSchema-SV-IV-list-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="13962NISTXML-SV-IV-list-positiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13963NISTXML-SV-IV-list-positiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13964NISTXML-SV-IV-list-positiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13965NISTXML-SV-IV-list-positiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13966NISTXML-SV-IV-list-positiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13967NISTSchema-SV-IV-list-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="13968NISTXML-SV-IV-list-positiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13969NISTXML-SV-IV-list-positiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13970NISTXML-SV-IV-list-positiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13971NISTXML-SV-IV-list-positiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13972NISTXML-SV-IV-list-positiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13973NISTSchema-SV-IV-list-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="13974NISTXML-SV-IV-list-positiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13975NISTXML-SV-IV-list-positiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13976NISTXML-SV-IV-list-positiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13977NISTXML-SV-IV-list-positiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13978NISTXML-SV-IV-list-positiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13979NISTSchema-SV-IV-list-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="13980NISTXML-SV-IV-list-positiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13981NISTXML-SV-IV-list-positiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13982NISTXML-SV-IV-list-positiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13983NISTXML-SV-IV-list-positiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13984NISTXML-SV-IV-list-positiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13985NISTSchema-SV-IV-list-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="13986NISTXML-SV-IV-list-positiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13987NISTXML-SV-IV-list-positiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13988NISTXML-SV-IV-list-positiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13989NISTXML-SV-IV-list-positiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13990NISTXML-SV-IV-list-positiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13991NISTSchema-SV-IV-list-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="13992NISTXML-SV-IV-list-positiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13993NISTXML-SV-IV-list-positiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13994NISTXML-SV-IV-list-positiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13995NISTXML-SV-IV-list-positiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13996NISTXML-SV-IV-list-positiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13997NISTSchema-SV-IV-list-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="13998NISTXML-SV-IV-list-positiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13999NISTXML-SV-IV-list-positiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14000NISTXML-SV-IV-list-positiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14001NISTXML-SV-IV-list-positiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14002NISTXML-SV-IV-list-positiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14003NISTSchema-SV-IV-list-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="14004NISTXML-SV-IV-list-positiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14005NISTXML-SV-IV-list-positiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14006NISTXML-SV-IV-list-positiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14007NISTXML-SV-IV-list-positiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14008NISTXML-SV-IV-list-positiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14009NISTSchema-SV-IV-list-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="14010NISTXML-SV-IV-list-positiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14011NISTXML-SV-IV-list-positiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14012NISTXML-SV-IV-list-positiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14013NISTXML-SV-IV-list-positiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14014NISTXML-SV-IV-list-positiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14015NISTSchema-SV-IV-list-positiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14016NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14017NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14018NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14019NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14020NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14021NISTSchema-SV-IV-list-double-maxLength-1 tokoe:valid" result="pass"/><test-case name="14022NISTXML-SV-IV-list-double-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14023NISTXML-SV-IV-list-double-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14024NISTXML-SV-IV-list-double-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14025NISTXML-SV-IV-list-double-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14026NISTXML-SV-IV-list-double-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14027NISTSchema-SV-IV-list-double-maxLength-2 tokoe:valid" result="pass"/><test-case name="14028NISTXML-SV-IV-list-double-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14029NISTXML-SV-IV-list-double-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14030NISTXML-SV-IV-list-double-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14031NISTXML-SV-IV-list-double-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14032NISTXML-SV-IV-list-double-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14033NISTSchema-SV-IV-list-double-maxLength-3 tokoe:valid" result="pass"/><test-case name="14034NISTXML-SV-IV-list-double-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14035NISTXML-SV-IV-list-double-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14036NISTXML-SV-IV-list-double-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14037NISTXML-SV-IV-list-double-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14038NISTXML-SV-IV-list-double-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14039NISTSchema-SV-IV-list-double-maxLength-4 tokoe:valid" result="pass"/><test-case name="14040NISTXML-SV-IV-list-double-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14041NISTXML-SV-IV-list-double-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14042NISTXML-SV-IV-list-double-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14043NISTXML-SV-IV-list-double-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14044NISTXML-SV-IV-list-double-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14045NISTSchema-SV-IV-list-double-maxLength-5 tokoe:valid" result="pass"/><test-case name="14046NISTXML-SV-IV-list-double-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14047NISTXML-SV-IV-list-double-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14048NISTXML-SV-IV-list-double-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14049NISTXML-SV-IV-list-double-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14050NISTXML-SV-IV-list-double-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14051NISTSchema-SV-IV-list-double-minLength-1 tokoe:valid" result="pass"/><test-case name="14052NISTXML-SV-IV-list-double-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14053NISTXML-SV-IV-list-double-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14054NISTXML-SV-IV-list-double-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14055NISTXML-SV-IV-list-double-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14056NISTXML-SV-IV-list-double-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14057NISTSchema-SV-IV-list-double-minLength-2 tokoe:valid" result="pass"/><test-case name="14058NISTXML-SV-IV-list-double-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14059NISTXML-SV-IV-list-double-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14060NISTXML-SV-IV-list-double-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14061NISTXML-SV-IV-list-double-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14062NISTXML-SV-IV-list-double-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14063NISTSchema-SV-IV-list-double-minLength-3 tokoe:valid" result="pass"/><test-case name="14064NISTXML-SV-IV-list-double-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14065NISTXML-SV-IV-list-double-minLength-3-2 tokoe:valid" result="fail"/><test-case name="14066NISTXML-SV-IV-list-double-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14067NISTXML-SV-IV-list-double-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14068NISTXML-SV-IV-list-double-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14069NISTSchema-SV-IV-list-double-minLength-4 tokoe:valid" result="pass"/><test-case name="14070NISTXML-SV-IV-list-double-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14071NISTXML-SV-IV-list-double-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14072NISTXML-SV-IV-list-double-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14073NISTXML-SV-IV-list-double-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14074NISTXML-SV-IV-list-double-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14075NISTSchema-SV-IV-list-double-minLength-5 tokoe:valid" result="pass"/><test-case name="14076NISTXML-SV-IV-list-double-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14077NISTXML-SV-IV-list-double-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14078NISTXML-SV-IV-list-double-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14079NISTXML-SV-IV-list-double-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14080NISTXML-SV-IV-list-double-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14081NISTSchema-SV-IV-list-double-length-1 tokoe:valid" result="pass"/><test-case name="14082NISTXML-SV-IV-list-double-length-1-1 tokoe:valid" result="pass"/><test-case name="14083NISTXML-SV-IV-list-double-length-1-2 tokoe:valid" result="pass"/><test-case name="14084NISTXML-SV-IV-list-double-length-1-3 tokoe:valid" result="pass"/><test-case name="14085NISTXML-SV-IV-list-double-length-1-4 tokoe:valid" result="pass"/><test-case name="14086NISTXML-SV-IV-list-double-length-1-5 tokoe:valid" result="pass"/><test-case name="14087NISTSchema-SV-IV-list-double-length-2 tokoe:valid" result="pass"/><test-case name="14088NISTXML-SV-IV-list-double-length-2-1 tokoe:valid" result="pass"/><test-case name="14089NISTXML-SV-IV-list-double-length-2-2 tokoe:valid" result="pass"/><test-case name="14090NISTXML-SV-IV-list-double-length-2-3 tokoe:valid" result="pass"/><test-case name="14091NISTXML-SV-IV-list-double-length-2-4 tokoe:valid" result="pass"/><test-case name="14092NISTXML-SV-IV-list-double-length-2-5 tokoe:valid" result="pass"/><test-case name="14093NISTSchema-SV-IV-list-double-length-3 tokoe:valid" result="pass"/><test-case name="14094NISTXML-SV-IV-list-double-length-3-1 tokoe:valid" result="pass"/><test-case name="14095NISTXML-SV-IV-list-double-length-3-2 tokoe:valid" result="pass"/><test-case name="14096NISTXML-SV-IV-list-double-length-3-3 tokoe:valid" result="pass"/><test-case name="14097NISTXML-SV-IV-list-double-length-3-4 tokoe:valid" result="pass"/><test-case name="14098NISTXML-SV-IV-list-double-length-3-5 tokoe:valid" result="pass"/><test-case name="14099NISTSchema-SV-IV-list-double-length-4 tokoe:valid" result="pass"/><test-case name="14100NISTXML-SV-IV-list-double-length-4-1 tokoe:valid" result="pass"/><test-case name="14101NISTXML-SV-IV-list-double-length-4-2 tokoe:valid" result="pass"/><test-case name="14102NISTXML-SV-IV-list-double-length-4-3 tokoe:valid" result="pass"/><test-case name="14103NISTXML-SV-IV-list-double-length-4-4 tokoe:valid" result="pass"/><test-case name="14104NISTXML-SV-IV-list-double-length-4-5 tokoe:valid" result="pass"/><test-case name="14105NISTSchema-SV-IV-list-double-length-5 tokoe:valid" result="pass"/><test-case name="14106NISTXML-SV-IV-list-double-length-5-1 tokoe:valid" result="pass"/><test-case name="14107NISTXML-SV-IV-list-double-length-5-2 tokoe:valid" result="pass"/><test-case name="14108NISTXML-SV-IV-list-double-length-5-3 tokoe:valid" result="pass"/><test-case name="14109NISTXML-SV-IV-list-double-length-5-4 tokoe:valid" result="pass"/><test-case name="14110NISTXML-SV-IV-list-double-length-5-5 tokoe:valid" result="pass"/><test-case name="14111NISTSchema-SV-IV-list-double-pattern-1 tokoe:valid" result="pass"/><test-case name="14112NISTXML-SV-IV-list-double-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14113NISTXML-SV-IV-list-double-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14114NISTXML-SV-IV-list-double-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14115NISTXML-SV-IV-list-double-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14116NISTXML-SV-IV-list-double-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14117NISTSchema-SV-IV-list-double-pattern-2 tokoe:valid" result="pass"/><test-case name="14118NISTXML-SV-IV-list-double-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14119NISTXML-SV-IV-list-double-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14120NISTXML-SV-IV-list-double-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14121NISTXML-SV-IV-list-double-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14122NISTXML-SV-IV-list-double-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14123NISTSchema-SV-IV-list-double-pattern-3 tokoe:valid" result="pass"/><test-case name="14124NISTXML-SV-IV-list-double-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14125NISTXML-SV-IV-list-double-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14126NISTXML-SV-IV-list-double-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14127NISTXML-SV-IV-list-double-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14128NISTXML-SV-IV-list-double-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14129NISTSchema-SV-IV-list-double-pattern-4 tokoe:valid" result="pass"/><test-case name="14130NISTXML-SV-IV-list-double-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14131NISTXML-SV-IV-list-double-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14132NISTXML-SV-IV-list-double-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14133NISTXML-SV-IV-list-double-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14134NISTXML-SV-IV-list-double-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14135NISTSchema-SV-IV-list-double-pattern-5 tokoe:valid" result="pass"/><test-case name="14136NISTXML-SV-IV-list-double-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14137NISTXML-SV-IV-list-double-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14138NISTXML-SV-IV-list-double-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14139NISTXML-SV-IV-list-double-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14140NISTXML-SV-IV-list-double-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14141NISTSchema-SV-IV-list-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="14142NISTXML-SV-IV-list-double-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14143NISTXML-SV-IV-list-double-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14144NISTXML-SV-IV-list-double-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14145NISTXML-SV-IV-list-double-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14146NISTXML-SV-IV-list-double-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14147NISTSchema-SV-IV-list-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="14148NISTXML-SV-IV-list-double-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14149NISTXML-SV-IV-list-double-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14150NISTXML-SV-IV-list-double-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14151NISTXML-SV-IV-list-double-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14152NISTXML-SV-IV-list-double-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14153NISTSchema-SV-IV-list-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="14154NISTXML-SV-IV-list-double-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14155NISTXML-SV-IV-list-double-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14156NISTXML-SV-IV-list-double-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14157NISTXML-SV-IV-list-double-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14158NISTXML-SV-IV-list-double-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14159NISTSchema-SV-IV-list-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="14160NISTXML-SV-IV-list-double-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14161NISTXML-SV-IV-list-double-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14162NISTXML-SV-IV-list-double-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14163NISTXML-SV-IV-list-double-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14164NISTXML-SV-IV-list-double-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14165NISTSchema-SV-IV-list-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="14166NISTXML-SV-IV-list-double-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14167NISTXML-SV-IV-list-double-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14168NISTXML-SV-IV-list-double-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14169NISTXML-SV-IV-list-double-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14170NISTXML-SV-IV-list-double-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14171NISTSchema-SV-IV-list-double-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14172NISTXML-SV-IV-list-double-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14173NISTXML-SV-IV-list-double-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14174NISTXML-SV-IV-list-double-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14175NISTXML-SV-IV-list-double-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14176NISTXML-SV-IV-list-double-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14177NISTSchema-SV-IV-list-float-maxLength-1 tokoe:valid" result="pass"/><test-case name="14178NISTXML-SV-IV-list-float-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14179NISTXML-SV-IV-list-float-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14180NISTXML-SV-IV-list-float-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14181NISTXML-SV-IV-list-float-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14182NISTXML-SV-IV-list-float-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14183NISTSchema-SV-IV-list-float-maxLength-2 tokoe:valid" result="pass"/><test-case name="14184NISTXML-SV-IV-list-float-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14185NISTXML-SV-IV-list-float-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14186NISTXML-SV-IV-list-float-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14187NISTXML-SV-IV-list-float-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14188NISTXML-SV-IV-list-float-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14189NISTSchema-SV-IV-list-float-maxLength-3 tokoe:valid" result="pass"/><test-case name="14190NISTXML-SV-IV-list-float-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14191NISTXML-SV-IV-list-float-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14192NISTXML-SV-IV-list-float-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14193NISTXML-SV-IV-list-float-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14194NISTXML-SV-IV-list-float-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14195NISTSchema-SV-IV-list-float-maxLength-4 tokoe:valid" result="pass"/><test-case name="14196NISTXML-SV-IV-list-float-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14197NISTXML-SV-IV-list-float-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14198NISTXML-SV-IV-list-float-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14199NISTXML-SV-IV-list-float-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14200NISTXML-SV-IV-list-float-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14201NISTSchema-SV-IV-list-float-maxLength-5 tokoe:valid" result="pass"/><test-case name="14202NISTXML-SV-IV-list-float-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14203NISTXML-SV-IV-list-float-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14204NISTXML-SV-IV-list-float-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14205NISTXML-SV-IV-list-float-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14206NISTXML-SV-IV-list-float-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14207NISTSchema-SV-IV-list-float-minLength-1 tokoe:valid" result="pass"/><test-case name="14208NISTXML-SV-IV-list-float-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14209NISTXML-SV-IV-list-float-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14210NISTXML-SV-IV-list-float-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14211NISTXML-SV-IV-list-float-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14212NISTXML-SV-IV-list-float-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14213NISTSchema-SV-IV-list-float-minLength-2 tokoe:valid" result="pass"/><test-case name="14214NISTXML-SV-IV-list-float-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14215NISTXML-SV-IV-list-float-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14216NISTXML-SV-IV-list-float-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14217NISTXML-SV-IV-list-float-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14218NISTXML-SV-IV-list-float-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14219NISTSchema-SV-IV-list-float-minLength-3 tokoe:valid" result="pass"/><test-case name="14220NISTXML-SV-IV-list-float-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14221NISTXML-SV-IV-list-float-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14222NISTXML-SV-IV-list-float-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14223NISTXML-SV-IV-list-float-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14224NISTXML-SV-IV-list-float-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14225NISTSchema-SV-IV-list-float-minLength-4 tokoe:valid" result="pass"/><test-case name="14226NISTXML-SV-IV-list-float-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14227NISTXML-SV-IV-list-float-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14228NISTXML-SV-IV-list-float-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14229NISTXML-SV-IV-list-float-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14230NISTXML-SV-IV-list-float-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14231NISTSchema-SV-IV-list-float-minLength-5 tokoe:valid" result="pass"/><test-case name="14232NISTXML-SV-IV-list-float-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14233NISTXML-SV-IV-list-float-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14234NISTXML-SV-IV-list-float-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14235NISTXML-SV-IV-list-float-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14236NISTXML-SV-IV-list-float-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14237NISTSchema-SV-IV-list-float-length-1 tokoe:valid" result="pass"/><test-case name="14238NISTXML-SV-IV-list-float-length-1-1 tokoe:valid" result="pass"/><test-case name="14239NISTXML-SV-IV-list-float-length-1-2 tokoe:valid" result="pass"/><test-case name="14240NISTXML-SV-IV-list-float-length-1-3 tokoe:valid" result="pass"/><test-case name="14241NISTXML-SV-IV-list-float-length-1-4 tokoe:valid" result="pass"/><test-case name="14242NISTXML-SV-IV-list-float-length-1-5 tokoe:valid" result="pass"/><test-case name="14243NISTSchema-SV-IV-list-float-length-2 tokoe:valid" result="pass"/><test-case name="14244NISTXML-SV-IV-list-float-length-2-1 tokoe:valid" result="pass"/><test-case name="14245NISTXML-SV-IV-list-float-length-2-2 tokoe:valid" result="pass"/><test-case name="14246NISTXML-SV-IV-list-float-length-2-3 tokoe:valid" result="pass"/><test-case name="14247NISTXML-SV-IV-list-float-length-2-4 tokoe:valid" result="pass"/><test-case name="14248NISTXML-SV-IV-list-float-length-2-5 tokoe:valid" result="pass"/><test-case name="14249NISTSchema-SV-IV-list-float-length-3 tokoe:valid" result="pass"/><test-case name="14250NISTXML-SV-IV-list-float-length-3-1 tokoe:valid" result="pass"/><test-case name="14251NISTXML-SV-IV-list-float-length-3-2 tokoe:valid" result="pass"/><test-case name="14252NISTXML-SV-IV-list-float-length-3-3 tokoe:valid" result="pass"/><test-case name="14253NISTXML-SV-IV-list-float-length-3-4 tokoe:valid" result="pass"/><test-case name="14254NISTXML-SV-IV-list-float-length-3-5 tokoe:valid" result="pass"/><test-case name="14255NISTSchema-SV-IV-list-float-length-4 tokoe:valid" result="pass"/><test-case name="14256NISTXML-SV-IV-list-float-length-4-1 tokoe:valid" result="pass"/><test-case name="14257NISTXML-SV-IV-list-float-length-4-2 tokoe:valid" result="pass"/><test-case name="14258NISTXML-SV-IV-list-float-length-4-3 tokoe:valid" result="pass"/><test-case name="14259NISTXML-SV-IV-list-float-length-4-4 tokoe:valid" result="pass"/><test-case name="14260NISTXML-SV-IV-list-float-length-4-5 tokoe:valid" result="pass"/><test-case name="14261NISTSchema-SV-IV-list-float-length-5 tokoe:valid" result="pass"/><test-case name="14262NISTXML-SV-IV-list-float-length-5-1 tokoe:valid" result="pass"/><test-case name="14263NISTXML-SV-IV-list-float-length-5-2 tokoe:valid" result="pass"/><test-case name="14264NISTXML-SV-IV-list-float-length-5-3 tokoe:valid" result="pass"/><test-case name="14265NISTXML-SV-IV-list-float-length-5-4 tokoe:valid" result="pass"/><test-case name="14266NISTXML-SV-IV-list-float-length-5-5 tokoe:valid" result="pass"/><test-case name="14267NISTSchema-SV-IV-list-float-pattern-1 tokoe:valid" result="pass"/><test-case name="14268NISTXML-SV-IV-list-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14269NISTXML-SV-IV-list-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14270NISTXML-SV-IV-list-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14271NISTXML-SV-IV-list-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14272NISTXML-SV-IV-list-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14273NISTSchema-SV-IV-list-float-pattern-2 tokoe:valid" result="pass"/><test-case name="14274NISTXML-SV-IV-list-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14275NISTXML-SV-IV-list-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14276NISTXML-SV-IV-list-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14277NISTXML-SV-IV-list-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14278NISTXML-SV-IV-list-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14279NISTSchema-SV-IV-list-float-pattern-3 tokoe:valid" result="pass"/><test-case name="14280NISTXML-SV-IV-list-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14281NISTXML-SV-IV-list-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14282NISTXML-SV-IV-list-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14283NISTXML-SV-IV-list-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14284NISTXML-SV-IV-list-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14285NISTSchema-SV-IV-list-float-pattern-4 tokoe:valid" result="pass"/><test-case name="14286NISTXML-SV-IV-list-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14287NISTXML-SV-IV-list-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14288NISTXML-SV-IV-list-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14289NISTXML-SV-IV-list-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14290NISTXML-SV-IV-list-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14291NISTSchema-SV-IV-list-float-pattern-5 tokoe:valid" result="pass"/><test-case name="14292NISTXML-SV-IV-list-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14293NISTXML-SV-IV-list-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14294NISTXML-SV-IV-list-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14295NISTXML-SV-IV-list-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14296NISTXML-SV-IV-list-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14297NISTSchema-SV-IV-list-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="14298NISTXML-SV-IV-list-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14299NISTXML-SV-IV-list-float-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14300NISTXML-SV-IV-list-float-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14301NISTXML-SV-IV-list-float-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14302NISTXML-SV-IV-list-float-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14303NISTSchema-SV-IV-list-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="14304NISTXML-SV-IV-list-float-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14305NISTXML-SV-IV-list-float-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14306NISTXML-SV-IV-list-float-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14307NISTXML-SV-IV-list-float-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14308NISTXML-SV-IV-list-float-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14309NISTSchema-SV-IV-list-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="14310NISTXML-SV-IV-list-float-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14311NISTXML-SV-IV-list-float-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14312NISTXML-SV-IV-list-float-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14313NISTXML-SV-IV-list-float-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14314NISTXML-SV-IV-list-float-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14315NISTSchema-SV-IV-list-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="14316NISTXML-SV-IV-list-float-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14317NISTXML-SV-IV-list-float-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14318NISTXML-SV-IV-list-float-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14319NISTXML-SV-IV-list-float-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14320NISTXML-SV-IV-list-float-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14321NISTSchema-SV-IV-list-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="14322NISTXML-SV-IV-list-float-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14323NISTXML-SV-IV-list-float-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14324NISTXML-SV-IV-list-float-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14325NISTXML-SV-IV-list-float-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14326NISTXML-SV-IV-list-float-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14327NISTSchema-SV-IV-list-float-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14328NISTXML-SV-IV-list-float-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14329NISTXML-SV-IV-list-float-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14330NISTXML-SV-IV-list-float-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14331NISTXML-SV-IV-list-float-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14332NISTXML-SV-IV-list-float-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14333NISTSchema-SV-IV-list-duration-maxLength-1 tokoe:valid" result="pass"/><test-case name="14334NISTXML-SV-IV-list-duration-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14335NISTXML-SV-IV-list-duration-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14336NISTXML-SV-IV-list-duration-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14337NISTXML-SV-IV-list-duration-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14338NISTXML-SV-IV-list-duration-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14339NISTSchema-SV-IV-list-duration-maxLength-2 tokoe:valid" result="pass"/><test-case name="14340NISTXML-SV-IV-list-duration-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14341NISTXML-SV-IV-list-duration-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14342NISTXML-SV-IV-list-duration-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14343NISTXML-SV-IV-list-duration-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14344NISTXML-SV-IV-list-duration-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14345NISTSchema-SV-IV-list-duration-maxLength-3 tokoe:valid" result="pass"/><test-case name="14346NISTXML-SV-IV-list-duration-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14347NISTXML-SV-IV-list-duration-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14348NISTXML-SV-IV-list-duration-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14349NISTXML-SV-IV-list-duration-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14350NISTXML-SV-IV-list-duration-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14351NISTSchema-SV-IV-list-duration-maxLength-4 tokoe:valid" result="pass"/><test-case name="14352NISTXML-SV-IV-list-duration-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14353NISTXML-SV-IV-list-duration-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14354NISTXML-SV-IV-list-duration-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14355NISTXML-SV-IV-list-duration-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14356NISTXML-SV-IV-list-duration-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14357NISTSchema-SV-IV-list-duration-maxLength-5 tokoe:valid" result="pass"/><test-case name="14358NISTXML-SV-IV-list-duration-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14359NISTXML-SV-IV-list-duration-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14360NISTXML-SV-IV-list-duration-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14361NISTXML-SV-IV-list-duration-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14362NISTXML-SV-IV-list-duration-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14363NISTSchema-SV-IV-list-duration-minLength-1 tokoe:valid" result="pass"/><test-case name="14364NISTXML-SV-IV-list-duration-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14365NISTXML-SV-IV-list-duration-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14366NISTXML-SV-IV-list-duration-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14367NISTXML-SV-IV-list-duration-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14368NISTXML-SV-IV-list-duration-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14369NISTSchema-SV-IV-list-duration-minLength-2 tokoe:valid" result="pass"/><test-case name="14370NISTXML-SV-IV-list-duration-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14371NISTXML-SV-IV-list-duration-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14372NISTXML-SV-IV-list-duration-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14373NISTXML-SV-IV-list-duration-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14374NISTXML-SV-IV-list-duration-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14375NISTSchema-SV-IV-list-duration-minLength-3 tokoe:valid" result="pass"/><test-case name="14376NISTXML-SV-IV-list-duration-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14377NISTXML-SV-IV-list-duration-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14378NISTXML-SV-IV-list-duration-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14379NISTXML-SV-IV-list-duration-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14380NISTXML-SV-IV-list-duration-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14381NISTSchema-SV-IV-list-duration-minLength-4 tokoe:valid" result="pass"/><test-case name="14382NISTXML-SV-IV-list-duration-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14383NISTXML-SV-IV-list-duration-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14384NISTXML-SV-IV-list-duration-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14385NISTXML-SV-IV-list-duration-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14386NISTXML-SV-IV-list-duration-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14387NISTSchema-SV-IV-list-duration-minLength-5 tokoe:valid" result="pass"/><test-case name="14388NISTXML-SV-IV-list-duration-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14389NISTXML-SV-IV-list-duration-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14390NISTXML-SV-IV-list-duration-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14391NISTXML-SV-IV-list-duration-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14392NISTXML-SV-IV-list-duration-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14393NISTSchema-SV-IV-list-duration-length-1 tokoe:valid" result="pass"/><test-case name="14394NISTXML-SV-IV-list-duration-length-1-1 tokoe:valid" result="pass"/><test-case name="14395NISTXML-SV-IV-list-duration-length-1-2 tokoe:valid" result="pass"/><test-case name="14396NISTXML-SV-IV-list-duration-length-1-3 tokoe:valid" result="pass"/><test-case name="14397NISTXML-SV-IV-list-duration-length-1-4 tokoe:valid" result="pass"/><test-case name="14398NISTXML-SV-IV-list-duration-length-1-5 tokoe:valid" result="pass"/><test-case name="14399NISTSchema-SV-IV-list-duration-length-2 tokoe:valid" result="pass"/><test-case name="14400NISTXML-SV-IV-list-duration-length-2-1 tokoe:valid" result="pass"/><test-case name="14401NISTXML-SV-IV-list-duration-length-2-2 tokoe:valid" result="pass"/><test-case name="14402NISTXML-SV-IV-list-duration-length-2-3 tokoe:valid" result="pass"/><test-case name="14403NISTXML-SV-IV-list-duration-length-2-4 tokoe:valid" result="pass"/><test-case name="14404NISTXML-SV-IV-list-duration-length-2-5 tokoe:valid" result="pass"/><test-case name="14405NISTSchema-SV-IV-list-duration-length-3 tokoe:valid" result="pass"/><test-case name="14406NISTXML-SV-IV-list-duration-length-3-1 tokoe:valid" result="pass"/><test-case name="14407NISTXML-SV-IV-list-duration-length-3-2 tokoe:valid" result="pass"/><test-case name="14408NISTXML-SV-IV-list-duration-length-3-3 tokoe:valid" result="pass"/><test-case name="14409NISTXML-SV-IV-list-duration-length-3-4 tokoe:valid" result="pass"/><test-case name="14410NISTXML-SV-IV-list-duration-length-3-5 tokoe:valid" result="pass"/><test-case name="14411NISTSchema-SV-IV-list-duration-length-4 tokoe:valid" result="pass"/><test-case name="14412NISTXML-SV-IV-list-duration-length-4-1 tokoe:valid" result="pass"/><test-case name="14413NISTXML-SV-IV-list-duration-length-4-2 tokoe:valid" result="pass"/><test-case name="14414NISTXML-SV-IV-list-duration-length-4-3 tokoe:valid" result="pass"/><test-case name="14415NISTXML-SV-IV-list-duration-length-4-4 tokoe:valid" result="pass"/><test-case name="14416NISTXML-SV-IV-list-duration-length-4-5 tokoe:valid" result="pass"/><test-case name="14417NISTSchema-SV-IV-list-duration-length-5 tokoe:valid" result="pass"/><test-case name="14418NISTXML-SV-IV-list-duration-length-5-1 tokoe:valid" result="pass"/><test-case name="14419NISTXML-SV-IV-list-duration-length-5-2 tokoe:valid" result="pass"/><test-case name="14420NISTXML-SV-IV-list-duration-length-5-3 tokoe:valid" result="pass"/><test-case name="14421NISTXML-SV-IV-list-duration-length-5-4 tokoe:valid" result="pass"/><test-case name="14422NISTXML-SV-IV-list-duration-length-5-5 tokoe:valid" result="pass"/><test-case name="14423NISTSchema-SV-IV-list-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="14424NISTXML-SV-IV-list-duration-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14425NISTXML-SV-IV-list-duration-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14426NISTXML-SV-IV-list-duration-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14427NISTXML-SV-IV-list-duration-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14428NISTXML-SV-IV-list-duration-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14429NISTSchema-SV-IV-list-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="14430NISTXML-SV-IV-list-duration-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14431NISTXML-SV-IV-list-duration-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14432NISTXML-SV-IV-list-duration-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14433NISTXML-SV-IV-list-duration-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14434NISTXML-SV-IV-list-duration-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14435NISTSchema-SV-IV-list-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="14436NISTXML-SV-IV-list-duration-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14437NISTXML-SV-IV-list-duration-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14438NISTXML-SV-IV-list-duration-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14439NISTXML-SV-IV-list-duration-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14440NISTXML-SV-IV-list-duration-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14441NISTSchema-SV-IV-list-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="14442NISTXML-SV-IV-list-duration-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14443NISTXML-SV-IV-list-duration-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14444NISTXML-SV-IV-list-duration-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14445NISTXML-SV-IV-list-duration-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14446NISTXML-SV-IV-list-duration-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14447NISTSchema-SV-IV-list-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="14448NISTXML-SV-IV-list-duration-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14449NISTXML-SV-IV-list-duration-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14450NISTXML-SV-IV-list-duration-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14451NISTXML-SV-IV-list-duration-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14452NISTXML-SV-IV-list-duration-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14453NISTSchema-SV-IV-list-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="14454NISTXML-SV-IV-list-duration-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14455NISTXML-SV-IV-list-duration-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14456NISTXML-SV-IV-list-duration-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14457NISTXML-SV-IV-list-duration-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14458NISTXML-SV-IV-list-duration-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14459NISTSchema-SV-IV-list-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="14460NISTXML-SV-IV-list-duration-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14461NISTXML-SV-IV-list-duration-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14462NISTXML-SV-IV-list-duration-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14463NISTXML-SV-IV-list-duration-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14464NISTXML-SV-IV-list-duration-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14465NISTSchema-SV-IV-list-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="14466NISTXML-SV-IV-list-duration-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14467NISTXML-SV-IV-list-duration-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14468NISTXML-SV-IV-list-duration-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14469NISTXML-SV-IV-list-duration-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14470NISTXML-SV-IV-list-duration-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14471NISTSchema-SV-IV-list-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="14472NISTXML-SV-IV-list-duration-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14473NISTXML-SV-IV-list-duration-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14474NISTXML-SV-IV-list-duration-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14475NISTXML-SV-IV-list-duration-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14476NISTXML-SV-IV-list-duration-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14477NISTSchema-SV-IV-list-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="14478NISTXML-SV-IV-list-duration-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14479NISTXML-SV-IV-list-duration-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14480NISTXML-SV-IV-list-duration-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14481NISTXML-SV-IV-list-duration-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14482NISTXML-SV-IV-list-duration-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14483NISTSchema-SV-IV-list-duration-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14484NISTXML-SV-IV-list-duration-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14485NISTXML-SV-IV-list-duration-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14486NISTXML-SV-IV-list-duration-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14487NISTXML-SV-IV-list-duration-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14488NISTXML-SV-IV-list-duration-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14489NISTSchema-SV-IV-list-dateTime-maxLength-1 tokoe:valid" result="pass"/><test-case name="14490NISTXML-SV-IV-list-dateTime-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14491NISTXML-SV-IV-list-dateTime-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14492NISTXML-SV-IV-list-dateTime-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14493NISTXML-SV-IV-list-dateTime-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14494NISTXML-SV-IV-list-dateTime-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14495NISTSchema-SV-IV-list-dateTime-maxLength-2 tokoe:valid" result="pass"/><test-case name="14496NISTXML-SV-IV-list-dateTime-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14497NISTXML-SV-IV-list-dateTime-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14498NISTXML-SV-IV-list-dateTime-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14499NISTXML-SV-IV-list-dateTime-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14500NISTXML-SV-IV-list-dateTime-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14501NISTSchema-SV-IV-list-dateTime-maxLength-3 tokoe:valid" result="pass"/><test-case name="14502NISTXML-SV-IV-list-dateTime-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14503NISTXML-SV-IV-list-dateTime-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14504NISTXML-SV-IV-list-dateTime-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14505NISTXML-SV-IV-list-dateTime-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14506NISTXML-SV-IV-list-dateTime-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14507NISTSchema-SV-IV-list-dateTime-maxLength-4 tokoe:valid" result="pass"/><test-case name="14508NISTXML-SV-IV-list-dateTime-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14509NISTXML-SV-IV-list-dateTime-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14510NISTXML-SV-IV-list-dateTime-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14511NISTXML-SV-IV-list-dateTime-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14512NISTXML-SV-IV-list-dateTime-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14513NISTSchema-SV-IV-list-dateTime-maxLength-5 tokoe:valid" result="pass"/><test-case name="14514NISTXML-SV-IV-list-dateTime-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14515NISTXML-SV-IV-list-dateTime-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14516NISTXML-SV-IV-list-dateTime-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14517NISTXML-SV-IV-list-dateTime-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14518NISTXML-SV-IV-list-dateTime-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14519NISTSchema-SV-IV-list-dateTime-minLength-1 tokoe:valid" result="pass"/><test-case name="14520NISTXML-SV-IV-list-dateTime-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14521NISTXML-SV-IV-list-dateTime-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14522NISTXML-SV-IV-list-dateTime-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14523NISTXML-SV-IV-list-dateTime-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14524NISTXML-SV-IV-list-dateTime-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14525NISTSchema-SV-IV-list-dateTime-minLength-2 tokoe:valid" result="pass"/><test-case name="14526NISTXML-SV-IV-list-dateTime-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14527NISTXML-SV-IV-list-dateTime-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14528NISTXML-SV-IV-list-dateTime-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14529NISTXML-SV-IV-list-dateTime-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14530NISTXML-SV-IV-list-dateTime-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14531NISTSchema-SV-IV-list-dateTime-minLength-3 tokoe:valid" result="pass"/><test-case name="14532NISTXML-SV-IV-list-dateTime-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14533NISTXML-SV-IV-list-dateTime-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14534NISTXML-SV-IV-list-dateTime-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14535NISTXML-SV-IV-list-dateTime-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14536NISTXML-SV-IV-list-dateTime-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14537NISTSchema-SV-IV-list-dateTime-minLength-4 tokoe:valid" result="pass"/><test-case name="14538NISTXML-SV-IV-list-dateTime-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14539NISTXML-SV-IV-list-dateTime-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14540NISTXML-SV-IV-list-dateTime-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14541NISTXML-SV-IV-list-dateTime-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14542NISTXML-SV-IV-list-dateTime-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14543NISTSchema-SV-IV-list-dateTime-minLength-5 tokoe:valid" result="pass"/><test-case name="14544NISTXML-SV-IV-list-dateTime-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14545NISTXML-SV-IV-list-dateTime-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14546NISTXML-SV-IV-list-dateTime-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14547NISTXML-SV-IV-list-dateTime-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14548NISTXML-SV-IV-list-dateTime-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14549NISTSchema-SV-IV-list-dateTime-length-1 tokoe:valid" result="pass"/><test-case name="14550NISTXML-SV-IV-list-dateTime-length-1-1 tokoe:valid" result="pass"/><test-case name="14551NISTXML-SV-IV-list-dateTime-length-1-2 tokoe:valid" result="pass"/><test-case name="14552NISTXML-SV-IV-list-dateTime-length-1-3 tokoe:valid" result="pass"/><test-case name="14553NISTXML-SV-IV-list-dateTime-length-1-4 tokoe:valid" result="pass"/><test-case name="14554NISTXML-SV-IV-list-dateTime-length-1-5 tokoe:valid" result="pass"/><test-case name="14555NISTSchema-SV-IV-list-dateTime-length-2 tokoe:valid" result="pass"/><test-case name="14556NISTXML-SV-IV-list-dateTime-length-2-1 tokoe:valid" result="pass"/><test-case name="14557NISTXML-SV-IV-list-dateTime-length-2-2 tokoe:valid" result="pass"/><test-case name="14558NISTXML-SV-IV-list-dateTime-length-2-3 tokoe:valid" result="pass"/><test-case name="14559NISTXML-SV-IV-list-dateTime-length-2-4 tokoe:valid" result="pass"/><test-case name="14560NISTXML-SV-IV-list-dateTime-length-2-5 tokoe:valid" result="pass"/><test-case name="14561NISTSchema-SV-IV-list-dateTime-length-3 tokoe:valid" result="pass"/><test-case name="14562NISTXML-SV-IV-list-dateTime-length-3-1 tokoe:valid" result="pass"/><test-case name="14563NISTXML-SV-IV-list-dateTime-length-3-2 tokoe:valid" result="pass"/><test-case name="14564NISTXML-SV-IV-list-dateTime-length-3-3 tokoe:valid" result="pass"/><test-case name="14565NISTXML-SV-IV-list-dateTime-length-3-4 tokoe:valid" result="pass"/><test-case name="14566NISTXML-SV-IV-list-dateTime-length-3-5 tokoe:valid" result="pass"/><test-case name="14567NISTSchema-SV-IV-list-dateTime-length-4 tokoe:valid" result="pass"/><test-case name="14568NISTXML-SV-IV-list-dateTime-length-4-1 tokoe:valid" result="pass"/><test-case name="14569NISTXML-SV-IV-list-dateTime-length-4-2 tokoe:valid" result="pass"/><test-case name="14570NISTXML-SV-IV-list-dateTime-length-4-3 tokoe:valid" result="pass"/><test-case name="14571NISTXML-SV-IV-list-dateTime-length-4-4 tokoe:valid" result="pass"/><test-case name="14572NISTXML-SV-IV-list-dateTime-length-4-5 tokoe:valid" result="pass"/><test-case name="14573NISTSchema-SV-IV-list-dateTime-length-5 tokoe:valid" result="pass"/><test-case name="14574NISTXML-SV-IV-list-dateTime-length-5-1 tokoe:valid" result="pass"/><test-case name="14575NISTXML-SV-IV-list-dateTime-length-5-2 tokoe:valid" result="pass"/><test-case name="14576NISTXML-SV-IV-list-dateTime-length-5-3 tokoe:valid" result="pass"/><test-case name="14577NISTXML-SV-IV-list-dateTime-length-5-4 tokoe:valid" result="pass"/><test-case name="14578NISTXML-SV-IV-list-dateTime-length-5-5 tokoe:valid" result="pass"/><test-case name="14579NISTSchema-SV-IV-list-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="14580NISTXML-SV-IV-list-dateTime-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14581NISTXML-SV-IV-list-dateTime-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14582NISTXML-SV-IV-list-dateTime-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14583NISTXML-SV-IV-list-dateTime-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14584NISTXML-SV-IV-list-dateTime-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14585NISTSchema-SV-IV-list-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="14586NISTXML-SV-IV-list-dateTime-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14587NISTXML-SV-IV-list-dateTime-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14588NISTXML-SV-IV-list-dateTime-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14589NISTXML-SV-IV-list-dateTime-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14590NISTXML-SV-IV-list-dateTime-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14591NISTSchema-SV-IV-list-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="14592NISTXML-SV-IV-list-dateTime-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14593NISTXML-SV-IV-list-dateTime-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14594NISTXML-SV-IV-list-dateTime-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14595NISTXML-SV-IV-list-dateTime-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14596NISTXML-SV-IV-list-dateTime-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14597NISTSchema-SV-IV-list-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="14598NISTXML-SV-IV-list-dateTime-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14599NISTXML-SV-IV-list-dateTime-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14600NISTXML-SV-IV-list-dateTime-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14601NISTXML-SV-IV-list-dateTime-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14602NISTXML-SV-IV-list-dateTime-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14603NISTSchema-SV-IV-list-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="14604NISTXML-SV-IV-list-dateTime-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14605NISTXML-SV-IV-list-dateTime-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14606NISTXML-SV-IV-list-dateTime-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14607NISTXML-SV-IV-list-dateTime-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14608NISTXML-SV-IV-list-dateTime-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14609NISTSchema-SV-IV-list-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="14610NISTXML-SV-IV-list-dateTime-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14611NISTXML-SV-IV-list-dateTime-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14612NISTXML-SV-IV-list-dateTime-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14613NISTXML-SV-IV-list-dateTime-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14614NISTXML-SV-IV-list-dateTime-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14615NISTSchema-SV-IV-list-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="14616NISTXML-SV-IV-list-dateTime-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14617NISTXML-SV-IV-list-dateTime-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14618NISTXML-SV-IV-list-dateTime-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14619NISTXML-SV-IV-list-dateTime-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14620NISTXML-SV-IV-list-dateTime-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14621NISTSchema-SV-IV-list-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="14622NISTXML-SV-IV-list-dateTime-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14623NISTXML-SV-IV-list-dateTime-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14624NISTXML-SV-IV-list-dateTime-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14625NISTXML-SV-IV-list-dateTime-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14626NISTXML-SV-IV-list-dateTime-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14627NISTSchema-SV-IV-list-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="14628NISTXML-SV-IV-list-dateTime-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14629NISTXML-SV-IV-list-dateTime-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14630NISTXML-SV-IV-list-dateTime-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14631NISTXML-SV-IV-list-dateTime-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14632NISTXML-SV-IV-list-dateTime-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14633NISTSchema-SV-IV-list-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="14634NISTXML-SV-IV-list-dateTime-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14635NISTXML-SV-IV-list-dateTime-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14636NISTXML-SV-IV-list-dateTime-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14637NISTXML-SV-IV-list-dateTime-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14638NISTXML-SV-IV-list-dateTime-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14639NISTSchema-SV-IV-list-dateTime-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14640NISTXML-SV-IV-list-dateTime-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14641NISTXML-SV-IV-list-dateTime-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14642NISTXML-SV-IV-list-dateTime-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14643NISTXML-SV-IV-list-dateTime-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14644NISTXML-SV-IV-list-dateTime-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14645NISTSchema-SV-IV-list-time-maxLength-1 tokoe:valid" result="pass"/><test-case name="14646NISTXML-SV-IV-list-time-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14647NISTXML-SV-IV-list-time-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14648NISTXML-SV-IV-list-time-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14649NISTXML-SV-IV-list-time-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14650NISTXML-SV-IV-list-time-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14651NISTSchema-SV-IV-list-time-maxLength-2 tokoe:valid" result="pass"/><test-case name="14652NISTXML-SV-IV-list-time-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14653NISTXML-SV-IV-list-time-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14654NISTXML-SV-IV-list-time-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14655NISTXML-SV-IV-list-time-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14656NISTXML-SV-IV-list-time-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14657NISTSchema-SV-IV-list-time-maxLength-3 tokoe:valid" result="pass"/><test-case name="14658NISTXML-SV-IV-list-time-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14659NISTXML-SV-IV-list-time-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14660NISTXML-SV-IV-list-time-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14661NISTXML-SV-IV-list-time-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14662NISTXML-SV-IV-list-time-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14663NISTSchema-SV-IV-list-time-maxLength-4 tokoe:valid" result="pass"/><test-case name="14664NISTXML-SV-IV-list-time-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14665NISTXML-SV-IV-list-time-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14666NISTXML-SV-IV-list-time-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14667NISTXML-SV-IV-list-time-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14668NISTXML-SV-IV-list-time-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14669NISTSchema-SV-IV-list-time-maxLength-5 tokoe:valid" result="pass"/><test-case name="14670NISTXML-SV-IV-list-time-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14671NISTXML-SV-IV-list-time-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14672NISTXML-SV-IV-list-time-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14673NISTXML-SV-IV-list-time-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14674NISTXML-SV-IV-list-time-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14675NISTSchema-SV-IV-list-time-minLength-1 tokoe:valid" result="pass"/><test-case name="14676NISTXML-SV-IV-list-time-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14677NISTXML-SV-IV-list-time-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14678NISTXML-SV-IV-list-time-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14679NISTXML-SV-IV-list-time-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14680NISTXML-SV-IV-list-time-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14681NISTSchema-SV-IV-list-time-minLength-2 tokoe:valid" result="pass"/><test-case name="14682NISTXML-SV-IV-list-time-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14683NISTXML-SV-IV-list-time-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14684NISTXML-SV-IV-list-time-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14685NISTXML-SV-IV-list-time-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14686NISTXML-SV-IV-list-time-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14687NISTSchema-SV-IV-list-time-minLength-3 tokoe:valid" result="pass"/><test-case name="14688NISTXML-SV-IV-list-time-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14689NISTXML-SV-IV-list-time-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14690NISTXML-SV-IV-list-time-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14691NISTXML-SV-IV-list-time-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14692NISTXML-SV-IV-list-time-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14693NISTSchema-SV-IV-list-time-minLength-4 tokoe:valid" result="pass"/><test-case name="14694NISTXML-SV-IV-list-time-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14695NISTXML-SV-IV-list-time-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14696NISTXML-SV-IV-list-time-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14697NISTXML-SV-IV-list-time-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14698NISTXML-SV-IV-list-time-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14699NISTSchema-SV-IV-list-time-minLength-5 tokoe:valid" result="pass"/><test-case name="14700NISTXML-SV-IV-list-time-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14701NISTXML-SV-IV-list-time-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14702NISTXML-SV-IV-list-time-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14703NISTXML-SV-IV-list-time-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14704NISTXML-SV-IV-list-time-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14705NISTSchema-SV-IV-list-time-length-1 tokoe:valid" result="pass"/><test-case name="14706NISTXML-SV-IV-list-time-length-1-1 tokoe:valid" result="pass"/><test-case name="14707NISTXML-SV-IV-list-time-length-1-2 tokoe:valid" result="pass"/><test-case name="14708NISTXML-SV-IV-list-time-length-1-3 tokoe:valid" result="pass"/><test-case name="14709NISTXML-SV-IV-list-time-length-1-4 tokoe:valid" result="pass"/><test-case name="14710NISTXML-SV-IV-list-time-length-1-5 tokoe:valid" result="pass"/><test-case name="14711NISTSchema-SV-IV-list-time-length-2 tokoe:valid" result="pass"/><test-case name="14712NISTXML-SV-IV-list-time-length-2-1 tokoe:valid" result="pass"/><test-case name="14713NISTXML-SV-IV-list-time-length-2-2 tokoe:valid" result="pass"/><test-case name="14714NISTXML-SV-IV-list-time-length-2-3 tokoe:valid" result="pass"/><test-case name="14715NISTXML-SV-IV-list-time-length-2-4 tokoe:valid" result="pass"/><test-case name="14716NISTXML-SV-IV-list-time-length-2-5 tokoe:valid" result="pass"/><test-case name="14717NISTSchema-SV-IV-list-time-length-3 tokoe:valid" result="pass"/><test-case name="14718NISTXML-SV-IV-list-time-length-3-1 tokoe:valid" result="pass"/><test-case name="14719NISTXML-SV-IV-list-time-length-3-2 tokoe:valid" result="pass"/><test-case name="14720NISTXML-SV-IV-list-time-length-3-3 tokoe:valid" result="pass"/><test-case name="14721NISTXML-SV-IV-list-time-length-3-4 tokoe:valid" result="pass"/><test-case name="14722NISTXML-SV-IV-list-time-length-3-5 tokoe:valid" result="pass"/><test-case name="14723NISTSchema-SV-IV-list-time-length-4 tokoe:valid" result="pass"/><test-case name="14724NISTXML-SV-IV-list-time-length-4-1 tokoe:valid" result="pass"/><test-case name="14725NISTXML-SV-IV-list-time-length-4-2 tokoe:valid" result="pass"/><test-case name="14726NISTXML-SV-IV-list-time-length-4-3 tokoe:valid" result="pass"/><test-case name="14727NISTXML-SV-IV-list-time-length-4-4 tokoe:valid" result="pass"/><test-case name="14728NISTXML-SV-IV-list-time-length-4-5 tokoe:valid" result="pass"/><test-case name="14729NISTSchema-SV-IV-list-time-length-5 tokoe:valid" result="pass"/><test-case name="14730NISTXML-SV-IV-list-time-length-5-1 tokoe:valid" result="pass"/><test-case name="14731NISTXML-SV-IV-list-time-length-5-2 tokoe:valid" result="pass"/><test-case name="14732NISTXML-SV-IV-list-time-length-5-3 tokoe:valid" result="pass"/><test-case name="14733NISTXML-SV-IV-list-time-length-5-4 tokoe:valid" result="pass"/><test-case name="14734NISTXML-SV-IV-list-time-length-5-5 tokoe:valid" result="pass"/><test-case name="14735NISTSchema-SV-IV-list-time-pattern-1 tokoe:valid" result="pass"/><test-case name="14736NISTXML-SV-IV-list-time-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14737NISTXML-SV-IV-list-time-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14738NISTXML-SV-IV-list-time-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14739NISTXML-SV-IV-list-time-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14740NISTXML-SV-IV-list-time-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14741NISTSchema-SV-IV-list-time-pattern-2 tokoe:valid" result="pass"/><test-case name="14742NISTXML-SV-IV-list-time-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14743NISTXML-SV-IV-list-time-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14744NISTXML-SV-IV-list-time-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14745NISTXML-SV-IV-list-time-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14746NISTXML-SV-IV-list-time-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14747NISTSchema-SV-IV-list-time-pattern-3 tokoe:valid" result="pass"/><test-case name="14748NISTXML-SV-IV-list-time-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14749NISTXML-SV-IV-list-time-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14750NISTXML-SV-IV-list-time-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14751NISTXML-SV-IV-list-time-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14752NISTXML-SV-IV-list-time-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14753NISTSchema-SV-IV-list-time-pattern-4 tokoe:valid" result="pass"/><test-case name="14754NISTXML-SV-IV-list-time-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14755NISTXML-SV-IV-list-time-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14756NISTXML-SV-IV-list-time-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14757NISTXML-SV-IV-list-time-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14758NISTXML-SV-IV-list-time-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14759NISTSchema-SV-IV-list-time-pattern-5 tokoe:valid" result="pass"/><test-case name="14760NISTXML-SV-IV-list-time-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14761NISTXML-SV-IV-list-time-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14762NISTXML-SV-IV-list-time-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14763NISTXML-SV-IV-list-time-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14764NISTXML-SV-IV-list-time-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14765NISTSchema-SV-IV-list-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="14766NISTXML-SV-IV-list-time-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14767NISTXML-SV-IV-list-time-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14768NISTXML-SV-IV-list-time-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14769NISTXML-SV-IV-list-time-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14770NISTXML-SV-IV-list-time-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14771NISTSchema-SV-IV-list-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="14772NISTXML-SV-IV-list-time-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14773NISTXML-SV-IV-list-time-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14774NISTXML-SV-IV-list-time-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14775NISTXML-SV-IV-list-time-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14776NISTXML-SV-IV-list-time-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14777NISTSchema-SV-IV-list-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="14778NISTXML-SV-IV-list-time-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14779NISTXML-SV-IV-list-time-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14780NISTXML-SV-IV-list-time-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14781NISTXML-SV-IV-list-time-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14782NISTXML-SV-IV-list-time-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14783NISTSchema-SV-IV-list-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="14784NISTXML-SV-IV-list-time-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14785NISTXML-SV-IV-list-time-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14786NISTXML-SV-IV-list-time-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14787NISTXML-SV-IV-list-time-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14788NISTXML-SV-IV-list-time-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14789NISTSchema-SV-IV-list-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="14790NISTXML-SV-IV-list-time-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14791NISTXML-SV-IV-list-time-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14792NISTXML-SV-IV-list-time-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14793NISTXML-SV-IV-list-time-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14794NISTXML-SV-IV-list-time-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14795NISTSchema-SV-IV-list-time-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14796NISTXML-SV-IV-list-time-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14797NISTXML-SV-IV-list-time-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14798NISTXML-SV-IV-list-time-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14799NISTXML-SV-IV-list-time-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14800NISTXML-SV-IV-list-time-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14801NISTSchema-SV-IV-list-date-maxLength-1 tokoe:valid" result="pass"/><test-case name="14802NISTXML-SV-IV-list-date-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14803NISTXML-SV-IV-list-date-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14804NISTXML-SV-IV-list-date-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14805NISTXML-SV-IV-list-date-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14806NISTXML-SV-IV-list-date-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14807NISTSchema-SV-IV-list-date-maxLength-2 tokoe:valid" result="pass"/><test-case name="14808NISTXML-SV-IV-list-date-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14809NISTXML-SV-IV-list-date-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14810NISTXML-SV-IV-list-date-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14811NISTXML-SV-IV-list-date-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14812NISTXML-SV-IV-list-date-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14813NISTSchema-SV-IV-list-date-maxLength-3 tokoe:valid" result="pass"/><test-case name="14814NISTXML-SV-IV-list-date-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14815NISTXML-SV-IV-list-date-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14816NISTXML-SV-IV-list-date-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14817NISTXML-SV-IV-list-date-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14818NISTXML-SV-IV-list-date-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14819NISTSchema-SV-IV-list-date-maxLength-4 tokoe:valid" result="pass"/><test-case name="14820NISTXML-SV-IV-list-date-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14821NISTXML-SV-IV-list-date-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14822NISTXML-SV-IV-list-date-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14823NISTXML-SV-IV-list-date-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14824NISTXML-SV-IV-list-date-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14825NISTSchema-SV-IV-list-date-maxLength-5 tokoe:valid" result="pass"/><test-case name="14826NISTXML-SV-IV-list-date-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14827NISTXML-SV-IV-list-date-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14828NISTXML-SV-IV-list-date-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14829NISTXML-SV-IV-list-date-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14830NISTXML-SV-IV-list-date-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14831NISTSchema-SV-IV-list-date-minLength-1 tokoe:valid" result="pass"/><test-case name="14832NISTXML-SV-IV-list-date-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14833NISTXML-SV-IV-list-date-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14834NISTXML-SV-IV-list-date-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14835NISTXML-SV-IV-list-date-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14836NISTXML-SV-IV-list-date-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14837NISTSchema-SV-IV-list-date-minLength-2 tokoe:valid" result="pass"/><test-case name="14838NISTXML-SV-IV-list-date-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14839NISTXML-SV-IV-list-date-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14840NISTXML-SV-IV-list-date-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14841NISTXML-SV-IV-list-date-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14842NISTXML-SV-IV-list-date-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14843NISTSchema-SV-IV-list-date-minLength-3 tokoe:valid" result="pass"/><test-case name="14844NISTXML-SV-IV-list-date-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14845NISTXML-SV-IV-list-date-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14846NISTXML-SV-IV-list-date-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14847NISTXML-SV-IV-list-date-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14848NISTXML-SV-IV-list-date-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14849NISTSchema-SV-IV-list-date-minLength-4 tokoe:valid" result="pass"/><test-case name="14850NISTXML-SV-IV-list-date-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14851NISTXML-SV-IV-list-date-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14852NISTXML-SV-IV-list-date-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14853NISTXML-SV-IV-list-date-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14854NISTXML-SV-IV-list-date-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14855NISTSchema-SV-IV-list-date-minLength-5 tokoe:valid" result="pass"/><test-case name="14856NISTXML-SV-IV-list-date-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14857NISTXML-SV-IV-list-date-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14858NISTXML-SV-IV-list-date-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14859NISTXML-SV-IV-list-date-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14860NISTXML-SV-IV-list-date-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14861NISTSchema-SV-IV-list-date-length-1 tokoe:valid" result="pass"/><test-case name="14862NISTXML-SV-IV-list-date-length-1-1 tokoe:valid" result="pass"/><test-case name="14863NISTXML-SV-IV-list-date-length-1-2 tokoe:valid" result="pass"/><test-case name="14864NISTXML-SV-IV-list-date-length-1-3 tokoe:valid" result="pass"/><test-case name="14865NISTXML-SV-IV-list-date-length-1-4 tokoe:valid" result="pass"/><test-case name="14866NISTXML-SV-IV-list-date-length-1-5 tokoe:valid" result="pass"/><test-case name="14867NISTSchema-SV-IV-list-date-length-2 tokoe:valid" result="pass"/><test-case name="14868NISTXML-SV-IV-list-date-length-2-1 tokoe:valid" result="pass"/><test-case name="14869NISTXML-SV-IV-list-date-length-2-2 tokoe:valid" result="pass"/><test-case name="14870NISTXML-SV-IV-list-date-length-2-3 tokoe:valid" result="pass"/><test-case name="14871NISTXML-SV-IV-list-date-length-2-4 tokoe:valid" result="pass"/><test-case name="14872NISTXML-SV-IV-list-date-length-2-5 tokoe:valid" result="pass"/><test-case name="14873NISTSchema-SV-IV-list-date-length-3 tokoe:valid" result="pass"/><test-case name="14874NISTXML-SV-IV-list-date-length-3-1 tokoe:valid" result="pass"/><test-case name="14875NISTXML-SV-IV-list-date-length-3-2 tokoe:valid" result="pass"/><test-case name="14876NISTXML-SV-IV-list-date-length-3-3 tokoe:valid" result="pass"/><test-case name="14877NISTXML-SV-IV-list-date-length-3-4 tokoe:valid" result="pass"/><test-case name="14878NISTXML-SV-IV-list-date-length-3-5 tokoe:valid" result="pass"/><test-case name="14879NISTSchema-SV-IV-list-date-length-4 tokoe:valid" result="pass"/><test-case name="14880NISTXML-SV-IV-list-date-length-4-1 tokoe:valid" result="pass"/><test-case name="14881NISTXML-SV-IV-list-date-length-4-2 tokoe:valid" result="pass"/><test-case name="14882NISTXML-SV-IV-list-date-length-4-3 tokoe:valid" result="pass"/><test-case name="14883NISTXML-SV-IV-list-date-length-4-4 tokoe:valid" result="pass"/><test-case name="14884NISTXML-SV-IV-list-date-length-4-5 tokoe:valid" result="pass"/><test-case name="14885NISTSchema-SV-IV-list-date-length-5 tokoe:valid" result="pass"/><test-case name="14886NISTXML-SV-IV-list-date-length-5-1 tokoe:valid" result="pass"/><test-case name="14887NISTXML-SV-IV-list-date-length-5-2 tokoe:valid" result="pass"/><test-case name="14888NISTXML-SV-IV-list-date-length-5-3 tokoe:valid" result="pass"/><test-case name="14889NISTXML-SV-IV-list-date-length-5-4 tokoe:valid" result="pass"/><test-case name="14890NISTXML-SV-IV-list-date-length-5-5 tokoe:valid" result="pass"/><test-case name="14891NISTSchema-SV-IV-list-date-pattern-1 tokoe:valid" result="pass"/><test-case name="14892NISTXML-SV-IV-list-date-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14893NISTXML-SV-IV-list-date-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14894NISTXML-SV-IV-list-date-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14895NISTXML-SV-IV-list-date-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14896NISTXML-SV-IV-list-date-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14897NISTSchema-SV-IV-list-date-pattern-2 tokoe:valid" result="pass"/><test-case name="14898NISTXML-SV-IV-list-date-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14899NISTXML-SV-IV-list-date-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14900NISTXML-SV-IV-list-date-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14901NISTXML-SV-IV-list-date-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14902NISTXML-SV-IV-list-date-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14903NISTSchema-SV-IV-list-date-pattern-3 tokoe:valid" result="pass"/><test-case name="14904NISTXML-SV-IV-list-date-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14905NISTXML-SV-IV-list-date-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14906NISTXML-SV-IV-list-date-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14907NISTXML-SV-IV-list-date-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14908NISTXML-SV-IV-list-date-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14909NISTSchema-SV-IV-list-date-pattern-4 tokoe:valid" result="pass"/><test-case name="14910NISTXML-SV-IV-list-date-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14911NISTXML-SV-IV-list-date-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14912NISTXML-SV-IV-list-date-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14913NISTXML-SV-IV-list-date-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14914NISTXML-SV-IV-list-date-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14915NISTSchema-SV-IV-list-date-pattern-5 tokoe:valid" result="pass"/><test-case name="14916NISTXML-SV-IV-list-date-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14917NISTXML-SV-IV-list-date-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14918NISTXML-SV-IV-list-date-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14919NISTXML-SV-IV-list-date-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14920NISTXML-SV-IV-list-date-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14921NISTSchema-SV-IV-list-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="14922NISTXML-SV-IV-list-date-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14923NISTXML-SV-IV-list-date-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14924NISTXML-SV-IV-list-date-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14925NISTXML-SV-IV-list-date-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14926NISTXML-SV-IV-list-date-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14927NISTSchema-SV-IV-list-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="14928NISTXML-SV-IV-list-date-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14929NISTXML-SV-IV-list-date-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14930NISTXML-SV-IV-list-date-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14931NISTXML-SV-IV-list-date-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14932NISTXML-SV-IV-list-date-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14933NISTSchema-SV-IV-list-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="14934NISTXML-SV-IV-list-date-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14935NISTXML-SV-IV-list-date-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14936NISTXML-SV-IV-list-date-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14937NISTXML-SV-IV-list-date-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14938NISTXML-SV-IV-list-date-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14939NISTSchema-SV-IV-list-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="14940NISTXML-SV-IV-list-date-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14941NISTXML-SV-IV-list-date-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14942NISTXML-SV-IV-list-date-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14943NISTXML-SV-IV-list-date-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14944NISTXML-SV-IV-list-date-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14945NISTSchema-SV-IV-list-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="14946NISTXML-SV-IV-list-date-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14947NISTXML-SV-IV-list-date-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14948NISTXML-SV-IV-list-date-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14949NISTXML-SV-IV-list-date-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14950NISTXML-SV-IV-list-date-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14951NISTSchema-SV-IV-list-date-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14952NISTXML-SV-IV-list-date-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14953NISTXML-SV-IV-list-date-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14954NISTXML-SV-IV-list-date-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14955NISTXML-SV-IV-list-date-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14956NISTXML-SV-IV-list-date-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14957NISTSchema-SV-IV-list-gYearMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="14958NISTXML-SV-IV-list-gYearMonth-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14959NISTXML-SV-IV-list-gYearMonth-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14960NISTXML-SV-IV-list-gYearMonth-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14961NISTXML-SV-IV-list-gYearMonth-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14962NISTXML-SV-IV-list-gYearMonth-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14963NISTSchema-SV-IV-list-gYearMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="14964NISTXML-SV-IV-list-gYearMonth-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14965NISTXML-SV-IV-list-gYearMonth-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14966NISTXML-SV-IV-list-gYearMonth-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14967NISTXML-SV-IV-list-gYearMonth-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14968NISTXML-SV-IV-list-gYearMonth-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14969NISTSchema-SV-IV-list-gYearMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="14970NISTXML-SV-IV-list-gYearMonth-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14971NISTXML-SV-IV-list-gYearMonth-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14972NISTXML-SV-IV-list-gYearMonth-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14973NISTXML-SV-IV-list-gYearMonth-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14974NISTXML-SV-IV-list-gYearMonth-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14975NISTSchema-SV-IV-list-gYearMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="14976NISTXML-SV-IV-list-gYearMonth-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14977NISTXML-SV-IV-list-gYearMonth-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14978NISTXML-SV-IV-list-gYearMonth-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14979NISTXML-SV-IV-list-gYearMonth-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14980NISTXML-SV-IV-list-gYearMonth-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14981NISTSchema-SV-IV-list-gYearMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="14982NISTXML-SV-IV-list-gYearMonth-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14983NISTXML-SV-IV-list-gYearMonth-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14984NISTXML-SV-IV-list-gYearMonth-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14985NISTXML-SV-IV-list-gYearMonth-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14986NISTXML-SV-IV-list-gYearMonth-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14987NISTSchema-SV-IV-list-gYearMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="14988NISTXML-SV-IV-list-gYearMonth-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14989NISTXML-SV-IV-list-gYearMonth-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14990NISTXML-SV-IV-list-gYearMonth-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14991NISTXML-SV-IV-list-gYearMonth-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14992NISTXML-SV-IV-list-gYearMonth-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14993NISTSchema-SV-IV-list-gYearMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="14994NISTXML-SV-IV-list-gYearMonth-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14995NISTXML-SV-IV-list-gYearMonth-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14996NISTXML-SV-IV-list-gYearMonth-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14997NISTXML-SV-IV-list-gYearMonth-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14998NISTXML-SV-IV-list-gYearMonth-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14999NISTSchema-SV-IV-list-gYearMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="15000NISTXML-SV-IV-list-gYearMonth-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15001NISTXML-SV-IV-list-gYearMonth-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15002NISTXML-SV-IV-list-gYearMonth-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15003NISTXML-SV-IV-list-gYearMonth-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15004NISTXML-SV-IV-list-gYearMonth-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15005NISTSchema-SV-IV-list-gYearMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="15006NISTXML-SV-IV-list-gYearMonth-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15007NISTXML-SV-IV-list-gYearMonth-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15008NISTXML-SV-IV-list-gYearMonth-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15009NISTXML-SV-IV-list-gYearMonth-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15010NISTXML-SV-IV-list-gYearMonth-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15011NISTSchema-SV-IV-list-gYearMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="15012NISTXML-SV-IV-list-gYearMonth-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15013NISTXML-SV-IV-list-gYearMonth-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15014NISTXML-SV-IV-list-gYearMonth-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15015NISTXML-SV-IV-list-gYearMonth-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15016NISTXML-SV-IV-list-gYearMonth-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15017NISTSchema-SV-IV-list-gYearMonth-length-1 tokoe:valid" result="pass"/><test-case name="15018NISTXML-SV-IV-list-gYearMonth-length-1-1 tokoe:valid" result="pass"/><test-case name="15019NISTXML-SV-IV-list-gYearMonth-length-1-2 tokoe:valid" result="pass"/><test-case name="15020NISTXML-SV-IV-list-gYearMonth-length-1-3 tokoe:valid" result="pass"/><test-case name="15021NISTXML-SV-IV-list-gYearMonth-length-1-4 tokoe:valid" result="pass"/><test-case name="15022NISTXML-SV-IV-list-gYearMonth-length-1-5 tokoe:valid" result="pass"/><test-case name="15023NISTSchema-SV-IV-list-gYearMonth-length-2 tokoe:valid" result="pass"/><test-case name="15024NISTXML-SV-IV-list-gYearMonth-length-2-1 tokoe:valid" result="pass"/><test-case name="15025NISTXML-SV-IV-list-gYearMonth-length-2-2 tokoe:valid" result="pass"/><test-case name="15026NISTXML-SV-IV-list-gYearMonth-length-2-3 tokoe:valid" result="pass"/><test-case name="15027NISTXML-SV-IV-list-gYearMonth-length-2-4 tokoe:valid" result="pass"/><test-case name="15028NISTXML-SV-IV-list-gYearMonth-length-2-5 tokoe:valid" result="pass"/><test-case name="15029NISTSchema-SV-IV-list-gYearMonth-length-3 tokoe:valid" result="pass"/><test-case name="15030NISTXML-SV-IV-list-gYearMonth-length-3-1 tokoe:valid" result="pass"/><test-case name="15031NISTXML-SV-IV-list-gYearMonth-length-3-2 tokoe:valid" result="pass"/><test-case name="15032NISTXML-SV-IV-list-gYearMonth-length-3-3 tokoe:valid" result="pass"/><test-case name="15033NISTXML-SV-IV-list-gYearMonth-length-3-4 tokoe:valid" result="pass"/><test-case name="15034NISTXML-SV-IV-list-gYearMonth-length-3-5 tokoe:valid" result="pass"/><test-case name="15035NISTSchema-SV-IV-list-gYearMonth-length-4 tokoe:valid" result="pass"/><test-case name="15036NISTXML-SV-IV-list-gYearMonth-length-4-1 tokoe:valid" result="pass"/><test-case name="15037NISTXML-SV-IV-list-gYearMonth-length-4-2 tokoe:valid" result="pass"/><test-case name="15038NISTXML-SV-IV-list-gYearMonth-length-4-3 tokoe:valid" result="pass"/><test-case name="15039NISTXML-SV-IV-list-gYearMonth-length-4-4 tokoe:valid" result="pass"/><test-case name="15040NISTXML-SV-IV-list-gYearMonth-length-4-5 tokoe:valid" result="pass"/><test-case name="15041NISTSchema-SV-IV-list-gYearMonth-length-5 tokoe:valid" result="pass"/><test-case name="15042NISTXML-SV-IV-list-gYearMonth-length-5-1 tokoe:valid" result="pass"/><test-case name="15043NISTXML-SV-IV-list-gYearMonth-length-5-2 tokoe:valid" result="pass"/><test-case name="15044NISTXML-SV-IV-list-gYearMonth-length-5-3 tokoe:valid" result="pass"/><test-case name="15045NISTXML-SV-IV-list-gYearMonth-length-5-4 tokoe:valid" result="pass"/><test-case name="15046NISTXML-SV-IV-list-gYearMonth-length-5-5 tokoe:valid" result="pass"/><test-case name="15047NISTSchema-SV-IV-list-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="15048NISTXML-SV-IV-list-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15049NISTXML-SV-IV-list-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15050NISTXML-SV-IV-list-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15051NISTXML-SV-IV-list-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15052NISTXML-SV-IV-list-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15053NISTSchema-SV-IV-list-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="15054NISTXML-SV-IV-list-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15055NISTXML-SV-IV-list-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15056NISTXML-SV-IV-list-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15057NISTXML-SV-IV-list-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15058NISTXML-SV-IV-list-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15059NISTSchema-SV-IV-list-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="15060NISTXML-SV-IV-list-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15061NISTXML-SV-IV-list-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15062NISTXML-SV-IV-list-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15063NISTXML-SV-IV-list-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15064NISTXML-SV-IV-list-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15065NISTSchema-SV-IV-list-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="15066NISTXML-SV-IV-list-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15067NISTXML-SV-IV-list-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15068NISTXML-SV-IV-list-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15069NISTXML-SV-IV-list-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15070NISTXML-SV-IV-list-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15071NISTSchema-SV-IV-list-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="15072NISTXML-SV-IV-list-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15073NISTXML-SV-IV-list-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15074NISTXML-SV-IV-list-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15075NISTXML-SV-IV-list-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15076NISTXML-SV-IV-list-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15077NISTSchema-SV-IV-list-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="15078NISTXML-SV-IV-list-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15079NISTXML-SV-IV-list-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15080NISTXML-SV-IV-list-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15081NISTXML-SV-IV-list-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15082NISTXML-SV-IV-list-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15083NISTSchema-SV-IV-list-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="15084NISTXML-SV-IV-list-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15085NISTXML-SV-IV-list-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15086NISTXML-SV-IV-list-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15087NISTXML-SV-IV-list-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15088NISTXML-SV-IV-list-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15089NISTSchema-SV-IV-list-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="15090NISTXML-SV-IV-list-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15091NISTXML-SV-IV-list-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15092NISTXML-SV-IV-list-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15093NISTXML-SV-IV-list-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15094NISTXML-SV-IV-list-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15095NISTSchema-SV-IV-list-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="15096NISTXML-SV-IV-list-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15097NISTXML-SV-IV-list-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15098NISTXML-SV-IV-list-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15099NISTXML-SV-IV-list-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15100NISTXML-SV-IV-list-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15101NISTSchema-SV-IV-list-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="15102NISTXML-SV-IV-list-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15103NISTXML-SV-IV-list-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15104NISTXML-SV-IV-list-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15105NISTXML-SV-IV-list-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15106NISTXML-SV-IV-list-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15107NISTSchema-SV-IV-list-gYearMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15108NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15109NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15110NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15111NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15112NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15113NISTSchema-SV-IV-list-gYear-maxLength-1 tokoe:valid" result="pass"/><test-case name="15114NISTXML-SV-IV-list-gYear-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15115NISTXML-SV-IV-list-gYear-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15116NISTXML-SV-IV-list-gYear-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15117NISTXML-SV-IV-list-gYear-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15118NISTXML-SV-IV-list-gYear-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15119NISTSchema-SV-IV-list-gYear-maxLength-2 tokoe:valid" result="pass"/><test-case name="15120NISTXML-SV-IV-list-gYear-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15121NISTXML-SV-IV-list-gYear-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15122NISTXML-SV-IV-list-gYear-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15123NISTXML-SV-IV-list-gYear-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15124NISTXML-SV-IV-list-gYear-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15125NISTSchema-SV-IV-list-gYear-maxLength-3 tokoe:valid" result="pass"/><test-case name="15126NISTXML-SV-IV-list-gYear-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15127NISTXML-SV-IV-list-gYear-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15128NISTXML-SV-IV-list-gYear-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15129NISTXML-SV-IV-list-gYear-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15130NISTXML-SV-IV-list-gYear-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15131NISTSchema-SV-IV-list-gYear-maxLength-4 tokoe:valid" result="pass"/><test-case name="15132NISTXML-SV-IV-list-gYear-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15133NISTXML-SV-IV-list-gYear-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15134NISTXML-SV-IV-list-gYear-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15135NISTXML-SV-IV-list-gYear-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15136NISTXML-SV-IV-list-gYear-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15137NISTSchema-SV-IV-list-gYear-maxLength-5 tokoe:valid" result="pass"/><test-case name="15138NISTXML-SV-IV-list-gYear-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15139NISTXML-SV-IV-list-gYear-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15140NISTXML-SV-IV-list-gYear-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15141NISTXML-SV-IV-list-gYear-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15142NISTXML-SV-IV-list-gYear-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15143NISTSchema-SV-IV-list-gYear-minLength-1 tokoe:valid" result="pass"/><test-case name="15144NISTXML-SV-IV-list-gYear-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15145NISTXML-SV-IV-list-gYear-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15146NISTXML-SV-IV-list-gYear-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15147NISTXML-SV-IV-list-gYear-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15148NISTXML-SV-IV-list-gYear-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15149NISTSchema-SV-IV-list-gYear-minLength-2 tokoe:valid" result="pass"/><test-case name="15150NISTXML-SV-IV-list-gYear-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15151NISTXML-SV-IV-list-gYear-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15152NISTXML-SV-IV-list-gYear-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15153NISTXML-SV-IV-list-gYear-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15154NISTXML-SV-IV-list-gYear-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15155NISTSchema-SV-IV-list-gYear-minLength-3 tokoe:valid" result="pass"/><test-case name="15156NISTXML-SV-IV-list-gYear-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15157NISTXML-SV-IV-list-gYear-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15158NISTXML-SV-IV-list-gYear-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15159NISTXML-SV-IV-list-gYear-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15160NISTXML-SV-IV-list-gYear-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15161NISTSchema-SV-IV-list-gYear-minLength-4 tokoe:valid" result="pass"/><test-case name="15162NISTXML-SV-IV-list-gYear-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15163NISTXML-SV-IV-list-gYear-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15164NISTXML-SV-IV-list-gYear-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15165NISTXML-SV-IV-list-gYear-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15166NISTXML-SV-IV-list-gYear-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15167NISTSchema-SV-IV-list-gYear-minLength-5 tokoe:valid" result="pass"/><test-case name="15168NISTXML-SV-IV-list-gYear-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15169NISTXML-SV-IV-list-gYear-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15170NISTXML-SV-IV-list-gYear-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15171NISTXML-SV-IV-list-gYear-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15172NISTXML-SV-IV-list-gYear-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15173NISTSchema-SV-IV-list-gYear-length-1 tokoe:valid" result="pass"/><test-case name="15174NISTXML-SV-IV-list-gYear-length-1-1 tokoe:valid" result="pass"/><test-case name="15175NISTXML-SV-IV-list-gYear-length-1-2 tokoe:valid" result="pass"/><test-case name="15176NISTXML-SV-IV-list-gYear-length-1-3 tokoe:valid" result="pass"/><test-case name="15177NISTXML-SV-IV-list-gYear-length-1-4 tokoe:valid" result="pass"/><test-case name="15178NISTXML-SV-IV-list-gYear-length-1-5 tokoe:valid" result="pass"/><test-case name="15179NISTSchema-SV-IV-list-gYear-length-2 tokoe:valid" result="pass"/><test-case name="15180NISTXML-SV-IV-list-gYear-length-2-1 tokoe:valid" result="pass"/><test-case name="15181NISTXML-SV-IV-list-gYear-length-2-2 tokoe:valid" result="pass"/><test-case name="15182NISTXML-SV-IV-list-gYear-length-2-3 tokoe:valid" result="pass"/><test-case name="15183NISTXML-SV-IV-list-gYear-length-2-4 tokoe:valid" result="pass"/><test-case name="15184NISTXML-SV-IV-list-gYear-length-2-5 tokoe:valid" result="pass"/><test-case name="15185NISTSchema-SV-IV-list-gYear-length-3 tokoe:valid" result="pass"/><test-case name="15186NISTXML-SV-IV-list-gYear-length-3-1 tokoe:valid" result="pass"/><test-case name="15187NISTXML-SV-IV-list-gYear-length-3-2 tokoe:valid" result="pass"/><test-case name="15188NISTXML-SV-IV-list-gYear-length-3-3 tokoe:valid" result="pass"/><test-case name="15189NISTXML-SV-IV-list-gYear-length-3-4 tokoe:valid" result="pass"/><test-case name="15190NISTXML-SV-IV-list-gYear-length-3-5 tokoe:valid" result="pass"/><test-case name="15191NISTSchema-SV-IV-list-gYear-length-4 tokoe:valid" result="pass"/><test-case name="15192NISTXML-SV-IV-list-gYear-length-4-1 tokoe:valid" result="pass"/><test-case name="15193NISTXML-SV-IV-list-gYear-length-4-2 tokoe:valid" result="pass"/><test-case name="15194NISTXML-SV-IV-list-gYear-length-4-3 tokoe:valid" result="pass"/><test-case name="15195NISTXML-SV-IV-list-gYear-length-4-4 tokoe:valid" result="pass"/><test-case name="15196NISTXML-SV-IV-list-gYear-length-4-5 tokoe:valid" result="pass"/><test-case name="15197NISTSchema-SV-IV-list-gYear-length-5 tokoe:valid" result="pass"/><test-case name="15198NISTXML-SV-IV-list-gYear-length-5-1 tokoe:valid" result="pass"/><test-case name="15199NISTXML-SV-IV-list-gYear-length-5-2 tokoe:valid" result="pass"/><test-case name="15200NISTXML-SV-IV-list-gYear-length-5-3 tokoe:valid" result="pass"/><test-case name="15201NISTXML-SV-IV-list-gYear-length-5-4 tokoe:valid" result="pass"/><test-case name="15202NISTXML-SV-IV-list-gYear-length-5-5 tokoe:valid" result="pass"/><test-case name="15203NISTSchema-SV-IV-list-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="15204NISTXML-SV-IV-list-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15205NISTXML-SV-IV-list-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15206NISTXML-SV-IV-list-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15207NISTXML-SV-IV-list-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15208NISTXML-SV-IV-list-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15209NISTSchema-SV-IV-list-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="15210NISTXML-SV-IV-list-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15211NISTXML-SV-IV-list-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15212NISTXML-SV-IV-list-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15213NISTXML-SV-IV-list-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15214NISTXML-SV-IV-list-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15215NISTSchema-SV-IV-list-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="15216NISTXML-SV-IV-list-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15217NISTXML-SV-IV-list-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15218NISTXML-SV-IV-list-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15219NISTXML-SV-IV-list-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15220NISTXML-SV-IV-list-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15221NISTSchema-SV-IV-list-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="15222NISTXML-SV-IV-list-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15223NISTXML-SV-IV-list-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15224NISTXML-SV-IV-list-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15225NISTXML-SV-IV-list-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15226NISTXML-SV-IV-list-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15227NISTSchema-SV-IV-list-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="15228NISTXML-SV-IV-list-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15229NISTXML-SV-IV-list-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15230NISTXML-SV-IV-list-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15231NISTXML-SV-IV-list-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15232NISTXML-SV-IV-list-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15233NISTSchema-SV-IV-list-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="15234NISTXML-SV-IV-list-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15235NISTXML-SV-IV-list-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15236NISTXML-SV-IV-list-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15237NISTXML-SV-IV-list-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15238NISTXML-SV-IV-list-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15239NISTSchema-SV-IV-list-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="15240NISTXML-SV-IV-list-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15241NISTXML-SV-IV-list-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15242NISTXML-SV-IV-list-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15243NISTXML-SV-IV-list-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15244NISTXML-SV-IV-list-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15245NISTSchema-SV-IV-list-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="15246NISTXML-SV-IV-list-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15247NISTXML-SV-IV-list-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15248NISTXML-SV-IV-list-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15249NISTXML-SV-IV-list-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15250NISTXML-SV-IV-list-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15251NISTSchema-SV-IV-list-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="15252NISTXML-SV-IV-list-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15253NISTXML-SV-IV-list-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15254NISTXML-SV-IV-list-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15255NISTXML-SV-IV-list-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15256NISTXML-SV-IV-list-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15257NISTSchema-SV-IV-list-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="15258NISTXML-SV-IV-list-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15259NISTXML-SV-IV-list-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15260NISTXML-SV-IV-list-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15261NISTXML-SV-IV-list-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15262NISTXML-SV-IV-list-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15263NISTSchema-SV-IV-list-gYear-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15264NISTXML-SV-IV-list-gYear-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15265NISTXML-SV-IV-list-gYear-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15266NISTXML-SV-IV-list-gYear-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15267NISTXML-SV-IV-list-gYear-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15268NISTXML-SV-IV-list-gYear-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15269NISTSchema-SV-IV-list-gMonthDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="15270NISTXML-SV-IV-list-gMonthDay-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15271NISTXML-SV-IV-list-gMonthDay-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15272NISTXML-SV-IV-list-gMonthDay-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15273NISTXML-SV-IV-list-gMonthDay-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15274NISTXML-SV-IV-list-gMonthDay-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15275NISTSchema-SV-IV-list-gMonthDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="15276NISTXML-SV-IV-list-gMonthDay-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15277NISTXML-SV-IV-list-gMonthDay-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15278NISTXML-SV-IV-list-gMonthDay-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15279NISTXML-SV-IV-list-gMonthDay-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15280NISTXML-SV-IV-list-gMonthDay-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15281NISTSchema-SV-IV-list-gMonthDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="15282NISTXML-SV-IV-list-gMonthDay-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15283NISTXML-SV-IV-list-gMonthDay-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15284NISTXML-SV-IV-list-gMonthDay-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15285NISTXML-SV-IV-list-gMonthDay-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15286NISTXML-SV-IV-list-gMonthDay-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15287NISTSchema-SV-IV-list-gMonthDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="15288NISTXML-SV-IV-list-gMonthDay-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15289NISTXML-SV-IV-list-gMonthDay-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15290NISTXML-SV-IV-list-gMonthDay-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15291NISTXML-SV-IV-list-gMonthDay-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15292NISTXML-SV-IV-list-gMonthDay-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15293NISTSchema-SV-IV-list-gMonthDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="15294NISTXML-SV-IV-list-gMonthDay-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15295NISTXML-SV-IV-list-gMonthDay-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15296NISTXML-SV-IV-list-gMonthDay-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15297NISTXML-SV-IV-list-gMonthDay-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15298NISTXML-SV-IV-list-gMonthDay-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15299NISTSchema-SV-IV-list-gMonthDay-minLength-1 tokoe:valid" result="pass"/><test-case name="15300NISTXML-SV-IV-list-gMonthDay-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15301NISTXML-SV-IV-list-gMonthDay-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15302NISTXML-SV-IV-list-gMonthDay-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15303NISTXML-SV-IV-list-gMonthDay-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15304NISTXML-SV-IV-list-gMonthDay-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15305NISTSchema-SV-IV-list-gMonthDay-minLength-2 tokoe:valid" result="pass"/><test-case name="15306NISTXML-SV-IV-list-gMonthDay-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15307NISTXML-SV-IV-list-gMonthDay-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15308NISTXML-SV-IV-list-gMonthDay-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15309NISTXML-SV-IV-list-gMonthDay-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15310NISTXML-SV-IV-list-gMonthDay-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15311NISTSchema-SV-IV-list-gMonthDay-minLength-3 tokoe:valid" result="pass"/><test-case name="15312NISTXML-SV-IV-list-gMonthDay-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15313NISTXML-SV-IV-list-gMonthDay-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15314NISTXML-SV-IV-list-gMonthDay-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15315NISTXML-SV-IV-list-gMonthDay-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15316NISTXML-SV-IV-list-gMonthDay-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15317NISTSchema-SV-IV-list-gMonthDay-minLength-4 tokoe:valid" result="pass"/><test-case name="15318NISTXML-SV-IV-list-gMonthDay-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15319NISTXML-SV-IV-list-gMonthDay-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15320NISTXML-SV-IV-list-gMonthDay-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15321NISTXML-SV-IV-list-gMonthDay-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15322NISTXML-SV-IV-list-gMonthDay-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15323NISTSchema-SV-IV-list-gMonthDay-minLength-5 tokoe:valid" result="pass"/><test-case name="15324NISTXML-SV-IV-list-gMonthDay-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15325NISTXML-SV-IV-list-gMonthDay-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15326NISTXML-SV-IV-list-gMonthDay-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15327NISTXML-SV-IV-list-gMonthDay-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15328NISTXML-SV-IV-list-gMonthDay-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15329NISTSchema-SV-IV-list-gMonthDay-length-1 tokoe:valid" result="pass"/><test-case name="15330NISTXML-SV-IV-list-gMonthDay-length-1-1 tokoe:valid" result="pass"/><test-case name="15331NISTXML-SV-IV-list-gMonthDay-length-1-2 tokoe:valid" result="pass"/><test-case name="15332NISTXML-SV-IV-list-gMonthDay-length-1-3 tokoe:valid" result="pass"/><test-case name="15333NISTXML-SV-IV-list-gMonthDay-length-1-4 tokoe:valid" result="pass"/><test-case name="15334NISTXML-SV-IV-list-gMonthDay-length-1-5 tokoe:valid" result="pass"/><test-case name="15335NISTSchema-SV-IV-list-gMonthDay-length-2 tokoe:valid" result="pass"/><test-case name="15336NISTXML-SV-IV-list-gMonthDay-length-2-1 tokoe:valid" result="pass"/><test-case name="15337NISTXML-SV-IV-list-gMonthDay-length-2-2 tokoe:valid" result="pass"/><test-case name="15338NISTXML-SV-IV-list-gMonthDay-length-2-3 tokoe:valid" result="pass"/><test-case name="15339NISTXML-SV-IV-list-gMonthDay-length-2-4 tokoe:valid" result="pass"/><test-case name="15340NISTXML-SV-IV-list-gMonthDay-length-2-5 tokoe:valid" result="pass"/><test-case name="15341NISTSchema-SV-IV-list-gMonthDay-length-3 tokoe:valid" result="pass"/><test-case name="15342NISTXML-SV-IV-list-gMonthDay-length-3-1 tokoe:valid" result="pass"/><test-case name="15343NISTXML-SV-IV-list-gMonthDay-length-3-2 tokoe:valid" result="pass"/><test-case name="15344NISTXML-SV-IV-list-gMonthDay-length-3-3 tokoe:valid" result="pass"/><test-case name="15345NISTXML-SV-IV-list-gMonthDay-length-3-4 tokoe:valid" result="pass"/><test-case name="15346NISTXML-SV-IV-list-gMonthDay-length-3-5 tokoe:valid" result="pass"/><test-case name="15347NISTSchema-SV-IV-list-gMonthDay-length-4 tokoe:valid" result="pass"/><test-case name="15348NISTXML-SV-IV-list-gMonthDay-length-4-1 tokoe:valid" result="pass"/><test-case name="15349NISTXML-SV-IV-list-gMonthDay-length-4-2 tokoe:valid" result="pass"/><test-case name="15350NISTXML-SV-IV-list-gMonthDay-length-4-3 tokoe:valid" result="pass"/><test-case name="15351NISTXML-SV-IV-list-gMonthDay-length-4-4 tokoe:valid" result="pass"/><test-case name="15352NISTXML-SV-IV-list-gMonthDay-length-4-5 tokoe:valid" result="pass"/><test-case name="15353NISTSchema-SV-IV-list-gMonthDay-length-5 tokoe:valid" result="pass"/><test-case name="15354NISTXML-SV-IV-list-gMonthDay-length-5-1 tokoe:valid" result="pass"/><test-case name="15355NISTXML-SV-IV-list-gMonthDay-length-5-2 tokoe:valid" result="pass"/><test-case name="15356NISTXML-SV-IV-list-gMonthDay-length-5-3 tokoe:valid" result="pass"/><test-case name="15357NISTXML-SV-IV-list-gMonthDay-length-5-4 tokoe:valid" result="pass"/><test-case name="15358NISTXML-SV-IV-list-gMonthDay-length-5-5 tokoe:valid" result="pass"/><test-case name="15359NISTSchema-SV-IV-list-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="15360NISTXML-SV-IV-list-gMonthDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15361NISTXML-SV-IV-list-gMonthDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15362NISTXML-SV-IV-list-gMonthDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15363NISTXML-SV-IV-list-gMonthDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15364NISTXML-SV-IV-list-gMonthDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15365NISTSchema-SV-IV-list-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="15366NISTXML-SV-IV-list-gMonthDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15367NISTXML-SV-IV-list-gMonthDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15368NISTXML-SV-IV-list-gMonthDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15369NISTXML-SV-IV-list-gMonthDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15370NISTXML-SV-IV-list-gMonthDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15371NISTSchema-SV-IV-list-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="15372NISTXML-SV-IV-list-gMonthDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15373NISTXML-SV-IV-list-gMonthDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15374NISTXML-SV-IV-list-gMonthDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15375NISTXML-SV-IV-list-gMonthDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15376NISTXML-SV-IV-list-gMonthDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15377NISTSchema-SV-IV-list-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="15378NISTXML-SV-IV-list-gMonthDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15379NISTXML-SV-IV-list-gMonthDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15380NISTXML-SV-IV-list-gMonthDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15381NISTXML-SV-IV-list-gMonthDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15382NISTXML-SV-IV-list-gMonthDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15383NISTSchema-SV-IV-list-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="15384NISTXML-SV-IV-list-gMonthDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15385NISTXML-SV-IV-list-gMonthDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15386NISTXML-SV-IV-list-gMonthDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15387NISTXML-SV-IV-list-gMonthDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15388NISTXML-SV-IV-list-gMonthDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15389NISTSchema-SV-IV-list-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="15390NISTXML-SV-IV-list-gMonthDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15391NISTXML-SV-IV-list-gMonthDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15392NISTXML-SV-IV-list-gMonthDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15393NISTXML-SV-IV-list-gMonthDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15394NISTXML-SV-IV-list-gMonthDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15395NISTSchema-SV-IV-list-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="15396NISTXML-SV-IV-list-gMonthDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15397NISTXML-SV-IV-list-gMonthDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15398NISTXML-SV-IV-list-gMonthDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15399NISTXML-SV-IV-list-gMonthDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15400NISTXML-SV-IV-list-gMonthDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15401NISTSchema-SV-IV-list-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="15402NISTXML-SV-IV-list-gMonthDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15403NISTXML-SV-IV-list-gMonthDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15404NISTXML-SV-IV-list-gMonthDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15405NISTXML-SV-IV-list-gMonthDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15406NISTXML-SV-IV-list-gMonthDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15407NISTSchema-SV-IV-list-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="15408NISTXML-SV-IV-list-gMonthDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15409NISTXML-SV-IV-list-gMonthDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15410NISTXML-SV-IV-list-gMonthDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15411NISTXML-SV-IV-list-gMonthDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15412NISTXML-SV-IV-list-gMonthDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15413NISTSchema-SV-IV-list-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="15414NISTXML-SV-IV-list-gMonthDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15415NISTXML-SV-IV-list-gMonthDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15416NISTXML-SV-IV-list-gMonthDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15417NISTXML-SV-IV-list-gMonthDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15418NISTXML-SV-IV-list-gMonthDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15419NISTSchema-SV-IV-list-gMonthDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15420NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15421NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15422NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15423NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15424NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15425NISTSchema-SV-IV-list-gDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="15426NISTXML-SV-IV-list-gDay-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15427NISTXML-SV-IV-list-gDay-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15428NISTXML-SV-IV-list-gDay-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15429NISTXML-SV-IV-list-gDay-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15430NISTXML-SV-IV-list-gDay-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15431NISTSchema-SV-IV-list-gDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="15432NISTXML-SV-IV-list-gDay-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15433NISTXML-SV-IV-list-gDay-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15434NISTXML-SV-IV-list-gDay-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15435NISTXML-SV-IV-list-gDay-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15436NISTXML-SV-IV-list-gDay-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15437NISTSchema-SV-IV-list-gDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="15438NISTXML-SV-IV-list-gDay-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15439NISTXML-SV-IV-list-gDay-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15440NISTXML-SV-IV-list-gDay-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15441NISTXML-SV-IV-list-gDay-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15442NISTXML-SV-IV-list-gDay-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15443NISTSchema-SV-IV-list-gDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="15444NISTXML-SV-IV-list-gDay-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15445NISTXML-SV-IV-list-gDay-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15446NISTXML-SV-IV-list-gDay-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15447NISTXML-SV-IV-list-gDay-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15448NISTXML-SV-IV-list-gDay-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15449NISTSchema-SV-IV-list-gDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="15450NISTXML-SV-IV-list-gDay-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15451NISTXML-SV-IV-list-gDay-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15452NISTXML-SV-IV-list-gDay-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15453NISTXML-SV-IV-list-gDay-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15454NISTXML-SV-IV-list-gDay-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15455NISTSchema-SV-IV-list-gDay-minLength-1 tokoe:valid" result="pass"/><test-case name="15456NISTXML-SV-IV-list-gDay-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15457NISTXML-SV-IV-list-gDay-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15458NISTXML-SV-IV-list-gDay-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15459NISTXML-SV-IV-list-gDay-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15460NISTXML-SV-IV-list-gDay-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15461NISTSchema-SV-IV-list-gDay-minLength-2 tokoe:valid" result="pass"/><test-case name="15462NISTXML-SV-IV-list-gDay-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15463NISTXML-SV-IV-list-gDay-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15464NISTXML-SV-IV-list-gDay-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15465NISTXML-SV-IV-list-gDay-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15466NISTXML-SV-IV-list-gDay-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15467NISTSchema-SV-IV-list-gDay-minLength-3 tokoe:valid" result="pass"/><test-case name="15468NISTXML-SV-IV-list-gDay-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15469NISTXML-SV-IV-list-gDay-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15470NISTXML-SV-IV-list-gDay-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15471NISTXML-SV-IV-list-gDay-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15472NISTXML-SV-IV-list-gDay-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15473NISTSchema-SV-IV-list-gDay-minLength-4 tokoe:valid" result="pass"/><test-case name="15474NISTXML-SV-IV-list-gDay-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15475NISTXML-SV-IV-list-gDay-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15476NISTXML-SV-IV-list-gDay-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15477NISTXML-SV-IV-list-gDay-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15478NISTXML-SV-IV-list-gDay-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15479NISTSchema-SV-IV-list-gDay-minLength-5 tokoe:valid" result="pass"/><test-case name="15480NISTXML-SV-IV-list-gDay-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15481NISTXML-SV-IV-list-gDay-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15482NISTXML-SV-IV-list-gDay-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15483NISTXML-SV-IV-list-gDay-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15484NISTXML-SV-IV-list-gDay-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15485NISTSchema-SV-IV-list-gDay-length-1 tokoe:valid" result="pass"/><test-case name="15486NISTXML-SV-IV-list-gDay-length-1-1 tokoe:valid" result="pass"/><test-case name="15487NISTXML-SV-IV-list-gDay-length-1-2 tokoe:valid" result="pass"/><test-case name="15488NISTXML-SV-IV-list-gDay-length-1-3 tokoe:valid" result="pass"/><test-case name="15489NISTXML-SV-IV-list-gDay-length-1-4 tokoe:valid" result="pass"/><test-case name="15490NISTXML-SV-IV-list-gDay-length-1-5 tokoe:valid" result="pass"/><test-case name="15491NISTSchema-SV-IV-list-gDay-length-2 tokoe:valid" result="pass"/><test-case name="15492NISTXML-SV-IV-list-gDay-length-2-1 tokoe:valid" result="pass"/><test-case name="15493NISTXML-SV-IV-list-gDay-length-2-2 tokoe:valid" result="pass"/><test-case name="15494NISTXML-SV-IV-list-gDay-length-2-3 tokoe:valid" result="pass"/><test-case name="15495NISTXML-SV-IV-list-gDay-length-2-4 tokoe:valid" result="pass"/><test-case name="15496NISTXML-SV-IV-list-gDay-length-2-5 tokoe:valid" result="pass"/><test-case name="15497NISTSchema-SV-IV-list-gDay-length-3 tokoe:valid" result="pass"/><test-case name="15498NISTXML-SV-IV-list-gDay-length-3-1 tokoe:valid" result="pass"/><test-case name="15499NISTXML-SV-IV-list-gDay-length-3-2 tokoe:valid" result="pass"/><test-case name="15500NISTXML-SV-IV-list-gDay-length-3-3 tokoe:valid" result="pass"/><test-case name="15501NISTXML-SV-IV-list-gDay-length-3-4 tokoe:valid" result="pass"/><test-case name="15502NISTXML-SV-IV-list-gDay-length-3-5 tokoe:valid" result="pass"/><test-case name="15503NISTSchema-SV-IV-list-gDay-length-4 tokoe:valid" result="pass"/><test-case name="15504NISTXML-SV-IV-list-gDay-length-4-1 tokoe:valid" result="pass"/><test-case name="15505NISTXML-SV-IV-list-gDay-length-4-2 tokoe:valid" result="pass"/><test-case name="15506NISTXML-SV-IV-list-gDay-length-4-3 tokoe:valid" result="pass"/><test-case name="15507NISTXML-SV-IV-list-gDay-length-4-4 tokoe:valid" result="pass"/><test-case name="15508NISTXML-SV-IV-list-gDay-length-4-5 tokoe:valid" result="pass"/><test-case name="15509NISTSchema-SV-IV-list-gDay-length-5 tokoe:valid" result="pass"/><test-case name="15510NISTXML-SV-IV-list-gDay-length-5-1 tokoe:valid" result="pass"/><test-case name="15511NISTXML-SV-IV-list-gDay-length-5-2 tokoe:valid" result="pass"/><test-case name="15512NISTXML-SV-IV-list-gDay-length-5-3 tokoe:valid" result="pass"/><test-case name="15513NISTXML-SV-IV-list-gDay-length-5-4 tokoe:valid" result="pass"/><test-case name="15514NISTXML-SV-IV-list-gDay-length-5-5 tokoe:valid" result="pass"/><test-case name="15515NISTSchema-SV-IV-list-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="15516NISTXML-SV-IV-list-gDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15517NISTXML-SV-IV-list-gDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15518NISTXML-SV-IV-list-gDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15519NISTXML-SV-IV-list-gDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15520NISTXML-SV-IV-list-gDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15521NISTSchema-SV-IV-list-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="15522NISTXML-SV-IV-list-gDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15523NISTXML-SV-IV-list-gDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15524NISTXML-SV-IV-list-gDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15525NISTXML-SV-IV-list-gDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15526NISTXML-SV-IV-list-gDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15527NISTSchema-SV-IV-list-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="15528NISTXML-SV-IV-list-gDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15529NISTXML-SV-IV-list-gDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15530NISTXML-SV-IV-list-gDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15531NISTXML-SV-IV-list-gDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15532NISTXML-SV-IV-list-gDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15533NISTSchema-SV-IV-list-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="15534NISTXML-SV-IV-list-gDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15535NISTXML-SV-IV-list-gDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15536NISTXML-SV-IV-list-gDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15537NISTXML-SV-IV-list-gDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15538NISTXML-SV-IV-list-gDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15539NISTSchema-SV-IV-list-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="15540NISTXML-SV-IV-list-gDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15541NISTXML-SV-IV-list-gDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15542NISTXML-SV-IV-list-gDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15543NISTXML-SV-IV-list-gDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15544NISTXML-SV-IV-list-gDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15545NISTSchema-SV-IV-list-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="15546NISTXML-SV-IV-list-gDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15547NISTXML-SV-IV-list-gDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15548NISTXML-SV-IV-list-gDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15549NISTXML-SV-IV-list-gDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15550NISTXML-SV-IV-list-gDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15551NISTSchema-SV-IV-list-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="15552NISTXML-SV-IV-list-gDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15553NISTXML-SV-IV-list-gDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15554NISTXML-SV-IV-list-gDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15555NISTXML-SV-IV-list-gDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15556NISTXML-SV-IV-list-gDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15557NISTSchema-SV-IV-list-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="15558NISTXML-SV-IV-list-gDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15559NISTXML-SV-IV-list-gDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15560NISTXML-SV-IV-list-gDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15561NISTXML-SV-IV-list-gDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15562NISTXML-SV-IV-list-gDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15563NISTSchema-SV-IV-list-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="15564NISTXML-SV-IV-list-gDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15565NISTXML-SV-IV-list-gDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15566NISTXML-SV-IV-list-gDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15567NISTXML-SV-IV-list-gDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15568NISTXML-SV-IV-list-gDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15569NISTSchema-SV-IV-list-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="15570NISTXML-SV-IV-list-gDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15571NISTXML-SV-IV-list-gDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15572NISTXML-SV-IV-list-gDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15573NISTXML-SV-IV-list-gDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15574NISTXML-SV-IV-list-gDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15575NISTSchema-SV-IV-list-gDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15576NISTXML-SV-IV-list-gDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15577NISTXML-SV-IV-list-gDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15578NISTXML-SV-IV-list-gDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15579NISTXML-SV-IV-list-gDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15580NISTXML-SV-IV-list-gDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15581NISTSchema-SV-IV-list-gMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="15582NISTXML-SV-IV-list-gMonth-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15583NISTXML-SV-IV-list-gMonth-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15584NISTXML-SV-IV-list-gMonth-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15585NISTXML-SV-IV-list-gMonth-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15586NISTXML-SV-IV-list-gMonth-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15587NISTSchema-SV-IV-list-gMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="15588NISTXML-SV-IV-list-gMonth-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15589NISTXML-SV-IV-list-gMonth-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15590NISTXML-SV-IV-list-gMonth-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15591NISTXML-SV-IV-list-gMonth-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15592NISTXML-SV-IV-list-gMonth-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15593NISTSchema-SV-IV-list-gMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="15594NISTXML-SV-IV-list-gMonth-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15595NISTXML-SV-IV-list-gMonth-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15596NISTXML-SV-IV-list-gMonth-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15597NISTXML-SV-IV-list-gMonth-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15598NISTXML-SV-IV-list-gMonth-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15599NISTSchema-SV-IV-list-gMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="15600NISTXML-SV-IV-list-gMonth-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15601NISTXML-SV-IV-list-gMonth-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15602NISTXML-SV-IV-list-gMonth-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15603NISTXML-SV-IV-list-gMonth-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15604NISTXML-SV-IV-list-gMonth-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15605NISTSchema-SV-IV-list-gMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="15606NISTXML-SV-IV-list-gMonth-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15607NISTXML-SV-IV-list-gMonth-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15608NISTXML-SV-IV-list-gMonth-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15609NISTXML-SV-IV-list-gMonth-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15610NISTXML-SV-IV-list-gMonth-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15611NISTSchema-SV-IV-list-gMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="15612NISTXML-SV-IV-list-gMonth-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15613NISTXML-SV-IV-list-gMonth-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15614NISTXML-SV-IV-list-gMonth-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15615NISTXML-SV-IV-list-gMonth-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15616NISTXML-SV-IV-list-gMonth-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15617NISTSchema-SV-IV-list-gMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="15618NISTXML-SV-IV-list-gMonth-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15619NISTXML-SV-IV-list-gMonth-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15620NISTXML-SV-IV-list-gMonth-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15621NISTXML-SV-IV-list-gMonth-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15622NISTXML-SV-IV-list-gMonth-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15623NISTSchema-SV-IV-list-gMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="15624NISTXML-SV-IV-list-gMonth-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15625NISTXML-SV-IV-list-gMonth-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15626NISTXML-SV-IV-list-gMonth-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15627NISTXML-SV-IV-list-gMonth-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15628NISTXML-SV-IV-list-gMonth-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15629NISTSchema-SV-IV-list-gMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="15630NISTXML-SV-IV-list-gMonth-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15631NISTXML-SV-IV-list-gMonth-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15632NISTXML-SV-IV-list-gMonth-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15633NISTXML-SV-IV-list-gMonth-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15634NISTXML-SV-IV-list-gMonth-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15635NISTSchema-SV-IV-list-gMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="15636NISTXML-SV-IV-list-gMonth-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15637NISTXML-SV-IV-list-gMonth-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15638NISTXML-SV-IV-list-gMonth-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15639NISTXML-SV-IV-list-gMonth-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15640NISTXML-SV-IV-list-gMonth-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15641NISTSchema-SV-IV-list-gMonth-length-1 tokoe:valid" result="pass"/><test-case name="15642NISTXML-SV-IV-list-gMonth-length-1-1 tokoe:valid" result="pass"/><test-case name="15643NISTXML-SV-IV-list-gMonth-length-1-2 tokoe:valid" result="pass"/><test-case name="15644NISTXML-SV-IV-list-gMonth-length-1-3 tokoe:valid" result="pass"/><test-case name="15645NISTXML-SV-IV-list-gMonth-length-1-4 tokoe:valid" result="pass"/><test-case name="15646NISTXML-SV-IV-list-gMonth-length-1-5 tokoe:valid" result="pass"/><test-case name="15647NISTSchema-SV-IV-list-gMonth-length-2 tokoe:valid" result="pass"/><test-case name="15648NISTXML-SV-IV-list-gMonth-length-2-1 tokoe:valid" result="pass"/><test-case name="15649NISTXML-SV-IV-list-gMonth-length-2-2 tokoe:valid" result="pass"/><test-case name="15650NISTXML-SV-IV-list-gMonth-length-2-3 tokoe:valid" result="pass"/><test-case name="15651NISTXML-SV-IV-list-gMonth-length-2-4 tokoe:valid" result="pass"/><test-case name="15652NISTXML-SV-IV-list-gMonth-length-2-5 tokoe:valid" result="pass"/><test-case name="15653NISTSchema-SV-IV-list-gMonth-length-3 tokoe:valid" result="pass"/><test-case name="15654NISTXML-SV-IV-list-gMonth-length-3-1 tokoe:valid" result="pass"/><test-case name="15655NISTXML-SV-IV-list-gMonth-length-3-2 tokoe:valid" result="pass"/><test-case name="15656NISTXML-SV-IV-list-gMonth-length-3-3 tokoe:valid" result="pass"/><test-case name="15657NISTXML-SV-IV-list-gMonth-length-3-4 tokoe:valid" result="pass"/><test-case name="15658NISTXML-SV-IV-list-gMonth-length-3-5 tokoe:valid" result="pass"/><test-case name="15659NISTSchema-SV-IV-list-gMonth-length-4 tokoe:valid" result="pass"/><test-case name="15660NISTXML-SV-IV-list-gMonth-length-4-1 tokoe:valid" result="pass"/><test-case name="15661NISTXML-SV-IV-list-gMonth-length-4-2 tokoe:valid" result="pass"/><test-case name="15662NISTXML-SV-IV-list-gMonth-length-4-3 tokoe:valid" result="pass"/><test-case name="15663NISTXML-SV-IV-list-gMonth-length-4-4 tokoe:valid" result="pass"/><test-case name="15664NISTXML-SV-IV-list-gMonth-length-4-5 tokoe:valid" result="pass"/><test-case name="15665NISTSchema-SV-IV-list-gMonth-length-5 tokoe:valid" result="pass"/><test-case name="15666NISTXML-SV-IV-list-gMonth-length-5-1 tokoe:valid" result="pass"/><test-case name="15667NISTXML-SV-IV-list-gMonth-length-5-2 tokoe:valid" result="pass"/><test-case name="15668NISTXML-SV-IV-list-gMonth-length-5-3 tokoe:valid" result="pass"/><test-case name="15669NISTXML-SV-IV-list-gMonth-length-5-4 tokoe:valid" result="pass"/><test-case name="15670NISTXML-SV-IV-list-gMonth-length-5-5 tokoe:valid" result="pass"/><test-case name="15671NISTSchema-SV-IV-list-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="15672NISTXML-SV-IV-list-gMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15673NISTXML-SV-IV-list-gMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15674NISTXML-SV-IV-list-gMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15675NISTXML-SV-IV-list-gMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15676NISTXML-SV-IV-list-gMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15677NISTSchema-SV-IV-list-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="15678NISTXML-SV-IV-list-gMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15679NISTXML-SV-IV-list-gMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15680NISTXML-SV-IV-list-gMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15681NISTXML-SV-IV-list-gMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15682NISTXML-SV-IV-list-gMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15683NISTSchema-SV-IV-list-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="15684NISTXML-SV-IV-list-gMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15685NISTXML-SV-IV-list-gMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15686NISTXML-SV-IV-list-gMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15687NISTXML-SV-IV-list-gMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15688NISTXML-SV-IV-list-gMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15689NISTSchema-SV-IV-list-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="15690NISTXML-SV-IV-list-gMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15691NISTXML-SV-IV-list-gMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15692NISTXML-SV-IV-list-gMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15693NISTXML-SV-IV-list-gMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15694NISTXML-SV-IV-list-gMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15695NISTSchema-SV-IV-list-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="15696NISTXML-SV-IV-list-gMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15697NISTXML-SV-IV-list-gMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15698NISTXML-SV-IV-list-gMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15699NISTXML-SV-IV-list-gMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15700NISTXML-SV-IV-list-gMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15701NISTSchema-SV-IV-list-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="15702NISTXML-SV-IV-list-gMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15703NISTXML-SV-IV-list-gMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15704NISTXML-SV-IV-list-gMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15705NISTXML-SV-IV-list-gMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15706NISTXML-SV-IV-list-gMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15707NISTSchema-SV-IV-list-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="15708NISTXML-SV-IV-list-gMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15709NISTXML-SV-IV-list-gMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15710NISTXML-SV-IV-list-gMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15711NISTXML-SV-IV-list-gMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15712NISTXML-SV-IV-list-gMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15713NISTSchema-SV-IV-list-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="15714NISTXML-SV-IV-list-gMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15715NISTXML-SV-IV-list-gMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15716NISTXML-SV-IV-list-gMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15717NISTXML-SV-IV-list-gMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15718NISTXML-SV-IV-list-gMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15719NISTSchema-SV-IV-list-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="15720NISTXML-SV-IV-list-gMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15721NISTXML-SV-IV-list-gMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15722NISTXML-SV-IV-list-gMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15723NISTXML-SV-IV-list-gMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15724NISTXML-SV-IV-list-gMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15725NISTSchema-SV-IV-list-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="15726NISTXML-SV-IV-list-gMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15727NISTXML-SV-IV-list-gMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15728NISTXML-SV-IV-list-gMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15729NISTXML-SV-IV-list-gMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15730NISTXML-SV-IV-list-gMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15731NISTSchema-SV-IV-list-gMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15732NISTXML-SV-IV-list-gMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15733NISTXML-SV-IV-list-gMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15734NISTXML-SV-IV-list-gMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15735NISTXML-SV-IV-list-gMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15736NISTXML-SV-IV-list-gMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15737NISTSchema-SV-IV-list-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="15738NISTXML-SV-IV-list-string-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15739NISTXML-SV-IV-list-string-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15740NISTXML-SV-IV-list-string-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15741NISTXML-SV-IV-list-string-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15742NISTXML-SV-IV-list-string-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15743NISTSchema-SV-IV-list-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="15744NISTXML-SV-IV-list-string-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15745NISTXML-SV-IV-list-string-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15746NISTXML-SV-IV-list-string-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15747NISTXML-SV-IV-list-string-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15748NISTXML-SV-IV-list-string-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15749NISTSchema-SV-IV-list-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="15750NISTXML-SV-IV-list-string-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15751NISTXML-SV-IV-list-string-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15752NISTXML-SV-IV-list-string-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15753NISTXML-SV-IV-list-string-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15754NISTXML-SV-IV-list-string-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15755NISTSchema-SV-IV-list-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="15756NISTXML-SV-IV-list-string-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15757NISTXML-SV-IV-list-string-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15758NISTXML-SV-IV-list-string-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15759NISTXML-SV-IV-list-string-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15760NISTXML-SV-IV-list-string-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15761NISTSchema-SV-IV-list-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="15762NISTXML-SV-IV-list-string-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15763NISTXML-SV-IV-list-string-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15764NISTXML-SV-IV-list-string-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15765NISTXML-SV-IV-list-string-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15766NISTXML-SV-IV-list-string-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15767NISTSchema-SV-IV-list-string-minLength-1 tokoe:valid" result="pass"/><test-case name="15768NISTXML-SV-IV-list-string-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15769NISTXML-SV-IV-list-string-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15770NISTXML-SV-IV-list-string-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15771NISTXML-SV-IV-list-string-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15772NISTXML-SV-IV-list-string-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15773NISTSchema-SV-IV-list-string-minLength-2 tokoe:valid" result="pass"/><test-case name="15774NISTXML-SV-IV-list-string-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15775NISTXML-SV-IV-list-string-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15776NISTXML-SV-IV-list-string-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15777NISTXML-SV-IV-list-string-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15778NISTXML-SV-IV-list-string-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15779NISTSchema-SV-IV-list-string-minLength-3 tokoe:valid" result="pass"/><test-case name="15780NISTXML-SV-IV-list-string-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15781NISTXML-SV-IV-list-string-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15782NISTXML-SV-IV-list-string-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15783NISTXML-SV-IV-list-string-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15784NISTXML-SV-IV-list-string-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15785NISTSchema-SV-IV-list-string-minLength-4 tokoe:valid" result="pass"/><test-case name="15786NISTXML-SV-IV-list-string-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15787NISTXML-SV-IV-list-string-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15788NISTXML-SV-IV-list-string-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15789NISTXML-SV-IV-list-string-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15790NISTXML-SV-IV-list-string-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15791NISTSchema-SV-IV-list-string-minLength-5 tokoe:valid" result="pass"/><test-case name="15792NISTXML-SV-IV-list-string-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15793NISTXML-SV-IV-list-string-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15794NISTXML-SV-IV-list-string-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15795NISTXML-SV-IV-list-string-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15796NISTXML-SV-IV-list-string-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15797NISTSchema-SV-IV-list-string-length-1 tokoe:valid" result="pass"/><test-case name="15798NISTXML-SV-IV-list-string-length-1-1 tokoe:valid" result="pass"/><test-case name="15799NISTXML-SV-IV-list-string-length-1-2 tokoe:valid" result="pass"/><test-case name="15800NISTXML-SV-IV-list-string-length-1-3 tokoe:valid" result="pass"/><test-case name="15801NISTXML-SV-IV-list-string-length-1-4 tokoe:valid" result="pass"/><test-case name="15802NISTXML-SV-IV-list-string-length-1-5 tokoe:valid" result="pass"/><test-case name="15803NISTSchema-SV-IV-list-string-length-2 tokoe:valid" result="pass"/><test-case name="15804NISTXML-SV-IV-list-string-length-2-1 tokoe:valid" result="pass"/><test-case name="15805NISTXML-SV-IV-list-string-length-2-2 tokoe:valid" result="pass"/><test-case name="15806NISTXML-SV-IV-list-string-length-2-3 tokoe:valid" result="pass"/><test-case name="15807NISTXML-SV-IV-list-string-length-2-4 tokoe:valid" result="pass"/><test-case name="15808NISTXML-SV-IV-list-string-length-2-5 tokoe:valid" result="pass"/><test-case name="15809NISTSchema-SV-IV-list-string-length-3 tokoe:valid" result="pass"/><test-case name="15810NISTXML-SV-IV-list-string-length-3-1 tokoe:valid" result="pass"/><test-case name="15811NISTXML-SV-IV-list-string-length-3-2 tokoe:valid" result="pass"/><test-case name="15812NISTXML-SV-IV-list-string-length-3-3 tokoe:valid" result="pass"/><test-case name="15813NISTXML-SV-IV-list-string-length-3-4 tokoe:valid" result="pass"/><test-case name="15814NISTXML-SV-IV-list-string-length-3-5 tokoe:valid" result="pass"/><test-case name="15815NISTSchema-SV-IV-list-string-length-4 tokoe:valid" result="pass"/><test-case name="15816NISTXML-SV-IV-list-string-length-4-1 tokoe:valid" result="pass"/><test-case name="15817NISTXML-SV-IV-list-string-length-4-2 tokoe:valid" result="pass"/><test-case name="15818NISTXML-SV-IV-list-string-length-4-3 tokoe:valid" result="pass"/><test-case name="15819NISTXML-SV-IV-list-string-length-4-4 tokoe:valid" result="pass"/><test-case name="15820NISTXML-SV-IV-list-string-length-4-5 tokoe:valid" result="pass"/><test-case name="15821NISTSchema-SV-IV-list-string-length-5 tokoe:valid" result="pass"/><test-case name="15822NISTXML-SV-IV-list-string-length-5-1 tokoe:valid" result="pass"/><test-case name="15823NISTXML-SV-IV-list-string-length-5-2 tokoe:valid" result="pass"/><test-case name="15824NISTXML-SV-IV-list-string-length-5-3 tokoe:valid" result="pass"/><test-case name="15825NISTXML-SV-IV-list-string-length-5-4 tokoe:valid" result="pass"/><test-case name="15826NISTXML-SV-IV-list-string-length-5-5 tokoe:valid" result="pass"/><test-case name="15827NISTSchema-SV-IV-list-string-pattern-1 tokoe:valid" result="pass"/><test-case name="15828NISTXML-SV-IV-list-string-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15829NISTXML-SV-IV-list-string-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15830NISTXML-SV-IV-list-string-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15831NISTXML-SV-IV-list-string-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15832NISTXML-SV-IV-list-string-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15833NISTSchema-SV-IV-list-string-pattern-2 tokoe:valid" result="pass"/><test-case name="15834NISTXML-SV-IV-list-string-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15835NISTXML-SV-IV-list-string-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15836NISTXML-SV-IV-list-string-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15837NISTXML-SV-IV-list-string-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15838NISTXML-SV-IV-list-string-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15839NISTSchema-SV-IV-list-string-pattern-3 tokoe:valid" result="pass"/><test-case name="15840NISTXML-SV-IV-list-string-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15841NISTXML-SV-IV-list-string-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15842NISTXML-SV-IV-list-string-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15843NISTXML-SV-IV-list-string-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15844NISTXML-SV-IV-list-string-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15845NISTSchema-SV-IV-list-string-pattern-4 tokoe:valid" result="pass"/><test-case name="15846NISTXML-SV-IV-list-string-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15847NISTXML-SV-IV-list-string-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15848NISTXML-SV-IV-list-string-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15849NISTXML-SV-IV-list-string-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15850NISTXML-SV-IV-list-string-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15851NISTSchema-SV-IV-list-string-pattern-5 tokoe:valid" result="pass"/><test-case name="15852NISTXML-SV-IV-list-string-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15853NISTXML-SV-IV-list-string-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15854NISTXML-SV-IV-list-string-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15855NISTXML-SV-IV-list-string-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15856NISTXML-SV-IV-list-string-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15857NISTSchema-SV-IV-list-string-enumeration-1 tokoe:valid" result="pass"/><test-case name="15858NISTXML-SV-IV-list-string-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15859NISTXML-SV-IV-list-string-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15860NISTXML-SV-IV-list-string-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15861NISTXML-SV-IV-list-string-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15862NISTXML-SV-IV-list-string-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15863NISTSchema-SV-IV-list-string-enumeration-2 tokoe:valid" result="pass"/><test-case name="15864NISTXML-SV-IV-list-string-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15865NISTXML-SV-IV-list-string-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15866NISTXML-SV-IV-list-string-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15867NISTXML-SV-IV-list-string-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15868NISTXML-SV-IV-list-string-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15869NISTSchema-SV-IV-list-string-enumeration-3 tokoe:valid" result="pass"/><test-case name="15870NISTXML-SV-IV-list-string-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15871NISTXML-SV-IV-list-string-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15872NISTXML-SV-IV-list-string-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15873NISTXML-SV-IV-list-string-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15874NISTXML-SV-IV-list-string-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15875NISTSchema-SV-IV-list-string-enumeration-4 tokoe:valid" result="pass"/><test-case name="15876NISTXML-SV-IV-list-string-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15877NISTXML-SV-IV-list-string-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15878NISTXML-SV-IV-list-string-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15879NISTXML-SV-IV-list-string-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15880NISTXML-SV-IV-list-string-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15881NISTSchema-SV-IV-list-string-enumeration-5 tokoe:valid" result="pass"/><test-case name="15882NISTXML-SV-IV-list-string-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15883NISTXML-SV-IV-list-string-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15884NISTXML-SV-IV-list-string-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15885NISTXML-SV-IV-list-string-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15886NISTXML-SV-IV-list-string-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15887NISTSchema-SV-IV-list-string-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15888NISTXML-SV-IV-list-string-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15889NISTXML-SV-IV-list-string-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15890NISTXML-SV-IV-list-string-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15891NISTXML-SV-IV-list-string-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15892NISTXML-SV-IV-list-string-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15893NISTSchema-SV-IV-list-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="15894NISTXML-SV-IV-list-normalizedString-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15895NISTXML-SV-IV-list-normalizedString-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15896NISTXML-SV-IV-list-normalizedString-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15897NISTXML-SV-IV-list-normalizedString-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15898NISTXML-SV-IV-list-normalizedString-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15899NISTSchema-SV-IV-list-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="15900NISTXML-SV-IV-list-normalizedString-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15901NISTXML-SV-IV-list-normalizedString-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15902NISTXML-SV-IV-list-normalizedString-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15903NISTXML-SV-IV-list-normalizedString-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15904NISTXML-SV-IV-list-normalizedString-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15905NISTSchema-SV-IV-list-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="15906NISTXML-SV-IV-list-normalizedString-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15907NISTXML-SV-IV-list-normalizedString-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15908NISTXML-SV-IV-list-normalizedString-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15909NISTXML-SV-IV-list-normalizedString-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15910NISTXML-SV-IV-list-normalizedString-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15911NISTSchema-SV-IV-list-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="15912NISTXML-SV-IV-list-normalizedString-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15913NISTXML-SV-IV-list-normalizedString-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15914NISTXML-SV-IV-list-normalizedString-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15915NISTXML-SV-IV-list-normalizedString-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15916NISTXML-SV-IV-list-normalizedString-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15917NISTSchema-SV-IV-list-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="15918NISTXML-SV-IV-list-normalizedString-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15919NISTXML-SV-IV-list-normalizedString-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15920NISTXML-SV-IV-list-normalizedString-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15921NISTXML-SV-IV-list-normalizedString-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15922NISTXML-SV-IV-list-normalizedString-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15923NISTSchema-SV-IV-list-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="15924NISTXML-SV-IV-list-normalizedString-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15925NISTXML-SV-IV-list-normalizedString-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15926NISTXML-SV-IV-list-normalizedString-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15927NISTXML-SV-IV-list-normalizedString-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15928NISTXML-SV-IV-list-normalizedString-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15929NISTSchema-SV-IV-list-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="15930NISTXML-SV-IV-list-normalizedString-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15931NISTXML-SV-IV-list-normalizedString-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15932NISTXML-SV-IV-list-normalizedString-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15933NISTXML-SV-IV-list-normalizedString-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15934NISTXML-SV-IV-list-normalizedString-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15935NISTSchema-SV-IV-list-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="15936NISTXML-SV-IV-list-normalizedString-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15937NISTXML-SV-IV-list-normalizedString-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15938NISTXML-SV-IV-list-normalizedString-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15939NISTXML-SV-IV-list-normalizedString-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15940NISTXML-SV-IV-list-normalizedString-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15941NISTSchema-SV-IV-list-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="15942NISTXML-SV-IV-list-normalizedString-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15943NISTXML-SV-IV-list-normalizedString-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15944NISTXML-SV-IV-list-normalizedString-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15945NISTXML-SV-IV-list-normalizedString-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15946NISTXML-SV-IV-list-normalizedString-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15947NISTSchema-SV-IV-list-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="15948NISTXML-SV-IV-list-normalizedString-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15949NISTXML-SV-IV-list-normalizedString-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15950NISTXML-SV-IV-list-normalizedString-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15951NISTXML-SV-IV-list-normalizedString-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15952NISTXML-SV-IV-list-normalizedString-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15953NISTSchema-SV-IV-list-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="15954NISTXML-SV-IV-list-normalizedString-length-1-1 tokoe:valid" result="pass"/><test-case name="15955NISTXML-SV-IV-list-normalizedString-length-1-2 tokoe:valid" result="pass"/><test-case name="15956NISTXML-SV-IV-list-normalizedString-length-1-3 tokoe:valid" result="pass"/><test-case name="15957NISTXML-SV-IV-list-normalizedString-length-1-4 tokoe:valid" result="pass"/><test-case name="15958NISTXML-SV-IV-list-normalizedString-length-1-5 tokoe:valid" result="pass"/><test-case name="15959NISTSchema-SV-IV-list-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="15960NISTXML-SV-IV-list-normalizedString-length-2-1 tokoe:valid" result="pass"/><test-case name="15961NISTXML-SV-IV-list-normalizedString-length-2-2 tokoe:valid" result="pass"/><test-case name="15962NISTXML-SV-IV-list-normalizedString-length-2-3 tokoe:valid" result="pass"/><test-case name="15963NISTXML-SV-IV-list-normalizedString-length-2-4 tokoe:valid" result="pass"/><test-case name="15964NISTXML-SV-IV-list-normalizedString-length-2-5 tokoe:valid" result="pass"/><test-case name="15965NISTSchema-SV-IV-list-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="15966NISTXML-SV-IV-list-normalizedString-length-3-1 tokoe:valid" result="pass"/><test-case name="15967NISTXML-SV-IV-list-normalizedString-length-3-2 tokoe:valid" result="pass"/><test-case name="15968NISTXML-SV-IV-list-normalizedString-length-3-3 tokoe:valid" result="pass"/><test-case name="15969NISTXML-SV-IV-list-normalizedString-length-3-4 tokoe:valid" result="pass"/><test-case name="15970NISTXML-SV-IV-list-normalizedString-length-3-5 tokoe:valid" result="pass"/><test-case name="15971NISTSchema-SV-IV-list-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="15972NISTXML-SV-IV-list-normalizedString-length-4-1 tokoe:valid" result="pass"/><test-case name="15973NISTXML-SV-IV-list-normalizedString-length-4-2 tokoe:valid" result="pass"/><test-case name="15974NISTXML-SV-IV-list-normalizedString-length-4-3 tokoe:valid" result="pass"/><test-case name="15975NISTXML-SV-IV-list-normalizedString-length-4-4 tokoe:valid" result="pass"/><test-case name="15976NISTXML-SV-IV-list-normalizedString-length-4-5 tokoe:valid" result="pass"/><test-case name="15977NISTSchema-SV-IV-list-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="15978NISTXML-SV-IV-list-normalizedString-length-5-1 tokoe:valid" result="pass"/><test-case name="15979NISTXML-SV-IV-list-normalizedString-length-5-2 tokoe:valid" result="pass"/><test-case name="15980NISTXML-SV-IV-list-normalizedString-length-5-3 tokoe:valid" result="pass"/><test-case name="15981NISTXML-SV-IV-list-normalizedString-length-5-4 tokoe:valid" result="pass"/><test-case name="15982NISTXML-SV-IV-list-normalizedString-length-5-5 tokoe:valid" result="pass"/><test-case name="15983NISTSchema-SV-IV-list-normalizedString-pattern-1 tokoe:valid" result="pass"/><test-case name="15984NISTXML-SV-IV-list-normalizedString-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15985NISTXML-SV-IV-list-normalizedString-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15986NISTXML-SV-IV-list-normalizedString-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15987NISTXML-SV-IV-list-normalizedString-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15988NISTXML-SV-IV-list-normalizedString-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15989NISTSchema-SV-IV-list-normalizedString-pattern-2 tokoe:valid" result="pass"/><test-case name="15990NISTXML-SV-IV-list-normalizedString-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15991NISTXML-SV-IV-list-normalizedString-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15992NISTXML-SV-IV-list-normalizedString-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15993NISTXML-SV-IV-list-normalizedString-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15994NISTXML-SV-IV-list-normalizedString-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15995NISTSchema-SV-IV-list-normalizedString-pattern-3 tokoe:valid" result="pass"/><test-case name="15996NISTXML-SV-IV-list-normalizedString-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15997NISTXML-SV-IV-list-normalizedString-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15998NISTXML-SV-IV-list-normalizedString-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15999NISTXML-SV-IV-list-normalizedString-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16000NISTXML-SV-IV-list-normalizedString-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16001NISTSchema-SV-IV-list-normalizedString-pattern-4 tokoe:valid" result="pass"/><test-case name="16002NISTXML-SV-IV-list-normalizedString-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16003NISTXML-SV-IV-list-normalizedString-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16004NISTXML-SV-IV-list-normalizedString-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16005NISTXML-SV-IV-list-normalizedString-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16006NISTXML-SV-IV-list-normalizedString-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16007NISTSchema-SV-IV-list-normalizedString-pattern-5 tokoe:valid" result="pass"/><test-case name="16008NISTXML-SV-IV-list-normalizedString-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16009NISTXML-SV-IV-list-normalizedString-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16010NISTXML-SV-IV-list-normalizedString-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16011NISTXML-SV-IV-list-normalizedString-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16012NISTXML-SV-IV-list-normalizedString-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16013NISTSchema-SV-IV-list-normalizedString-enumeration-1 tokoe:valid" result="pass"/><test-case name="16014NISTXML-SV-IV-list-normalizedString-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16015NISTXML-SV-IV-list-normalizedString-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16016NISTXML-SV-IV-list-normalizedString-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16017NISTXML-SV-IV-list-normalizedString-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16018NISTXML-SV-IV-list-normalizedString-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16019NISTSchema-SV-IV-list-normalizedString-enumeration-2 tokoe:valid" result="pass"/><test-case name="16020NISTXML-SV-IV-list-normalizedString-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16021NISTXML-SV-IV-list-normalizedString-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16022NISTXML-SV-IV-list-normalizedString-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16023NISTXML-SV-IV-list-normalizedString-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16024NISTXML-SV-IV-list-normalizedString-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16025NISTSchema-SV-IV-list-normalizedString-enumeration-3 tokoe:valid" result="pass"/><test-case name="16026NISTXML-SV-IV-list-normalizedString-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16027NISTXML-SV-IV-list-normalizedString-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16028NISTXML-SV-IV-list-normalizedString-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16029NISTXML-SV-IV-list-normalizedString-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16030NISTXML-SV-IV-list-normalizedString-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16031NISTSchema-SV-IV-list-normalizedString-enumeration-4 tokoe:valid" result="pass"/><test-case name="16032NISTXML-SV-IV-list-normalizedString-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16033NISTXML-SV-IV-list-normalizedString-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16034NISTXML-SV-IV-list-normalizedString-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16035NISTXML-SV-IV-list-normalizedString-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16036NISTXML-SV-IV-list-normalizedString-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16037NISTSchema-SV-IV-list-normalizedString-enumeration-5 tokoe:valid" result="pass"/><test-case name="16038NISTXML-SV-IV-list-normalizedString-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16039NISTXML-SV-IV-list-normalizedString-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16040NISTXML-SV-IV-list-normalizedString-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16041NISTXML-SV-IV-list-normalizedString-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16042NISTXML-SV-IV-list-normalizedString-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16043NISTSchema-SV-IV-list-normalizedString-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16044NISTXML-SV-IV-list-normalizedString-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16045NISTXML-SV-IV-list-normalizedString-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16046NISTXML-SV-IV-list-normalizedString-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16047NISTXML-SV-IV-list-normalizedString-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16048NISTXML-SV-IV-list-normalizedString-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16049NISTSchema-SV-IV-list-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="16050NISTXML-SV-IV-list-token-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16051NISTXML-SV-IV-list-token-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16052NISTXML-SV-IV-list-token-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16053NISTXML-SV-IV-list-token-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16054NISTXML-SV-IV-list-token-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16055NISTSchema-SV-IV-list-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="16056NISTXML-SV-IV-list-token-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16057NISTXML-SV-IV-list-token-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16058NISTXML-SV-IV-list-token-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16059NISTXML-SV-IV-list-token-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16060NISTXML-SV-IV-list-token-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16061NISTSchema-SV-IV-list-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="16062NISTXML-SV-IV-list-token-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16063NISTXML-SV-IV-list-token-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16064NISTXML-SV-IV-list-token-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16065NISTXML-SV-IV-list-token-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16066NISTXML-SV-IV-list-token-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16067NISTSchema-SV-IV-list-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="16068NISTXML-SV-IV-list-token-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16069NISTXML-SV-IV-list-token-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16070NISTXML-SV-IV-list-token-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16071NISTXML-SV-IV-list-token-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16072NISTXML-SV-IV-list-token-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16073NISTSchema-SV-IV-list-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="16074NISTXML-SV-IV-list-token-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16075NISTXML-SV-IV-list-token-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16076NISTXML-SV-IV-list-token-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16077NISTXML-SV-IV-list-token-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16078NISTXML-SV-IV-list-token-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16079NISTSchema-SV-IV-list-token-minLength-1 tokoe:valid" result="pass"/><test-case name="16080NISTXML-SV-IV-list-token-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16081NISTXML-SV-IV-list-token-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16082NISTXML-SV-IV-list-token-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16083NISTXML-SV-IV-list-token-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16084NISTXML-SV-IV-list-token-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16085NISTSchema-SV-IV-list-token-minLength-2 tokoe:valid" result="pass"/><test-case name="16086NISTXML-SV-IV-list-token-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16087NISTXML-SV-IV-list-token-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16088NISTXML-SV-IV-list-token-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16089NISTXML-SV-IV-list-token-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16090NISTXML-SV-IV-list-token-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16091NISTSchema-SV-IV-list-token-minLength-3 tokoe:valid" result="pass"/><test-case name="16092NISTXML-SV-IV-list-token-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16093NISTXML-SV-IV-list-token-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16094NISTXML-SV-IV-list-token-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16095NISTXML-SV-IV-list-token-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16096NISTXML-SV-IV-list-token-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16097NISTSchema-SV-IV-list-token-minLength-4 tokoe:valid" result="pass"/><test-case name="16098NISTXML-SV-IV-list-token-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16099NISTXML-SV-IV-list-token-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16100NISTXML-SV-IV-list-token-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16101NISTXML-SV-IV-list-token-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16102NISTXML-SV-IV-list-token-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16103NISTSchema-SV-IV-list-token-minLength-5 tokoe:valid" result="pass"/><test-case name="16104NISTXML-SV-IV-list-token-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16105NISTXML-SV-IV-list-token-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16106NISTXML-SV-IV-list-token-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16107NISTXML-SV-IV-list-token-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16108NISTXML-SV-IV-list-token-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16109NISTSchema-SV-IV-list-token-length-1 tokoe:valid" result="pass"/><test-case name="16110NISTXML-SV-IV-list-token-length-1-1 tokoe:valid" result="pass"/><test-case name="16111NISTXML-SV-IV-list-token-length-1-2 tokoe:valid" result="pass"/><test-case name="16112NISTXML-SV-IV-list-token-length-1-3 tokoe:valid" result="pass"/><test-case name="16113NISTXML-SV-IV-list-token-length-1-4 tokoe:valid" result="pass"/><test-case name="16114NISTXML-SV-IV-list-token-length-1-5 tokoe:valid" result="pass"/><test-case name="16115NISTSchema-SV-IV-list-token-length-2 tokoe:valid" result="pass"/><test-case name="16116NISTXML-SV-IV-list-token-length-2-1 tokoe:valid" result="pass"/><test-case name="16117NISTXML-SV-IV-list-token-length-2-2 tokoe:valid" result="pass"/><test-case name="16118NISTXML-SV-IV-list-token-length-2-3 tokoe:valid" result="pass"/><test-case name="16119NISTXML-SV-IV-list-token-length-2-4 tokoe:valid" result="pass"/><test-case name="16120NISTXML-SV-IV-list-token-length-2-5 tokoe:valid" result="pass"/><test-case name="16121NISTSchema-SV-IV-list-token-length-3 tokoe:valid" result="pass"/><test-case name="16122NISTXML-SV-IV-list-token-length-3-1 tokoe:valid" result="pass"/><test-case name="16123NISTXML-SV-IV-list-token-length-3-2 tokoe:valid" result="pass"/><test-case name="16124NISTXML-SV-IV-list-token-length-3-3 tokoe:valid" result="pass"/><test-case name="16125NISTXML-SV-IV-list-token-length-3-4 tokoe:valid" result="pass"/><test-case name="16126NISTXML-SV-IV-list-token-length-3-5 tokoe:valid" result="pass"/><test-case name="16127NISTSchema-SV-IV-list-token-length-4 tokoe:valid" result="pass"/><test-case name="16128NISTXML-SV-IV-list-token-length-4-1 tokoe:valid" result="pass"/><test-case name="16129NISTXML-SV-IV-list-token-length-4-2 tokoe:valid" result="pass"/><test-case name="16130NISTXML-SV-IV-list-token-length-4-3 tokoe:valid" result="pass"/><test-case name="16131NISTXML-SV-IV-list-token-length-4-4 tokoe:valid" result="pass"/><test-case name="16132NISTXML-SV-IV-list-token-length-4-5 tokoe:valid" result="pass"/><test-case name="16133NISTSchema-SV-IV-list-token-length-5 tokoe:valid" result="pass"/><test-case name="16134NISTXML-SV-IV-list-token-length-5-1 tokoe:valid" result="pass"/><test-case name="16135NISTXML-SV-IV-list-token-length-5-2 tokoe:valid" result="pass"/><test-case name="16136NISTXML-SV-IV-list-token-length-5-3 tokoe:valid" result="pass"/><test-case name="16137NISTXML-SV-IV-list-token-length-5-4 tokoe:valid" result="pass"/><test-case name="16138NISTXML-SV-IV-list-token-length-5-5 tokoe:valid" result="pass"/><test-case name="16139NISTSchema-SV-IV-list-token-pattern-1 tokoe:valid" result="pass"/><test-case name="16140NISTXML-SV-IV-list-token-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16141NISTXML-SV-IV-list-token-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16142NISTXML-SV-IV-list-token-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16143NISTXML-SV-IV-list-token-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16144NISTXML-SV-IV-list-token-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16145NISTSchema-SV-IV-list-token-pattern-2 tokoe:valid" result="pass"/><test-case name="16146NISTXML-SV-IV-list-token-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16147NISTXML-SV-IV-list-token-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16148NISTXML-SV-IV-list-token-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16149NISTXML-SV-IV-list-token-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16150NISTXML-SV-IV-list-token-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16151NISTSchema-SV-IV-list-token-pattern-3 tokoe:valid" result="pass"/><test-case name="16152NISTXML-SV-IV-list-token-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16153NISTXML-SV-IV-list-token-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16154NISTXML-SV-IV-list-token-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16155NISTXML-SV-IV-list-token-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16156NISTXML-SV-IV-list-token-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16157NISTSchema-SV-IV-list-token-pattern-4 tokoe:valid" result="pass"/><test-case name="16158NISTXML-SV-IV-list-token-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16159NISTXML-SV-IV-list-token-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16160NISTXML-SV-IV-list-token-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16161NISTXML-SV-IV-list-token-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16162NISTXML-SV-IV-list-token-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16163NISTSchema-SV-IV-list-token-pattern-5 tokoe:valid" result="pass"/><test-case name="16164NISTXML-SV-IV-list-token-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16165NISTXML-SV-IV-list-token-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16166NISTXML-SV-IV-list-token-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16167NISTXML-SV-IV-list-token-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16168NISTXML-SV-IV-list-token-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16169NISTSchema-SV-IV-list-token-enumeration-1 tokoe:valid" result="pass"/><test-case name="16170NISTXML-SV-IV-list-token-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16171NISTXML-SV-IV-list-token-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16172NISTXML-SV-IV-list-token-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16173NISTXML-SV-IV-list-token-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16174NISTXML-SV-IV-list-token-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16175NISTSchema-SV-IV-list-token-enumeration-2 tokoe:valid" result="pass"/><test-case name="16176NISTXML-SV-IV-list-token-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16177NISTXML-SV-IV-list-token-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16178NISTXML-SV-IV-list-token-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16179NISTXML-SV-IV-list-token-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16180NISTXML-SV-IV-list-token-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16181NISTSchema-SV-IV-list-token-enumeration-3 tokoe:valid" result="pass"/><test-case name="16182NISTXML-SV-IV-list-token-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16183NISTXML-SV-IV-list-token-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16184NISTXML-SV-IV-list-token-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16185NISTXML-SV-IV-list-token-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16186NISTXML-SV-IV-list-token-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16187NISTSchema-SV-IV-list-token-enumeration-4 tokoe:valid" result="pass"/><test-case name="16188NISTXML-SV-IV-list-token-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16189NISTXML-SV-IV-list-token-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16190NISTXML-SV-IV-list-token-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16191NISTXML-SV-IV-list-token-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16192NISTXML-SV-IV-list-token-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16193NISTSchema-SV-IV-list-token-enumeration-5 tokoe:valid" result="pass"/><test-case name="16194NISTXML-SV-IV-list-token-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16195NISTXML-SV-IV-list-token-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16196NISTXML-SV-IV-list-token-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16197NISTXML-SV-IV-list-token-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16198NISTXML-SV-IV-list-token-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16199NISTSchema-SV-IV-list-token-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16200NISTXML-SV-IV-list-token-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16201NISTXML-SV-IV-list-token-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16202NISTXML-SV-IV-list-token-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16203NISTXML-SV-IV-list-token-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16204NISTXML-SV-IV-list-token-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16205NISTSchema-SV-IV-list-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="16206NISTXML-SV-IV-list-Name-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16207NISTXML-SV-IV-list-Name-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16208NISTXML-SV-IV-list-Name-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16209NISTXML-SV-IV-list-Name-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16210NISTXML-SV-IV-list-Name-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16211NISTSchema-SV-IV-list-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="16212NISTXML-SV-IV-list-Name-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16213NISTXML-SV-IV-list-Name-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16214NISTXML-SV-IV-list-Name-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16215NISTXML-SV-IV-list-Name-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16216NISTXML-SV-IV-list-Name-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16217NISTSchema-SV-IV-list-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="16218NISTXML-SV-IV-list-Name-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16219NISTXML-SV-IV-list-Name-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16220NISTXML-SV-IV-list-Name-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16221NISTXML-SV-IV-list-Name-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16222NISTXML-SV-IV-list-Name-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16223NISTSchema-SV-IV-list-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="16224NISTXML-SV-IV-list-Name-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16225NISTXML-SV-IV-list-Name-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16226NISTXML-SV-IV-list-Name-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16227NISTXML-SV-IV-list-Name-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16228NISTXML-SV-IV-list-Name-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16229NISTSchema-SV-IV-list-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="16230NISTXML-SV-IV-list-Name-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16231NISTXML-SV-IV-list-Name-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16232NISTXML-SV-IV-list-Name-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16233NISTXML-SV-IV-list-Name-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16234NISTXML-SV-IV-list-Name-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16235NISTSchema-SV-IV-list-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="16236NISTXML-SV-IV-list-Name-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16237NISTXML-SV-IV-list-Name-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16238NISTXML-SV-IV-list-Name-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16239NISTXML-SV-IV-list-Name-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16240NISTXML-SV-IV-list-Name-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16241NISTSchema-SV-IV-list-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="16242NISTXML-SV-IV-list-Name-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16243NISTXML-SV-IV-list-Name-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16244NISTXML-SV-IV-list-Name-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16245NISTXML-SV-IV-list-Name-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16246NISTXML-SV-IV-list-Name-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16247NISTSchema-SV-IV-list-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="16248NISTXML-SV-IV-list-Name-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16249NISTXML-SV-IV-list-Name-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16250NISTXML-SV-IV-list-Name-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16251NISTXML-SV-IV-list-Name-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16252NISTXML-SV-IV-list-Name-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16253NISTSchema-SV-IV-list-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="16254NISTXML-SV-IV-list-Name-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16255NISTXML-SV-IV-list-Name-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16256NISTXML-SV-IV-list-Name-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16257NISTXML-SV-IV-list-Name-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16258NISTXML-SV-IV-list-Name-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16259NISTSchema-SV-IV-list-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="16260NISTXML-SV-IV-list-Name-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16261NISTXML-SV-IV-list-Name-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16262NISTXML-SV-IV-list-Name-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16263NISTXML-SV-IV-list-Name-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16264NISTXML-SV-IV-list-Name-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16265NISTSchema-SV-IV-list-Name-length-1 tokoe:valid" result="pass"/><test-case name="16266NISTXML-SV-IV-list-Name-length-1-1 tokoe:valid" result="pass"/><test-case name="16267NISTXML-SV-IV-list-Name-length-1-2 tokoe:valid" result="pass"/><test-case name="16268NISTXML-SV-IV-list-Name-length-1-3 tokoe:valid" result="pass"/><test-case name="16269NISTXML-SV-IV-list-Name-length-1-4 tokoe:valid" result="pass"/><test-case name="16270NISTXML-SV-IV-list-Name-length-1-5 tokoe:valid" result="pass"/><test-case name="16271NISTSchema-SV-IV-list-Name-length-2 tokoe:valid" result="pass"/><test-case name="16272NISTXML-SV-IV-list-Name-length-2-1 tokoe:valid" result="pass"/><test-case name="16273NISTXML-SV-IV-list-Name-length-2-2 tokoe:valid" result="pass"/><test-case name="16274NISTXML-SV-IV-list-Name-length-2-3 tokoe:valid" result="pass"/><test-case name="16275NISTXML-SV-IV-list-Name-length-2-4 tokoe:valid" result="pass"/><test-case name="16276NISTXML-SV-IV-list-Name-length-2-5 tokoe:valid" result="pass"/><test-case name="16277NISTSchema-SV-IV-list-Name-length-3 tokoe:valid" result="pass"/><test-case name="16278NISTXML-SV-IV-list-Name-length-3-1 tokoe:valid" result="pass"/><test-case name="16279NISTXML-SV-IV-list-Name-length-3-2 tokoe:valid" result="pass"/><test-case name="16280NISTXML-SV-IV-list-Name-length-3-3 tokoe:valid" result="pass"/><test-case name="16281NISTXML-SV-IV-list-Name-length-3-4 tokoe:valid" result="pass"/><test-case name="16282NISTXML-SV-IV-list-Name-length-3-5 tokoe:valid" result="pass"/><test-case name="16283NISTSchema-SV-IV-list-Name-length-4 tokoe:valid" result="pass"/><test-case name="16284NISTXML-SV-IV-list-Name-length-4-1 tokoe:valid" result="pass"/><test-case name="16285NISTXML-SV-IV-list-Name-length-4-2 tokoe:valid" result="pass"/><test-case name="16286NISTXML-SV-IV-list-Name-length-4-3 tokoe:valid" result="pass"/><test-case name="16287NISTXML-SV-IV-list-Name-length-4-4 tokoe:valid" result="pass"/><test-case name="16288NISTXML-SV-IV-list-Name-length-4-5 tokoe:valid" result="pass"/><test-case name="16289NISTSchema-SV-IV-list-Name-length-5 tokoe:valid" result="pass"/><test-case name="16290NISTXML-SV-IV-list-Name-length-5-1 tokoe:valid" result="pass"/><test-case name="16291NISTXML-SV-IV-list-Name-length-5-2 tokoe:valid" result="pass"/><test-case name="16292NISTXML-SV-IV-list-Name-length-5-3 tokoe:valid" result="pass"/><test-case name="16293NISTXML-SV-IV-list-Name-length-5-4 tokoe:valid" result="pass"/><test-case name="16294NISTXML-SV-IV-list-Name-length-5-5 tokoe:valid" result="pass"/><test-case name="16295NISTSchema-SV-IV-list-Name-pattern-1 tokoe:valid" result="pass"/><test-case name="16296NISTXML-SV-IV-list-Name-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16297NISTXML-SV-IV-list-Name-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16298NISTXML-SV-IV-list-Name-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16299NISTXML-SV-IV-list-Name-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16300NISTXML-SV-IV-list-Name-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16301NISTSchema-SV-IV-list-Name-pattern-2 tokoe:valid" result="pass"/><test-case name="16302NISTXML-SV-IV-list-Name-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16303NISTXML-SV-IV-list-Name-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16304NISTXML-SV-IV-list-Name-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16305NISTXML-SV-IV-list-Name-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16306NISTXML-SV-IV-list-Name-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16307NISTSchema-SV-IV-list-Name-pattern-3 tokoe:valid" result="pass"/><test-case name="16308NISTXML-SV-IV-list-Name-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16309NISTXML-SV-IV-list-Name-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16310NISTXML-SV-IV-list-Name-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16311NISTXML-SV-IV-list-Name-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16312NISTXML-SV-IV-list-Name-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16313NISTSchema-SV-IV-list-Name-pattern-4 tokoe:valid" result="pass"/><test-case name="16314NISTXML-SV-IV-list-Name-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16315NISTXML-SV-IV-list-Name-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16316NISTXML-SV-IV-list-Name-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16317NISTXML-SV-IV-list-Name-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16318NISTXML-SV-IV-list-Name-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16319NISTSchema-SV-IV-list-Name-pattern-5 tokoe:valid" result="pass"/><test-case name="16320NISTXML-SV-IV-list-Name-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16321NISTXML-SV-IV-list-Name-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16322NISTXML-SV-IV-list-Name-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16323NISTXML-SV-IV-list-Name-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16324NISTXML-SV-IV-list-Name-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16325NISTSchema-SV-IV-list-Name-enumeration-1 tokoe:valid" result="pass"/><test-case name="16326NISTXML-SV-IV-list-Name-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16327NISTXML-SV-IV-list-Name-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16328NISTXML-SV-IV-list-Name-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16329NISTXML-SV-IV-list-Name-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16330NISTXML-SV-IV-list-Name-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16331NISTSchema-SV-IV-list-Name-enumeration-2 tokoe:valid" result="pass"/><test-case name="16332NISTXML-SV-IV-list-Name-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16333NISTXML-SV-IV-list-Name-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16334NISTXML-SV-IV-list-Name-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16335NISTXML-SV-IV-list-Name-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16336NISTXML-SV-IV-list-Name-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16337NISTSchema-SV-IV-list-Name-enumeration-3 tokoe:valid" result="pass"/><test-case name="16338NISTXML-SV-IV-list-Name-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16339NISTXML-SV-IV-list-Name-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16340NISTXML-SV-IV-list-Name-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16341NISTXML-SV-IV-list-Name-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16342NISTXML-SV-IV-list-Name-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16343NISTSchema-SV-IV-list-Name-enumeration-4 tokoe:valid" result="pass"/><test-case name="16344NISTXML-SV-IV-list-Name-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16345NISTXML-SV-IV-list-Name-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16346NISTXML-SV-IV-list-Name-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16347NISTXML-SV-IV-list-Name-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16348NISTXML-SV-IV-list-Name-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16349NISTSchema-SV-IV-list-Name-enumeration-5 tokoe:valid" result="pass"/><test-case name="16350NISTXML-SV-IV-list-Name-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16351NISTXML-SV-IV-list-Name-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16352NISTXML-SV-IV-list-Name-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16353NISTXML-SV-IV-list-Name-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16354NISTXML-SV-IV-list-Name-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16355NISTSchema-SV-IV-list-Name-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16356NISTXML-SV-IV-list-Name-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16357NISTXML-SV-IV-list-Name-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16358NISTXML-SV-IV-list-Name-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16359NISTXML-SV-IV-list-Name-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16360NISTXML-SV-IV-list-Name-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16361NISTSchema-SV-IV-list-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="16362NISTXML-SV-IV-list-NMTOKEN-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16363NISTXML-SV-IV-list-NMTOKEN-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16364NISTXML-SV-IV-list-NMTOKEN-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16365NISTXML-SV-IV-list-NMTOKEN-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16366NISTXML-SV-IV-list-NMTOKEN-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16367NISTSchema-SV-IV-list-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="16368NISTXML-SV-IV-list-NMTOKEN-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16369NISTXML-SV-IV-list-NMTOKEN-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16370NISTXML-SV-IV-list-NMTOKEN-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16371NISTXML-SV-IV-list-NMTOKEN-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16372NISTXML-SV-IV-list-NMTOKEN-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16373NISTSchema-SV-IV-list-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="16374NISTXML-SV-IV-list-NMTOKEN-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16375NISTXML-SV-IV-list-NMTOKEN-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16376NISTXML-SV-IV-list-NMTOKEN-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16377NISTXML-SV-IV-list-NMTOKEN-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16378NISTXML-SV-IV-list-NMTOKEN-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16379NISTSchema-SV-IV-list-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="16380NISTXML-SV-IV-list-NMTOKEN-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16381NISTXML-SV-IV-list-NMTOKEN-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16382NISTXML-SV-IV-list-NMTOKEN-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16383NISTXML-SV-IV-list-NMTOKEN-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16384NISTXML-SV-IV-list-NMTOKEN-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16385NISTSchema-SV-IV-list-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="16386NISTXML-SV-IV-list-NMTOKEN-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16387NISTXML-SV-IV-list-NMTOKEN-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16388NISTXML-SV-IV-list-NMTOKEN-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16389NISTXML-SV-IV-list-NMTOKEN-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16390NISTXML-SV-IV-list-NMTOKEN-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16391NISTSchema-SV-IV-list-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="16392NISTXML-SV-IV-list-NMTOKEN-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16393NISTXML-SV-IV-list-NMTOKEN-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16394NISTXML-SV-IV-list-NMTOKEN-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16395NISTXML-SV-IV-list-NMTOKEN-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16396NISTXML-SV-IV-list-NMTOKEN-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16397NISTSchema-SV-IV-list-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="16398NISTXML-SV-IV-list-NMTOKEN-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16399NISTXML-SV-IV-list-NMTOKEN-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16400NISTXML-SV-IV-list-NMTOKEN-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16401NISTXML-SV-IV-list-NMTOKEN-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16402NISTXML-SV-IV-list-NMTOKEN-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16403NISTSchema-SV-IV-list-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="16404NISTXML-SV-IV-list-NMTOKEN-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16405NISTXML-SV-IV-list-NMTOKEN-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16406NISTXML-SV-IV-list-NMTOKEN-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16407NISTXML-SV-IV-list-NMTOKEN-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16408NISTXML-SV-IV-list-NMTOKEN-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16409NISTSchema-SV-IV-list-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="16410NISTXML-SV-IV-list-NMTOKEN-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16411NISTXML-SV-IV-list-NMTOKEN-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16412NISTXML-SV-IV-list-NMTOKEN-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16413NISTXML-SV-IV-list-NMTOKEN-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16414NISTXML-SV-IV-list-NMTOKEN-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16415NISTSchema-SV-IV-list-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="16416NISTXML-SV-IV-list-NMTOKEN-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16417NISTXML-SV-IV-list-NMTOKEN-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16418NISTXML-SV-IV-list-NMTOKEN-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16419NISTXML-SV-IV-list-NMTOKEN-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16420NISTXML-SV-IV-list-NMTOKEN-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16421NISTSchema-SV-IV-list-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="16422NISTXML-SV-IV-list-NMTOKEN-length-1-1 tokoe:valid" result="pass"/><test-case name="16423NISTXML-SV-IV-list-NMTOKEN-length-1-2 tokoe:valid" result="pass"/><test-case name="16424NISTXML-SV-IV-list-NMTOKEN-length-1-3 tokoe:valid" result="pass"/><test-case name="16425NISTXML-SV-IV-list-NMTOKEN-length-1-4 tokoe:valid" result="pass"/><test-case name="16426NISTXML-SV-IV-list-NMTOKEN-length-1-5 tokoe:valid" result="pass"/><test-case name="16427NISTSchema-SV-IV-list-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="16428NISTXML-SV-IV-list-NMTOKEN-length-2-1 tokoe:valid" result="pass"/><test-case name="16429NISTXML-SV-IV-list-NMTOKEN-length-2-2 tokoe:valid" result="pass"/><test-case name="16430NISTXML-SV-IV-list-NMTOKEN-length-2-3 tokoe:valid" result="pass"/><test-case name="16431NISTXML-SV-IV-list-NMTOKEN-length-2-4 tokoe:valid" result="pass"/><test-case name="16432NISTXML-SV-IV-list-NMTOKEN-length-2-5 tokoe:valid" result="pass"/><test-case name="16433NISTSchema-SV-IV-list-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="16434NISTXML-SV-IV-list-NMTOKEN-length-3-1 tokoe:valid" result="pass"/><test-case name="16435NISTXML-SV-IV-list-NMTOKEN-length-3-2 tokoe:valid" result="pass"/><test-case name="16436NISTXML-SV-IV-list-NMTOKEN-length-3-3 tokoe:valid" result="pass"/><test-case name="16437NISTXML-SV-IV-list-NMTOKEN-length-3-4 tokoe:valid" result="pass"/><test-case name="16438NISTXML-SV-IV-list-NMTOKEN-length-3-5 tokoe:valid" result="pass"/><test-case name="16439NISTSchema-SV-IV-list-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="16440NISTXML-SV-IV-list-NMTOKEN-length-4-1 tokoe:valid" result="pass"/><test-case name="16441NISTXML-SV-IV-list-NMTOKEN-length-4-2 tokoe:valid" result="pass"/><test-case name="16442NISTXML-SV-IV-list-NMTOKEN-length-4-3 tokoe:valid" result="pass"/><test-case name="16443NISTXML-SV-IV-list-NMTOKEN-length-4-4 tokoe:valid" result="pass"/><test-case name="16444NISTXML-SV-IV-list-NMTOKEN-length-4-5 tokoe:valid" result="pass"/><test-case name="16445NISTSchema-SV-IV-list-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="16446NISTXML-SV-IV-list-NMTOKEN-length-5-1 tokoe:valid" result="pass"/><test-case name="16447NISTXML-SV-IV-list-NMTOKEN-length-5-2 tokoe:valid" result="pass"/><test-case name="16448NISTXML-SV-IV-list-NMTOKEN-length-5-3 tokoe:valid" result="pass"/><test-case name="16449NISTXML-SV-IV-list-NMTOKEN-length-5-4 tokoe:valid" result="pass"/><test-case name="16450NISTXML-SV-IV-list-NMTOKEN-length-5-5 tokoe:valid" result="pass"/><test-case name="16451NISTSchema-SV-IV-list-NMTOKEN-pattern-1 tokoe:valid" result="pass"/><test-case name="16452NISTXML-SV-IV-list-NMTOKEN-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16453NISTXML-SV-IV-list-NMTOKEN-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16454NISTXML-SV-IV-list-NMTOKEN-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16455NISTXML-SV-IV-list-NMTOKEN-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16456NISTXML-SV-IV-list-NMTOKEN-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16457NISTSchema-SV-IV-list-NMTOKEN-pattern-2 tokoe:valid" result="pass"/><test-case name="16458NISTXML-SV-IV-list-NMTOKEN-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16459NISTXML-SV-IV-list-NMTOKEN-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16460NISTXML-SV-IV-list-NMTOKEN-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16461NISTXML-SV-IV-list-NMTOKEN-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16462NISTXML-SV-IV-list-NMTOKEN-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16463NISTSchema-SV-IV-list-NMTOKEN-pattern-3 tokoe:valid" result="pass"/><test-case name="16464NISTXML-SV-IV-list-NMTOKEN-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16465NISTXML-SV-IV-list-NMTOKEN-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16466NISTXML-SV-IV-list-NMTOKEN-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16467NISTXML-SV-IV-list-NMTOKEN-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16468NISTXML-SV-IV-list-NMTOKEN-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16469NISTSchema-SV-IV-list-NMTOKEN-pattern-4 tokoe:valid" result="pass"/><test-case name="16470NISTXML-SV-IV-list-NMTOKEN-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16471NISTXML-SV-IV-list-NMTOKEN-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16472NISTXML-SV-IV-list-NMTOKEN-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16473NISTXML-SV-IV-list-NMTOKEN-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16474NISTXML-SV-IV-list-NMTOKEN-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16475NISTSchema-SV-IV-list-NMTOKEN-pattern-5 tokoe:valid" result="pass"/><test-case name="16476NISTXML-SV-IV-list-NMTOKEN-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16477NISTXML-SV-IV-list-NMTOKEN-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16478NISTXML-SV-IV-list-NMTOKEN-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16479NISTXML-SV-IV-list-NMTOKEN-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16480NISTXML-SV-IV-list-NMTOKEN-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16481NISTSchema-SV-IV-list-NMTOKEN-enumeration-1 tokoe:valid" result="pass"/><test-case name="16482NISTXML-SV-IV-list-NMTOKEN-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16483NISTXML-SV-IV-list-NMTOKEN-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16484NISTXML-SV-IV-list-NMTOKEN-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16485NISTXML-SV-IV-list-NMTOKEN-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16486NISTXML-SV-IV-list-NMTOKEN-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16487NISTSchema-SV-IV-list-NMTOKEN-enumeration-2 tokoe:valid" result="pass"/><test-case name="16488NISTXML-SV-IV-list-NMTOKEN-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16489NISTXML-SV-IV-list-NMTOKEN-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16490NISTXML-SV-IV-list-NMTOKEN-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16491NISTXML-SV-IV-list-NMTOKEN-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16492NISTXML-SV-IV-list-NMTOKEN-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16493NISTSchema-SV-IV-list-NMTOKEN-enumeration-3 tokoe:valid" result="pass"/><test-case name="16494NISTXML-SV-IV-list-NMTOKEN-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16495NISTXML-SV-IV-list-NMTOKEN-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16496NISTXML-SV-IV-list-NMTOKEN-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16497NISTXML-SV-IV-list-NMTOKEN-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16498NISTXML-SV-IV-list-NMTOKEN-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16499NISTSchema-SV-IV-list-NMTOKEN-enumeration-4 tokoe:valid" result="pass"/><test-case name="16500NISTXML-SV-IV-list-NMTOKEN-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16501NISTXML-SV-IV-list-NMTOKEN-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16502NISTXML-SV-IV-list-NMTOKEN-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16503NISTXML-SV-IV-list-NMTOKEN-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16504NISTXML-SV-IV-list-NMTOKEN-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16505NISTSchema-SV-IV-list-NMTOKEN-enumeration-5 tokoe:valid" result="pass"/><test-case name="16506NISTXML-SV-IV-list-NMTOKEN-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16507NISTXML-SV-IV-list-NMTOKEN-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16508NISTXML-SV-IV-list-NMTOKEN-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16509NISTXML-SV-IV-list-NMTOKEN-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16510NISTXML-SV-IV-list-NMTOKEN-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16511NISTSchema-SV-IV-list-NMTOKEN-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16512NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16513NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16514NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16515NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16516NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16517NISTSchema-SV-IV-list-NMTOKENS-maxLength-1 tokoe:valid" result="pass"/><test-case name="16518NISTXML-SV-IV-list-NMTOKENS-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16519NISTXML-SV-IV-list-NMTOKENS-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16520NISTXML-SV-IV-list-NMTOKENS-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16521NISTXML-SV-IV-list-NMTOKENS-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16522NISTXML-SV-IV-list-NMTOKENS-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16523NISTSchema-SV-IV-list-NMTOKENS-maxLength-2 tokoe:valid" result="pass"/><test-case name="16524NISTXML-SV-IV-list-NMTOKENS-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16525NISTXML-SV-IV-list-NMTOKENS-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16526NISTXML-SV-IV-list-NMTOKENS-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16527NISTXML-SV-IV-list-NMTOKENS-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16528NISTXML-SV-IV-list-NMTOKENS-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16529NISTSchema-SV-IV-list-NMTOKENS-maxLength-3 tokoe:valid" result="pass"/><test-case name="16530NISTXML-SV-IV-list-NMTOKENS-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16531NISTXML-SV-IV-list-NMTOKENS-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16532NISTXML-SV-IV-list-NMTOKENS-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16533NISTXML-SV-IV-list-NMTOKENS-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16534NISTXML-SV-IV-list-NMTOKENS-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16535NISTSchema-SV-IV-list-NMTOKENS-maxLength-4 tokoe:valid" result="pass"/><test-case name="16536NISTXML-SV-IV-list-NMTOKENS-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16537NISTXML-SV-IV-list-NMTOKENS-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16538NISTXML-SV-IV-list-NMTOKENS-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16539NISTXML-SV-IV-list-NMTOKENS-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16540NISTXML-SV-IV-list-NMTOKENS-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16541NISTSchema-SV-IV-list-NMTOKENS-maxLength-5 tokoe:valid" result="pass"/><test-case name="16542NISTXML-SV-IV-list-NMTOKENS-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16543NISTXML-SV-IV-list-NMTOKENS-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16544NISTXML-SV-IV-list-NMTOKENS-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16545NISTXML-SV-IV-list-NMTOKENS-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16546NISTXML-SV-IV-list-NMTOKENS-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16547NISTSchema-SV-IV-list-NMTOKENS-minLength-1 tokoe:valid" result="pass"/><test-case name="16548NISTXML-SV-IV-list-NMTOKENS-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16549NISTXML-SV-IV-list-NMTOKENS-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16550NISTXML-SV-IV-list-NMTOKENS-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16551NISTXML-SV-IV-list-NMTOKENS-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16552NISTXML-SV-IV-list-NMTOKENS-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16553NISTSchema-SV-IV-list-NMTOKENS-minLength-2 tokoe:valid" result="pass"/><test-case name="16554NISTXML-SV-IV-list-NMTOKENS-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16555NISTXML-SV-IV-list-NMTOKENS-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16556NISTXML-SV-IV-list-NMTOKENS-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16557NISTXML-SV-IV-list-NMTOKENS-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16558NISTXML-SV-IV-list-NMTOKENS-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16559NISTSchema-SV-IV-list-NMTOKENS-minLength-3 tokoe:valid" result="pass"/><test-case name="16560NISTXML-SV-IV-list-NMTOKENS-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16561NISTXML-SV-IV-list-NMTOKENS-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16562NISTXML-SV-IV-list-NMTOKENS-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16563NISTXML-SV-IV-list-NMTOKENS-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16564NISTXML-SV-IV-list-NMTOKENS-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16565NISTSchema-SV-IV-list-NMTOKENS-minLength-4 tokoe:valid" result="pass"/><test-case name="16566NISTXML-SV-IV-list-NMTOKENS-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16567NISTXML-SV-IV-list-NMTOKENS-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16568NISTXML-SV-IV-list-NMTOKENS-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16569NISTXML-SV-IV-list-NMTOKENS-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16570NISTXML-SV-IV-list-NMTOKENS-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16571NISTSchema-SV-IV-list-NMTOKENS-minLength-5 tokoe:valid" result="pass"/><test-case name="16572NISTXML-SV-IV-list-NMTOKENS-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16573NISTXML-SV-IV-list-NMTOKENS-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16574NISTXML-SV-IV-list-NMTOKENS-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16575NISTXML-SV-IV-list-NMTOKENS-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16576NISTXML-SV-IV-list-NMTOKENS-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16577NISTSchema-SV-IV-list-NMTOKENS-length-1 tokoe:valid" result="pass"/><test-case name="16578NISTXML-SV-IV-list-NMTOKENS-length-1-1 tokoe:valid" result="pass"/><test-case name="16579NISTXML-SV-IV-list-NMTOKENS-length-1-2 tokoe:valid" result="pass"/><test-case name="16580NISTXML-SV-IV-list-NMTOKENS-length-1-3 tokoe:valid" result="pass"/><test-case name="16581NISTXML-SV-IV-list-NMTOKENS-length-1-4 tokoe:valid" result="pass"/><test-case name="16582NISTXML-SV-IV-list-NMTOKENS-length-1-5 tokoe:valid" result="pass"/><test-case name="16583NISTSchema-SV-IV-list-NMTOKENS-length-2 tokoe:valid" result="pass"/><test-case name="16584NISTXML-SV-IV-list-NMTOKENS-length-2-1 tokoe:valid" result="pass"/><test-case name="16585NISTXML-SV-IV-list-NMTOKENS-length-2-2 tokoe:valid" result="pass"/><test-case name="16586NISTXML-SV-IV-list-NMTOKENS-length-2-3 tokoe:valid" result="pass"/><test-case name="16587NISTXML-SV-IV-list-NMTOKENS-length-2-4 tokoe:valid" result="pass"/><test-case name="16588NISTXML-SV-IV-list-NMTOKENS-length-2-5 tokoe:valid" result="pass"/><test-case name="16589NISTSchema-SV-IV-list-NMTOKENS-length-3 tokoe:valid" result="pass"/><test-case name="16590NISTXML-SV-IV-list-NMTOKENS-length-3-1 tokoe:valid" result="pass"/><test-case name="16591NISTXML-SV-IV-list-NMTOKENS-length-3-2 tokoe:valid" result="pass"/><test-case name="16592NISTXML-SV-IV-list-NMTOKENS-length-3-3 tokoe:valid" result="pass"/><test-case name="16593NISTXML-SV-IV-list-NMTOKENS-length-3-4 tokoe:valid" result="pass"/><test-case name="16594NISTXML-SV-IV-list-NMTOKENS-length-3-5 tokoe:valid" result="pass"/><test-case name="16595NISTSchema-SV-IV-list-NMTOKENS-length-4 tokoe:valid" result="pass"/><test-case name="16596NISTXML-SV-IV-list-NMTOKENS-length-4-1 tokoe:valid" result="pass"/><test-case name="16597NISTXML-SV-IV-list-NMTOKENS-length-4-2 tokoe:valid" result="pass"/><test-case name="16598NISTXML-SV-IV-list-NMTOKENS-length-4-3 tokoe:valid" result="pass"/><test-case name="16599NISTXML-SV-IV-list-NMTOKENS-length-4-4 tokoe:valid" result="pass"/><test-case name="16600NISTXML-SV-IV-list-NMTOKENS-length-4-5 tokoe:valid" result="pass"/><test-case name="16601NISTSchema-SV-IV-list-NMTOKENS-length-5 tokoe:valid" result="pass"/><test-case name="16602NISTXML-SV-IV-list-NMTOKENS-length-5-1 tokoe:valid" result="pass"/><test-case name="16603NISTXML-SV-IV-list-NMTOKENS-length-5-2 tokoe:valid" result="pass"/><test-case name="16604NISTXML-SV-IV-list-NMTOKENS-length-5-3 tokoe:valid" result="pass"/><test-case name="16605NISTXML-SV-IV-list-NMTOKENS-length-5-4 tokoe:valid" result="pass"/><test-case name="16606NISTXML-SV-IV-list-NMTOKENS-length-5-5 tokoe:valid" result="pass"/><test-case name="16607NISTSchema-SV-IV-list-NMTOKENS-pattern-1 tokoe:valid" result="pass"/><test-case name="16608NISTXML-SV-IV-list-NMTOKENS-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16609NISTXML-SV-IV-list-NMTOKENS-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16610NISTXML-SV-IV-list-NMTOKENS-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16611NISTXML-SV-IV-list-NMTOKENS-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16612NISTXML-SV-IV-list-NMTOKENS-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16613NISTSchema-SV-IV-list-NMTOKENS-pattern-2 tokoe:valid" result="pass"/><test-case name="16614NISTXML-SV-IV-list-NMTOKENS-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16615NISTXML-SV-IV-list-NMTOKENS-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16616NISTXML-SV-IV-list-NMTOKENS-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16617NISTXML-SV-IV-list-NMTOKENS-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16618NISTXML-SV-IV-list-NMTOKENS-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16619NISTSchema-SV-IV-list-NMTOKENS-pattern-3 tokoe:valid" result="pass"/><test-case name="16620NISTXML-SV-IV-list-NMTOKENS-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16621NISTXML-SV-IV-list-NMTOKENS-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16622NISTXML-SV-IV-list-NMTOKENS-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16623NISTXML-SV-IV-list-NMTOKENS-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16624NISTXML-SV-IV-list-NMTOKENS-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16625NISTSchema-SV-IV-list-NMTOKENS-pattern-4 tokoe:valid" result="pass"/><test-case name="16626NISTXML-SV-IV-list-NMTOKENS-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16627NISTXML-SV-IV-list-NMTOKENS-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16628NISTXML-SV-IV-list-NMTOKENS-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16629NISTXML-SV-IV-list-NMTOKENS-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16630NISTXML-SV-IV-list-NMTOKENS-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16631NISTSchema-SV-IV-list-NMTOKENS-pattern-5 tokoe:valid" result="pass"/><test-case name="16632NISTXML-SV-IV-list-NMTOKENS-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16633NISTXML-SV-IV-list-NMTOKENS-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16634NISTXML-SV-IV-list-NMTOKENS-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16635NISTXML-SV-IV-list-NMTOKENS-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16636NISTXML-SV-IV-list-NMTOKENS-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16637NISTSchema-SV-IV-list-NMTOKENS-enumeration-1 tokoe:valid" result="pass"/><test-case name="16638NISTXML-SV-IV-list-NMTOKENS-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16639NISTXML-SV-IV-list-NMTOKENS-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16640NISTXML-SV-IV-list-NMTOKENS-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16641NISTXML-SV-IV-list-NMTOKENS-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16642NISTXML-SV-IV-list-NMTOKENS-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16643NISTSchema-SV-IV-list-NMTOKENS-enumeration-2 tokoe:valid" result="pass"/><test-case name="16644NISTXML-SV-IV-list-NMTOKENS-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16645NISTXML-SV-IV-list-NMTOKENS-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16646NISTXML-SV-IV-list-NMTOKENS-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16647NISTXML-SV-IV-list-NMTOKENS-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16648NISTXML-SV-IV-list-NMTOKENS-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16649NISTSchema-SV-IV-list-NMTOKENS-enumeration-3 tokoe:valid" result="pass"/><test-case name="16650NISTXML-SV-IV-list-NMTOKENS-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16651NISTXML-SV-IV-list-NMTOKENS-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16652NISTXML-SV-IV-list-NMTOKENS-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16653NISTXML-SV-IV-list-NMTOKENS-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16654NISTXML-SV-IV-list-NMTOKENS-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16655NISTSchema-SV-IV-list-NMTOKENS-enumeration-4 tokoe:valid" result="pass"/><test-case name="16656NISTXML-SV-IV-list-NMTOKENS-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16657NISTXML-SV-IV-list-NMTOKENS-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16658NISTXML-SV-IV-list-NMTOKENS-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16659NISTXML-SV-IV-list-NMTOKENS-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16660NISTXML-SV-IV-list-NMTOKENS-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16661NISTSchema-SV-IV-list-NMTOKENS-enumeration-5 tokoe:valid" result="pass"/><test-case name="16662NISTXML-SV-IV-list-NMTOKENS-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16663NISTXML-SV-IV-list-NMTOKENS-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16664NISTXML-SV-IV-list-NMTOKENS-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16665NISTXML-SV-IV-list-NMTOKENS-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16666NISTXML-SV-IV-list-NMTOKENS-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16667NISTSchema-SV-IV-list-NMTOKENS-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16668NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16669NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16670NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16671NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16672NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16673NISTSchema-SV-IV-list-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="16674NISTXML-SV-IV-list-NCName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16675NISTXML-SV-IV-list-NCName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16676NISTXML-SV-IV-list-NCName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16677NISTXML-SV-IV-list-NCName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16678NISTXML-SV-IV-list-NCName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16679NISTSchema-SV-IV-list-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="16680NISTXML-SV-IV-list-NCName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16681NISTXML-SV-IV-list-NCName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16682NISTXML-SV-IV-list-NCName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16683NISTXML-SV-IV-list-NCName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16684NISTXML-SV-IV-list-NCName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16685NISTSchema-SV-IV-list-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="16686NISTXML-SV-IV-list-NCName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16687NISTXML-SV-IV-list-NCName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16688NISTXML-SV-IV-list-NCName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16689NISTXML-SV-IV-list-NCName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16690NISTXML-SV-IV-list-NCName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16691NISTSchema-SV-IV-list-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="16692NISTXML-SV-IV-list-NCName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16693NISTXML-SV-IV-list-NCName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16694NISTXML-SV-IV-list-NCName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16695NISTXML-SV-IV-list-NCName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16696NISTXML-SV-IV-list-NCName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16697NISTSchema-SV-IV-list-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="16698NISTXML-SV-IV-list-NCName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16699NISTXML-SV-IV-list-NCName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16700NISTXML-SV-IV-list-NCName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16701NISTXML-SV-IV-list-NCName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16702NISTXML-SV-IV-list-NCName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16703NISTSchema-SV-IV-list-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="16704NISTXML-SV-IV-list-NCName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16705NISTXML-SV-IV-list-NCName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16706NISTXML-SV-IV-list-NCName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16707NISTXML-SV-IV-list-NCName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16708NISTXML-SV-IV-list-NCName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16709NISTSchema-SV-IV-list-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="16710NISTXML-SV-IV-list-NCName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16711NISTXML-SV-IV-list-NCName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16712NISTXML-SV-IV-list-NCName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16713NISTXML-SV-IV-list-NCName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16714NISTXML-SV-IV-list-NCName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16715NISTSchema-SV-IV-list-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="16716NISTXML-SV-IV-list-NCName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16717NISTXML-SV-IV-list-NCName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16718NISTXML-SV-IV-list-NCName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16719NISTXML-SV-IV-list-NCName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16720NISTXML-SV-IV-list-NCName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16721NISTSchema-SV-IV-list-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="16722NISTXML-SV-IV-list-NCName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16723NISTXML-SV-IV-list-NCName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16724NISTXML-SV-IV-list-NCName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16725NISTXML-SV-IV-list-NCName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16726NISTXML-SV-IV-list-NCName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16727NISTSchema-SV-IV-list-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="16728NISTXML-SV-IV-list-NCName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16729NISTXML-SV-IV-list-NCName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16730NISTXML-SV-IV-list-NCName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16731NISTXML-SV-IV-list-NCName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16732NISTXML-SV-IV-list-NCName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16733NISTSchema-SV-IV-list-NCName-length-1 tokoe:valid" result="pass"/><test-case name="16734NISTXML-SV-IV-list-NCName-length-1-1 tokoe:valid" result="pass"/><test-case name="16735NISTXML-SV-IV-list-NCName-length-1-2 tokoe:valid" result="pass"/><test-case name="16736NISTXML-SV-IV-list-NCName-length-1-3 tokoe:valid" result="pass"/><test-case name="16737NISTXML-SV-IV-list-NCName-length-1-4 tokoe:valid" result="pass"/><test-case name="16738NISTXML-SV-IV-list-NCName-length-1-5 tokoe:valid" result="pass"/><test-case name="16739NISTSchema-SV-IV-list-NCName-length-2 tokoe:valid" result="pass"/><test-case name="16740NISTXML-SV-IV-list-NCName-length-2-1 tokoe:valid" result="pass"/><test-case name="16741NISTXML-SV-IV-list-NCName-length-2-2 tokoe:valid" result="pass"/><test-case name="16742NISTXML-SV-IV-list-NCName-length-2-3 tokoe:valid" result="pass"/><test-case name="16743NISTXML-SV-IV-list-NCName-length-2-4 tokoe:valid" result="pass"/><test-case name="16744NISTXML-SV-IV-list-NCName-length-2-5 tokoe:valid" result="pass"/><test-case name="16745NISTSchema-SV-IV-list-NCName-length-3 tokoe:valid" result="pass"/><test-case name="16746NISTXML-SV-IV-list-NCName-length-3-1 tokoe:valid" result="pass"/><test-case name="16747NISTXML-SV-IV-list-NCName-length-3-2 tokoe:valid" result="pass"/><test-case name="16748NISTXML-SV-IV-list-NCName-length-3-3 tokoe:valid" result="pass"/><test-case name="16749NISTXML-SV-IV-list-NCName-length-3-4 tokoe:valid" result="pass"/><test-case name="16750NISTXML-SV-IV-list-NCName-length-3-5 tokoe:valid" result="pass"/><test-case name="16751NISTSchema-SV-IV-list-NCName-length-4 tokoe:valid" result="pass"/><test-case name="16752NISTXML-SV-IV-list-NCName-length-4-1 tokoe:valid" result="pass"/><test-case name="16753NISTXML-SV-IV-list-NCName-length-4-2 tokoe:valid" result="pass"/><test-case name="16754NISTXML-SV-IV-list-NCName-length-4-3 tokoe:valid" result="pass"/><test-case name="16755NISTXML-SV-IV-list-NCName-length-4-4 tokoe:valid" result="pass"/><test-case name="16756NISTXML-SV-IV-list-NCName-length-4-5 tokoe:valid" result="pass"/><test-case name="16757NISTSchema-SV-IV-list-NCName-length-5 tokoe:valid" result="pass"/><test-case name="16758NISTXML-SV-IV-list-NCName-length-5-1 tokoe:valid" result="pass"/><test-case name="16759NISTXML-SV-IV-list-NCName-length-5-2 tokoe:valid" result="pass"/><test-case name="16760NISTXML-SV-IV-list-NCName-length-5-3 tokoe:valid" result="pass"/><test-case name="16761NISTXML-SV-IV-list-NCName-length-5-4 tokoe:valid" result="pass"/><test-case name="16762NISTXML-SV-IV-list-NCName-length-5-5 tokoe:valid" result="pass"/><test-case name="16763NISTSchema-SV-IV-list-NCName-pattern-1 tokoe:valid" result="pass"/><test-case name="16764NISTXML-SV-IV-list-NCName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16765NISTXML-SV-IV-list-NCName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16766NISTXML-SV-IV-list-NCName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16767NISTXML-SV-IV-list-NCName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16768NISTXML-SV-IV-list-NCName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16769NISTSchema-SV-IV-list-NCName-pattern-2 tokoe:valid" result="pass"/><test-case name="16770NISTXML-SV-IV-list-NCName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16771NISTXML-SV-IV-list-NCName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16772NISTXML-SV-IV-list-NCName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16773NISTXML-SV-IV-list-NCName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16774NISTXML-SV-IV-list-NCName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16775NISTSchema-SV-IV-list-NCName-pattern-3 tokoe:valid" result="pass"/><test-case name="16776NISTXML-SV-IV-list-NCName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16777NISTXML-SV-IV-list-NCName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16778NISTXML-SV-IV-list-NCName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16779NISTXML-SV-IV-list-NCName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16780NISTXML-SV-IV-list-NCName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16781NISTSchema-SV-IV-list-NCName-pattern-4 tokoe:valid" result="pass"/><test-case name="16782NISTXML-SV-IV-list-NCName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16783NISTXML-SV-IV-list-NCName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16784NISTXML-SV-IV-list-NCName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16785NISTXML-SV-IV-list-NCName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16786NISTXML-SV-IV-list-NCName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16787NISTSchema-SV-IV-list-NCName-pattern-5 tokoe:valid" result="pass"/><test-case name="16788NISTXML-SV-IV-list-NCName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16789NISTXML-SV-IV-list-NCName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16790NISTXML-SV-IV-list-NCName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16791NISTXML-SV-IV-list-NCName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16792NISTXML-SV-IV-list-NCName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16793NISTSchema-SV-IV-list-NCName-enumeration-1 tokoe:valid" result="pass"/><test-case name="16794NISTXML-SV-IV-list-NCName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16795NISTXML-SV-IV-list-NCName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16796NISTXML-SV-IV-list-NCName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16797NISTXML-SV-IV-list-NCName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16798NISTXML-SV-IV-list-NCName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16799NISTSchema-SV-IV-list-NCName-enumeration-2 tokoe:valid" result="pass"/><test-case name="16800NISTXML-SV-IV-list-NCName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16801NISTXML-SV-IV-list-NCName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16802NISTXML-SV-IV-list-NCName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16803NISTXML-SV-IV-list-NCName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16804NISTXML-SV-IV-list-NCName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16805NISTSchema-SV-IV-list-NCName-enumeration-3 tokoe:valid" result="pass"/><test-case name="16806NISTXML-SV-IV-list-NCName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16807NISTXML-SV-IV-list-NCName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16808NISTXML-SV-IV-list-NCName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16809NISTXML-SV-IV-list-NCName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16810NISTXML-SV-IV-list-NCName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16811NISTSchema-SV-IV-list-NCName-enumeration-4 tokoe:valid" result="pass"/><test-case name="16812NISTXML-SV-IV-list-NCName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16813NISTXML-SV-IV-list-NCName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16814NISTXML-SV-IV-list-NCName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16815NISTXML-SV-IV-list-NCName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16816NISTXML-SV-IV-list-NCName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16817NISTSchema-SV-IV-list-NCName-enumeration-5 tokoe:valid" result="pass"/><test-case name="16818NISTXML-SV-IV-list-NCName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16819NISTXML-SV-IV-list-NCName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16820NISTXML-SV-IV-list-NCName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16821NISTXML-SV-IV-list-NCName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16822NISTXML-SV-IV-list-NCName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16823NISTSchema-SV-IV-list-NCName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16824NISTXML-SV-IV-list-NCName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16825NISTXML-SV-IV-list-NCName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16826NISTXML-SV-IV-list-NCName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16827NISTXML-SV-IV-list-NCName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16828NISTXML-SV-IV-list-NCName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16829NISTSchema-SV-IV-list-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="16830NISTXML-SV-IV-list-ID-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16831NISTXML-SV-IV-list-ID-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16832NISTXML-SV-IV-list-ID-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16833NISTXML-SV-IV-list-ID-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16834NISTXML-SV-IV-list-ID-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16835NISTSchema-SV-IV-list-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="16836NISTXML-SV-IV-list-ID-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16837NISTXML-SV-IV-list-ID-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16838NISTXML-SV-IV-list-ID-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16839NISTXML-SV-IV-list-ID-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16840NISTXML-SV-IV-list-ID-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16841NISTSchema-SV-IV-list-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="16842NISTXML-SV-IV-list-ID-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16843NISTXML-SV-IV-list-ID-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16844NISTXML-SV-IV-list-ID-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16845NISTXML-SV-IV-list-ID-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16846NISTXML-SV-IV-list-ID-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16847NISTSchema-SV-IV-list-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="16848NISTXML-SV-IV-list-ID-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16849NISTXML-SV-IV-list-ID-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16850NISTXML-SV-IV-list-ID-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16851NISTXML-SV-IV-list-ID-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16852NISTXML-SV-IV-list-ID-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16853NISTSchema-SV-IV-list-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="16854NISTXML-SV-IV-list-ID-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16855NISTXML-SV-IV-list-ID-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16856NISTXML-SV-IV-list-ID-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16857NISTXML-SV-IV-list-ID-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16858NISTXML-SV-IV-list-ID-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16859NISTSchema-SV-IV-list-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="16860NISTXML-SV-IV-list-ID-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16861NISTXML-SV-IV-list-ID-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16862NISTXML-SV-IV-list-ID-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16863NISTXML-SV-IV-list-ID-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16864NISTXML-SV-IV-list-ID-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16865NISTSchema-SV-IV-list-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="16866NISTXML-SV-IV-list-ID-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16867NISTXML-SV-IV-list-ID-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16868NISTXML-SV-IV-list-ID-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16869NISTXML-SV-IV-list-ID-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16870NISTXML-SV-IV-list-ID-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16871NISTSchema-SV-IV-list-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="16872NISTXML-SV-IV-list-ID-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16873NISTXML-SV-IV-list-ID-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16874NISTXML-SV-IV-list-ID-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16875NISTXML-SV-IV-list-ID-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16876NISTXML-SV-IV-list-ID-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16877NISTSchema-SV-IV-list-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="16878NISTXML-SV-IV-list-ID-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16879NISTXML-SV-IV-list-ID-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16880NISTXML-SV-IV-list-ID-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16881NISTXML-SV-IV-list-ID-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16882NISTXML-SV-IV-list-ID-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16883NISTSchema-SV-IV-list-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="16884NISTXML-SV-IV-list-ID-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16885NISTXML-SV-IV-list-ID-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16886NISTXML-SV-IV-list-ID-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16887NISTXML-SV-IV-list-ID-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16888NISTXML-SV-IV-list-ID-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16889NISTSchema-SV-IV-list-ID-length-1 tokoe:valid" result="pass"/><test-case name="16890NISTXML-SV-IV-list-ID-length-1-1 tokoe:valid" result="pass"/><test-case name="16891NISTXML-SV-IV-list-ID-length-1-2 tokoe:valid" result="pass"/><test-case name="16892NISTXML-SV-IV-list-ID-length-1-3 tokoe:valid" result="pass"/><test-case name="16893NISTXML-SV-IV-list-ID-length-1-4 tokoe:valid" result="pass"/><test-case name="16894NISTXML-SV-IV-list-ID-length-1-5 tokoe:valid" result="pass"/><test-case name="16895NISTSchema-SV-IV-list-ID-length-2 tokoe:valid" result="pass"/><test-case name="16896NISTXML-SV-IV-list-ID-length-2-1 tokoe:valid" result="pass"/><test-case name="16897NISTXML-SV-IV-list-ID-length-2-2 tokoe:valid" result="pass"/><test-case name="16898NISTXML-SV-IV-list-ID-length-2-3 tokoe:valid" result="pass"/><test-case name="16899NISTXML-SV-IV-list-ID-length-2-4 tokoe:valid" result="pass"/><test-case name="16900NISTXML-SV-IV-list-ID-length-2-5 tokoe:valid" result="pass"/><test-case name="16901NISTSchema-SV-IV-list-ID-length-3 tokoe:valid" result="pass"/><test-case name="16902NISTXML-SV-IV-list-ID-length-3-1 tokoe:valid" result="pass"/><test-case name="16903NISTXML-SV-IV-list-ID-length-3-2 tokoe:valid" result="pass"/><test-case name="16904NISTXML-SV-IV-list-ID-length-3-3 tokoe:valid" result="pass"/><test-case name="16905NISTXML-SV-IV-list-ID-length-3-4 tokoe:valid" result="pass"/><test-case name="16906NISTXML-SV-IV-list-ID-length-3-5 tokoe:valid" result="pass"/><test-case name="16907NISTSchema-SV-IV-list-ID-length-4 tokoe:valid" result="pass"/><test-case name="16908NISTXML-SV-IV-list-ID-length-4-1 tokoe:valid" result="pass"/><test-case name="16909NISTXML-SV-IV-list-ID-length-4-2 tokoe:valid" result="pass"/><test-case name="16910NISTXML-SV-IV-list-ID-length-4-3 tokoe:valid" result="pass"/><test-case name="16911NISTXML-SV-IV-list-ID-length-4-4 tokoe:valid" result="pass"/><test-case name="16912NISTXML-SV-IV-list-ID-length-4-5 tokoe:valid" result="pass"/><test-case name="16913NISTSchema-SV-IV-list-ID-length-5 tokoe:valid" result="pass"/><test-case name="16914NISTXML-SV-IV-list-ID-length-5-1 tokoe:valid" result="pass"/><test-case name="16915NISTXML-SV-IV-list-ID-length-5-2 tokoe:valid" result="pass"/><test-case name="16916NISTXML-SV-IV-list-ID-length-5-3 tokoe:valid" result="pass"/><test-case name="16917NISTXML-SV-IV-list-ID-length-5-4 tokoe:valid" result="pass"/><test-case name="16918NISTXML-SV-IV-list-ID-length-5-5 tokoe:valid" result="pass"/><test-case name="16919NISTSchema-SV-IV-list-ID-pattern-1 tokoe:valid" result="pass"/><test-case name="16920NISTXML-SV-IV-list-ID-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16921NISTXML-SV-IV-list-ID-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16922NISTXML-SV-IV-list-ID-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16923NISTXML-SV-IV-list-ID-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16924NISTXML-SV-IV-list-ID-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16925NISTSchema-SV-IV-list-ID-pattern-2 tokoe:valid" result="pass"/><test-case name="16926NISTXML-SV-IV-list-ID-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16927NISTXML-SV-IV-list-ID-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16928NISTXML-SV-IV-list-ID-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16929NISTXML-SV-IV-list-ID-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16930NISTXML-SV-IV-list-ID-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16931NISTSchema-SV-IV-list-ID-pattern-3 tokoe:valid" result="pass"/><test-case name="16932NISTXML-SV-IV-list-ID-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16933NISTXML-SV-IV-list-ID-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16934NISTXML-SV-IV-list-ID-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16935NISTXML-SV-IV-list-ID-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16936NISTXML-SV-IV-list-ID-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16937NISTSchema-SV-IV-list-ID-pattern-4 tokoe:valid" result="pass"/><test-case name="16938NISTXML-SV-IV-list-ID-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16939NISTXML-SV-IV-list-ID-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16940NISTXML-SV-IV-list-ID-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16941NISTXML-SV-IV-list-ID-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16942NISTXML-SV-IV-list-ID-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16943NISTSchema-SV-IV-list-ID-pattern-5 tokoe:valid" result="pass"/><test-case name="16944NISTXML-SV-IV-list-ID-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16945NISTXML-SV-IV-list-ID-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16946NISTXML-SV-IV-list-ID-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16947NISTXML-SV-IV-list-ID-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16948NISTXML-SV-IV-list-ID-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16949NISTSchema-SV-IV-list-ID-enumeration-1 tokoe:valid" result="pass"/><test-case name="16950NISTXML-SV-IV-list-ID-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16951NISTXML-SV-IV-list-ID-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16952NISTXML-SV-IV-list-ID-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16953NISTXML-SV-IV-list-ID-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16954NISTXML-SV-IV-list-ID-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16955NISTSchema-SV-IV-list-ID-enumeration-2 tokoe:valid" result="pass"/><test-case name="16956NISTXML-SV-IV-list-ID-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16957NISTXML-SV-IV-list-ID-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16958NISTXML-SV-IV-list-ID-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16959NISTXML-SV-IV-list-ID-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16960NISTXML-SV-IV-list-ID-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16961NISTSchema-SV-IV-list-ID-enumeration-3 tokoe:valid" result="pass"/><test-case name="16962NISTXML-SV-IV-list-ID-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16963NISTXML-SV-IV-list-ID-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16964NISTXML-SV-IV-list-ID-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16965NISTXML-SV-IV-list-ID-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16966NISTXML-SV-IV-list-ID-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16967NISTSchema-SV-IV-list-ID-enumeration-4 tokoe:valid" result="pass"/><test-case name="16968NISTXML-SV-IV-list-ID-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16969NISTXML-SV-IV-list-ID-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16970NISTXML-SV-IV-list-ID-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16971NISTXML-SV-IV-list-ID-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16972NISTXML-SV-IV-list-ID-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16973NISTSchema-SV-IV-list-ID-enumeration-5 tokoe:valid" result="pass"/><test-case name="16974NISTXML-SV-IV-list-ID-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16975NISTXML-SV-IV-list-ID-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16976NISTXML-SV-IV-list-ID-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16977NISTXML-SV-IV-list-ID-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16978NISTXML-SV-IV-list-ID-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16979NISTSchema-SV-IV-list-ID-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16980NISTXML-SV-IV-list-ID-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16981NISTXML-SV-IV-list-ID-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16982NISTXML-SV-IV-list-ID-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16983NISTXML-SV-IV-list-ID-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16984NISTXML-SV-IV-list-ID-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16985NISTSchema-SV-IV-list-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="16986NISTXML-SV-IV-list-language-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16987NISTXML-SV-IV-list-language-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16988NISTXML-SV-IV-list-language-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16989NISTXML-SV-IV-list-language-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16990NISTXML-SV-IV-list-language-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16991NISTSchema-SV-IV-list-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="16992NISTXML-SV-IV-list-language-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16993NISTXML-SV-IV-list-language-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16994NISTXML-SV-IV-list-language-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16995NISTXML-SV-IV-list-language-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16996NISTXML-SV-IV-list-language-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16997NISTSchema-SV-IV-list-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="16998NISTXML-SV-IV-list-language-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16999NISTXML-SV-IV-list-language-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17000NISTXML-SV-IV-list-language-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17001NISTXML-SV-IV-list-language-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17002NISTXML-SV-IV-list-language-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17003NISTSchema-SV-IV-list-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="17004NISTXML-SV-IV-list-language-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17005NISTXML-SV-IV-list-language-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17006NISTXML-SV-IV-list-language-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17007NISTXML-SV-IV-list-language-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17008NISTXML-SV-IV-list-language-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17009NISTSchema-SV-IV-list-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="17010NISTXML-SV-IV-list-language-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17011NISTXML-SV-IV-list-language-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17012NISTXML-SV-IV-list-language-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17013NISTXML-SV-IV-list-language-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17014NISTXML-SV-IV-list-language-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17015NISTSchema-SV-IV-list-language-minLength-1 tokoe:valid" result="pass"/><test-case name="17016NISTXML-SV-IV-list-language-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17017NISTXML-SV-IV-list-language-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17018NISTXML-SV-IV-list-language-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17019NISTXML-SV-IV-list-language-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17020NISTXML-SV-IV-list-language-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17021NISTSchema-SV-IV-list-language-minLength-2 tokoe:valid" result="pass"/><test-case name="17022NISTXML-SV-IV-list-language-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17023NISTXML-SV-IV-list-language-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17024NISTXML-SV-IV-list-language-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17025NISTXML-SV-IV-list-language-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17026NISTXML-SV-IV-list-language-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17027NISTSchema-SV-IV-list-language-minLength-3 tokoe:valid" result="pass"/><test-case name="17028NISTXML-SV-IV-list-language-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17029NISTXML-SV-IV-list-language-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17030NISTXML-SV-IV-list-language-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17031NISTXML-SV-IV-list-language-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17032NISTXML-SV-IV-list-language-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17033NISTSchema-SV-IV-list-language-minLength-4 tokoe:valid" result="pass"/><test-case name="17034NISTXML-SV-IV-list-language-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17035NISTXML-SV-IV-list-language-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17036NISTXML-SV-IV-list-language-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17037NISTXML-SV-IV-list-language-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17038NISTXML-SV-IV-list-language-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17039NISTSchema-SV-IV-list-language-minLength-5 tokoe:valid" result="pass"/><test-case name="17040NISTXML-SV-IV-list-language-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17041NISTXML-SV-IV-list-language-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17042NISTXML-SV-IV-list-language-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17043NISTXML-SV-IV-list-language-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17044NISTXML-SV-IV-list-language-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17045NISTSchema-SV-IV-list-language-length-1 tokoe:valid" result="pass"/><test-case name="17046NISTXML-SV-IV-list-language-length-1-1 tokoe:valid" result="pass"/><test-case name="17047NISTXML-SV-IV-list-language-length-1-2 tokoe:valid" result="pass"/><test-case name="17048NISTXML-SV-IV-list-language-length-1-3 tokoe:valid" result="pass"/><test-case name="17049NISTXML-SV-IV-list-language-length-1-4 tokoe:valid" result="pass"/><test-case name="17050NISTXML-SV-IV-list-language-length-1-5 tokoe:valid" result="pass"/><test-case name="17051NISTSchema-SV-IV-list-language-length-2 tokoe:valid" result="pass"/><test-case name="17052NISTXML-SV-IV-list-language-length-2-1 tokoe:valid" result="pass"/><test-case name="17053NISTXML-SV-IV-list-language-length-2-2 tokoe:valid" result="pass"/><test-case name="17054NISTXML-SV-IV-list-language-length-2-3 tokoe:valid" result="pass"/><test-case name="17055NISTXML-SV-IV-list-language-length-2-4 tokoe:valid" result="pass"/><test-case name="17056NISTXML-SV-IV-list-language-length-2-5 tokoe:valid" result="pass"/><test-case name="17057NISTSchema-SV-IV-list-language-length-3 tokoe:valid" result="pass"/><test-case name="17058NISTXML-SV-IV-list-language-length-3-1 tokoe:valid" result="pass"/><test-case name="17059NISTXML-SV-IV-list-language-length-3-2 tokoe:valid" result="pass"/><test-case name="17060NISTXML-SV-IV-list-language-length-3-3 tokoe:valid" result="pass"/><test-case name="17061NISTXML-SV-IV-list-language-length-3-4 tokoe:valid" result="pass"/><test-case name="17062NISTXML-SV-IV-list-language-length-3-5 tokoe:valid" result="pass"/><test-case name="17063NISTSchema-SV-IV-list-language-length-4 tokoe:valid" result="pass"/><test-case name="17064NISTXML-SV-IV-list-language-length-4-1 tokoe:valid" result="pass"/><test-case name="17065NISTXML-SV-IV-list-language-length-4-2 tokoe:valid" result="pass"/><test-case name="17066NISTXML-SV-IV-list-language-length-4-3 tokoe:valid" result="pass"/><test-case name="17067NISTXML-SV-IV-list-language-length-4-4 tokoe:valid" result="pass"/><test-case name="17068NISTXML-SV-IV-list-language-length-4-5 tokoe:valid" result="pass"/><test-case name="17069NISTSchema-SV-IV-list-language-length-5 tokoe:valid" result="pass"/><test-case name="17070NISTXML-SV-IV-list-language-length-5-1 tokoe:valid" result="pass"/><test-case name="17071NISTXML-SV-IV-list-language-length-5-2 tokoe:valid" result="pass"/><test-case name="17072NISTXML-SV-IV-list-language-length-5-3 tokoe:valid" result="pass"/><test-case name="17073NISTXML-SV-IV-list-language-length-5-4 tokoe:valid" result="pass"/><test-case name="17074NISTXML-SV-IV-list-language-length-5-5 tokoe:valid" result="pass"/><test-case name="17075NISTSchema-SV-IV-list-language-pattern-1 tokoe:valid" result="pass"/><test-case name="17076NISTXML-SV-IV-list-language-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17077NISTXML-SV-IV-list-language-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17078NISTXML-SV-IV-list-language-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17079NISTXML-SV-IV-list-language-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17080NISTXML-SV-IV-list-language-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17081NISTSchema-SV-IV-list-language-pattern-2 tokoe:valid" result="pass"/><test-case name="17082NISTXML-SV-IV-list-language-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17083NISTXML-SV-IV-list-language-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17084NISTXML-SV-IV-list-language-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17085NISTXML-SV-IV-list-language-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17086NISTXML-SV-IV-list-language-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17087NISTSchema-SV-IV-list-language-pattern-3 tokoe:valid" result="pass"/><test-case name="17088NISTXML-SV-IV-list-language-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17089NISTXML-SV-IV-list-language-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17090NISTXML-SV-IV-list-language-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17091NISTXML-SV-IV-list-language-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17092NISTXML-SV-IV-list-language-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17093NISTSchema-SV-IV-list-language-pattern-4 tokoe:valid" result="pass"/><test-case name="17094NISTXML-SV-IV-list-language-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17095NISTXML-SV-IV-list-language-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17096NISTXML-SV-IV-list-language-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17097NISTXML-SV-IV-list-language-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17098NISTXML-SV-IV-list-language-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17099NISTSchema-SV-IV-list-language-pattern-5 tokoe:valid" result="pass"/><test-case name="17100NISTXML-SV-IV-list-language-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17101NISTXML-SV-IV-list-language-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17102NISTXML-SV-IV-list-language-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17103NISTXML-SV-IV-list-language-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17104NISTXML-SV-IV-list-language-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17105NISTSchema-SV-IV-list-language-enumeration-1 tokoe:valid" result="pass"/><test-case name="17106NISTXML-SV-IV-list-language-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17107NISTXML-SV-IV-list-language-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17108NISTXML-SV-IV-list-language-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17109NISTXML-SV-IV-list-language-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17110NISTXML-SV-IV-list-language-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17111NISTSchema-SV-IV-list-language-enumeration-2 tokoe:valid" result="pass"/><test-case name="17112NISTXML-SV-IV-list-language-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17113NISTXML-SV-IV-list-language-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17114NISTXML-SV-IV-list-language-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17115NISTXML-SV-IV-list-language-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17116NISTXML-SV-IV-list-language-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17117NISTSchema-SV-IV-list-language-enumeration-3 tokoe:valid" result="pass"/><test-case name="17118NISTXML-SV-IV-list-language-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17119NISTXML-SV-IV-list-language-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17120NISTXML-SV-IV-list-language-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17121NISTXML-SV-IV-list-language-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17122NISTXML-SV-IV-list-language-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17123NISTSchema-SV-IV-list-language-enumeration-4 tokoe:valid" result="pass"/><test-case name="17124NISTXML-SV-IV-list-language-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17125NISTXML-SV-IV-list-language-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17126NISTXML-SV-IV-list-language-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17127NISTXML-SV-IV-list-language-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17128NISTXML-SV-IV-list-language-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17129NISTSchema-SV-IV-list-language-enumeration-5 tokoe:valid" result="pass"/><test-case name="17130NISTXML-SV-IV-list-language-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17131NISTXML-SV-IV-list-language-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17132NISTXML-SV-IV-list-language-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17133NISTXML-SV-IV-list-language-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17134NISTXML-SV-IV-list-language-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17135NISTSchema-SV-IV-list-language-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17136NISTXML-SV-IV-list-language-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17137NISTXML-SV-IV-list-language-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17138NISTXML-SV-IV-list-language-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17139NISTXML-SV-IV-list-language-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17140NISTXML-SV-IV-list-language-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17141NISTSchema-SV-IV-list-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="17142NISTXML-SV-IV-list-anyURI-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17143NISTXML-SV-IV-list-anyURI-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17144NISTXML-SV-IV-list-anyURI-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17145NISTXML-SV-IV-list-anyURI-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17146NISTXML-SV-IV-list-anyURI-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17147NISTSchema-SV-IV-list-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="17148NISTXML-SV-IV-list-anyURI-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17149NISTXML-SV-IV-list-anyURI-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17150NISTXML-SV-IV-list-anyURI-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17151NISTXML-SV-IV-list-anyURI-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17152NISTXML-SV-IV-list-anyURI-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17153NISTSchema-SV-IV-list-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="17154NISTXML-SV-IV-list-anyURI-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17155NISTXML-SV-IV-list-anyURI-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17156NISTXML-SV-IV-list-anyURI-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17157NISTXML-SV-IV-list-anyURI-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17158NISTXML-SV-IV-list-anyURI-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17159NISTSchema-SV-IV-list-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="17160NISTXML-SV-IV-list-anyURI-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17161NISTXML-SV-IV-list-anyURI-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17162NISTXML-SV-IV-list-anyURI-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17163NISTXML-SV-IV-list-anyURI-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17164NISTXML-SV-IV-list-anyURI-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17165NISTSchema-SV-IV-list-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="17166NISTXML-SV-IV-list-anyURI-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17167NISTXML-SV-IV-list-anyURI-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17168NISTXML-SV-IV-list-anyURI-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17169NISTXML-SV-IV-list-anyURI-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17170NISTXML-SV-IV-list-anyURI-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17171NISTSchema-SV-IV-list-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="17172NISTXML-SV-IV-list-anyURI-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17173NISTXML-SV-IV-list-anyURI-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17174NISTXML-SV-IV-list-anyURI-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17175NISTXML-SV-IV-list-anyURI-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17176NISTXML-SV-IV-list-anyURI-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17177NISTSchema-SV-IV-list-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="17178NISTXML-SV-IV-list-anyURI-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17179NISTXML-SV-IV-list-anyURI-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17180NISTXML-SV-IV-list-anyURI-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17181NISTXML-SV-IV-list-anyURI-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17182NISTXML-SV-IV-list-anyURI-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17183NISTSchema-SV-IV-list-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="17184NISTXML-SV-IV-list-anyURI-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17185NISTXML-SV-IV-list-anyURI-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17186NISTXML-SV-IV-list-anyURI-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17187NISTXML-SV-IV-list-anyURI-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17188NISTXML-SV-IV-list-anyURI-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17189NISTSchema-SV-IV-list-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="17190NISTXML-SV-IV-list-anyURI-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17191NISTXML-SV-IV-list-anyURI-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17192NISTXML-SV-IV-list-anyURI-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17193NISTXML-SV-IV-list-anyURI-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17194NISTXML-SV-IV-list-anyURI-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17195NISTSchema-SV-IV-list-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="17196NISTXML-SV-IV-list-anyURI-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17197NISTXML-SV-IV-list-anyURI-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17198NISTXML-SV-IV-list-anyURI-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17199NISTXML-SV-IV-list-anyURI-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17200NISTXML-SV-IV-list-anyURI-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17201NISTSchema-SV-IV-list-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="17202NISTXML-SV-IV-list-anyURI-length-1-1 tokoe:valid" result="pass"/><test-case name="17203NISTXML-SV-IV-list-anyURI-length-1-2 tokoe:valid" result="pass"/><test-case name="17204NISTXML-SV-IV-list-anyURI-length-1-3 tokoe:valid" result="pass"/><test-case name="17205NISTXML-SV-IV-list-anyURI-length-1-4 tokoe:valid" result="pass"/><test-case name="17206NISTXML-SV-IV-list-anyURI-length-1-5 tokoe:valid" result="pass"/><test-case name="17207NISTSchema-SV-IV-list-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="17208NISTXML-SV-IV-list-anyURI-length-2-1 tokoe:valid" result="pass"/><test-case name="17209NISTXML-SV-IV-list-anyURI-length-2-2 tokoe:valid" result="pass"/><test-case name="17210NISTXML-SV-IV-list-anyURI-length-2-3 tokoe:valid" result="pass"/><test-case name="17211NISTXML-SV-IV-list-anyURI-length-2-4 tokoe:valid" result="pass"/><test-case name="17212NISTXML-SV-IV-list-anyURI-length-2-5 tokoe:valid" result="pass"/><test-case name="17213NISTSchema-SV-IV-list-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="17214NISTXML-SV-IV-list-anyURI-length-3-1 tokoe:valid" result="pass"/><test-case name="17215NISTXML-SV-IV-list-anyURI-length-3-2 tokoe:valid" result="pass"/><test-case name="17216NISTXML-SV-IV-list-anyURI-length-3-3 tokoe:valid" result="pass"/><test-case name="17217NISTXML-SV-IV-list-anyURI-length-3-4 tokoe:valid" result="pass"/><test-case name="17218NISTXML-SV-IV-list-anyURI-length-3-5 tokoe:valid" result="pass"/><test-case name="17219NISTSchema-SV-IV-list-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="17220NISTXML-SV-IV-list-anyURI-length-4-1 tokoe:valid" result="pass"/><test-case name="17221NISTXML-SV-IV-list-anyURI-length-4-2 tokoe:valid" result="pass"/><test-case name="17222NISTXML-SV-IV-list-anyURI-length-4-3 tokoe:valid" result="pass"/><test-case name="17223NISTXML-SV-IV-list-anyURI-length-4-4 tokoe:valid" result="pass"/><test-case name="17224NISTXML-SV-IV-list-anyURI-length-4-5 tokoe:valid" result="pass"/><test-case name="17225NISTSchema-SV-IV-list-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="17226NISTXML-SV-IV-list-anyURI-length-5-1 tokoe:valid" result="pass"/><test-case name="17227NISTXML-SV-IV-list-anyURI-length-5-2 tokoe:valid" result="pass"/><test-case name="17228NISTXML-SV-IV-list-anyURI-length-5-3 tokoe:valid" result="pass"/><test-case name="17229NISTXML-SV-IV-list-anyURI-length-5-4 tokoe:valid" result="pass"/><test-case name="17230NISTXML-SV-IV-list-anyURI-length-5-5 tokoe:valid" result="pass"/><test-case name="17231NISTSchema-SV-IV-list-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="17232NISTXML-SV-IV-list-anyURI-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17233NISTXML-SV-IV-list-anyURI-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17234NISTXML-SV-IV-list-anyURI-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17235NISTXML-SV-IV-list-anyURI-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17236NISTXML-SV-IV-list-anyURI-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17237NISTSchema-SV-IV-list-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="17238NISTXML-SV-IV-list-anyURI-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17239NISTXML-SV-IV-list-anyURI-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17240NISTXML-SV-IV-list-anyURI-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17241NISTXML-SV-IV-list-anyURI-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17242NISTXML-SV-IV-list-anyURI-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17243NISTSchema-SV-IV-list-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="17244NISTXML-SV-IV-list-anyURI-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17245NISTXML-SV-IV-list-anyURI-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17246NISTXML-SV-IV-list-anyURI-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17247NISTXML-SV-IV-list-anyURI-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17248NISTXML-SV-IV-list-anyURI-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17249NISTSchema-SV-IV-list-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="17250NISTXML-SV-IV-list-anyURI-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17251NISTXML-SV-IV-list-anyURI-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17252NISTXML-SV-IV-list-anyURI-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17253NISTXML-SV-IV-list-anyURI-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17254NISTXML-SV-IV-list-anyURI-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17255NISTSchema-SV-IV-list-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="17256NISTXML-SV-IV-list-anyURI-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17257NISTXML-SV-IV-list-anyURI-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17258NISTXML-SV-IV-list-anyURI-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17259NISTXML-SV-IV-list-anyURI-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17260NISTXML-SV-IV-list-anyURI-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17261NISTSchema-SV-IV-list-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="17262NISTXML-SV-IV-list-anyURI-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17263NISTXML-SV-IV-list-anyURI-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17264NISTXML-SV-IV-list-anyURI-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17265NISTXML-SV-IV-list-anyURI-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17266NISTXML-SV-IV-list-anyURI-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17267NISTSchema-SV-IV-list-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="17268NISTXML-SV-IV-list-anyURI-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17269NISTXML-SV-IV-list-anyURI-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17270NISTXML-SV-IV-list-anyURI-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17271NISTXML-SV-IV-list-anyURI-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17272NISTXML-SV-IV-list-anyURI-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17273NISTSchema-SV-IV-list-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="17274NISTXML-SV-IV-list-anyURI-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17275NISTXML-SV-IV-list-anyURI-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17276NISTXML-SV-IV-list-anyURI-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17277NISTXML-SV-IV-list-anyURI-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17278NISTXML-SV-IV-list-anyURI-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17279NISTSchema-SV-IV-list-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="17280NISTXML-SV-IV-list-anyURI-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17281NISTXML-SV-IV-list-anyURI-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17282NISTXML-SV-IV-list-anyURI-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17283NISTXML-SV-IV-list-anyURI-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17284NISTXML-SV-IV-list-anyURI-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17285NISTSchema-SV-IV-list-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="17286NISTXML-SV-IV-list-anyURI-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17287NISTXML-SV-IV-list-anyURI-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17288NISTXML-SV-IV-list-anyURI-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17289NISTXML-SV-IV-list-anyURI-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17290NISTXML-SV-IV-list-anyURI-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17291NISTSchema-SV-IV-list-anyURI-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17292NISTXML-SV-IV-list-anyURI-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17293NISTXML-SV-IV-list-anyURI-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17294NISTXML-SV-IV-list-anyURI-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17295NISTXML-SV-IV-list-anyURI-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17296NISTXML-SV-IV-list-anyURI-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17297NISTSchema-SV-IV-list-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="17298NISTXML-SV-IV-list-QName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17299NISTXML-SV-IV-list-QName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17300NISTXML-SV-IV-list-QName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17301NISTXML-SV-IV-list-QName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17302NISTXML-SV-IV-list-QName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17303NISTSchema-SV-IV-list-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="17304NISTXML-SV-IV-list-QName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17305NISTXML-SV-IV-list-QName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17306NISTXML-SV-IV-list-QName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17307NISTXML-SV-IV-list-QName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17308NISTXML-SV-IV-list-QName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17309NISTSchema-SV-IV-list-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="17310NISTXML-SV-IV-list-QName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17311NISTXML-SV-IV-list-QName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17312NISTXML-SV-IV-list-QName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17313NISTXML-SV-IV-list-QName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17314NISTXML-SV-IV-list-QName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17315NISTSchema-SV-IV-list-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="17316NISTXML-SV-IV-list-QName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17317NISTXML-SV-IV-list-QName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17318NISTXML-SV-IV-list-QName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17319NISTXML-SV-IV-list-QName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17320NISTXML-SV-IV-list-QName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17321NISTSchema-SV-IV-list-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="17322NISTXML-SV-IV-list-QName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17323NISTXML-SV-IV-list-QName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17324NISTXML-SV-IV-list-QName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17325NISTXML-SV-IV-list-QName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17326NISTXML-SV-IV-list-QName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17327NISTSchema-SV-IV-list-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="17328NISTXML-SV-IV-list-QName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17329NISTXML-SV-IV-list-QName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17330NISTXML-SV-IV-list-QName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17331NISTXML-SV-IV-list-QName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17332NISTXML-SV-IV-list-QName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17333NISTSchema-SV-IV-list-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="17334NISTXML-SV-IV-list-QName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17335NISTXML-SV-IV-list-QName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17336NISTXML-SV-IV-list-QName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17337NISTXML-SV-IV-list-QName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17338NISTXML-SV-IV-list-QName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17339NISTSchema-SV-IV-list-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="17340NISTXML-SV-IV-list-QName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17341NISTXML-SV-IV-list-QName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17342NISTXML-SV-IV-list-QName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17343NISTXML-SV-IV-list-QName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17344NISTXML-SV-IV-list-QName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17345NISTSchema-SV-IV-list-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="17346NISTXML-SV-IV-list-QName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17347NISTXML-SV-IV-list-QName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17348NISTXML-SV-IV-list-QName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17349NISTXML-SV-IV-list-QName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17350NISTXML-SV-IV-list-QName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17351NISTSchema-SV-IV-list-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="17352NISTXML-SV-IV-list-QName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17353NISTXML-SV-IV-list-QName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17354NISTXML-SV-IV-list-QName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17355NISTXML-SV-IV-list-QName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17356NISTXML-SV-IV-list-QName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17357NISTSchema-SV-IV-list-QName-length-1 tokoe:valid" result="pass"/><test-case name="17358NISTXML-SV-IV-list-QName-length-1-1 tokoe:valid" result="pass"/><test-case name="17359NISTXML-SV-IV-list-QName-length-1-2 tokoe:valid" result="pass"/><test-case name="17360NISTXML-SV-IV-list-QName-length-1-3 tokoe:valid" result="pass"/><test-case name="17361NISTXML-SV-IV-list-QName-length-1-4 tokoe:valid" result="pass"/><test-case name="17362NISTXML-SV-IV-list-QName-length-1-5 tokoe:valid" result="pass"/><test-case name="17363NISTSchema-SV-IV-list-QName-length-2 tokoe:valid" result="pass"/><test-case name="17364NISTXML-SV-IV-list-QName-length-2-1 tokoe:valid" result="pass"/><test-case name="17365NISTXML-SV-IV-list-QName-length-2-2 tokoe:valid" result="pass"/><test-case name="17366NISTXML-SV-IV-list-QName-length-2-3 tokoe:valid" result="pass"/><test-case name="17367NISTXML-SV-IV-list-QName-length-2-4 tokoe:valid" result="pass"/><test-case name="17368NISTXML-SV-IV-list-QName-length-2-5 tokoe:valid" result="pass"/><test-case name="17369NISTSchema-SV-IV-list-QName-length-3 tokoe:valid" result="pass"/><test-case name="17370NISTXML-SV-IV-list-QName-length-3-1 tokoe:valid" result="pass"/><test-case name="17371NISTXML-SV-IV-list-QName-length-3-2 tokoe:valid" result="pass"/><test-case name="17372NISTXML-SV-IV-list-QName-length-3-3 tokoe:valid" result="pass"/><test-case name="17373NISTXML-SV-IV-list-QName-length-3-4 tokoe:valid" result="pass"/><test-case name="17374NISTXML-SV-IV-list-QName-length-3-5 tokoe:valid" result="pass"/><test-case name="17375NISTSchema-SV-IV-list-QName-length-4 tokoe:valid" result="pass"/><test-case name="17376NISTXML-SV-IV-list-QName-length-4-1 tokoe:valid" result="pass"/><test-case name="17377NISTXML-SV-IV-list-QName-length-4-2 tokoe:valid" result="pass"/><test-case name="17378NISTXML-SV-IV-list-QName-length-4-3 tokoe:valid" result="pass"/><test-case name="17379NISTXML-SV-IV-list-QName-length-4-4 tokoe:valid" result="pass"/><test-case name="17380NISTXML-SV-IV-list-QName-length-4-5 tokoe:valid" result="pass"/><test-case name="17381NISTSchema-SV-IV-list-QName-length-5 tokoe:valid" result="pass"/><test-case name="17382NISTXML-SV-IV-list-QName-length-5-1 tokoe:valid" result="pass"/><test-case name="17383NISTXML-SV-IV-list-QName-length-5-2 tokoe:valid" result="pass"/><test-case name="17384NISTXML-SV-IV-list-QName-length-5-3 tokoe:valid" result="pass"/><test-case name="17385NISTXML-SV-IV-list-QName-length-5-4 tokoe:valid" result="pass"/><test-case name="17386NISTXML-SV-IV-list-QName-length-5-5 tokoe:valid" result="pass"/><test-case name="17387NISTSchema-SV-IV-list-QName-pattern-1 tokoe:valid" result="pass"/><test-case name="17388NISTXML-SV-IV-list-QName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17389NISTXML-SV-IV-list-QName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17390NISTXML-SV-IV-list-QName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17391NISTXML-SV-IV-list-QName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17392NISTXML-SV-IV-list-QName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17393NISTSchema-SV-IV-list-QName-pattern-2 tokoe:valid" result="pass"/><test-case name="17394NISTXML-SV-IV-list-QName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17395NISTXML-SV-IV-list-QName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17396NISTXML-SV-IV-list-QName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17397NISTXML-SV-IV-list-QName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17398NISTXML-SV-IV-list-QName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17399NISTSchema-SV-IV-list-QName-pattern-3 tokoe:valid" result="pass"/><test-case name="17400NISTXML-SV-IV-list-QName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17401NISTXML-SV-IV-list-QName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17402NISTXML-SV-IV-list-QName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17403NISTXML-SV-IV-list-QName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17404NISTXML-SV-IV-list-QName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17405NISTSchema-SV-IV-list-QName-pattern-4 tokoe:valid" result="pass"/><test-case name="17406NISTXML-SV-IV-list-QName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17407NISTXML-SV-IV-list-QName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17408NISTXML-SV-IV-list-QName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17409NISTXML-SV-IV-list-QName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17410NISTXML-SV-IV-list-QName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17411NISTSchema-SV-IV-list-QName-pattern-5 tokoe:valid" result="pass"/><test-case name="17412NISTXML-SV-IV-list-QName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17413NISTXML-SV-IV-list-QName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17414NISTXML-SV-IV-list-QName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17415NISTXML-SV-IV-list-QName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17416NISTXML-SV-IV-list-QName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17417NISTSchema-SV-IV-list-QName-enumeration-1 tokoe:valid" result="pass"/><test-case name="17418NISTXML-SV-IV-list-QName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17419NISTXML-SV-IV-list-QName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17420NISTXML-SV-IV-list-QName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17421NISTXML-SV-IV-list-QName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17422NISTXML-SV-IV-list-QName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17423NISTSchema-SV-IV-list-QName-enumeration-2 tokoe:valid" result="pass"/><test-case name="17424NISTXML-SV-IV-list-QName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17425NISTXML-SV-IV-list-QName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17426NISTXML-SV-IV-list-QName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17427NISTXML-SV-IV-list-QName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17428NISTXML-SV-IV-list-QName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17429NISTSchema-SV-IV-list-QName-enumeration-3 tokoe:valid" result="pass"/><test-case name="17430NISTXML-SV-IV-list-QName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17431NISTXML-SV-IV-list-QName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17432NISTXML-SV-IV-list-QName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17433NISTXML-SV-IV-list-QName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17434NISTXML-SV-IV-list-QName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17435NISTSchema-SV-IV-list-QName-enumeration-4 tokoe:valid" result="pass"/><test-case name="17436NISTXML-SV-IV-list-QName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17437NISTXML-SV-IV-list-QName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17438NISTXML-SV-IV-list-QName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17439NISTXML-SV-IV-list-QName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17440NISTXML-SV-IV-list-QName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17441NISTSchema-SV-IV-list-QName-enumeration-5 tokoe:valid" result="pass"/><test-case name="17442NISTXML-SV-IV-list-QName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17443NISTXML-SV-IV-list-QName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17444NISTXML-SV-IV-list-QName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17445NISTXML-SV-IV-list-QName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17446NISTXML-SV-IV-list-QName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17447NISTSchema-SV-IV-list-QName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17448NISTXML-SV-IV-list-QName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17449NISTXML-SV-IV-list-QName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17450NISTXML-SV-IV-list-QName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17451NISTXML-SV-IV-list-QName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17452NISTXML-SV-IV-list-QName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17453NISTSchema-SV-IV-list-boolean-maxLength-1 tokoe:valid" result="pass"/><test-case name="17454NISTXML-SV-IV-list-boolean-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17455NISTXML-SV-IV-list-boolean-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17456NISTXML-SV-IV-list-boolean-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17457NISTXML-SV-IV-list-boolean-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17458NISTXML-SV-IV-list-boolean-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17459NISTSchema-SV-IV-list-boolean-maxLength-2 tokoe:valid" result="pass"/><test-case name="17460NISTXML-SV-IV-list-boolean-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17461NISTXML-SV-IV-list-boolean-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17462NISTXML-SV-IV-list-boolean-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17463NISTXML-SV-IV-list-boolean-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17464NISTXML-SV-IV-list-boolean-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17465NISTSchema-SV-IV-list-boolean-maxLength-3 tokoe:valid" result="pass"/><test-case name="17466NISTXML-SV-IV-list-boolean-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17467NISTXML-SV-IV-list-boolean-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17468NISTXML-SV-IV-list-boolean-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17469NISTXML-SV-IV-list-boolean-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17470NISTXML-SV-IV-list-boolean-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17471NISTSchema-SV-IV-list-boolean-maxLength-4 tokoe:valid" result="pass"/><test-case name="17472NISTXML-SV-IV-list-boolean-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17473NISTXML-SV-IV-list-boolean-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17474NISTXML-SV-IV-list-boolean-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17475NISTXML-SV-IV-list-boolean-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17476NISTXML-SV-IV-list-boolean-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17477NISTSchema-SV-IV-list-boolean-maxLength-5 tokoe:valid" result="pass"/><test-case name="17478NISTXML-SV-IV-list-boolean-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17479NISTXML-SV-IV-list-boolean-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17480NISTXML-SV-IV-list-boolean-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17481NISTXML-SV-IV-list-boolean-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17482NISTXML-SV-IV-list-boolean-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17483NISTSchema-SV-IV-list-boolean-minLength-1 tokoe:valid" result="pass"/><test-case name="17484NISTXML-SV-IV-list-boolean-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17485NISTXML-SV-IV-list-boolean-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17486NISTXML-SV-IV-list-boolean-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17487NISTXML-SV-IV-list-boolean-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17488NISTXML-SV-IV-list-boolean-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17489NISTSchema-SV-IV-list-boolean-minLength-2 tokoe:valid" result="pass"/><test-case name="17490NISTXML-SV-IV-list-boolean-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17491NISTXML-SV-IV-list-boolean-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17492NISTXML-SV-IV-list-boolean-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17493NISTXML-SV-IV-list-boolean-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17494NISTXML-SV-IV-list-boolean-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17495NISTSchema-SV-IV-list-boolean-minLength-3 tokoe:valid" result="pass"/><test-case name="17496NISTXML-SV-IV-list-boolean-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17497NISTXML-SV-IV-list-boolean-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17498NISTXML-SV-IV-list-boolean-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17499NISTXML-SV-IV-list-boolean-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17500NISTXML-SV-IV-list-boolean-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17501NISTSchema-SV-IV-list-boolean-minLength-4 tokoe:valid" result="pass"/><test-case name="17502NISTXML-SV-IV-list-boolean-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17503NISTXML-SV-IV-list-boolean-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17504NISTXML-SV-IV-list-boolean-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17505NISTXML-SV-IV-list-boolean-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17506NISTXML-SV-IV-list-boolean-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17507NISTSchema-SV-IV-list-boolean-minLength-5 tokoe:valid" result="pass"/><test-case name="17508NISTXML-SV-IV-list-boolean-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17509NISTXML-SV-IV-list-boolean-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17510NISTXML-SV-IV-list-boolean-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17511NISTXML-SV-IV-list-boolean-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17512NISTXML-SV-IV-list-boolean-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17513NISTSchema-SV-IV-list-boolean-length-1 tokoe:valid" result="pass"/><test-case name="17514NISTXML-SV-IV-list-boolean-length-1-1 tokoe:valid" result="pass"/><test-case name="17515NISTXML-SV-IV-list-boolean-length-1-2 tokoe:valid" result="pass"/><test-case name="17516NISTXML-SV-IV-list-boolean-length-1-3 tokoe:valid" result="pass"/><test-case name="17517NISTXML-SV-IV-list-boolean-length-1-4 tokoe:valid" result="pass"/><test-case name="17518NISTXML-SV-IV-list-boolean-length-1-5 tokoe:valid" result="pass"/><test-case name="17519NISTSchema-SV-IV-list-boolean-length-2 tokoe:valid" result="pass"/><test-case name="17520NISTXML-SV-IV-list-boolean-length-2-1 tokoe:valid" result="pass"/><test-case name="17521NISTXML-SV-IV-list-boolean-length-2-2 tokoe:valid" result="pass"/><test-case name="17522NISTXML-SV-IV-list-boolean-length-2-3 tokoe:valid" result="pass"/><test-case name="17523NISTXML-SV-IV-list-boolean-length-2-4 tokoe:valid" result="pass"/><test-case name="17524NISTXML-SV-IV-list-boolean-length-2-5 tokoe:valid" result="pass"/><test-case name="17525NISTSchema-SV-IV-list-boolean-length-3 tokoe:valid" result="pass"/><test-case name="17526NISTXML-SV-IV-list-boolean-length-3-1 tokoe:valid" result="pass"/><test-case name="17527NISTXML-SV-IV-list-boolean-length-3-2 tokoe:valid" result="pass"/><test-case name="17528NISTXML-SV-IV-list-boolean-length-3-3 tokoe:valid" result="pass"/><test-case name="17529NISTXML-SV-IV-list-boolean-length-3-4 tokoe:valid" result="pass"/><test-case name="17530NISTXML-SV-IV-list-boolean-length-3-5 tokoe:valid" result="pass"/><test-case name="17531NISTSchema-SV-IV-list-boolean-length-4 tokoe:valid" result="pass"/><test-case name="17532NISTXML-SV-IV-list-boolean-length-4-1 tokoe:valid" result="pass"/><test-case name="17533NISTXML-SV-IV-list-boolean-length-4-2 tokoe:valid" result="pass"/><test-case name="17534NISTXML-SV-IV-list-boolean-length-4-3 tokoe:valid" result="pass"/><test-case name="17535NISTXML-SV-IV-list-boolean-length-4-4 tokoe:valid" result="pass"/><test-case name="17536NISTXML-SV-IV-list-boolean-length-4-5 tokoe:valid" result="pass"/><test-case name="17537NISTSchema-SV-IV-list-boolean-length-5 tokoe:valid" result="pass"/><test-case name="17538NISTXML-SV-IV-list-boolean-length-5-1 tokoe:valid" result="pass"/><test-case name="17539NISTXML-SV-IV-list-boolean-length-5-2 tokoe:valid" result="pass"/><test-case name="17540NISTXML-SV-IV-list-boolean-length-5-3 tokoe:valid" result="pass"/><test-case name="17541NISTXML-SV-IV-list-boolean-length-5-4 tokoe:valid" result="pass"/><test-case name="17542NISTXML-SV-IV-list-boolean-length-5-5 tokoe:valid" result="pass"/><test-case name="17543NISTSchema-SV-IV-list-boolean-pattern-1 tokoe:valid" result="pass"/><test-case name="17544NISTXML-SV-IV-list-boolean-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17545NISTXML-SV-IV-list-boolean-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17546NISTXML-SV-IV-list-boolean-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17547NISTXML-SV-IV-list-boolean-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17548NISTXML-SV-IV-list-boolean-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17549NISTSchema-SV-IV-list-boolean-pattern-2 tokoe:valid" result="pass"/><test-case name="17550NISTXML-SV-IV-list-boolean-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17551NISTXML-SV-IV-list-boolean-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17552NISTXML-SV-IV-list-boolean-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17553NISTXML-SV-IV-list-boolean-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17554NISTXML-SV-IV-list-boolean-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17555NISTSchema-SV-IV-list-boolean-pattern-3 tokoe:valid" result="pass"/><test-case name="17556NISTXML-SV-IV-list-boolean-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17557NISTXML-SV-IV-list-boolean-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17558NISTXML-SV-IV-list-boolean-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17559NISTXML-SV-IV-list-boolean-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17560NISTXML-SV-IV-list-boolean-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17561NISTSchema-SV-IV-list-boolean-pattern-4 tokoe:valid" result="pass"/><test-case name="17562NISTXML-SV-IV-list-boolean-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17563NISTXML-SV-IV-list-boolean-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17564NISTXML-SV-IV-list-boolean-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17565NISTXML-SV-IV-list-boolean-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17566NISTXML-SV-IV-list-boolean-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17567NISTSchema-SV-IV-list-boolean-pattern-5 tokoe:valid" result="pass"/><test-case name="17568NISTXML-SV-IV-list-boolean-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17569NISTXML-SV-IV-list-boolean-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17570NISTXML-SV-IV-list-boolean-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17571NISTXML-SV-IV-list-boolean-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17572NISTXML-SV-IV-list-boolean-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17573NISTSchema-SV-IV-list-boolean-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17574NISTXML-SV-IV-list-boolean-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17575NISTXML-SV-IV-list-boolean-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17576NISTXML-SV-IV-list-boolean-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17577NISTXML-SV-IV-list-boolean-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17578NISTXML-SV-IV-list-boolean-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17579NISTSchema-SV-IV-list-base64Binary-maxLength-1 tokoe:valid" result="pass"/><test-case name="17580NISTXML-SV-IV-list-base64Binary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17581NISTXML-SV-IV-list-base64Binary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17582NISTXML-SV-IV-list-base64Binary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17583NISTXML-SV-IV-list-base64Binary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17584NISTXML-SV-IV-list-base64Binary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17585NISTSchema-SV-IV-list-base64Binary-maxLength-2 tokoe:valid" result="pass"/><test-case name="17586NISTXML-SV-IV-list-base64Binary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17587NISTXML-SV-IV-list-base64Binary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17588NISTXML-SV-IV-list-base64Binary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17589NISTXML-SV-IV-list-base64Binary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17590NISTXML-SV-IV-list-base64Binary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17591NISTSchema-SV-IV-list-base64Binary-maxLength-3 tokoe:valid" result="pass"/><test-case name="17592NISTXML-SV-IV-list-base64Binary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17593NISTXML-SV-IV-list-base64Binary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17594NISTXML-SV-IV-list-base64Binary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17595NISTXML-SV-IV-list-base64Binary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17596NISTXML-SV-IV-list-base64Binary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17597NISTSchema-SV-IV-list-base64Binary-maxLength-4 tokoe:valid" result="pass"/><test-case name="17598NISTXML-SV-IV-list-base64Binary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17599NISTXML-SV-IV-list-base64Binary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17600NISTXML-SV-IV-list-base64Binary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17601NISTXML-SV-IV-list-base64Binary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17602NISTXML-SV-IV-list-base64Binary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17603NISTSchema-SV-IV-list-base64Binary-maxLength-5 tokoe:valid" result="pass"/><test-case name="17604NISTXML-SV-IV-list-base64Binary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17605NISTXML-SV-IV-list-base64Binary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17606NISTXML-SV-IV-list-base64Binary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17607NISTXML-SV-IV-list-base64Binary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17608NISTXML-SV-IV-list-base64Binary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17609NISTSchema-SV-IV-list-base64Binary-minLength-1 tokoe:valid" result="pass"/><test-case name="17610NISTXML-SV-IV-list-base64Binary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17611NISTXML-SV-IV-list-base64Binary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17612NISTXML-SV-IV-list-base64Binary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17613NISTXML-SV-IV-list-base64Binary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17614NISTXML-SV-IV-list-base64Binary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17615NISTSchema-SV-IV-list-base64Binary-minLength-2 tokoe:valid" result="pass"/><test-case name="17616NISTXML-SV-IV-list-base64Binary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17617NISTXML-SV-IV-list-base64Binary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17618NISTXML-SV-IV-list-base64Binary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17619NISTXML-SV-IV-list-base64Binary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17620NISTXML-SV-IV-list-base64Binary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17621NISTSchema-SV-IV-list-base64Binary-minLength-3 tokoe:valid" result="pass"/><test-case name="17622NISTXML-SV-IV-list-base64Binary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17623NISTXML-SV-IV-list-base64Binary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17624NISTXML-SV-IV-list-base64Binary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17625NISTXML-SV-IV-list-base64Binary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17626NISTXML-SV-IV-list-base64Binary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17627NISTSchema-SV-IV-list-base64Binary-minLength-4 tokoe:valid" result="pass"/><test-case name="17628NISTXML-SV-IV-list-base64Binary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17629NISTXML-SV-IV-list-base64Binary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17630NISTXML-SV-IV-list-base64Binary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17631NISTXML-SV-IV-list-base64Binary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17632NISTXML-SV-IV-list-base64Binary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17633NISTSchema-SV-IV-list-base64Binary-minLength-5 tokoe:valid" result="pass"/><test-case name="17634NISTXML-SV-IV-list-base64Binary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17635NISTXML-SV-IV-list-base64Binary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17636NISTXML-SV-IV-list-base64Binary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17637NISTXML-SV-IV-list-base64Binary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17638NISTXML-SV-IV-list-base64Binary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17639NISTSchema-SV-IV-list-base64Binary-length-1 tokoe:valid" result="pass"/><test-case name="17640NISTXML-SV-IV-list-base64Binary-length-1-1 tokoe:valid" result="pass"/><test-case name="17641NISTXML-SV-IV-list-base64Binary-length-1-2 tokoe:valid" result="pass"/><test-case name="17642NISTXML-SV-IV-list-base64Binary-length-1-3 tokoe:valid" result="pass"/><test-case name="17643NISTXML-SV-IV-list-base64Binary-length-1-4 tokoe:valid" result="pass"/><test-case name="17644NISTXML-SV-IV-list-base64Binary-length-1-5 tokoe:valid" result="pass"/><test-case name="17645NISTSchema-SV-IV-list-base64Binary-length-2 tokoe:valid" result="pass"/><test-case name="17646NISTXML-SV-IV-list-base64Binary-length-2-1 tokoe:valid" result="pass"/><test-case name="17647NISTXML-SV-IV-list-base64Binary-length-2-2 tokoe:valid" result="pass"/><test-case name="17648NISTXML-SV-IV-list-base64Binary-length-2-3 tokoe:valid" result="pass"/><test-case name="17649NISTXML-SV-IV-list-base64Binary-length-2-4 tokoe:valid" result="pass"/><test-case name="17650NISTXML-SV-IV-list-base64Binary-length-2-5 tokoe:valid" result="pass"/><test-case name="17651NISTSchema-SV-IV-list-base64Binary-length-3 tokoe:valid" result="pass"/><test-case name="17652NISTXML-SV-IV-list-base64Binary-length-3-1 tokoe:valid" result="pass"/><test-case name="17653NISTXML-SV-IV-list-base64Binary-length-3-2 tokoe:valid" result="pass"/><test-case name="17654NISTXML-SV-IV-list-base64Binary-length-3-3 tokoe:valid" result="pass"/><test-case name="17655NISTXML-SV-IV-list-base64Binary-length-3-4 tokoe:valid" result="pass"/><test-case name="17656NISTXML-SV-IV-list-base64Binary-length-3-5 tokoe:valid" result="pass"/><test-case name="17657NISTSchema-SV-IV-list-base64Binary-length-4 tokoe:valid" result="pass"/><test-case name="17658NISTXML-SV-IV-list-base64Binary-length-4-1 tokoe:valid" result="pass"/><test-case name="17659NISTXML-SV-IV-list-base64Binary-length-4-2 tokoe:valid" result="pass"/><test-case name="17660NISTXML-SV-IV-list-base64Binary-length-4-3 tokoe:valid" result="pass"/><test-case name="17661NISTXML-SV-IV-list-base64Binary-length-4-4 tokoe:valid" result="pass"/><test-case name="17662NISTXML-SV-IV-list-base64Binary-length-4-5 tokoe:valid" result="pass"/><test-case name="17663NISTSchema-SV-IV-list-base64Binary-length-5 tokoe:valid" result="pass"/><test-case name="17664NISTXML-SV-IV-list-base64Binary-length-5-1 tokoe:valid" result="pass"/><test-case name="17665NISTXML-SV-IV-list-base64Binary-length-5-2 tokoe:valid" result="pass"/><test-case name="17666NISTXML-SV-IV-list-base64Binary-length-5-3 tokoe:valid" result="pass"/><test-case name="17667NISTXML-SV-IV-list-base64Binary-length-5-4 tokoe:valid" result="pass"/><test-case name="17668NISTXML-SV-IV-list-base64Binary-length-5-5 tokoe:valid" result="pass"/><test-case name="17669NISTSchema-SV-IV-list-base64Binary-pattern-1 tokoe:valid" result="pass"/><test-case name="17670NISTXML-SV-IV-list-base64Binary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17671NISTXML-SV-IV-list-base64Binary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17672NISTXML-SV-IV-list-base64Binary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17673NISTXML-SV-IV-list-base64Binary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17674NISTXML-SV-IV-list-base64Binary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17675NISTSchema-SV-IV-list-base64Binary-pattern-2 tokoe:valid" result="pass"/><test-case name="17676NISTXML-SV-IV-list-base64Binary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17677NISTXML-SV-IV-list-base64Binary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17678NISTXML-SV-IV-list-base64Binary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17679NISTXML-SV-IV-list-base64Binary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17680NISTXML-SV-IV-list-base64Binary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17681NISTSchema-SV-IV-list-base64Binary-pattern-3 tokoe:valid" result="pass"/><test-case name="17682NISTXML-SV-IV-list-base64Binary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17683NISTXML-SV-IV-list-base64Binary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17684NISTXML-SV-IV-list-base64Binary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17685NISTXML-SV-IV-list-base64Binary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17686NISTXML-SV-IV-list-base64Binary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17687NISTSchema-SV-IV-list-base64Binary-pattern-4 tokoe:valid" result="pass"/><test-case name="17688NISTXML-SV-IV-list-base64Binary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17689NISTXML-SV-IV-list-base64Binary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17690NISTXML-SV-IV-list-base64Binary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17691NISTXML-SV-IV-list-base64Binary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17692NISTXML-SV-IV-list-base64Binary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17693NISTSchema-SV-IV-list-base64Binary-pattern-5 tokoe:valid" result="pass"/><test-case name="17694NISTXML-SV-IV-list-base64Binary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17695NISTXML-SV-IV-list-base64Binary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17696NISTXML-SV-IV-list-base64Binary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17697NISTXML-SV-IV-list-base64Binary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17698NISTXML-SV-IV-list-base64Binary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17699NISTSchema-SV-IV-list-base64Binary-enumeration-1 tokoe:valid" result="pass"/><test-case name="17700NISTXML-SV-IV-list-base64Binary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17701NISTXML-SV-IV-list-base64Binary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17702NISTXML-SV-IV-list-base64Binary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17703NISTXML-SV-IV-list-base64Binary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17704NISTXML-SV-IV-list-base64Binary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17705NISTSchema-SV-IV-list-base64Binary-enumeration-2 tokoe:valid" result="pass"/><test-case name="17706NISTXML-SV-IV-list-base64Binary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17707NISTXML-SV-IV-list-base64Binary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17708NISTXML-SV-IV-list-base64Binary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17709NISTXML-SV-IV-list-base64Binary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17710NISTXML-SV-IV-list-base64Binary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17711NISTSchema-SV-IV-list-base64Binary-enumeration-3 tokoe:valid" result="pass"/><test-case name="17712NISTXML-SV-IV-list-base64Binary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17713NISTXML-SV-IV-list-base64Binary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17714NISTXML-SV-IV-list-base64Binary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17715NISTXML-SV-IV-list-base64Binary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17716NISTXML-SV-IV-list-base64Binary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17717NISTSchema-SV-IV-list-base64Binary-enumeration-4 tokoe:valid" result="pass"/><test-case name="17718NISTXML-SV-IV-list-base64Binary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17719NISTXML-SV-IV-list-base64Binary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17720NISTXML-SV-IV-list-base64Binary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17721NISTXML-SV-IV-list-base64Binary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17722NISTXML-SV-IV-list-base64Binary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17723NISTSchema-SV-IV-list-base64Binary-enumeration-5 tokoe:valid" result="pass"/><test-case name="17724NISTXML-SV-IV-list-base64Binary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17725NISTXML-SV-IV-list-base64Binary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17726NISTXML-SV-IV-list-base64Binary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17727NISTXML-SV-IV-list-base64Binary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17728NISTXML-SV-IV-list-base64Binary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17729NISTSchema-SV-IV-list-base64Binary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17730NISTXML-SV-IV-list-base64Binary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17731NISTXML-SV-IV-list-base64Binary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17732NISTXML-SV-IV-list-base64Binary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17733NISTXML-SV-IV-list-base64Binary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17734NISTXML-SV-IV-list-base64Binary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17735NISTSchema-SV-IV-list-hexBinary-maxLength-1 tokoe:valid" result="pass"/><test-case name="17736NISTXML-SV-IV-list-hexBinary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17737NISTXML-SV-IV-list-hexBinary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17738NISTXML-SV-IV-list-hexBinary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17739NISTXML-SV-IV-list-hexBinary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17740NISTXML-SV-IV-list-hexBinary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17741NISTSchema-SV-IV-list-hexBinary-maxLength-2 tokoe:valid" result="pass"/><test-case name="17742NISTXML-SV-IV-list-hexBinary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17743NISTXML-SV-IV-list-hexBinary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17744NISTXML-SV-IV-list-hexBinary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17745NISTXML-SV-IV-list-hexBinary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17746NISTXML-SV-IV-list-hexBinary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17747NISTSchema-SV-IV-list-hexBinary-maxLength-3 tokoe:valid" result="pass"/><test-case name="17748NISTXML-SV-IV-list-hexBinary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17749NISTXML-SV-IV-list-hexBinary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17750NISTXML-SV-IV-list-hexBinary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17751NISTXML-SV-IV-list-hexBinary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17752NISTXML-SV-IV-list-hexBinary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17753NISTSchema-SV-IV-list-hexBinary-maxLength-4 tokoe:valid" result="pass"/><test-case name="17754NISTXML-SV-IV-list-hexBinary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17755NISTXML-SV-IV-list-hexBinary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17756NISTXML-SV-IV-list-hexBinary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17757NISTXML-SV-IV-list-hexBinary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17758NISTXML-SV-IV-list-hexBinary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17759NISTSchema-SV-IV-list-hexBinary-maxLength-5 tokoe:valid" result="pass"/><test-case name="17760NISTXML-SV-IV-list-hexBinary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17761NISTXML-SV-IV-list-hexBinary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17762NISTXML-SV-IV-list-hexBinary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17763NISTXML-SV-IV-list-hexBinary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17764NISTXML-SV-IV-list-hexBinary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17765NISTSchema-SV-IV-list-hexBinary-minLength-1 tokoe:valid" result="pass"/><test-case name="17766NISTXML-SV-IV-list-hexBinary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17767NISTXML-SV-IV-list-hexBinary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17768NISTXML-SV-IV-list-hexBinary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17769NISTXML-SV-IV-list-hexBinary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17770NISTXML-SV-IV-list-hexBinary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17771NISTSchema-SV-IV-list-hexBinary-minLength-2 tokoe:valid" result="pass"/><test-case name="17772NISTXML-SV-IV-list-hexBinary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17773NISTXML-SV-IV-list-hexBinary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17774NISTXML-SV-IV-list-hexBinary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17775NISTXML-SV-IV-list-hexBinary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17776NISTXML-SV-IV-list-hexBinary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17777NISTSchema-SV-IV-list-hexBinary-minLength-3 tokoe:valid" result="pass"/><test-case name="17778NISTXML-SV-IV-list-hexBinary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17779NISTXML-SV-IV-list-hexBinary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17780NISTXML-SV-IV-list-hexBinary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17781NISTXML-SV-IV-list-hexBinary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17782NISTXML-SV-IV-list-hexBinary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17783NISTSchema-SV-IV-list-hexBinary-minLength-4 tokoe:valid" result="pass"/><test-case name="17784NISTXML-SV-IV-list-hexBinary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17785NISTXML-SV-IV-list-hexBinary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17786NISTXML-SV-IV-list-hexBinary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17787NISTXML-SV-IV-list-hexBinary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17788NISTXML-SV-IV-list-hexBinary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17789NISTSchema-SV-IV-list-hexBinary-minLength-5 tokoe:valid" result="pass"/><test-case name="17790NISTXML-SV-IV-list-hexBinary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17791NISTXML-SV-IV-list-hexBinary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17792NISTXML-SV-IV-list-hexBinary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17793NISTXML-SV-IV-list-hexBinary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17794NISTXML-SV-IV-list-hexBinary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17795NISTSchema-SV-IV-list-hexBinary-length-1 tokoe:valid" result="pass"/><test-case name="17796NISTXML-SV-IV-list-hexBinary-length-1-1 tokoe:valid" result="pass"/><test-case name="17797NISTXML-SV-IV-list-hexBinary-length-1-2 tokoe:valid" result="pass"/><test-case name="17798NISTXML-SV-IV-list-hexBinary-length-1-3 tokoe:valid" result="pass"/><test-case name="17799NISTXML-SV-IV-list-hexBinary-length-1-4 tokoe:valid" result="pass"/><test-case name="17800NISTXML-SV-IV-list-hexBinary-length-1-5 tokoe:valid" result="pass"/><test-case name="17801NISTSchema-SV-IV-list-hexBinary-length-2 tokoe:valid" result="pass"/><test-case name="17802NISTXML-SV-IV-list-hexBinary-length-2-1 tokoe:valid" result="pass"/><test-case name="17803NISTXML-SV-IV-list-hexBinary-length-2-2 tokoe:valid" result="pass"/><test-case name="17804NISTXML-SV-IV-list-hexBinary-length-2-3 tokoe:valid" result="pass"/><test-case name="17805NISTXML-SV-IV-list-hexBinary-length-2-4 tokoe:valid" result="pass"/><test-case name="17806NISTXML-SV-IV-list-hexBinary-length-2-5 tokoe:valid" result="pass"/><test-case name="17807NISTSchema-SV-IV-list-hexBinary-length-3 tokoe:valid" result="pass"/><test-case name="17808NISTXML-SV-IV-list-hexBinary-length-3-1 tokoe:valid" result="pass"/><test-case name="17809NISTXML-SV-IV-list-hexBinary-length-3-2 tokoe:valid" result="pass"/><test-case name="17810NISTXML-SV-IV-list-hexBinary-length-3-3 tokoe:valid" result="pass"/><test-case name="17811NISTXML-SV-IV-list-hexBinary-length-3-4 tokoe:valid" result="pass"/><test-case name="17812NISTXML-SV-IV-list-hexBinary-length-3-5 tokoe:valid" result="pass"/><test-case name="17813NISTSchema-SV-IV-list-hexBinary-length-4 tokoe:valid" result="pass"/><test-case name="17814NISTXML-SV-IV-list-hexBinary-length-4-1 tokoe:valid" result="pass"/><test-case name="17815NISTXML-SV-IV-list-hexBinary-length-4-2 tokoe:valid" result="pass"/><test-case name="17816NISTXML-SV-IV-list-hexBinary-length-4-3 tokoe:valid" result="pass"/><test-case name="17817NISTXML-SV-IV-list-hexBinary-length-4-4 tokoe:valid" result="pass"/><test-case name="17818NISTXML-SV-IV-list-hexBinary-length-4-5 tokoe:valid" result="pass"/><test-case name="17819NISTSchema-SV-IV-list-hexBinary-length-5 tokoe:valid" result="pass"/><test-case name="17820NISTXML-SV-IV-list-hexBinary-length-5-1 tokoe:valid" result="pass"/><test-case name="17821NISTXML-SV-IV-list-hexBinary-length-5-2 tokoe:valid" result="pass"/><test-case name="17822NISTXML-SV-IV-list-hexBinary-length-5-3 tokoe:valid" result="pass"/><test-case name="17823NISTXML-SV-IV-list-hexBinary-length-5-4 tokoe:valid" result="pass"/><test-case name="17824NISTXML-SV-IV-list-hexBinary-length-5-5 tokoe:valid" result="pass"/><test-case name="17825NISTSchema-SV-IV-list-hexBinary-pattern-1 tokoe:valid" result="pass"/><test-case name="17826NISTXML-SV-IV-list-hexBinary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17827NISTXML-SV-IV-list-hexBinary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17828NISTXML-SV-IV-list-hexBinary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17829NISTXML-SV-IV-list-hexBinary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17830NISTXML-SV-IV-list-hexBinary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17831NISTSchema-SV-IV-list-hexBinary-pattern-2 tokoe:valid" result="pass"/><test-case name="17832NISTXML-SV-IV-list-hexBinary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17833NISTXML-SV-IV-list-hexBinary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17834NISTXML-SV-IV-list-hexBinary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17835NISTXML-SV-IV-list-hexBinary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17836NISTXML-SV-IV-list-hexBinary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17837NISTSchema-SV-IV-list-hexBinary-pattern-3 tokoe:valid" result="pass"/><test-case name="17838NISTXML-SV-IV-list-hexBinary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17839NISTXML-SV-IV-list-hexBinary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17840NISTXML-SV-IV-list-hexBinary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17841NISTXML-SV-IV-list-hexBinary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17842NISTXML-SV-IV-list-hexBinary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17843NISTSchema-SV-IV-list-hexBinary-pattern-4 tokoe:valid" result="pass"/><test-case name="17844NISTXML-SV-IV-list-hexBinary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17845NISTXML-SV-IV-list-hexBinary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17846NISTXML-SV-IV-list-hexBinary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17847NISTXML-SV-IV-list-hexBinary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17848NISTXML-SV-IV-list-hexBinary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17849NISTSchema-SV-IV-list-hexBinary-pattern-5 tokoe:valid" result="pass"/><test-case name="17850NISTXML-SV-IV-list-hexBinary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17851NISTXML-SV-IV-list-hexBinary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17852NISTXML-SV-IV-list-hexBinary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17853NISTXML-SV-IV-list-hexBinary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17854NISTXML-SV-IV-list-hexBinary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17855NISTSchema-SV-IV-list-hexBinary-enumeration-1 tokoe:valid" result="pass"/><test-case name="17856NISTXML-SV-IV-list-hexBinary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17857NISTXML-SV-IV-list-hexBinary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17858NISTXML-SV-IV-list-hexBinary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17859NISTXML-SV-IV-list-hexBinary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17860NISTXML-SV-IV-list-hexBinary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17861NISTSchema-SV-IV-list-hexBinary-enumeration-2 tokoe:valid" result="pass"/><test-case name="17862NISTXML-SV-IV-list-hexBinary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17863NISTXML-SV-IV-list-hexBinary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17864NISTXML-SV-IV-list-hexBinary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17865NISTXML-SV-IV-list-hexBinary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17866NISTXML-SV-IV-list-hexBinary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17867NISTSchema-SV-IV-list-hexBinary-enumeration-3 tokoe:valid" result="pass"/><test-case name="17868NISTXML-SV-IV-list-hexBinary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17869NISTXML-SV-IV-list-hexBinary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17870NISTXML-SV-IV-list-hexBinary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17871NISTXML-SV-IV-list-hexBinary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17872NISTXML-SV-IV-list-hexBinary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17873NISTSchema-SV-IV-list-hexBinary-enumeration-4 tokoe:valid" result="pass"/><test-case name="17874NISTXML-SV-IV-list-hexBinary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17875NISTXML-SV-IV-list-hexBinary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17876NISTXML-SV-IV-list-hexBinary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17877NISTXML-SV-IV-list-hexBinary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17878NISTXML-SV-IV-list-hexBinary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17879NISTSchema-SV-IV-list-hexBinary-enumeration-5 tokoe:valid" result="pass"/><test-case name="17880NISTXML-SV-IV-list-hexBinary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17881NISTXML-SV-IV-list-hexBinary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17882NISTXML-SV-IV-list-hexBinary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17883NISTXML-SV-IV-list-hexBinary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17884NISTXML-SV-IV-list-hexBinary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17885NISTSchema-SV-IV-list-hexBinary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17886NISTXML-SV-IV-list-hexBinary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17887NISTXML-SV-IV-list-hexBinary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17888NISTXML-SV-IV-list-hexBinary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17889NISTXML-SV-IV-list-hexBinary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17890NISTXML-SV-IV-list-hexBinary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17891NISTSchema-SV-II-list-decimal-maxLength-1 tokoe:valid" result="pass"/><test-case name="17892NISTXML-SV-II-list-decimal-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="17893NISTXML-SV-II-list-decimal-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="17894NISTXML-SV-II-list-decimal-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="17895NISTXML-SV-II-list-decimal-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="17896NISTXML-SV-II-list-decimal-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="17897NISTSchema-SV-II-list-decimal-maxLength-2 tokoe:valid" result="pass"/><test-case name="17898NISTXML-SV-II-list-decimal-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="17899NISTXML-SV-II-list-decimal-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="17900NISTXML-SV-II-list-decimal-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="17901NISTXML-SV-II-list-decimal-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="17902NISTXML-SV-II-list-decimal-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="17903NISTSchema-SV-II-list-decimal-maxLength-3 tokoe:valid" result="pass"/><test-case name="17904NISTXML-SV-II-list-decimal-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="17905NISTXML-SV-II-list-decimal-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="17906NISTXML-SV-II-list-decimal-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="17907NISTXML-SV-II-list-decimal-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="17908NISTXML-SV-II-list-decimal-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="17909NISTSchema-SV-II-list-decimal-maxLength-4 tokoe:valid" result="pass"/><test-case name="17910NISTXML-SV-II-list-decimal-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="17911NISTXML-SV-II-list-decimal-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="17912NISTXML-SV-II-list-decimal-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="17913NISTXML-SV-II-list-decimal-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="17914NISTXML-SV-II-list-decimal-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="17915NISTSchema-SV-II-list-decimal-maxLength-5 tokoe:valid" result="pass"/><test-case name="17916NISTXML-SV-II-list-decimal-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="17917NISTXML-SV-II-list-decimal-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="17918NISTXML-SV-II-list-decimal-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="17919NISTXML-SV-II-list-decimal-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="17920NISTXML-SV-II-list-decimal-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="17921NISTSchema-SV-II-list-decimal-minLength-1 tokoe:valid" result="pass"/><test-case name="17922NISTXML-SV-II-list-decimal-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="17923NISTXML-SV-II-list-decimal-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="17924NISTXML-SV-II-list-decimal-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="17925NISTXML-SV-II-list-decimal-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="17926NISTXML-SV-II-list-decimal-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="17927NISTSchema-SV-II-list-decimal-minLength-2 tokoe:valid" result="pass"/><test-case name="17928NISTXML-SV-II-list-decimal-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="17929NISTXML-SV-II-list-decimal-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="17930NISTXML-SV-II-list-decimal-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="17931NISTXML-SV-II-list-decimal-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="17932NISTXML-SV-II-list-decimal-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="17933NISTSchema-SV-II-list-decimal-minLength-3 tokoe:valid" result="pass"/><test-case name="17934NISTXML-SV-II-list-decimal-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="17935NISTXML-SV-II-list-decimal-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="17936NISTXML-SV-II-list-decimal-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="17937NISTXML-SV-II-list-decimal-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="17938NISTXML-SV-II-list-decimal-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="17939NISTSchema-SV-II-list-decimal-minLength-4 tokoe:valid" result="pass"/><test-case name="17940NISTXML-SV-II-list-decimal-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="17941NISTXML-SV-II-list-decimal-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="17942NISTXML-SV-II-list-decimal-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="17943NISTXML-SV-II-list-decimal-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="17944NISTXML-SV-II-list-decimal-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="17945NISTSchema-SV-II-list-decimal-minLength-5 tokoe:valid" result="pass"/><test-case name="17946NISTXML-SV-II-list-decimal-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="17947NISTXML-SV-II-list-decimal-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="17948NISTXML-SV-II-list-decimal-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="17949NISTXML-SV-II-list-decimal-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="17950NISTXML-SV-II-list-decimal-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="17951NISTSchema-SV-II-list-decimal-length-1 tokoe:valid" result="pass"/><test-case name="17952NISTXML-SV-II-list-decimal-length-1-1 tokoe:invalid" result="pass"/><test-case name="17953NISTXML-SV-II-list-decimal-length-1-2 tokoe:invalid" result="pass"/><test-case name="17954NISTXML-SV-II-list-decimal-length-1-3 tokoe:invalid" result="pass"/><test-case name="17955NISTXML-SV-II-list-decimal-length-1-4 tokoe:invalid" result="pass"/><test-case name="17956NISTXML-SV-II-list-decimal-length-1-5 tokoe:invalid" result="pass"/><test-case name="17957NISTSchema-SV-II-list-decimal-length-2 tokoe:valid" result="pass"/><test-case name="17958NISTXML-SV-II-list-decimal-length-2-1 tokoe:invalid" result="pass"/><test-case name="17959NISTXML-SV-II-list-decimal-length-2-2 tokoe:invalid" result="pass"/><test-case name="17960NISTXML-SV-II-list-decimal-length-2-3 tokoe:invalid" result="pass"/><test-case name="17961NISTXML-SV-II-list-decimal-length-2-4 tokoe:invalid" result="pass"/><test-case name="17962NISTXML-SV-II-list-decimal-length-2-5 tokoe:invalid" result="pass"/><test-case name="17963NISTSchema-SV-II-list-decimal-length-3 tokoe:valid" result="pass"/><test-case name="17964NISTXML-SV-II-list-decimal-length-3-1 tokoe:invalid" result="pass"/><test-case name="17965NISTXML-SV-II-list-decimal-length-3-2 tokoe:invalid" result="pass"/><test-case name="17966NISTXML-SV-II-list-decimal-length-3-3 tokoe:invalid" result="pass"/><test-case name="17967NISTXML-SV-II-list-decimal-length-3-4 tokoe:invalid" result="pass"/><test-case name="17968NISTXML-SV-II-list-decimal-length-3-5 tokoe:invalid" result="pass"/><test-case name="17969NISTSchema-SV-II-list-decimal-length-4 tokoe:valid" result="pass"/><test-case name="17970NISTXML-SV-II-list-decimal-length-4-1 tokoe:invalid" result="pass"/><test-case name="17971NISTXML-SV-II-list-decimal-length-4-2 tokoe:invalid" result="pass"/><test-case name="17972NISTXML-SV-II-list-decimal-length-4-3 tokoe:invalid" result="pass"/><test-case name="17973NISTXML-SV-II-list-decimal-length-4-4 tokoe:invalid" result="pass"/><test-case name="17974NISTXML-SV-II-list-decimal-length-4-5 tokoe:invalid" result="pass"/><test-case name="17975NISTSchema-SV-II-list-decimal-length-5 tokoe:valid" result="pass"/><test-case name="17976NISTXML-SV-II-list-decimal-length-5-1 tokoe:invalid" result="pass"/><test-case name="17977NISTXML-SV-II-list-decimal-length-5-2 tokoe:invalid" result="pass"/><test-case name="17978NISTXML-SV-II-list-decimal-length-5-3 tokoe:invalid" result="pass"/><test-case name="17979NISTXML-SV-II-list-decimal-length-5-4 tokoe:invalid" result="pass"/><test-case name="17980NISTXML-SV-II-list-decimal-length-5-5 tokoe:invalid" result="pass"/><test-case name="17981NISTSchema-SV-II-list-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="17982NISTXML-SV-II-list-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="17983NISTXML-SV-II-list-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="17984NISTXML-SV-II-list-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="17985NISTXML-SV-II-list-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="17986NISTXML-SV-II-list-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="17987NISTSchema-SV-II-list-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="17988NISTXML-SV-II-list-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="17989NISTXML-SV-II-list-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="17990NISTXML-SV-II-list-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="17991NISTXML-SV-II-list-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="17992NISTXML-SV-II-list-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="17993NISTSchema-SV-II-list-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="17994NISTXML-SV-II-list-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="17995NISTXML-SV-II-list-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="17996NISTXML-SV-II-list-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="17997NISTXML-SV-II-list-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="17998NISTXML-SV-II-list-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="17999NISTSchema-SV-II-list-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="18000NISTXML-SV-II-list-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18001NISTXML-SV-II-list-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18002NISTXML-SV-II-list-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18003NISTXML-SV-II-list-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18004NISTXML-SV-II-list-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18005NISTSchema-SV-II-list-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="18006NISTXML-SV-II-list-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18007NISTXML-SV-II-list-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18008NISTXML-SV-II-list-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18009NISTXML-SV-II-list-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18010NISTXML-SV-II-list-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18011NISTSchema-SV-II-list-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="18012NISTXML-SV-II-list-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18013NISTXML-SV-II-list-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18014NISTXML-SV-II-list-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18015NISTXML-SV-II-list-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18016NISTXML-SV-II-list-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18017NISTSchema-SV-II-list-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="18018NISTXML-SV-II-list-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18019NISTXML-SV-II-list-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18020NISTXML-SV-II-list-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18021NISTXML-SV-II-list-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18022NISTXML-SV-II-list-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18023NISTSchema-SV-II-list-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="18024NISTXML-SV-II-list-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18025NISTXML-SV-II-list-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18026NISTXML-SV-II-list-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18027NISTXML-SV-II-list-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18028NISTXML-SV-II-list-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18029NISTSchema-SV-II-list-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="18030NISTXML-SV-II-list-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18031NISTXML-SV-II-list-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18032NISTXML-SV-II-list-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18033NISTXML-SV-II-list-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18034NISTXML-SV-II-list-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18035NISTSchema-SV-II-list-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="18036NISTXML-SV-II-list-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18037NISTXML-SV-II-list-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18038NISTXML-SV-II-list-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18039NISTXML-SV-II-list-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18040NISTXML-SV-II-list-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18041NISTSchema-SV-II-list-integer-maxLength-1 tokoe:valid" result="pass"/><test-case name="18042NISTXML-SV-II-list-integer-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18043NISTXML-SV-II-list-integer-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18044NISTXML-SV-II-list-integer-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18045NISTXML-SV-II-list-integer-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18046NISTXML-SV-II-list-integer-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18047NISTSchema-SV-II-list-integer-maxLength-2 tokoe:valid" result="pass"/><test-case name="18048NISTXML-SV-II-list-integer-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18049NISTXML-SV-II-list-integer-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18050NISTXML-SV-II-list-integer-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18051NISTXML-SV-II-list-integer-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18052NISTXML-SV-II-list-integer-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18053NISTSchema-SV-II-list-integer-maxLength-3 tokoe:valid" result="pass"/><test-case name="18054NISTXML-SV-II-list-integer-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18055NISTXML-SV-II-list-integer-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18056NISTXML-SV-II-list-integer-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18057NISTXML-SV-II-list-integer-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18058NISTXML-SV-II-list-integer-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18059NISTSchema-SV-II-list-integer-maxLength-4 tokoe:valid" result="pass"/><test-case name="18060NISTXML-SV-II-list-integer-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18061NISTXML-SV-II-list-integer-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18062NISTXML-SV-II-list-integer-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18063NISTXML-SV-II-list-integer-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18064NISTXML-SV-II-list-integer-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18065NISTSchema-SV-II-list-integer-maxLength-5 tokoe:valid" result="pass"/><test-case name="18066NISTXML-SV-II-list-integer-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18067NISTXML-SV-II-list-integer-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18068NISTXML-SV-II-list-integer-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18069NISTXML-SV-II-list-integer-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18070NISTXML-SV-II-list-integer-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18071NISTSchema-SV-II-list-integer-minLength-1 tokoe:valid" result="pass"/><test-case name="18072NISTXML-SV-II-list-integer-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18073NISTXML-SV-II-list-integer-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18074NISTXML-SV-II-list-integer-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18075NISTXML-SV-II-list-integer-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18076NISTXML-SV-II-list-integer-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18077NISTSchema-SV-II-list-integer-minLength-2 tokoe:valid" result="pass"/><test-case name="18078NISTXML-SV-II-list-integer-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18079NISTXML-SV-II-list-integer-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18080NISTXML-SV-II-list-integer-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18081NISTXML-SV-II-list-integer-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18082NISTXML-SV-II-list-integer-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18083NISTSchema-SV-II-list-integer-minLength-3 tokoe:valid" result="pass"/><test-case name="18084NISTXML-SV-II-list-integer-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18085NISTXML-SV-II-list-integer-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18086NISTXML-SV-II-list-integer-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18087NISTXML-SV-II-list-integer-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18088NISTXML-SV-II-list-integer-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18089NISTSchema-SV-II-list-integer-minLength-4 tokoe:valid" result="pass"/><test-case name="18090NISTXML-SV-II-list-integer-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18091NISTXML-SV-II-list-integer-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18092NISTXML-SV-II-list-integer-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18093NISTXML-SV-II-list-integer-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18094NISTXML-SV-II-list-integer-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18095NISTSchema-SV-II-list-integer-minLength-5 tokoe:valid" result="pass"/><test-case name="18096NISTXML-SV-II-list-integer-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18097NISTXML-SV-II-list-integer-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18098NISTXML-SV-II-list-integer-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18099NISTXML-SV-II-list-integer-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18100NISTXML-SV-II-list-integer-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18101NISTSchema-SV-II-list-integer-length-1 tokoe:valid" result="pass"/><test-case name="18102NISTXML-SV-II-list-integer-length-1-1 tokoe:invalid" result="pass"/><test-case name="18103NISTXML-SV-II-list-integer-length-1-2 tokoe:invalid" result="pass"/><test-case name="18104NISTXML-SV-II-list-integer-length-1-3 tokoe:invalid" result="pass"/><test-case name="18105NISTXML-SV-II-list-integer-length-1-4 tokoe:invalid" result="pass"/><test-case name="18106NISTXML-SV-II-list-integer-length-1-5 tokoe:invalid" result="pass"/><test-case name="18107NISTSchema-SV-II-list-integer-length-2 tokoe:valid" result="pass"/><test-case name="18108NISTXML-SV-II-list-integer-length-2-1 tokoe:invalid" result="pass"/><test-case name="18109NISTXML-SV-II-list-integer-length-2-2 tokoe:invalid" result="pass"/><test-case name="18110NISTXML-SV-II-list-integer-length-2-3 tokoe:invalid" result="pass"/><test-case name="18111NISTXML-SV-II-list-integer-length-2-4 tokoe:invalid" result="pass"/><test-case name="18112NISTXML-SV-II-list-integer-length-2-5 tokoe:invalid" result="pass"/><test-case name="18113NISTSchema-SV-II-list-integer-length-3 tokoe:valid" result="pass"/><test-case name="18114NISTXML-SV-II-list-integer-length-3-1 tokoe:invalid" result="pass"/><test-case name="18115NISTXML-SV-II-list-integer-length-3-2 tokoe:invalid" result="pass"/><test-case name="18116NISTXML-SV-II-list-integer-length-3-3 tokoe:invalid" result="pass"/><test-case name="18117NISTXML-SV-II-list-integer-length-3-4 tokoe:invalid" result="pass"/><test-case name="18118NISTXML-SV-II-list-integer-length-3-5 tokoe:invalid" result="pass"/><test-case name="18119NISTSchema-SV-II-list-integer-length-4 tokoe:valid" result="pass"/><test-case name="18120NISTXML-SV-II-list-integer-length-4-1 tokoe:invalid" result="pass"/><test-case name="18121NISTXML-SV-II-list-integer-length-4-2 tokoe:invalid" result="pass"/><test-case name="18122NISTXML-SV-II-list-integer-length-4-3 tokoe:invalid" result="pass"/><test-case name="18123NISTXML-SV-II-list-integer-length-4-4 tokoe:invalid" result="pass"/><test-case name="18124NISTXML-SV-II-list-integer-length-4-5 tokoe:invalid" result="pass"/><test-case name="18125NISTSchema-SV-II-list-integer-length-5 tokoe:valid" result="pass"/><test-case name="18126NISTXML-SV-II-list-integer-length-5-1 tokoe:invalid" result="pass"/><test-case name="18127NISTXML-SV-II-list-integer-length-5-2 tokoe:invalid" result="pass"/><test-case name="18128NISTXML-SV-II-list-integer-length-5-3 tokoe:invalid" result="pass"/><test-case name="18129NISTXML-SV-II-list-integer-length-5-4 tokoe:invalid" result="pass"/><test-case name="18130NISTXML-SV-II-list-integer-length-5-5 tokoe:invalid" result="pass"/><test-case name="18131NISTSchema-SV-II-list-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="18132NISTXML-SV-II-list-integer-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18133NISTXML-SV-II-list-integer-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18134NISTXML-SV-II-list-integer-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18135NISTXML-SV-II-list-integer-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18136NISTXML-SV-II-list-integer-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18137NISTSchema-SV-II-list-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="18138NISTXML-SV-II-list-integer-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18139NISTXML-SV-II-list-integer-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18140NISTXML-SV-II-list-integer-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18141NISTXML-SV-II-list-integer-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18142NISTXML-SV-II-list-integer-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18143NISTSchema-SV-II-list-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="18144NISTXML-SV-II-list-integer-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18145NISTXML-SV-II-list-integer-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18146NISTXML-SV-II-list-integer-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18147NISTXML-SV-II-list-integer-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18148NISTXML-SV-II-list-integer-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18149NISTSchema-SV-II-list-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="18150NISTXML-SV-II-list-integer-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18151NISTXML-SV-II-list-integer-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18152NISTXML-SV-II-list-integer-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18153NISTXML-SV-II-list-integer-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18154NISTXML-SV-II-list-integer-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18155NISTSchema-SV-II-list-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="18156NISTXML-SV-II-list-integer-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18157NISTXML-SV-II-list-integer-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18158NISTXML-SV-II-list-integer-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18159NISTXML-SV-II-list-integer-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18160NISTXML-SV-II-list-integer-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18161NISTSchema-SV-II-list-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="18162NISTXML-SV-II-list-integer-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18163NISTXML-SV-II-list-integer-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18164NISTXML-SV-II-list-integer-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18165NISTXML-SV-II-list-integer-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18166NISTXML-SV-II-list-integer-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18167NISTSchema-SV-II-list-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="18168NISTXML-SV-II-list-integer-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18169NISTXML-SV-II-list-integer-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18170NISTXML-SV-II-list-integer-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18171NISTXML-SV-II-list-integer-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18172NISTXML-SV-II-list-integer-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18173NISTSchema-SV-II-list-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="18174NISTXML-SV-II-list-integer-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18175NISTXML-SV-II-list-integer-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18176NISTXML-SV-II-list-integer-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18177NISTXML-SV-II-list-integer-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18178NISTXML-SV-II-list-integer-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18179NISTSchema-SV-II-list-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="18180NISTXML-SV-II-list-integer-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18181NISTXML-SV-II-list-integer-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18182NISTXML-SV-II-list-integer-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18183NISTXML-SV-II-list-integer-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18184NISTXML-SV-II-list-integer-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18185NISTSchema-SV-II-list-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="18186NISTXML-SV-II-list-integer-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18187NISTXML-SV-II-list-integer-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18188NISTXML-SV-II-list-integer-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18189NISTXML-SV-II-list-integer-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18190NISTXML-SV-II-list-integer-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18191NISTSchema-SV-II-list-nonPositiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="18192NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18193NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18194NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18195NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18196NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18197NISTSchema-SV-II-list-nonPositiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="18198NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18199NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18200NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18201NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18202NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18203NISTSchema-SV-II-list-nonPositiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="18204NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18205NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18206NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18207NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18208NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18209NISTSchema-SV-II-list-nonPositiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="18210NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18211NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18212NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18213NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18214NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18215NISTSchema-SV-II-list-nonPositiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="18216NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18217NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18218NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18219NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18220NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18221NISTSchema-SV-II-list-nonPositiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="18222NISTXML-SV-II-list-nonPositiveInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18223NISTXML-SV-II-list-nonPositiveInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18224NISTXML-SV-II-list-nonPositiveInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18225NISTXML-SV-II-list-nonPositiveInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18226NISTXML-SV-II-list-nonPositiveInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18227NISTSchema-SV-II-list-nonPositiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="18228NISTXML-SV-II-list-nonPositiveInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18229NISTXML-SV-II-list-nonPositiveInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18230NISTXML-SV-II-list-nonPositiveInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18231NISTXML-SV-II-list-nonPositiveInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18232NISTXML-SV-II-list-nonPositiveInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18233NISTSchema-SV-II-list-nonPositiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="18234NISTXML-SV-II-list-nonPositiveInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18235NISTXML-SV-II-list-nonPositiveInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18236NISTXML-SV-II-list-nonPositiveInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18237NISTXML-SV-II-list-nonPositiveInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18238NISTXML-SV-II-list-nonPositiveInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18239NISTSchema-SV-II-list-nonPositiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="18240NISTXML-SV-II-list-nonPositiveInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18241NISTXML-SV-II-list-nonPositiveInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18242NISTXML-SV-II-list-nonPositiveInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18243NISTXML-SV-II-list-nonPositiveInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18244NISTXML-SV-II-list-nonPositiveInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18245NISTSchema-SV-II-list-nonPositiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="18246NISTXML-SV-II-list-nonPositiveInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18247NISTXML-SV-II-list-nonPositiveInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18248NISTXML-SV-II-list-nonPositiveInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18249NISTXML-SV-II-list-nonPositiveInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18250NISTXML-SV-II-list-nonPositiveInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18251NISTSchema-SV-II-list-nonPositiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="18252NISTXML-SV-II-list-nonPositiveInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="18253NISTXML-SV-II-list-nonPositiveInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="18254NISTXML-SV-II-list-nonPositiveInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="18255NISTXML-SV-II-list-nonPositiveInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="18256NISTXML-SV-II-list-nonPositiveInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="18257NISTSchema-SV-II-list-nonPositiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="18258NISTXML-SV-II-list-nonPositiveInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="18259NISTXML-SV-II-list-nonPositiveInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="18260NISTXML-SV-II-list-nonPositiveInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="18261NISTXML-SV-II-list-nonPositiveInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="18262NISTXML-SV-II-list-nonPositiveInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="18263NISTSchema-SV-II-list-nonPositiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="18264NISTXML-SV-II-list-nonPositiveInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="18265NISTXML-SV-II-list-nonPositiveInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="18266NISTXML-SV-II-list-nonPositiveInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="18267NISTXML-SV-II-list-nonPositiveInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="18268NISTXML-SV-II-list-nonPositiveInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="18269NISTSchema-SV-II-list-nonPositiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="18270NISTXML-SV-II-list-nonPositiveInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="18271NISTXML-SV-II-list-nonPositiveInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="18272NISTXML-SV-II-list-nonPositiveInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="18273NISTXML-SV-II-list-nonPositiveInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="18274NISTXML-SV-II-list-nonPositiveInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="18275NISTSchema-SV-II-list-nonPositiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="18276NISTXML-SV-II-list-nonPositiveInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="18277NISTXML-SV-II-list-nonPositiveInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="18278NISTXML-SV-II-list-nonPositiveInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="18279NISTXML-SV-II-list-nonPositiveInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="18280NISTXML-SV-II-list-nonPositiveInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="18281NISTSchema-SV-II-list-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="18282NISTXML-SV-II-list-nonPositiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18283NISTXML-SV-II-list-nonPositiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18284NISTXML-SV-II-list-nonPositiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18285NISTXML-SV-II-list-nonPositiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18286NISTXML-SV-II-list-nonPositiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18287NISTSchema-SV-II-list-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="18288NISTXML-SV-II-list-nonPositiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18289NISTXML-SV-II-list-nonPositiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18290NISTXML-SV-II-list-nonPositiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18291NISTXML-SV-II-list-nonPositiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18292NISTXML-SV-II-list-nonPositiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18293NISTSchema-SV-II-list-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="18294NISTXML-SV-II-list-nonPositiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18295NISTXML-SV-II-list-nonPositiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18296NISTXML-SV-II-list-nonPositiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18297NISTXML-SV-II-list-nonPositiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18298NISTXML-SV-II-list-nonPositiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18299NISTSchema-SV-II-list-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="18300NISTXML-SV-II-list-nonPositiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18301NISTXML-SV-II-list-nonPositiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18302NISTXML-SV-II-list-nonPositiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18303NISTXML-SV-II-list-nonPositiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18304NISTXML-SV-II-list-nonPositiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18305NISTSchema-SV-II-list-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="18306NISTXML-SV-II-list-nonPositiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18307NISTXML-SV-II-list-nonPositiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18308NISTXML-SV-II-list-nonPositiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18309NISTXML-SV-II-list-nonPositiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18310NISTXML-SV-II-list-nonPositiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18311NISTSchema-SV-II-list-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="18312NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18313NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18314NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18315NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18316NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18317NISTSchema-SV-II-list-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="18318NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18319NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18320NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18321NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18322NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18323NISTSchema-SV-II-list-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="18324NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18325NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18326NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18327NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18328NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18329NISTSchema-SV-II-list-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="18330NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18331NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18332NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18333NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18334NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18335NISTSchema-SV-II-list-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="18336NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18337NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18338NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18339NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18340NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18341NISTSchema-SV-II-list-negativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="18342NISTXML-SV-II-list-negativeInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18343NISTXML-SV-II-list-negativeInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18344NISTXML-SV-II-list-negativeInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18345NISTXML-SV-II-list-negativeInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18346NISTXML-SV-II-list-negativeInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18347NISTSchema-SV-II-list-negativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="18348NISTXML-SV-II-list-negativeInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18349NISTXML-SV-II-list-negativeInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18350NISTXML-SV-II-list-negativeInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18351NISTXML-SV-II-list-negativeInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18352NISTXML-SV-II-list-negativeInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18353NISTSchema-SV-II-list-negativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="18354NISTXML-SV-II-list-negativeInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18355NISTXML-SV-II-list-negativeInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18356NISTXML-SV-II-list-negativeInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18357NISTXML-SV-II-list-negativeInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18358NISTXML-SV-II-list-negativeInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18359NISTSchema-SV-II-list-negativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="18360NISTXML-SV-II-list-negativeInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18361NISTXML-SV-II-list-negativeInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18362NISTXML-SV-II-list-negativeInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18363NISTXML-SV-II-list-negativeInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18364NISTXML-SV-II-list-negativeInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18365NISTSchema-SV-II-list-negativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="18366NISTXML-SV-II-list-negativeInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18367NISTXML-SV-II-list-negativeInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18368NISTXML-SV-II-list-negativeInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18369NISTXML-SV-II-list-negativeInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18370NISTXML-SV-II-list-negativeInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18371NISTSchema-SV-II-list-negativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="18372NISTXML-SV-II-list-negativeInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18373NISTXML-SV-II-list-negativeInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18374NISTXML-SV-II-list-negativeInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18375NISTXML-SV-II-list-negativeInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18376NISTXML-SV-II-list-negativeInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18377NISTSchema-SV-II-list-negativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="18378NISTXML-SV-II-list-negativeInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18379NISTXML-SV-II-list-negativeInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18380NISTXML-SV-II-list-negativeInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18381NISTXML-SV-II-list-negativeInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18382NISTXML-SV-II-list-negativeInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18383NISTSchema-SV-II-list-negativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="18384NISTXML-SV-II-list-negativeInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18385NISTXML-SV-II-list-negativeInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18386NISTXML-SV-II-list-negativeInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18387NISTXML-SV-II-list-negativeInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18388NISTXML-SV-II-list-negativeInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18389NISTSchema-SV-II-list-negativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="18390NISTXML-SV-II-list-negativeInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18391NISTXML-SV-II-list-negativeInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18392NISTXML-SV-II-list-negativeInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18393NISTXML-SV-II-list-negativeInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18394NISTXML-SV-II-list-negativeInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18395NISTSchema-SV-II-list-negativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="18396NISTXML-SV-II-list-negativeInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18397NISTXML-SV-II-list-negativeInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18398NISTXML-SV-II-list-negativeInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18399NISTXML-SV-II-list-negativeInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18400NISTXML-SV-II-list-negativeInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18401NISTSchema-SV-II-list-negativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="18402NISTXML-SV-II-list-negativeInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="18403NISTXML-SV-II-list-negativeInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="18404NISTXML-SV-II-list-negativeInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="18405NISTXML-SV-II-list-negativeInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="18406NISTXML-SV-II-list-negativeInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="18407NISTSchema-SV-II-list-negativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="18408NISTXML-SV-II-list-negativeInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="18409NISTXML-SV-II-list-negativeInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="18410NISTXML-SV-II-list-negativeInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="18411NISTXML-SV-II-list-negativeInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="18412NISTXML-SV-II-list-negativeInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="18413NISTSchema-SV-II-list-negativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="18414NISTXML-SV-II-list-negativeInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="18415NISTXML-SV-II-list-negativeInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="18416NISTXML-SV-II-list-negativeInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="18417NISTXML-SV-II-list-negativeInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="18418NISTXML-SV-II-list-negativeInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="18419NISTSchema-SV-II-list-negativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="18420NISTXML-SV-II-list-negativeInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="18421NISTXML-SV-II-list-negativeInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="18422NISTXML-SV-II-list-negativeInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="18423NISTXML-SV-II-list-negativeInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="18424NISTXML-SV-II-list-negativeInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="18425NISTSchema-SV-II-list-negativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="18426NISTXML-SV-II-list-negativeInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="18427NISTXML-SV-II-list-negativeInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="18428NISTXML-SV-II-list-negativeInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="18429NISTXML-SV-II-list-negativeInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="18430NISTXML-SV-II-list-negativeInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="18431NISTSchema-SV-II-list-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="18432NISTXML-SV-II-list-negativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18433NISTXML-SV-II-list-negativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18434NISTXML-SV-II-list-negativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18435NISTXML-SV-II-list-negativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18436NISTXML-SV-II-list-negativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18437NISTSchema-SV-II-list-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="18438NISTXML-SV-II-list-negativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18439NISTXML-SV-II-list-negativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18440NISTXML-SV-II-list-negativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18441NISTXML-SV-II-list-negativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18442NISTXML-SV-II-list-negativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18443NISTSchema-SV-II-list-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="18444NISTXML-SV-II-list-negativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18445NISTXML-SV-II-list-negativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18446NISTXML-SV-II-list-negativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18447NISTXML-SV-II-list-negativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18448NISTXML-SV-II-list-negativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18449NISTSchema-SV-II-list-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="18450NISTXML-SV-II-list-negativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18451NISTXML-SV-II-list-negativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18452NISTXML-SV-II-list-negativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18453NISTXML-SV-II-list-negativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18454NISTXML-SV-II-list-negativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18455NISTSchema-SV-II-list-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="18456NISTXML-SV-II-list-negativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18457NISTXML-SV-II-list-negativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18458NISTXML-SV-II-list-negativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18459NISTXML-SV-II-list-negativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18460NISTXML-SV-II-list-negativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18461NISTSchema-SV-II-list-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="18462NISTXML-SV-II-list-negativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18463NISTXML-SV-II-list-negativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18464NISTXML-SV-II-list-negativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18465NISTXML-SV-II-list-negativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18466NISTXML-SV-II-list-negativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18467NISTSchema-SV-II-list-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="18468NISTXML-SV-II-list-negativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18469NISTXML-SV-II-list-negativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18470NISTXML-SV-II-list-negativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18471NISTXML-SV-II-list-negativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18472NISTXML-SV-II-list-negativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18473NISTSchema-SV-II-list-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="18474NISTXML-SV-II-list-negativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18475NISTXML-SV-II-list-negativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18476NISTXML-SV-II-list-negativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18477NISTXML-SV-II-list-negativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18478NISTXML-SV-II-list-negativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18479NISTSchema-SV-II-list-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="18480NISTXML-SV-II-list-negativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18481NISTXML-SV-II-list-negativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18482NISTXML-SV-II-list-negativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18483NISTXML-SV-II-list-negativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18484NISTXML-SV-II-list-negativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18485NISTSchema-SV-II-list-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="18486NISTXML-SV-II-list-negativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18487NISTXML-SV-II-list-negativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18488NISTXML-SV-II-list-negativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18489NISTXML-SV-II-list-negativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18490NISTXML-SV-II-list-negativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18491NISTSchema-SV-II-list-long-maxLength-1 tokoe:valid" result="pass"/><test-case name="18492NISTXML-SV-II-list-long-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18493NISTXML-SV-II-list-long-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18494NISTXML-SV-II-list-long-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18495NISTXML-SV-II-list-long-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18496NISTXML-SV-II-list-long-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18497NISTSchema-SV-II-list-long-maxLength-2 tokoe:valid" result="pass"/><test-case name="18498NISTXML-SV-II-list-long-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18499NISTXML-SV-II-list-long-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18500NISTXML-SV-II-list-long-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18501NISTXML-SV-II-list-long-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18502NISTXML-SV-II-list-long-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18503NISTSchema-SV-II-list-long-maxLength-3 tokoe:valid" result="pass"/><test-case name="18504NISTXML-SV-II-list-long-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18505NISTXML-SV-II-list-long-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18506NISTXML-SV-II-list-long-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18507NISTXML-SV-II-list-long-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18508NISTXML-SV-II-list-long-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18509NISTSchema-SV-II-list-long-maxLength-4 tokoe:valid" result="pass"/><test-case name="18510NISTXML-SV-II-list-long-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18511NISTXML-SV-II-list-long-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18512NISTXML-SV-II-list-long-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18513NISTXML-SV-II-list-long-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18514NISTXML-SV-II-list-long-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18515NISTSchema-SV-II-list-long-maxLength-5 tokoe:valid" result="pass"/><test-case name="18516NISTXML-SV-II-list-long-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18517NISTXML-SV-II-list-long-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18518NISTXML-SV-II-list-long-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18519NISTXML-SV-II-list-long-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18520NISTXML-SV-II-list-long-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18521NISTSchema-SV-II-list-long-minLength-1 tokoe:valid" result="pass"/><test-case name="18522NISTXML-SV-II-list-long-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18523NISTXML-SV-II-list-long-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18524NISTXML-SV-II-list-long-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18525NISTXML-SV-II-list-long-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18526NISTXML-SV-II-list-long-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18527NISTSchema-SV-II-list-long-minLength-2 tokoe:valid" result="pass"/><test-case name="18528NISTXML-SV-II-list-long-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18529NISTXML-SV-II-list-long-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18530NISTXML-SV-II-list-long-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18531NISTXML-SV-II-list-long-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18532NISTXML-SV-II-list-long-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18533NISTSchema-SV-II-list-long-minLength-3 tokoe:valid" result="pass"/><test-case name="18534NISTXML-SV-II-list-long-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18535NISTXML-SV-II-list-long-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18536NISTXML-SV-II-list-long-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18537NISTXML-SV-II-list-long-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18538NISTXML-SV-II-list-long-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18539NISTSchema-SV-II-list-long-minLength-4 tokoe:valid" result="pass"/><test-case name="18540NISTXML-SV-II-list-long-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18541NISTXML-SV-II-list-long-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18542NISTXML-SV-II-list-long-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18543NISTXML-SV-II-list-long-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18544NISTXML-SV-II-list-long-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18545NISTSchema-SV-II-list-long-minLength-5 tokoe:valid" result="pass"/><test-case name="18546NISTXML-SV-II-list-long-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18547NISTXML-SV-II-list-long-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18548NISTXML-SV-II-list-long-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18549NISTXML-SV-II-list-long-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18550NISTXML-SV-II-list-long-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18551NISTSchema-SV-II-list-long-length-1 tokoe:valid" result="pass"/><test-case name="18552NISTXML-SV-II-list-long-length-1-1 tokoe:invalid" result="pass"/><test-case name="18553NISTXML-SV-II-list-long-length-1-2 tokoe:invalid" result="pass"/><test-case name="18554NISTXML-SV-II-list-long-length-1-3 tokoe:invalid" result="pass"/><test-case name="18555NISTXML-SV-II-list-long-length-1-4 tokoe:invalid" result="pass"/><test-case name="18556NISTXML-SV-II-list-long-length-1-5 tokoe:invalid" result="pass"/><test-case name="18557NISTSchema-SV-II-list-long-length-2 tokoe:valid" result="pass"/><test-case name="18558NISTXML-SV-II-list-long-length-2-1 tokoe:invalid" result="pass"/><test-case name="18559NISTXML-SV-II-list-long-length-2-2 tokoe:invalid" result="pass"/><test-case name="18560NISTXML-SV-II-list-long-length-2-3 tokoe:invalid" result="pass"/><test-case name="18561NISTXML-SV-II-list-long-length-2-4 tokoe:invalid" result="pass"/><test-case name="18562NISTXML-SV-II-list-long-length-2-5 tokoe:invalid" result="pass"/><test-case name="18563NISTSchema-SV-II-list-long-length-3 tokoe:valid" result="pass"/><test-case name="18564NISTXML-SV-II-list-long-length-3-1 tokoe:invalid" result="pass"/><test-case name="18565NISTXML-SV-II-list-long-length-3-2 tokoe:invalid" result="pass"/><test-case name="18566NISTXML-SV-II-list-long-length-3-3 tokoe:invalid" result="pass"/><test-case name="18567NISTXML-SV-II-list-long-length-3-4 tokoe:invalid" result="pass"/><test-case name="18568NISTXML-SV-II-list-long-length-3-5 tokoe:invalid" result="pass"/><test-case name="18569NISTSchema-SV-II-list-long-length-4 tokoe:valid" result="pass"/><test-case name="18570NISTXML-SV-II-list-long-length-4-1 tokoe:invalid" result="pass"/><test-case name="18571NISTXML-SV-II-list-long-length-4-2 tokoe:invalid" result="pass"/><test-case name="18572NISTXML-SV-II-list-long-length-4-3 tokoe:invalid" result="pass"/><test-case name="18573NISTXML-SV-II-list-long-length-4-4 tokoe:invalid" result="pass"/><test-case name="18574NISTXML-SV-II-list-long-length-4-5 tokoe:invalid" result="pass"/><test-case name="18575NISTSchema-SV-II-list-long-length-5 tokoe:valid" result="pass"/><test-case name="18576NISTXML-SV-II-list-long-length-5-1 tokoe:invalid" result="pass"/><test-case name="18577NISTXML-SV-II-list-long-length-5-2 tokoe:invalid" result="pass"/><test-case name="18578NISTXML-SV-II-list-long-length-5-3 tokoe:invalid" result="pass"/><test-case name="18579NISTXML-SV-II-list-long-length-5-4 tokoe:invalid" result="pass"/><test-case name="18580NISTXML-SV-II-list-long-length-5-5 tokoe:invalid" result="pass"/><test-case name="18581NISTSchema-SV-II-list-long-pattern-1 tokoe:valid" result="pass"/><test-case name="18582NISTXML-SV-II-list-long-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18583NISTXML-SV-II-list-long-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18584NISTXML-SV-II-list-long-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18585NISTXML-SV-II-list-long-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18586NISTXML-SV-II-list-long-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18587NISTSchema-SV-II-list-long-pattern-2 tokoe:valid" result="pass"/><test-case name="18588NISTXML-SV-II-list-long-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18589NISTXML-SV-II-list-long-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18590NISTXML-SV-II-list-long-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18591NISTXML-SV-II-list-long-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18592NISTXML-SV-II-list-long-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18593NISTSchema-SV-II-list-long-pattern-3 tokoe:valid" result="pass"/><test-case name="18594NISTXML-SV-II-list-long-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18595NISTXML-SV-II-list-long-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18596NISTXML-SV-II-list-long-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18597NISTXML-SV-II-list-long-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18598NISTXML-SV-II-list-long-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18599NISTSchema-SV-II-list-long-pattern-4 tokoe:valid" result="pass"/><test-case name="18600NISTXML-SV-II-list-long-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18601NISTXML-SV-II-list-long-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18602NISTXML-SV-II-list-long-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18603NISTXML-SV-II-list-long-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18604NISTXML-SV-II-list-long-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18605NISTSchema-SV-II-list-long-pattern-5 tokoe:valid" result="pass"/><test-case name="18606NISTXML-SV-II-list-long-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18607NISTXML-SV-II-list-long-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18608NISTXML-SV-II-list-long-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18609NISTXML-SV-II-list-long-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18610NISTXML-SV-II-list-long-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18611NISTSchema-SV-II-list-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="18612NISTXML-SV-II-list-long-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18613NISTXML-SV-II-list-long-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18614NISTXML-SV-II-list-long-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18615NISTXML-SV-II-list-long-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18616NISTXML-SV-II-list-long-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18617NISTSchema-SV-II-list-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="18618NISTXML-SV-II-list-long-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18619NISTXML-SV-II-list-long-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18620NISTXML-SV-II-list-long-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18621NISTXML-SV-II-list-long-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18622NISTXML-SV-II-list-long-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18623NISTSchema-SV-II-list-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="18624NISTXML-SV-II-list-long-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18625NISTXML-SV-II-list-long-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18626NISTXML-SV-II-list-long-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18627NISTXML-SV-II-list-long-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18628NISTXML-SV-II-list-long-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18629NISTSchema-SV-II-list-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="18630NISTXML-SV-II-list-long-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18631NISTXML-SV-II-list-long-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18632NISTXML-SV-II-list-long-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18633NISTXML-SV-II-list-long-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18634NISTXML-SV-II-list-long-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18635NISTSchema-SV-II-list-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="18636NISTXML-SV-II-list-long-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18637NISTXML-SV-II-list-long-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18638NISTXML-SV-II-list-long-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18639NISTXML-SV-II-list-long-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18640NISTXML-SV-II-list-long-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18641NISTSchema-SV-II-list-int-maxLength-1 tokoe:valid" result="pass"/><test-case name="18642NISTXML-SV-II-list-int-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18643NISTXML-SV-II-list-int-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18644NISTXML-SV-II-list-int-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18645NISTXML-SV-II-list-int-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18646NISTXML-SV-II-list-int-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18647NISTSchema-SV-II-list-int-maxLength-2 tokoe:valid" result="pass"/><test-case name="18648NISTXML-SV-II-list-int-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18649NISTXML-SV-II-list-int-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18650NISTXML-SV-II-list-int-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18651NISTXML-SV-II-list-int-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18652NISTXML-SV-II-list-int-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18653NISTSchema-SV-II-list-int-maxLength-3 tokoe:valid" result="pass"/><test-case name="18654NISTXML-SV-II-list-int-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18655NISTXML-SV-II-list-int-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18656NISTXML-SV-II-list-int-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18657NISTXML-SV-II-list-int-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18658NISTXML-SV-II-list-int-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18659NISTSchema-SV-II-list-int-maxLength-4 tokoe:valid" result="pass"/><test-case name="18660NISTXML-SV-II-list-int-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18661NISTXML-SV-II-list-int-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18662NISTXML-SV-II-list-int-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18663NISTXML-SV-II-list-int-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18664NISTXML-SV-II-list-int-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18665NISTSchema-SV-II-list-int-maxLength-5 tokoe:valid" result="pass"/><test-case name="18666NISTXML-SV-II-list-int-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18667NISTXML-SV-II-list-int-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18668NISTXML-SV-II-list-int-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18669NISTXML-SV-II-list-int-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18670NISTXML-SV-II-list-int-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18671NISTSchema-SV-II-list-int-minLength-1 tokoe:valid" result="pass"/><test-case name="18672NISTXML-SV-II-list-int-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18673NISTXML-SV-II-list-int-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18674NISTXML-SV-II-list-int-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18675NISTXML-SV-II-list-int-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18676NISTXML-SV-II-list-int-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18677NISTSchema-SV-II-list-int-minLength-2 tokoe:valid" result="pass"/><test-case name="18678NISTXML-SV-II-list-int-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18679NISTXML-SV-II-list-int-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18680NISTXML-SV-II-list-int-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18681NISTXML-SV-II-list-int-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18682NISTXML-SV-II-list-int-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18683NISTSchema-SV-II-list-int-minLength-3 tokoe:valid" result="pass"/><test-case name="18684NISTXML-SV-II-list-int-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18685NISTXML-SV-II-list-int-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18686NISTXML-SV-II-list-int-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18687NISTXML-SV-II-list-int-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18688NISTXML-SV-II-list-int-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18689NISTSchema-SV-II-list-int-minLength-4 tokoe:valid" result="pass"/><test-case name="18690NISTXML-SV-II-list-int-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18691NISTXML-SV-II-list-int-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18692NISTXML-SV-II-list-int-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18693NISTXML-SV-II-list-int-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18694NISTXML-SV-II-list-int-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18695NISTSchema-SV-II-list-int-minLength-5 tokoe:valid" result="pass"/><test-case name="18696NISTXML-SV-II-list-int-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18697NISTXML-SV-II-list-int-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18698NISTXML-SV-II-list-int-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18699NISTXML-SV-II-list-int-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18700NISTXML-SV-II-list-int-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18701NISTSchema-SV-II-list-int-length-1 tokoe:valid" result="pass"/><test-case name="18702NISTXML-SV-II-list-int-length-1-1 tokoe:invalid" result="pass"/><test-case name="18703NISTXML-SV-II-list-int-length-1-2 tokoe:invalid" result="pass"/><test-case name="18704NISTXML-SV-II-list-int-length-1-3 tokoe:invalid" result="pass"/><test-case name="18705NISTXML-SV-II-list-int-length-1-4 tokoe:invalid" result="pass"/><test-case name="18706NISTXML-SV-II-list-int-length-1-5 tokoe:invalid" result="pass"/><test-case name="18707NISTSchema-SV-II-list-int-length-2 tokoe:valid" result="pass"/><test-case name="18708NISTXML-SV-II-list-int-length-2-1 tokoe:invalid" result="pass"/><test-case name="18709NISTXML-SV-II-list-int-length-2-2 tokoe:invalid" result="pass"/><test-case name="18710NISTXML-SV-II-list-int-length-2-3 tokoe:invalid" result="pass"/><test-case name="18711NISTXML-SV-II-list-int-length-2-4 tokoe:invalid" result="pass"/><test-case name="18712NISTXML-SV-II-list-int-length-2-5 tokoe:invalid" result="pass"/><test-case name="18713NISTSchema-SV-II-list-int-length-3 tokoe:valid" result="pass"/><test-case name="18714NISTXML-SV-II-list-int-length-3-1 tokoe:invalid" result="pass"/><test-case name="18715NISTXML-SV-II-list-int-length-3-2 tokoe:invalid" result="pass"/><test-case name="18716NISTXML-SV-II-list-int-length-3-3 tokoe:invalid" result="pass"/><test-case name="18717NISTXML-SV-II-list-int-length-3-4 tokoe:invalid" result="pass"/><test-case name="18718NISTXML-SV-II-list-int-length-3-5 tokoe:invalid" result="pass"/><test-case name="18719NISTSchema-SV-II-list-int-length-4 tokoe:valid" result="pass"/><test-case name="18720NISTXML-SV-II-list-int-length-4-1 tokoe:invalid" result="pass"/><test-case name="18721NISTXML-SV-II-list-int-length-4-2 tokoe:invalid" result="pass"/><test-case name="18722NISTXML-SV-II-list-int-length-4-3 tokoe:invalid" result="pass"/><test-case name="18723NISTXML-SV-II-list-int-length-4-4 tokoe:invalid" result="pass"/><test-case name="18724NISTXML-SV-II-list-int-length-4-5 tokoe:invalid" result="pass"/><test-case name="18725NISTSchema-SV-II-list-int-length-5 tokoe:valid" result="pass"/><test-case name="18726NISTXML-SV-II-list-int-length-5-1 tokoe:invalid" result="pass"/><test-case name="18727NISTXML-SV-II-list-int-length-5-2 tokoe:invalid" result="pass"/><test-case name="18728NISTXML-SV-II-list-int-length-5-3 tokoe:invalid" result="pass"/><test-case name="18729NISTXML-SV-II-list-int-length-5-4 tokoe:invalid" result="pass"/><test-case name="18730NISTXML-SV-II-list-int-length-5-5 tokoe:invalid" result="pass"/><test-case name="18731NISTSchema-SV-II-list-int-pattern-1 tokoe:valid" result="pass"/><test-case name="18732NISTXML-SV-II-list-int-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18733NISTXML-SV-II-list-int-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18734NISTXML-SV-II-list-int-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18735NISTXML-SV-II-list-int-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18736NISTXML-SV-II-list-int-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18737NISTSchema-SV-II-list-int-pattern-2 tokoe:valid" result="pass"/><test-case name="18738NISTXML-SV-II-list-int-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18739NISTXML-SV-II-list-int-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18740NISTXML-SV-II-list-int-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18741NISTXML-SV-II-list-int-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18742NISTXML-SV-II-list-int-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18743NISTSchema-SV-II-list-int-pattern-3 tokoe:valid" result="pass"/><test-case name="18744NISTXML-SV-II-list-int-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18745NISTXML-SV-II-list-int-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18746NISTXML-SV-II-list-int-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18747NISTXML-SV-II-list-int-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18748NISTXML-SV-II-list-int-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18749NISTSchema-SV-II-list-int-pattern-4 tokoe:valid" result="pass"/><test-case name="18750NISTXML-SV-II-list-int-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18751NISTXML-SV-II-list-int-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18752NISTXML-SV-II-list-int-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18753NISTXML-SV-II-list-int-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18754NISTXML-SV-II-list-int-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18755NISTSchema-SV-II-list-int-pattern-5 tokoe:valid" result="pass"/><test-case name="18756NISTXML-SV-II-list-int-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18757NISTXML-SV-II-list-int-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18758NISTXML-SV-II-list-int-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18759NISTXML-SV-II-list-int-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18760NISTXML-SV-II-list-int-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18761NISTSchema-SV-II-list-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="18762NISTXML-SV-II-list-int-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18763NISTXML-SV-II-list-int-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18764NISTXML-SV-II-list-int-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18765NISTXML-SV-II-list-int-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18766NISTXML-SV-II-list-int-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18767NISTSchema-SV-II-list-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="18768NISTXML-SV-II-list-int-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18769NISTXML-SV-II-list-int-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18770NISTXML-SV-II-list-int-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18771NISTXML-SV-II-list-int-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18772NISTXML-SV-II-list-int-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18773NISTSchema-SV-II-list-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="18774NISTXML-SV-II-list-int-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18775NISTXML-SV-II-list-int-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18776NISTXML-SV-II-list-int-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18777NISTXML-SV-II-list-int-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18778NISTXML-SV-II-list-int-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18779NISTSchema-SV-II-list-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="18780NISTXML-SV-II-list-int-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18781NISTXML-SV-II-list-int-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18782NISTXML-SV-II-list-int-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18783NISTXML-SV-II-list-int-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18784NISTXML-SV-II-list-int-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18785NISTSchema-SV-II-list-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="18786NISTXML-SV-II-list-int-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18787NISTXML-SV-II-list-int-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18788NISTXML-SV-II-list-int-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18789NISTXML-SV-II-list-int-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18790NISTXML-SV-II-list-int-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18791NISTSchema-SV-II-list-short-maxLength-1 tokoe:valid" result="pass"/><test-case name="18792NISTXML-SV-II-list-short-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18793NISTXML-SV-II-list-short-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18794NISTXML-SV-II-list-short-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18795NISTXML-SV-II-list-short-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18796NISTXML-SV-II-list-short-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18797NISTSchema-SV-II-list-short-maxLength-2 tokoe:valid" result="pass"/><test-case name="18798NISTXML-SV-II-list-short-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18799NISTXML-SV-II-list-short-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18800NISTXML-SV-II-list-short-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18801NISTXML-SV-II-list-short-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18802NISTXML-SV-II-list-short-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18803NISTSchema-SV-II-list-short-maxLength-3 tokoe:valid" result="pass"/><test-case name="18804NISTXML-SV-II-list-short-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18805NISTXML-SV-II-list-short-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18806NISTXML-SV-II-list-short-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18807NISTXML-SV-II-list-short-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18808NISTXML-SV-II-list-short-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18809NISTSchema-SV-II-list-short-maxLength-4 tokoe:valid" result="pass"/><test-case name="18810NISTXML-SV-II-list-short-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18811NISTXML-SV-II-list-short-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18812NISTXML-SV-II-list-short-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18813NISTXML-SV-II-list-short-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18814NISTXML-SV-II-list-short-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18815NISTSchema-SV-II-list-short-maxLength-5 tokoe:valid" result="pass"/><test-case name="18816NISTXML-SV-II-list-short-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18817NISTXML-SV-II-list-short-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18818NISTXML-SV-II-list-short-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18819NISTXML-SV-II-list-short-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18820NISTXML-SV-II-list-short-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18821NISTSchema-SV-II-list-short-minLength-1 tokoe:valid" result="pass"/><test-case name="18822NISTXML-SV-II-list-short-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18823NISTXML-SV-II-list-short-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18824NISTXML-SV-II-list-short-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18825NISTXML-SV-II-list-short-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18826NISTXML-SV-II-list-short-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18827NISTSchema-SV-II-list-short-minLength-2 tokoe:valid" result="pass"/><test-case name="18828NISTXML-SV-II-list-short-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18829NISTXML-SV-II-list-short-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18830NISTXML-SV-II-list-short-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18831NISTXML-SV-II-list-short-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18832NISTXML-SV-II-list-short-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18833NISTSchema-SV-II-list-short-minLength-3 tokoe:valid" result="pass"/><test-case name="18834NISTXML-SV-II-list-short-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18835NISTXML-SV-II-list-short-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18836NISTXML-SV-II-list-short-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18837NISTXML-SV-II-list-short-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18838NISTXML-SV-II-list-short-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18839NISTSchema-SV-II-list-short-minLength-4 tokoe:valid" result="pass"/><test-case name="18840NISTXML-SV-II-list-short-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18841NISTXML-SV-II-list-short-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18842NISTXML-SV-II-list-short-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18843NISTXML-SV-II-list-short-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18844NISTXML-SV-II-list-short-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18845NISTSchema-SV-II-list-short-minLength-5 tokoe:valid" result="pass"/><test-case name="18846NISTXML-SV-II-list-short-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18847NISTXML-SV-II-list-short-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18848NISTXML-SV-II-list-short-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18849NISTXML-SV-II-list-short-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18850NISTXML-SV-II-list-short-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18851NISTSchema-SV-II-list-short-length-1 tokoe:valid" result="pass"/><test-case name="18852NISTXML-SV-II-list-short-length-1-1 tokoe:invalid" result="pass"/><test-case name="18853NISTXML-SV-II-list-short-length-1-2 tokoe:invalid" result="pass"/><test-case name="18854NISTXML-SV-II-list-short-length-1-3 tokoe:invalid" result="pass"/><test-case name="18855NISTXML-SV-II-list-short-length-1-4 tokoe:invalid" result="pass"/><test-case name="18856NISTXML-SV-II-list-short-length-1-5 tokoe:invalid" result="pass"/><test-case name="18857NISTSchema-SV-II-list-short-length-2 tokoe:valid" result="pass"/><test-case name="18858NISTXML-SV-II-list-short-length-2-1 tokoe:invalid" result="pass"/><test-case name="18859NISTXML-SV-II-list-short-length-2-2 tokoe:invalid" result="pass"/><test-case name="18860NISTXML-SV-II-list-short-length-2-3 tokoe:invalid" result="pass"/><test-case name="18861NISTXML-SV-II-list-short-length-2-4 tokoe:invalid" result="pass"/><test-case name="18862NISTXML-SV-II-list-short-length-2-5 tokoe:invalid" result="pass"/><test-case name="18863NISTSchema-SV-II-list-short-length-3 tokoe:valid" result="pass"/><test-case name="18864NISTXML-SV-II-list-short-length-3-1 tokoe:invalid" result="pass"/><test-case name="18865NISTXML-SV-II-list-short-length-3-2 tokoe:invalid" result="pass"/><test-case name="18866NISTXML-SV-II-list-short-length-3-3 tokoe:invalid" result="pass"/><test-case name="18867NISTXML-SV-II-list-short-length-3-4 tokoe:invalid" result="pass"/><test-case name="18868NISTXML-SV-II-list-short-length-3-5 tokoe:invalid" result="pass"/><test-case name="18869NISTSchema-SV-II-list-short-length-4 tokoe:valid" result="pass"/><test-case name="18870NISTXML-SV-II-list-short-length-4-1 tokoe:invalid" result="pass"/><test-case name="18871NISTXML-SV-II-list-short-length-4-2 tokoe:invalid" result="pass"/><test-case name="18872NISTXML-SV-II-list-short-length-4-3 tokoe:invalid" result="pass"/><test-case name="18873NISTXML-SV-II-list-short-length-4-4 tokoe:invalid" result="pass"/><test-case name="18874NISTXML-SV-II-list-short-length-4-5 tokoe:invalid" result="pass"/><test-case name="18875NISTSchema-SV-II-list-short-length-5 tokoe:valid" result="pass"/><test-case name="18876NISTXML-SV-II-list-short-length-5-1 tokoe:invalid" result="pass"/><test-case name="18877NISTXML-SV-II-list-short-length-5-2 tokoe:invalid" result="pass"/><test-case name="18878NISTXML-SV-II-list-short-length-5-3 tokoe:invalid" result="pass"/><test-case name="18879NISTXML-SV-II-list-short-length-5-4 tokoe:invalid" result="pass"/><test-case name="18880NISTXML-SV-II-list-short-length-5-5 tokoe:invalid" result="pass"/><test-case name="18881NISTSchema-SV-II-list-short-pattern-1 tokoe:valid" result="pass"/><test-case name="18882NISTXML-SV-II-list-short-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18883NISTXML-SV-II-list-short-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18884NISTXML-SV-II-list-short-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18885NISTXML-SV-II-list-short-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18886NISTXML-SV-II-list-short-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18887NISTSchema-SV-II-list-short-pattern-2 tokoe:valid" result="pass"/><test-case name="18888NISTXML-SV-II-list-short-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18889NISTXML-SV-II-list-short-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18890NISTXML-SV-II-list-short-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18891NISTXML-SV-II-list-short-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18892NISTXML-SV-II-list-short-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18893NISTSchema-SV-II-list-short-pattern-3 tokoe:valid" result="pass"/><test-case name="18894NISTXML-SV-II-list-short-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18895NISTXML-SV-II-list-short-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18896NISTXML-SV-II-list-short-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18897NISTXML-SV-II-list-short-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18898NISTXML-SV-II-list-short-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18899NISTSchema-SV-II-list-short-pattern-4 tokoe:valid" result="pass"/><test-case name="18900NISTXML-SV-II-list-short-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18901NISTXML-SV-II-list-short-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18902NISTXML-SV-II-list-short-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18903NISTXML-SV-II-list-short-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18904NISTXML-SV-II-list-short-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18905NISTSchema-SV-II-list-short-pattern-5 tokoe:valid" result="pass"/><test-case name="18906NISTXML-SV-II-list-short-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18907NISTXML-SV-II-list-short-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18908NISTXML-SV-II-list-short-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18909NISTXML-SV-II-list-short-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18910NISTXML-SV-II-list-short-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18911NISTSchema-SV-II-list-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="18912NISTXML-SV-II-list-short-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18913NISTXML-SV-II-list-short-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18914NISTXML-SV-II-list-short-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18915NISTXML-SV-II-list-short-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18916NISTXML-SV-II-list-short-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18917NISTSchema-SV-II-list-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="18918NISTXML-SV-II-list-short-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18919NISTXML-SV-II-list-short-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18920NISTXML-SV-II-list-short-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18921NISTXML-SV-II-list-short-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18922NISTXML-SV-II-list-short-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18923NISTSchema-SV-II-list-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="18924NISTXML-SV-II-list-short-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18925NISTXML-SV-II-list-short-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18926NISTXML-SV-II-list-short-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18927NISTXML-SV-II-list-short-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18928NISTXML-SV-II-list-short-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18929NISTSchema-SV-II-list-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="18930NISTXML-SV-II-list-short-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18931NISTXML-SV-II-list-short-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18932NISTXML-SV-II-list-short-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18933NISTXML-SV-II-list-short-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18934NISTXML-SV-II-list-short-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18935NISTSchema-SV-II-list-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="18936NISTXML-SV-II-list-short-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18937NISTXML-SV-II-list-short-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18938NISTXML-SV-II-list-short-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18939NISTXML-SV-II-list-short-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18940NISTXML-SV-II-list-short-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18941NISTSchema-SV-II-list-byte-maxLength-1 tokoe:valid" result="pass"/><test-case name="18942NISTXML-SV-II-list-byte-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18943NISTXML-SV-II-list-byte-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18944NISTXML-SV-II-list-byte-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18945NISTXML-SV-II-list-byte-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18946NISTXML-SV-II-list-byte-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18947NISTSchema-SV-II-list-byte-maxLength-2 tokoe:valid" result="pass"/><test-case name="18948NISTXML-SV-II-list-byte-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18949NISTXML-SV-II-list-byte-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18950NISTXML-SV-II-list-byte-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18951NISTXML-SV-II-list-byte-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18952NISTXML-SV-II-list-byte-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18953NISTSchema-SV-II-list-byte-maxLength-3 tokoe:valid" result="pass"/><test-case name="18954NISTXML-SV-II-list-byte-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18955NISTXML-SV-II-list-byte-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18956NISTXML-SV-II-list-byte-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18957NISTXML-SV-II-list-byte-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18958NISTXML-SV-II-list-byte-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18959NISTSchema-SV-II-list-byte-maxLength-4 tokoe:valid" result="pass"/><test-case name="18960NISTXML-SV-II-list-byte-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18961NISTXML-SV-II-list-byte-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18962NISTXML-SV-II-list-byte-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18963NISTXML-SV-II-list-byte-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18964NISTXML-SV-II-list-byte-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18965NISTSchema-SV-II-list-byte-maxLength-5 tokoe:valid" result="pass"/><test-case name="18966NISTXML-SV-II-list-byte-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18967NISTXML-SV-II-list-byte-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18968NISTXML-SV-II-list-byte-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18969NISTXML-SV-II-list-byte-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18970NISTXML-SV-II-list-byte-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18971NISTSchema-SV-II-list-byte-minLength-1 tokoe:valid" result="pass"/><test-case name="18972NISTXML-SV-II-list-byte-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18973NISTXML-SV-II-list-byte-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18974NISTXML-SV-II-list-byte-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18975NISTXML-SV-II-list-byte-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18976NISTXML-SV-II-list-byte-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18977NISTSchema-SV-II-list-byte-minLength-2 tokoe:valid" result="pass"/><test-case name="18978NISTXML-SV-II-list-byte-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18979NISTXML-SV-II-list-byte-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18980NISTXML-SV-II-list-byte-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18981NISTXML-SV-II-list-byte-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18982NISTXML-SV-II-list-byte-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18983NISTSchema-SV-II-list-byte-minLength-3 tokoe:valid" result="pass"/><test-case name="18984NISTXML-SV-II-list-byte-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18985NISTXML-SV-II-list-byte-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18986NISTXML-SV-II-list-byte-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18987NISTXML-SV-II-list-byte-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18988NISTXML-SV-II-list-byte-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18989NISTSchema-SV-II-list-byte-minLength-4 tokoe:valid" result="pass"/><test-case name="18990NISTXML-SV-II-list-byte-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18991NISTXML-SV-II-list-byte-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18992NISTXML-SV-II-list-byte-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18993NISTXML-SV-II-list-byte-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18994NISTXML-SV-II-list-byte-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18995NISTSchema-SV-II-list-byte-minLength-5 tokoe:valid" result="pass"/><test-case name="18996NISTXML-SV-II-list-byte-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18997NISTXML-SV-II-list-byte-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18998NISTXML-SV-II-list-byte-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18999NISTXML-SV-II-list-byte-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19000NISTXML-SV-II-list-byte-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19001NISTSchema-SV-II-list-byte-length-1 tokoe:valid" result="pass"/><test-case name="19002NISTXML-SV-II-list-byte-length-1-1 tokoe:invalid" result="pass"/><test-case name="19003NISTXML-SV-II-list-byte-length-1-2 tokoe:invalid" result="pass"/><test-case name="19004NISTXML-SV-II-list-byte-length-1-3 tokoe:invalid" result="pass"/><test-case name="19005NISTXML-SV-II-list-byte-length-1-4 tokoe:invalid" result="pass"/><test-case name="19006NISTXML-SV-II-list-byte-length-1-5 tokoe:invalid" result="pass"/><test-case name="19007NISTSchema-SV-II-list-byte-length-2 tokoe:valid" result="pass"/><test-case name="19008NISTXML-SV-II-list-byte-length-2-1 tokoe:invalid" result="pass"/><test-case name="19009NISTXML-SV-II-list-byte-length-2-2 tokoe:invalid" result="pass"/><test-case name="19010NISTXML-SV-II-list-byte-length-2-3 tokoe:invalid" result="pass"/><test-case name="19011NISTXML-SV-II-list-byte-length-2-4 tokoe:invalid" result="pass"/><test-case name="19012NISTXML-SV-II-list-byte-length-2-5 tokoe:invalid" result="pass"/><test-case name="19013NISTSchema-SV-II-list-byte-length-3 tokoe:valid" result="pass"/><test-case name="19014NISTXML-SV-II-list-byte-length-3-1 tokoe:invalid" result="pass"/><test-case name="19015NISTXML-SV-II-list-byte-length-3-2 tokoe:invalid" result="pass"/><test-case name="19016NISTXML-SV-II-list-byte-length-3-3 tokoe:invalid" result="pass"/><test-case name="19017NISTXML-SV-II-list-byte-length-3-4 tokoe:invalid" result="pass"/><test-case name="19018NISTXML-SV-II-list-byte-length-3-5 tokoe:invalid" result="pass"/><test-case name="19019NISTSchema-SV-II-list-byte-length-4 tokoe:valid" result="pass"/><test-case name="19020NISTXML-SV-II-list-byte-length-4-1 tokoe:invalid" result="pass"/><test-case name="19021NISTXML-SV-II-list-byte-length-4-2 tokoe:invalid" result="pass"/><test-case name="19022NISTXML-SV-II-list-byte-length-4-3 tokoe:invalid" result="pass"/><test-case name="19023NISTXML-SV-II-list-byte-length-4-4 tokoe:invalid" result="pass"/><test-case name="19024NISTXML-SV-II-list-byte-length-4-5 tokoe:invalid" result="pass"/><test-case name="19025NISTSchema-SV-II-list-byte-length-5 tokoe:valid" result="pass"/><test-case name="19026NISTXML-SV-II-list-byte-length-5-1 tokoe:invalid" result="pass"/><test-case name="19027NISTXML-SV-II-list-byte-length-5-2 tokoe:invalid" result="pass"/><test-case name="19028NISTXML-SV-II-list-byte-length-5-3 tokoe:invalid" result="pass"/><test-case name="19029NISTXML-SV-II-list-byte-length-5-4 tokoe:invalid" result="pass"/><test-case name="19030NISTXML-SV-II-list-byte-length-5-5 tokoe:invalid" result="pass"/><test-case name="19031NISTSchema-SV-II-list-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="19032NISTXML-SV-II-list-byte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19033NISTXML-SV-II-list-byte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19034NISTXML-SV-II-list-byte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19035NISTXML-SV-II-list-byte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19036NISTXML-SV-II-list-byte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19037NISTSchema-SV-II-list-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="19038NISTXML-SV-II-list-byte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19039NISTXML-SV-II-list-byte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19040NISTXML-SV-II-list-byte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19041NISTXML-SV-II-list-byte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19042NISTXML-SV-II-list-byte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19043NISTSchema-SV-II-list-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="19044NISTXML-SV-II-list-byte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19045NISTXML-SV-II-list-byte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19046NISTXML-SV-II-list-byte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19047NISTXML-SV-II-list-byte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19048NISTXML-SV-II-list-byte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19049NISTSchema-SV-II-list-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="19050NISTXML-SV-II-list-byte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19051NISTXML-SV-II-list-byte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19052NISTXML-SV-II-list-byte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19053NISTXML-SV-II-list-byte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19054NISTXML-SV-II-list-byte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19055NISTSchema-SV-II-list-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="19056NISTXML-SV-II-list-byte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19057NISTXML-SV-II-list-byte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19058NISTXML-SV-II-list-byte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19059NISTXML-SV-II-list-byte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19060NISTXML-SV-II-list-byte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19061NISTSchema-SV-II-list-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="19062NISTXML-SV-II-list-byte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19063NISTXML-SV-II-list-byte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19064NISTXML-SV-II-list-byte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19065NISTXML-SV-II-list-byte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19066NISTXML-SV-II-list-byte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19067NISTSchema-SV-II-list-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="19068NISTXML-SV-II-list-byte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19069NISTXML-SV-II-list-byte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19070NISTXML-SV-II-list-byte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19071NISTXML-SV-II-list-byte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19072NISTXML-SV-II-list-byte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19073NISTSchema-SV-II-list-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="19074NISTXML-SV-II-list-byte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19075NISTXML-SV-II-list-byte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19076NISTXML-SV-II-list-byte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19077NISTXML-SV-II-list-byte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19078NISTXML-SV-II-list-byte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19079NISTSchema-SV-II-list-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="19080NISTXML-SV-II-list-byte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19081NISTXML-SV-II-list-byte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19082NISTXML-SV-II-list-byte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19083NISTXML-SV-II-list-byte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19084NISTXML-SV-II-list-byte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19085NISTSchema-SV-II-list-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="19086NISTXML-SV-II-list-byte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19087NISTXML-SV-II-list-byte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19088NISTXML-SV-II-list-byte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19089NISTXML-SV-II-list-byte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19090NISTXML-SV-II-list-byte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19091NISTSchema-SV-II-list-nonNegativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="19092NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19093NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19094NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19095NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19096NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19097NISTSchema-SV-II-list-nonNegativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="19098NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19099NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19100NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19101NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19102NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19103NISTSchema-SV-II-list-nonNegativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="19104NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19105NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19106NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19107NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19108NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19109NISTSchema-SV-II-list-nonNegativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="19110NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19111NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19112NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19113NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19114NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19115NISTSchema-SV-II-list-nonNegativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="19116NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19117NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19118NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19119NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19120NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19121NISTSchema-SV-II-list-nonNegativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="19122NISTXML-SV-II-list-nonNegativeInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19123NISTXML-SV-II-list-nonNegativeInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19124NISTXML-SV-II-list-nonNegativeInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19125NISTXML-SV-II-list-nonNegativeInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19126NISTXML-SV-II-list-nonNegativeInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19127NISTSchema-SV-II-list-nonNegativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="19128NISTXML-SV-II-list-nonNegativeInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19129NISTXML-SV-II-list-nonNegativeInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19130NISTXML-SV-II-list-nonNegativeInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19131NISTXML-SV-II-list-nonNegativeInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19132NISTXML-SV-II-list-nonNegativeInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19133NISTSchema-SV-II-list-nonNegativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="19134NISTXML-SV-II-list-nonNegativeInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19135NISTXML-SV-II-list-nonNegativeInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19136NISTXML-SV-II-list-nonNegativeInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19137NISTXML-SV-II-list-nonNegativeInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19138NISTXML-SV-II-list-nonNegativeInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19139NISTSchema-SV-II-list-nonNegativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="19140NISTXML-SV-II-list-nonNegativeInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19141NISTXML-SV-II-list-nonNegativeInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19142NISTXML-SV-II-list-nonNegativeInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19143NISTXML-SV-II-list-nonNegativeInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19144NISTXML-SV-II-list-nonNegativeInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19145NISTSchema-SV-II-list-nonNegativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="19146NISTXML-SV-II-list-nonNegativeInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19147NISTXML-SV-II-list-nonNegativeInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19148NISTXML-SV-II-list-nonNegativeInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19149NISTXML-SV-II-list-nonNegativeInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19150NISTXML-SV-II-list-nonNegativeInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19151NISTSchema-SV-II-list-nonNegativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="19152NISTXML-SV-II-list-nonNegativeInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="19153NISTXML-SV-II-list-nonNegativeInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="19154NISTXML-SV-II-list-nonNegativeInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="19155NISTXML-SV-II-list-nonNegativeInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="19156NISTXML-SV-II-list-nonNegativeInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="19157NISTSchema-SV-II-list-nonNegativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="19158NISTXML-SV-II-list-nonNegativeInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="19159NISTXML-SV-II-list-nonNegativeInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="19160NISTXML-SV-II-list-nonNegativeInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="19161NISTXML-SV-II-list-nonNegativeInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="19162NISTXML-SV-II-list-nonNegativeInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="19163NISTSchema-SV-II-list-nonNegativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="19164NISTXML-SV-II-list-nonNegativeInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="19165NISTXML-SV-II-list-nonNegativeInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="19166NISTXML-SV-II-list-nonNegativeInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="19167NISTXML-SV-II-list-nonNegativeInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="19168NISTXML-SV-II-list-nonNegativeInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="19169NISTSchema-SV-II-list-nonNegativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="19170NISTXML-SV-II-list-nonNegativeInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="19171NISTXML-SV-II-list-nonNegativeInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="19172NISTXML-SV-II-list-nonNegativeInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="19173NISTXML-SV-II-list-nonNegativeInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="19174NISTXML-SV-II-list-nonNegativeInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="19175NISTSchema-SV-II-list-nonNegativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="19176NISTXML-SV-II-list-nonNegativeInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="19177NISTXML-SV-II-list-nonNegativeInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="19178NISTXML-SV-II-list-nonNegativeInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="19179NISTXML-SV-II-list-nonNegativeInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="19180NISTXML-SV-II-list-nonNegativeInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="19181NISTSchema-SV-II-list-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="19182NISTXML-SV-II-list-nonNegativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19183NISTXML-SV-II-list-nonNegativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19184NISTXML-SV-II-list-nonNegativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19185NISTXML-SV-II-list-nonNegativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19186NISTXML-SV-II-list-nonNegativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19187NISTSchema-SV-II-list-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="19188NISTXML-SV-II-list-nonNegativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19189NISTXML-SV-II-list-nonNegativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19190NISTXML-SV-II-list-nonNegativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19191NISTXML-SV-II-list-nonNegativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19192NISTXML-SV-II-list-nonNegativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19193NISTSchema-SV-II-list-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="19194NISTXML-SV-II-list-nonNegativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19195NISTXML-SV-II-list-nonNegativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19196NISTXML-SV-II-list-nonNegativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19197NISTXML-SV-II-list-nonNegativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19198NISTXML-SV-II-list-nonNegativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19199NISTSchema-SV-II-list-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="19200NISTXML-SV-II-list-nonNegativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19201NISTXML-SV-II-list-nonNegativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19202NISTXML-SV-II-list-nonNegativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19203NISTXML-SV-II-list-nonNegativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19204NISTXML-SV-II-list-nonNegativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19205NISTSchema-SV-II-list-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="19206NISTXML-SV-II-list-nonNegativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19207NISTXML-SV-II-list-nonNegativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19208NISTXML-SV-II-list-nonNegativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19209NISTXML-SV-II-list-nonNegativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19210NISTXML-SV-II-list-nonNegativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19211NISTSchema-SV-II-list-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="19212NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19213NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19214NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19215NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19216NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19217NISTSchema-SV-II-list-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="19218NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19219NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19220NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19221NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19222NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19223NISTSchema-SV-II-list-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="19224NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19225NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19226NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19227NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19228NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19229NISTSchema-SV-II-list-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="19230NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19231NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19232NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19233NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19234NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19235NISTSchema-SV-II-list-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="19236NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19237NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19238NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19239NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19240NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19241NISTSchema-SV-II-list-unsignedLong-maxLength-1 tokoe:valid" result="pass"/><test-case name="19242NISTXML-SV-II-list-unsignedLong-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19243NISTXML-SV-II-list-unsignedLong-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19244NISTXML-SV-II-list-unsignedLong-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19245NISTXML-SV-II-list-unsignedLong-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19246NISTXML-SV-II-list-unsignedLong-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19247NISTSchema-SV-II-list-unsignedLong-maxLength-2 tokoe:valid" result="pass"/><test-case name="19248NISTXML-SV-II-list-unsignedLong-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19249NISTXML-SV-II-list-unsignedLong-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19250NISTXML-SV-II-list-unsignedLong-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19251NISTXML-SV-II-list-unsignedLong-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19252NISTXML-SV-II-list-unsignedLong-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19253NISTSchema-SV-II-list-unsignedLong-maxLength-3 tokoe:valid" result="pass"/><test-case name="19254NISTXML-SV-II-list-unsignedLong-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19255NISTXML-SV-II-list-unsignedLong-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19256NISTXML-SV-II-list-unsignedLong-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19257NISTXML-SV-II-list-unsignedLong-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19258NISTXML-SV-II-list-unsignedLong-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19259NISTSchema-SV-II-list-unsignedLong-maxLength-4 tokoe:valid" result="pass"/><test-case name="19260NISTXML-SV-II-list-unsignedLong-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19261NISTXML-SV-II-list-unsignedLong-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19262NISTXML-SV-II-list-unsignedLong-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19263NISTXML-SV-II-list-unsignedLong-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19264NISTXML-SV-II-list-unsignedLong-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19265NISTSchema-SV-II-list-unsignedLong-maxLength-5 tokoe:valid" result="pass"/><test-case name="19266NISTXML-SV-II-list-unsignedLong-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19267NISTXML-SV-II-list-unsignedLong-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19268NISTXML-SV-II-list-unsignedLong-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19269NISTXML-SV-II-list-unsignedLong-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19270NISTXML-SV-II-list-unsignedLong-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19271NISTSchema-SV-II-list-unsignedLong-minLength-1 tokoe:valid" result="pass"/><test-case name="19272NISTXML-SV-II-list-unsignedLong-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19273NISTXML-SV-II-list-unsignedLong-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19274NISTXML-SV-II-list-unsignedLong-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19275NISTXML-SV-II-list-unsignedLong-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19276NISTXML-SV-II-list-unsignedLong-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19277NISTSchema-SV-II-list-unsignedLong-minLength-2 tokoe:valid" result="pass"/><test-case name="19278NISTXML-SV-II-list-unsignedLong-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19279NISTXML-SV-II-list-unsignedLong-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19280NISTXML-SV-II-list-unsignedLong-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19281NISTXML-SV-II-list-unsignedLong-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19282NISTXML-SV-II-list-unsignedLong-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19283NISTSchema-SV-II-list-unsignedLong-minLength-3 tokoe:valid" result="pass"/><test-case name="19284NISTXML-SV-II-list-unsignedLong-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19285NISTXML-SV-II-list-unsignedLong-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19286NISTXML-SV-II-list-unsignedLong-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19287NISTXML-SV-II-list-unsignedLong-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19288NISTXML-SV-II-list-unsignedLong-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19289NISTSchema-SV-II-list-unsignedLong-minLength-4 tokoe:valid" result="pass"/><test-case name="19290NISTXML-SV-II-list-unsignedLong-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19291NISTXML-SV-II-list-unsignedLong-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19292NISTXML-SV-II-list-unsignedLong-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19293NISTXML-SV-II-list-unsignedLong-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19294NISTXML-SV-II-list-unsignedLong-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19295NISTSchema-SV-II-list-unsignedLong-minLength-5 tokoe:valid" result="pass"/><test-case name="19296NISTXML-SV-II-list-unsignedLong-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19297NISTXML-SV-II-list-unsignedLong-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19298NISTXML-SV-II-list-unsignedLong-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19299NISTXML-SV-II-list-unsignedLong-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19300NISTXML-SV-II-list-unsignedLong-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19301NISTSchema-SV-II-list-unsignedLong-length-1 tokoe:valid" result="pass"/><test-case name="19302NISTXML-SV-II-list-unsignedLong-length-1-1 tokoe:invalid" result="pass"/><test-case name="19303NISTXML-SV-II-list-unsignedLong-length-1-2 tokoe:invalid" result="pass"/><test-case name="19304NISTXML-SV-II-list-unsignedLong-length-1-3 tokoe:invalid" result="pass"/><test-case name="19305NISTXML-SV-II-list-unsignedLong-length-1-4 tokoe:invalid" result="pass"/><test-case name="19306NISTXML-SV-II-list-unsignedLong-length-1-5 tokoe:invalid" result="pass"/><test-case name="19307NISTSchema-SV-II-list-unsignedLong-length-2 tokoe:valid" result="pass"/><test-case name="19308NISTXML-SV-II-list-unsignedLong-length-2-1 tokoe:invalid" result="pass"/><test-case name="19309NISTXML-SV-II-list-unsignedLong-length-2-2 tokoe:invalid" result="pass"/><test-case name="19310NISTXML-SV-II-list-unsignedLong-length-2-3 tokoe:invalid" result="pass"/><test-case name="19311NISTXML-SV-II-list-unsignedLong-length-2-4 tokoe:invalid" result="pass"/><test-case name="19312NISTXML-SV-II-list-unsignedLong-length-2-5 tokoe:invalid" result="pass"/><test-case name="19313NISTSchema-SV-II-list-unsignedLong-length-3 tokoe:valid" result="pass"/><test-case name="19314NISTXML-SV-II-list-unsignedLong-length-3-1 tokoe:invalid" result="pass"/><test-case name="19315NISTXML-SV-II-list-unsignedLong-length-3-2 tokoe:invalid" result="pass"/><test-case name="19316NISTXML-SV-II-list-unsignedLong-length-3-3 tokoe:invalid" result="pass"/><test-case name="19317NISTXML-SV-II-list-unsignedLong-length-3-4 tokoe:invalid" result="pass"/><test-case name="19318NISTXML-SV-II-list-unsignedLong-length-3-5 tokoe:invalid" result="pass"/><test-case name="19319NISTSchema-SV-II-list-unsignedLong-length-4 tokoe:valid" result="pass"/><test-case name="19320NISTXML-SV-II-list-unsignedLong-length-4-1 tokoe:invalid" result="pass"/><test-case name="19321NISTXML-SV-II-list-unsignedLong-length-4-2 tokoe:invalid" result="pass"/><test-case name="19322NISTXML-SV-II-list-unsignedLong-length-4-3 tokoe:invalid" result="pass"/><test-case name="19323NISTXML-SV-II-list-unsignedLong-length-4-4 tokoe:invalid" result="pass"/><test-case name="19324NISTXML-SV-II-list-unsignedLong-length-4-5 tokoe:invalid" result="pass"/><test-case name="19325NISTSchema-SV-II-list-unsignedLong-length-5 tokoe:valid" result="pass"/><test-case name="19326NISTXML-SV-II-list-unsignedLong-length-5-1 tokoe:invalid" result="pass"/><test-case name="19327NISTXML-SV-II-list-unsignedLong-length-5-2 tokoe:invalid" result="pass"/><test-case name="19328NISTXML-SV-II-list-unsignedLong-length-5-3 tokoe:invalid" result="pass"/><test-case name="19329NISTXML-SV-II-list-unsignedLong-length-5-4 tokoe:invalid" result="pass"/><test-case name="19330NISTXML-SV-II-list-unsignedLong-length-5-5 tokoe:invalid" result="pass"/><test-case name="19331NISTSchema-SV-II-list-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="19332NISTXML-SV-II-list-unsignedLong-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19333NISTXML-SV-II-list-unsignedLong-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19334NISTXML-SV-II-list-unsignedLong-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19335NISTXML-SV-II-list-unsignedLong-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19336NISTXML-SV-II-list-unsignedLong-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19337NISTSchema-SV-II-list-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="19338NISTXML-SV-II-list-unsignedLong-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19339NISTXML-SV-II-list-unsignedLong-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19340NISTXML-SV-II-list-unsignedLong-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19341NISTXML-SV-II-list-unsignedLong-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19342NISTXML-SV-II-list-unsignedLong-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19343NISTSchema-SV-II-list-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="19344NISTXML-SV-II-list-unsignedLong-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19345NISTXML-SV-II-list-unsignedLong-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19346NISTXML-SV-II-list-unsignedLong-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19347NISTXML-SV-II-list-unsignedLong-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19348NISTXML-SV-II-list-unsignedLong-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19349NISTSchema-SV-II-list-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="19350NISTXML-SV-II-list-unsignedLong-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19351NISTXML-SV-II-list-unsignedLong-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19352NISTXML-SV-II-list-unsignedLong-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19353NISTXML-SV-II-list-unsignedLong-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19354NISTXML-SV-II-list-unsignedLong-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19355NISTSchema-SV-II-list-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="19356NISTXML-SV-II-list-unsignedLong-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19357NISTXML-SV-II-list-unsignedLong-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19358NISTXML-SV-II-list-unsignedLong-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19359NISTXML-SV-II-list-unsignedLong-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19360NISTXML-SV-II-list-unsignedLong-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19361NISTSchema-SV-II-list-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="19362NISTXML-SV-II-list-unsignedLong-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19363NISTXML-SV-II-list-unsignedLong-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19364NISTXML-SV-II-list-unsignedLong-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19365NISTXML-SV-II-list-unsignedLong-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19366NISTXML-SV-II-list-unsignedLong-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19367NISTSchema-SV-II-list-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="19368NISTXML-SV-II-list-unsignedLong-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19369NISTXML-SV-II-list-unsignedLong-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19370NISTXML-SV-II-list-unsignedLong-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19371NISTXML-SV-II-list-unsignedLong-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19372NISTXML-SV-II-list-unsignedLong-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19373NISTSchema-SV-II-list-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="19374NISTXML-SV-II-list-unsignedLong-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19375NISTXML-SV-II-list-unsignedLong-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19376NISTXML-SV-II-list-unsignedLong-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19377NISTXML-SV-II-list-unsignedLong-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19378NISTXML-SV-II-list-unsignedLong-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19379NISTSchema-SV-II-list-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="19380NISTXML-SV-II-list-unsignedLong-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19381NISTXML-SV-II-list-unsignedLong-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19382NISTXML-SV-II-list-unsignedLong-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19383NISTXML-SV-II-list-unsignedLong-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19384NISTXML-SV-II-list-unsignedLong-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19385NISTSchema-SV-II-list-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="19386NISTXML-SV-II-list-unsignedLong-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19387NISTXML-SV-II-list-unsignedLong-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19388NISTXML-SV-II-list-unsignedLong-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19389NISTXML-SV-II-list-unsignedLong-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19390NISTXML-SV-II-list-unsignedLong-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19391NISTSchema-SV-II-list-unsignedInt-maxLength-1 tokoe:valid" result="pass"/><test-case name="19392NISTXML-SV-II-list-unsignedInt-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19393NISTXML-SV-II-list-unsignedInt-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19394NISTXML-SV-II-list-unsignedInt-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19395NISTXML-SV-II-list-unsignedInt-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19396NISTXML-SV-II-list-unsignedInt-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19397NISTSchema-SV-II-list-unsignedInt-maxLength-2 tokoe:valid" result="pass"/><test-case name="19398NISTXML-SV-II-list-unsignedInt-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19399NISTXML-SV-II-list-unsignedInt-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19400NISTXML-SV-II-list-unsignedInt-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19401NISTXML-SV-II-list-unsignedInt-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19402NISTXML-SV-II-list-unsignedInt-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19403NISTSchema-SV-II-list-unsignedInt-maxLength-3 tokoe:valid" result="pass"/><test-case name="19404NISTXML-SV-II-list-unsignedInt-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19405NISTXML-SV-II-list-unsignedInt-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19406NISTXML-SV-II-list-unsignedInt-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19407NISTXML-SV-II-list-unsignedInt-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19408NISTXML-SV-II-list-unsignedInt-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19409NISTSchema-SV-II-list-unsignedInt-maxLength-4 tokoe:valid" result="pass"/><test-case name="19410NISTXML-SV-II-list-unsignedInt-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19411NISTXML-SV-II-list-unsignedInt-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19412NISTXML-SV-II-list-unsignedInt-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19413NISTXML-SV-II-list-unsignedInt-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19414NISTXML-SV-II-list-unsignedInt-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19415NISTSchema-SV-II-list-unsignedInt-maxLength-5 tokoe:valid" result="pass"/><test-case name="19416NISTXML-SV-II-list-unsignedInt-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19417NISTXML-SV-II-list-unsignedInt-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19418NISTXML-SV-II-list-unsignedInt-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19419NISTXML-SV-II-list-unsignedInt-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19420NISTXML-SV-II-list-unsignedInt-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19421NISTSchema-SV-II-list-unsignedInt-minLength-1 tokoe:valid" result="pass"/><test-case name="19422NISTXML-SV-II-list-unsignedInt-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19423NISTXML-SV-II-list-unsignedInt-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19424NISTXML-SV-II-list-unsignedInt-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19425NISTXML-SV-II-list-unsignedInt-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19426NISTXML-SV-II-list-unsignedInt-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19427NISTSchema-SV-II-list-unsignedInt-minLength-2 tokoe:valid" result="pass"/><test-case name="19428NISTXML-SV-II-list-unsignedInt-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19429NISTXML-SV-II-list-unsignedInt-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19430NISTXML-SV-II-list-unsignedInt-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19431NISTXML-SV-II-list-unsignedInt-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19432NISTXML-SV-II-list-unsignedInt-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19433NISTSchema-SV-II-list-unsignedInt-minLength-3 tokoe:valid" result="pass"/><test-case name="19434NISTXML-SV-II-list-unsignedInt-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19435NISTXML-SV-II-list-unsignedInt-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19436NISTXML-SV-II-list-unsignedInt-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19437NISTXML-SV-II-list-unsignedInt-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19438NISTXML-SV-II-list-unsignedInt-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19439NISTSchema-SV-II-list-unsignedInt-minLength-4 tokoe:valid" result="pass"/><test-case name="19440NISTXML-SV-II-list-unsignedInt-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19441NISTXML-SV-II-list-unsignedInt-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19442NISTXML-SV-II-list-unsignedInt-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19443NISTXML-SV-II-list-unsignedInt-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19444NISTXML-SV-II-list-unsignedInt-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19445NISTSchema-SV-II-list-unsignedInt-minLength-5 tokoe:valid" result="pass"/><test-case name="19446NISTXML-SV-II-list-unsignedInt-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19447NISTXML-SV-II-list-unsignedInt-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19448NISTXML-SV-II-list-unsignedInt-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19449NISTXML-SV-II-list-unsignedInt-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19450NISTXML-SV-II-list-unsignedInt-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19451NISTSchema-SV-II-list-unsignedInt-length-1 tokoe:valid" result="pass"/><test-case name="19452NISTXML-SV-II-list-unsignedInt-length-1-1 tokoe:invalid" result="pass"/><test-case name="19453NISTXML-SV-II-list-unsignedInt-length-1-2 tokoe:invalid" result="pass"/><test-case name="19454NISTXML-SV-II-list-unsignedInt-length-1-3 tokoe:invalid" result="pass"/><test-case name="19455NISTXML-SV-II-list-unsignedInt-length-1-4 tokoe:invalid" result="pass"/><test-case name="19456NISTXML-SV-II-list-unsignedInt-length-1-5 tokoe:invalid" result="pass"/><test-case name="19457NISTSchema-SV-II-list-unsignedInt-length-2 tokoe:valid" result="pass"/><test-case name="19458NISTXML-SV-II-list-unsignedInt-length-2-1 tokoe:invalid" result="pass"/><test-case name="19459NISTXML-SV-II-list-unsignedInt-length-2-2 tokoe:invalid" result="pass"/><test-case name="19460NISTXML-SV-II-list-unsignedInt-length-2-3 tokoe:invalid" result="pass"/><test-case name="19461NISTXML-SV-II-list-unsignedInt-length-2-4 tokoe:invalid" result="pass"/><test-case name="19462NISTXML-SV-II-list-unsignedInt-length-2-5 tokoe:invalid" result="pass"/><test-case name="19463NISTSchema-SV-II-list-unsignedInt-length-3 tokoe:valid" result="pass"/><test-case name="19464NISTXML-SV-II-list-unsignedInt-length-3-1 tokoe:invalid" result="pass"/><test-case name="19465NISTXML-SV-II-list-unsignedInt-length-3-2 tokoe:invalid" result="pass"/><test-case name="19466NISTXML-SV-II-list-unsignedInt-length-3-3 tokoe:invalid" result="pass"/><test-case name="19467NISTXML-SV-II-list-unsignedInt-length-3-4 tokoe:invalid" result="pass"/><test-case name="19468NISTXML-SV-II-list-unsignedInt-length-3-5 tokoe:invalid" result="pass"/><test-case name="19469NISTSchema-SV-II-list-unsignedInt-length-4 tokoe:valid" result="pass"/><test-case name="19470NISTXML-SV-II-list-unsignedInt-length-4-1 tokoe:invalid" result="pass"/><test-case name="19471NISTXML-SV-II-list-unsignedInt-length-4-2 tokoe:invalid" result="pass"/><test-case name="19472NISTXML-SV-II-list-unsignedInt-length-4-3 tokoe:invalid" result="pass"/><test-case name="19473NISTXML-SV-II-list-unsignedInt-length-4-4 tokoe:invalid" result="pass"/><test-case name="19474NISTXML-SV-II-list-unsignedInt-length-4-5 tokoe:invalid" result="pass"/><test-case name="19475NISTSchema-SV-II-list-unsignedInt-length-5 tokoe:valid" result="pass"/><test-case name="19476NISTXML-SV-II-list-unsignedInt-length-5-1 tokoe:invalid" result="pass"/><test-case name="19477NISTXML-SV-II-list-unsignedInt-length-5-2 tokoe:invalid" result="pass"/><test-case name="19478NISTXML-SV-II-list-unsignedInt-length-5-3 tokoe:invalid" result="pass"/><test-case name="19479NISTXML-SV-II-list-unsignedInt-length-5-4 tokoe:invalid" result="pass"/><test-case name="19480NISTXML-SV-II-list-unsignedInt-length-5-5 tokoe:invalid" result="pass"/><test-case name="19481NISTSchema-SV-II-list-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="19482NISTXML-SV-II-list-unsignedInt-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19483NISTXML-SV-II-list-unsignedInt-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19484NISTXML-SV-II-list-unsignedInt-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19485NISTXML-SV-II-list-unsignedInt-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19486NISTXML-SV-II-list-unsignedInt-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19487NISTSchema-SV-II-list-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="19488NISTXML-SV-II-list-unsignedInt-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19489NISTXML-SV-II-list-unsignedInt-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19490NISTXML-SV-II-list-unsignedInt-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19491NISTXML-SV-II-list-unsignedInt-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19492NISTXML-SV-II-list-unsignedInt-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19493NISTSchema-SV-II-list-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="19494NISTXML-SV-II-list-unsignedInt-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19495NISTXML-SV-II-list-unsignedInt-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19496NISTXML-SV-II-list-unsignedInt-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19497NISTXML-SV-II-list-unsignedInt-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19498NISTXML-SV-II-list-unsignedInt-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19499NISTSchema-SV-II-list-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="19500NISTXML-SV-II-list-unsignedInt-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19501NISTXML-SV-II-list-unsignedInt-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19502NISTXML-SV-II-list-unsignedInt-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19503NISTXML-SV-II-list-unsignedInt-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19504NISTXML-SV-II-list-unsignedInt-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19505NISTSchema-SV-II-list-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="19506NISTXML-SV-II-list-unsignedInt-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19507NISTXML-SV-II-list-unsignedInt-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19508NISTXML-SV-II-list-unsignedInt-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19509NISTXML-SV-II-list-unsignedInt-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19510NISTXML-SV-II-list-unsignedInt-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19511NISTSchema-SV-II-list-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="19512NISTXML-SV-II-list-unsignedInt-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19513NISTXML-SV-II-list-unsignedInt-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19514NISTXML-SV-II-list-unsignedInt-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19515NISTXML-SV-II-list-unsignedInt-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19516NISTXML-SV-II-list-unsignedInt-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19517NISTSchema-SV-II-list-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="19518NISTXML-SV-II-list-unsignedInt-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19519NISTXML-SV-II-list-unsignedInt-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19520NISTXML-SV-II-list-unsignedInt-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19521NISTXML-SV-II-list-unsignedInt-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19522NISTXML-SV-II-list-unsignedInt-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19523NISTSchema-SV-II-list-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="19524NISTXML-SV-II-list-unsignedInt-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19525NISTXML-SV-II-list-unsignedInt-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19526NISTXML-SV-II-list-unsignedInt-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19527NISTXML-SV-II-list-unsignedInt-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19528NISTXML-SV-II-list-unsignedInt-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19529NISTSchema-SV-II-list-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="19530NISTXML-SV-II-list-unsignedInt-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19531NISTXML-SV-II-list-unsignedInt-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19532NISTXML-SV-II-list-unsignedInt-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19533NISTXML-SV-II-list-unsignedInt-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19534NISTXML-SV-II-list-unsignedInt-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19535NISTSchema-SV-II-list-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="19536NISTXML-SV-II-list-unsignedInt-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19537NISTXML-SV-II-list-unsignedInt-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19538NISTXML-SV-II-list-unsignedInt-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19539NISTXML-SV-II-list-unsignedInt-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19540NISTXML-SV-II-list-unsignedInt-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19541NISTSchema-SV-II-list-unsignedShort-maxLength-1 tokoe:valid" result="pass"/><test-case name="19542NISTXML-SV-II-list-unsignedShort-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19543NISTXML-SV-II-list-unsignedShort-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19544NISTXML-SV-II-list-unsignedShort-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19545NISTXML-SV-II-list-unsignedShort-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19546NISTXML-SV-II-list-unsignedShort-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19547NISTSchema-SV-II-list-unsignedShort-maxLength-2 tokoe:valid" result="pass"/><test-case name="19548NISTXML-SV-II-list-unsignedShort-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19549NISTXML-SV-II-list-unsignedShort-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19550NISTXML-SV-II-list-unsignedShort-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19551NISTXML-SV-II-list-unsignedShort-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19552NISTXML-SV-II-list-unsignedShort-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19553NISTSchema-SV-II-list-unsignedShort-maxLength-3 tokoe:valid" result="pass"/><test-case name="19554NISTXML-SV-II-list-unsignedShort-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19555NISTXML-SV-II-list-unsignedShort-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19556NISTXML-SV-II-list-unsignedShort-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19557NISTXML-SV-II-list-unsignedShort-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19558NISTXML-SV-II-list-unsignedShort-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19559NISTSchema-SV-II-list-unsignedShort-maxLength-4 tokoe:valid" result="pass"/><test-case name="19560NISTXML-SV-II-list-unsignedShort-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19561NISTXML-SV-II-list-unsignedShort-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19562NISTXML-SV-II-list-unsignedShort-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19563NISTXML-SV-II-list-unsignedShort-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19564NISTXML-SV-II-list-unsignedShort-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19565NISTSchema-SV-II-list-unsignedShort-maxLength-5 tokoe:valid" result="pass"/><test-case name="19566NISTXML-SV-II-list-unsignedShort-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19567NISTXML-SV-II-list-unsignedShort-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19568NISTXML-SV-II-list-unsignedShort-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19569NISTXML-SV-II-list-unsignedShort-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19570NISTXML-SV-II-list-unsignedShort-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19571NISTSchema-SV-II-list-unsignedShort-minLength-1 tokoe:valid" result="pass"/><test-case name="19572NISTXML-SV-II-list-unsignedShort-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19573NISTXML-SV-II-list-unsignedShort-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19574NISTXML-SV-II-list-unsignedShort-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19575NISTXML-SV-II-list-unsignedShort-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19576NISTXML-SV-II-list-unsignedShort-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19577NISTSchema-SV-II-list-unsignedShort-minLength-2 tokoe:valid" result="pass"/><test-case name="19578NISTXML-SV-II-list-unsignedShort-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19579NISTXML-SV-II-list-unsignedShort-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19580NISTXML-SV-II-list-unsignedShort-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19581NISTXML-SV-II-list-unsignedShort-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19582NISTXML-SV-II-list-unsignedShort-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19583NISTSchema-SV-II-list-unsignedShort-minLength-3 tokoe:valid" result="pass"/><test-case name="19584NISTXML-SV-II-list-unsignedShort-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19585NISTXML-SV-II-list-unsignedShort-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19586NISTXML-SV-II-list-unsignedShort-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19587NISTXML-SV-II-list-unsignedShort-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19588NISTXML-SV-II-list-unsignedShort-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19589NISTSchema-SV-II-list-unsignedShort-minLength-4 tokoe:valid" result="pass"/><test-case name="19590NISTXML-SV-II-list-unsignedShort-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19591NISTXML-SV-II-list-unsignedShort-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19592NISTXML-SV-II-list-unsignedShort-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19593NISTXML-SV-II-list-unsignedShort-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19594NISTXML-SV-II-list-unsignedShort-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19595NISTSchema-SV-II-list-unsignedShort-minLength-5 tokoe:valid" result="pass"/><test-case name="19596NISTXML-SV-II-list-unsignedShort-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19597NISTXML-SV-II-list-unsignedShort-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19598NISTXML-SV-II-list-unsignedShort-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19599NISTXML-SV-II-list-unsignedShort-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19600NISTXML-SV-II-list-unsignedShort-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19601NISTSchema-SV-II-list-unsignedShort-length-1 tokoe:valid" result="pass"/><test-case name="19602NISTXML-SV-II-list-unsignedShort-length-1-1 tokoe:invalid" result="pass"/><test-case name="19603NISTXML-SV-II-list-unsignedShort-length-1-2 tokoe:invalid" result="pass"/><test-case name="19604NISTXML-SV-II-list-unsignedShort-length-1-3 tokoe:invalid" result="pass"/><test-case name="19605NISTXML-SV-II-list-unsignedShort-length-1-4 tokoe:invalid" result="pass"/><test-case name="19606NISTXML-SV-II-list-unsignedShort-length-1-5 tokoe:invalid" result="pass"/><test-case name="19607NISTSchema-SV-II-list-unsignedShort-length-2 tokoe:valid" result="pass"/><test-case name="19608NISTXML-SV-II-list-unsignedShort-length-2-1 tokoe:invalid" result="pass"/><test-case name="19609NISTXML-SV-II-list-unsignedShort-length-2-2 tokoe:invalid" result="pass"/><test-case name="19610NISTXML-SV-II-list-unsignedShort-length-2-3 tokoe:invalid" result="pass"/><test-case name="19611NISTXML-SV-II-list-unsignedShort-length-2-4 tokoe:invalid" result="pass"/><test-case name="19612NISTXML-SV-II-list-unsignedShort-length-2-5 tokoe:invalid" result="pass"/><test-case name="19613NISTSchema-SV-II-list-unsignedShort-length-3 tokoe:valid" result="pass"/><test-case name="19614NISTXML-SV-II-list-unsignedShort-length-3-1 tokoe:invalid" result="pass"/><test-case name="19615NISTXML-SV-II-list-unsignedShort-length-3-2 tokoe:invalid" result="pass"/><test-case name="19616NISTXML-SV-II-list-unsignedShort-length-3-3 tokoe:invalid" result="pass"/><test-case name="19617NISTXML-SV-II-list-unsignedShort-length-3-4 tokoe:invalid" result="pass"/><test-case name="19618NISTXML-SV-II-list-unsignedShort-length-3-5 tokoe:invalid" result="pass"/><test-case name="19619NISTSchema-SV-II-list-unsignedShort-length-4 tokoe:valid" result="pass"/><test-case name="19620NISTXML-SV-II-list-unsignedShort-length-4-1 tokoe:invalid" result="pass"/><test-case name="19621NISTXML-SV-II-list-unsignedShort-length-4-2 tokoe:invalid" result="pass"/><test-case name="19622NISTXML-SV-II-list-unsignedShort-length-4-3 tokoe:invalid" result="pass"/><test-case name="19623NISTXML-SV-II-list-unsignedShort-length-4-4 tokoe:invalid" result="pass"/><test-case name="19624NISTXML-SV-II-list-unsignedShort-length-4-5 tokoe:invalid" result="pass"/><test-case name="19625NISTSchema-SV-II-list-unsignedShort-length-5 tokoe:valid" result="pass"/><test-case name="19626NISTXML-SV-II-list-unsignedShort-length-5-1 tokoe:invalid" result="pass"/><test-case name="19627NISTXML-SV-II-list-unsignedShort-length-5-2 tokoe:invalid" result="pass"/><test-case name="19628NISTXML-SV-II-list-unsignedShort-length-5-3 tokoe:invalid" result="pass"/><test-case name="19629NISTXML-SV-II-list-unsignedShort-length-5-4 tokoe:invalid" result="pass"/><test-case name="19630NISTXML-SV-II-list-unsignedShort-length-5-5 tokoe:invalid" result="pass"/><test-case name="19631NISTSchema-SV-II-list-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="19632NISTXML-SV-II-list-unsignedShort-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19633NISTXML-SV-II-list-unsignedShort-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19634NISTXML-SV-II-list-unsignedShort-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19635NISTXML-SV-II-list-unsignedShort-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19636NISTXML-SV-II-list-unsignedShort-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19637NISTSchema-SV-II-list-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="19638NISTXML-SV-II-list-unsignedShort-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19639NISTXML-SV-II-list-unsignedShort-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19640NISTXML-SV-II-list-unsignedShort-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19641NISTXML-SV-II-list-unsignedShort-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19642NISTXML-SV-II-list-unsignedShort-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19643NISTSchema-SV-II-list-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="19644NISTXML-SV-II-list-unsignedShort-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19645NISTXML-SV-II-list-unsignedShort-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19646NISTXML-SV-II-list-unsignedShort-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19647NISTXML-SV-II-list-unsignedShort-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19648NISTXML-SV-II-list-unsignedShort-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19649NISTSchema-SV-II-list-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="19650NISTXML-SV-II-list-unsignedShort-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19651NISTXML-SV-II-list-unsignedShort-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19652NISTXML-SV-II-list-unsignedShort-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19653NISTXML-SV-II-list-unsignedShort-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19654NISTXML-SV-II-list-unsignedShort-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19655NISTSchema-SV-II-list-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="19656NISTXML-SV-II-list-unsignedShort-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19657NISTXML-SV-II-list-unsignedShort-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19658NISTXML-SV-II-list-unsignedShort-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19659NISTXML-SV-II-list-unsignedShort-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19660NISTXML-SV-II-list-unsignedShort-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19661NISTSchema-SV-II-list-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="19662NISTXML-SV-II-list-unsignedShort-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19663NISTXML-SV-II-list-unsignedShort-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19664NISTXML-SV-II-list-unsignedShort-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19665NISTXML-SV-II-list-unsignedShort-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19666NISTXML-SV-II-list-unsignedShort-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19667NISTSchema-SV-II-list-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="19668NISTXML-SV-II-list-unsignedShort-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19669NISTXML-SV-II-list-unsignedShort-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19670NISTXML-SV-II-list-unsignedShort-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19671NISTXML-SV-II-list-unsignedShort-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19672NISTXML-SV-II-list-unsignedShort-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19673NISTSchema-SV-II-list-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="19674NISTXML-SV-II-list-unsignedShort-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19675NISTXML-SV-II-list-unsignedShort-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19676NISTXML-SV-II-list-unsignedShort-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19677NISTXML-SV-II-list-unsignedShort-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19678NISTXML-SV-II-list-unsignedShort-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19679NISTSchema-SV-II-list-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="19680NISTXML-SV-II-list-unsignedShort-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19681NISTXML-SV-II-list-unsignedShort-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19682NISTXML-SV-II-list-unsignedShort-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19683NISTXML-SV-II-list-unsignedShort-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19684NISTXML-SV-II-list-unsignedShort-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19685NISTSchema-SV-II-list-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="19686NISTXML-SV-II-list-unsignedShort-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19687NISTXML-SV-II-list-unsignedShort-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19688NISTXML-SV-II-list-unsignedShort-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19689NISTXML-SV-II-list-unsignedShort-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19690NISTXML-SV-II-list-unsignedShort-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19691NISTSchema-SV-II-list-unsignedByte-maxLength-1 tokoe:valid" result="pass"/><test-case name="19692NISTXML-SV-II-list-unsignedByte-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19693NISTXML-SV-II-list-unsignedByte-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19694NISTXML-SV-II-list-unsignedByte-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19695NISTXML-SV-II-list-unsignedByte-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19696NISTXML-SV-II-list-unsignedByte-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19697NISTSchema-SV-II-list-unsignedByte-maxLength-2 tokoe:valid" result="pass"/><test-case name="19698NISTXML-SV-II-list-unsignedByte-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19699NISTXML-SV-II-list-unsignedByte-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19700NISTXML-SV-II-list-unsignedByte-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19701NISTXML-SV-II-list-unsignedByte-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19702NISTXML-SV-II-list-unsignedByte-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19703NISTSchema-SV-II-list-unsignedByte-maxLength-3 tokoe:valid" result="pass"/><test-case name="19704NISTXML-SV-II-list-unsignedByte-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19705NISTXML-SV-II-list-unsignedByte-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19706NISTXML-SV-II-list-unsignedByte-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19707NISTXML-SV-II-list-unsignedByte-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19708NISTXML-SV-II-list-unsignedByte-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19709NISTSchema-SV-II-list-unsignedByte-maxLength-4 tokoe:valid" result="pass"/><test-case name="19710NISTXML-SV-II-list-unsignedByte-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19711NISTXML-SV-II-list-unsignedByte-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19712NISTXML-SV-II-list-unsignedByte-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19713NISTXML-SV-II-list-unsignedByte-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19714NISTXML-SV-II-list-unsignedByte-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19715NISTSchema-SV-II-list-unsignedByte-maxLength-5 tokoe:valid" result="pass"/><test-case name="19716NISTXML-SV-II-list-unsignedByte-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19717NISTXML-SV-II-list-unsignedByte-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19718NISTXML-SV-II-list-unsignedByte-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19719NISTXML-SV-II-list-unsignedByte-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19720NISTXML-SV-II-list-unsignedByte-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19721NISTSchema-SV-II-list-unsignedByte-minLength-1 tokoe:valid" result="pass"/><test-case name="19722NISTXML-SV-II-list-unsignedByte-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19723NISTXML-SV-II-list-unsignedByte-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19724NISTXML-SV-II-list-unsignedByte-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19725NISTXML-SV-II-list-unsignedByte-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19726NISTXML-SV-II-list-unsignedByte-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19727NISTSchema-SV-II-list-unsignedByte-minLength-2 tokoe:valid" result="pass"/><test-case name="19728NISTXML-SV-II-list-unsignedByte-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19729NISTXML-SV-II-list-unsignedByte-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19730NISTXML-SV-II-list-unsignedByte-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19731NISTXML-SV-II-list-unsignedByte-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19732NISTXML-SV-II-list-unsignedByte-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19733NISTSchema-SV-II-list-unsignedByte-minLength-3 tokoe:valid" result="pass"/><test-case name="19734NISTXML-SV-II-list-unsignedByte-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19735NISTXML-SV-II-list-unsignedByte-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19736NISTXML-SV-II-list-unsignedByte-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19737NISTXML-SV-II-list-unsignedByte-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19738NISTXML-SV-II-list-unsignedByte-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19739NISTSchema-SV-II-list-unsignedByte-minLength-4 tokoe:valid" result="pass"/><test-case name="19740NISTXML-SV-II-list-unsignedByte-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19741NISTXML-SV-II-list-unsignedByte-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19742NISTXML-SV-II-list-unsignedByte-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19743NISTXML-SV-II-list-unsignedByte-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19744NISTXML-SV-II-list-unsignedByte-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19745NISTSchema-SV-II-list-unsignedByte-minLength-5 tokoe:valid" result="pass"/><test-case name="19746NISTXML-SV-II-list-unsignedByte-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19747NISTXML-SV-II-list-unsignedByte-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19748NISTXML-SV-II-list-unsignedByte-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19749NISTXML-SV-II-list-unsignedByte-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19750NISTXML-SV-II-list-unsignedByte-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19751NISTSchema-SV-II-list-unsignedByte-length-1 tokoe:valid" result="pass"/><test-case name="19752NISTXML-SV-II-list-unsignedByte-length-1-1 tokoe:invalid" result="pass"/><test-case name="19753NISTXML-SV-II-list-unsignedByte-length-1-2 tokoe:invalid" result="pass"/><test-case name="19754NISTXML-SV-II-list-unsignedByte-length-1-3 tokoe:invalid" result="pass"/><test-case name="19755NISTXML-SV-II-list-unsignedByte-length-1-4 tokoe:invalid" result="pass"/><test-case name="19756NISTXML-SV-II-list-unsignedByte-length-1-5 tokoe:invalid" result="pass"/><test-case name="19757NISTSchema-SV-II-list-unsignedByte-length-2 tokoe:valid" result="pass"/><test-case name="19758NISTXML-SV-II-list-unsignedByte-length-2-1 tokoe:invalid" result="pass"/><test-case name="19759NISTXML-SV-II-list-unsignedByte-length-2-2 tokoe:invalid" result="pass"/><test-case name="19760NISTXML-SV-II-list-unsignedByte-length-2-3 tokoe:invalid" result="pass"/><test-case name="19761NISTXML-SV-II-list-unsignedByte-length-2-4 tokoe:invalid" result="pass"/><test-case name="19762NISTXML-SV-II-list-unsignedByte-length-2-5 tokoe:invalid" result="pass"/><test-case name="19763NISTSchema-SV-II-list-unsignedByte-length-3 tokoe:valid" result="pass"/><test-case name="19764NISTXML-SV-II-list-unsignedByte-length-3-1 tokoe:invalid" result="pass"/><test-case name="19765NISTXML-SV-II-list-unsignedByte-length-3-2 tokoe:invalid" result="pass"/><test-case name="19766NISTXML-SV-II-list-unsignedByte-length-3-3 tokoe:invalid" result="pass"/><test-case name="19767NISTXML-SV-II-list-unsignedByte-length-3-4 tokoe:invalid" result="pass"/><test-case name="19768NISTXML-SV-II-list-unsignedByte-length-3-5 tokoe:invalid" result="pass"/><test-case name="19769NISTSchema-SV-II-list-unsignedByte-length-4 tokoe:valid" result="pass"/><test-case name="19770NISTXML-SV-II-list-unsignedByte-length-4-1 tokoe:invalid" result="pass"/><test-case name="19771NISTXML-SV-II-list-unsignedByte-length-4-2 tokoe:invalid" result="pass"/><test-case name="19772NISTXML-SV-II-list-unsignedByte-length-4-3 tokoe:invalid" result="pass"/><test-case name="19773NISTXML-SV-II-list-unsignedByte-length-4-4 tokoe:invalid" result="pass"/><test-case name="19774NISTXML-SV-II-list-unsignedByte-length-4-5 tokoe:invalid" result="pass"/><test-case name="19775NISTSchema-SV-II-list-unsignedByte-length-5 tokoe:valid" result="pass"/><test-case name="19776NISTXML-SV-II-list-unsignedByte-length-5-1 tokoe:invalid" result="pass"/><test-case name="19777NISTXML-SV-II-list-unsignedByte-length-5-2 tokoe:invalid" result="pass"/><test-case name="19778NISTXML-SV-II-list-unsignedByte-length-5-3 tokoe:invalid" result="pass"/><test-case name="19779NISTXML-SV-II-list-unsignedByte-length-5-4 tokoe:invalid" result="pass"/><test-case name="19780NISTXML-SV-II-list-unsignedByte-length-5-5 tokoe:invalid" result="pass"/><test-case name="19781NISTSchema-SV-II-list-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="19782NISTXML-SV-II-list-unsignedByte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19783NISTXML-SV-II-list-unsignedByte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19784NISTXML-SV-II-list-unsignedByte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19785NISTXML-SV-II-list-unsignedByte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19786NISTXML-SV-II-list-unsignedByte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19787NISTSchema-SV-II-list-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="19788NISTXML-SV-II-list-unsignedByte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19789NISTXML-SV-II-list-unsignedByte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19790NISTXML-SV-II-list-unsignedByte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19791NISTXML-SV-II-list-unsignedByte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19792NISTXML-SV-II-list-unsignedByte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19793NISTSchema-SV-II-list-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="19794NISTXML-SV-II-list-unsignedByte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19795NISTXML-SV-II-list-unsignedByte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19796NISTXML-SV-II-list-unsignedByte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19797NISTXML-SV-II-list-unsignedByte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19798NISTXML-SV-II-list-unsignedByte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19799NISTSchema-SV-II-list-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="19800NISTXML-SV-II-list-unsignedByte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19801NISTXML-SV-II-list-unsignedByte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19802NISTXML-SV-II-list-unsignedByte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19803NISTXML-SV-II-list-unsignedByte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19804NISTXML-SV-II-list-unsignedByte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19805NISTSchema-SV-II-list-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="19806NISTXML-SV-II-list-unsignedByte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19807NISTXML-SV-II-list-unsignedByte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19808NISTXML-SV-II-list-unsignedByte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19809NISTXML-SV-II-list-unsignedByte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19810NISTXML-SV-II-list-unsignedByte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19811NISTSchema-SV-II-list-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="19812NISTXML-SV-II-list-unsignedByte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19813NISTXML-SV-II-list-unsignedByte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19814NISTXML-SV-II-list-unsignedByte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19815NISTXML-SV-II-list-unsignedByte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19816NISTXML-SV-II-list-unsignedByte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19817NISTSchema-SV-II-list-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="19818NISTXML-SV-II-list-unsignedByte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19819NISTXML-SV-II-list-unsignedByte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19820NISTXML-SV-II-list-unsignedByte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19821NISTXML-SV-II-list-unsignedByte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19822NISTXML-SV-II-list-unsignedByte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19823NISTSchema-SV-II-list-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="19824NISTXML-SV-II-list-unsignedByte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19825NISTXML-SV-II-list-unsignedByte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19826NISTXML-SV-II-list-unsignedByte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19827NISTXML-SV-II-list-unsignedByte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19828NISTXML-SV-II-list-unsignedByte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19829NISTSchema-SV-II-list-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="19830NISTXML-SV-II-list-unsignedByte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19831NISTXML-SV-II-list-unsignedByte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19832NISTXML-SV-II-list-unsignedByte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19833NISTXML-SV-II-list-unsignedByte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19834NISTXML-SV-II-list-unsignedByte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19835NISTSchema-SV-II-list-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="19836NISTXML-SV-II-list-unsignedByte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19837NISTXML-SV-II-list-unsignedByte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19838NISTXML-SV-II-list-unsignedByte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19839NISTXML-SV-II-list-unsignedByte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19840NISTXML-SV-II-list-unsignedByte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19841NISTSchema-SV-II-list-positiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="19842NISTXML-SV-II-list-positiveInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19843NISTXML-SV-II-list-positiveInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19844NISTXML-SV-II-list-positiveInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19845NISTXML-SV-II-list-positiveInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19846NISTXML-SV-II-list-positiveInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19847NISTSchema-SV-II-list-positiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="19848NISTXML-SV-II-list-positiveInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19849NISTXML-SV-II-list-positiveInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19850NISTXML-SV-II-list-positiveInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19851NISTXML-SV-II-list-positiveInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19852NISTXML-SV-II-list-positiveInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19853NISTSchema-SV-II-list-positiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="19854NISTXML-SV-II-list-positiveInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19855NISTXML-SV-II-list-positiveInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19856NISTXML-SV-II-list-positiveInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19857NISTXML-SV-II-list-positiveInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19858NISTXML-SV-II-list-positiveInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19859NISTSchema-SV-II-list-positiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="19860NISTXML-SV-II-list-positiveInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19861NISTXML-SV-II-list-positiveInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19862NISTXML-SV-II-list-positiveInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19863NISTXML-SV-II-list-positiveInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19864NISTXML-SV-II-list-positiveInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19865NISTSchema-SV-II-list-positiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="19866NISTXML-SV-II-list-positiveInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19867NISTXML-SV-II-list-positiveInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19868NISTXML-SV-II-list-positiveInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19869NISTXML-SV-II-list-positiveInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19870NISTXML-SV-II-list-positiveInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19871NISTSchema-SV-II-list-positiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="19872NISTXML-SV-II-list-positiveInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19873NISTXML-SV-II-list-positiveInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19874NISTXML-SV-II-list-positiveInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19875NISTXML-SV-II-list-positiveInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19876NISTXML-SV-II-list-positiveInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19877NISTSchema-SV-II-list-positiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="19878NISTXML-SV-II-list-positiveInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19879NISTXML-SV-II-list-positiveInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19880NISTXML-SV-II-list-positiveInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19881NISTXML-SV-II-list-positiveInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19882NISTXML-SV-II-list-positiveInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19883NISTSchema-SV-II-list-positiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="19884NISTXML-SV-II-list-positiveInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19885NISTXML-SV-II-list-positiveInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19886NISTXML-SV-II-list-positiveInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19887NISTXML-SV-II-list-positiveInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19888NISTXML-SV-II-list-positiveInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19889NISTSchema-SV-II-list-positiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="19890NISTXML-SV-II-list-positiveInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19891NISTXML-SV-II-list-positiveInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19892NISTXML-SV-II-list-positiveInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19893NISTXML-SV-II-list-positiveInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19894NISTXML-SV-II-list-positiveInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19895NISTSchema-SV-II-list-positiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="19896NISTXML-SV-II-list-positiveInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19897NISTXML-SV-II-list-positiveInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19898NISTXML-SV-II-list-positiveInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19899NISTXML-SV-II-list-positiveInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19900NISTXML-SV-II-list-positiveInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19901NISTSchema-SV-II-list-positiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="19902NISTXML-SV-II-list-positiveInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="19903NISTXML-SV-II-list-positiveInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="19904NISTXML-SV-II-list-positiveInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="19905NISTXML-SV-II-list-positiveInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="19906NISTXML-SV-II-list-positiveInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="19907NISTSchema-SV-II-list-positiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="19908NISTXML-SV-II-list-positiveInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="19909NISTXML-SV-II-list-positiveInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="19910NISTXML-SV-II-list-positiveInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="19911NISTXML-SV-II-list-positiveInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="19912NISTXML-SV-II-list-positiveInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="19913NISTSchema-SV-II-list-positiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="19914NISTXML-SV-II-list-positiveInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="19915NISTXML-SV-II-list-positiveInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="19916NISTXML-SV-II-list-positiveInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="19917NISTXML-SV-II-list-positiveInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="19918NISTXML-SV-II-list-positiveInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="19919NISTSchema-SV-II-list-positiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="19920NISTXML-SV-II-list-positiveInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="19921NISTXML-SV-II-list-positiveInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="19922NISTXML-SV-II-list-positiveInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="19923NISTXML-SV-II-list-positiveInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="19924NISTXML-SV-II-list-positiveInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="19925NISTSchema-SV-II-list-positiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="19926NISTXML-SV-II-list-positiveInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="19927NISTXML-SV-II-list-positiveInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="19928NISTXML-SV-II-list-positiveInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="19929NISTXML-SV-II-list-positiveInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="19930NISTXML-SV-II-list-positiveInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="19931NISTSchema-SV-II-list-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="19932NISTXML-SV-II-list-positiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19933NISTXML-SV-II-list-positiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19934NISTXML-SV-II-list-positiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19935NISTXML-SV-II-list-positiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19936NISTXML-SV-II-list-positiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19937NISTSchema-SV-II-list-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="19938NISTXML-SV-II-list-positiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19939NISTXML-SV-II-list-positiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19940NISTXML-SV-II-list-positiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19941NISTXML-SV-II-list-positiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19942NISTXML-SV-II-list-positiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19943NISTSchema-SV-II-list-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="19944NISTXML-SV-II-list-positiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19945NISTXML-SV-II-list-positiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19946NISTXML-SV-II-list-positiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19947NISTXML-SV-II-list-positiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19948NISTXML-SV-II-list-positiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19949NISTSchema-SV-II-list-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="19950NISTXML-SV-II-list-positiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19951NISTXML-SV-II-list-positiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19952NISTXML-SV-II-list-positiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19953NISTXML-SV-II-list-positiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19954NISTXML-SV-II-list-positiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19955NISTSchema-SV-II-list-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="19956NISTXML-SV-II-list-positiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19957NISTXML-SV-II-list-positiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19958NISTXML-SV-II-list-positiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19959NISTXML-SV-II-list-positiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19960NISTXML-SV-II-list-positiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19961NISTSchema-SV-II-list-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="19962NISTXML-SV-II-list-positiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19963NISTXML-SV-II-list-positiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19964NISTXML-SV-II-list-positiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19965NISTXML-SV-II-list-positiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19966NISTXML-SV-II-list-positiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19967NISTSchema-SV-II-list-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="19968NISTXML-SV-II-list-positiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19969NISTXML-SV-II-list-positiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19970NISTXML-SV-II-list-positiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19971NISTXML-SV-II-list-positiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19972NISTXML-SV-II-list-positiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19973NISTSchema-SV-II-list-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="19974NISTXML-SV-II-list-positiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19975NISTXML-SV-II-list-positiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19976NISTXML-SV-II-list-positiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19977NISTXML-SV-II-list-positiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19978NISTXML-SV-II-list-positiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19979NISTSchema-SV-II-list-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="19980NISTXML-SV-II-list-positiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19981NISTXML-SV-II-list-positiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19982NISTXML-SV-II-list-positiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19983NISTXML-SV-II-list-positiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19984NISTXML-SV-II-list-positiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19985NISTSchema-SV-II-list-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="19986NISTXML-SV-II-list-positiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19987NISTXML-SV-II-list-positiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19988NISTXML-SV-II-list-positiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19989NISTXML-SV-II-list-positiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19990NISTXML-SV-II-list-positiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19991NISTSchema-SV-II-list-double-maxLength-1 tokoe:valid" result="pass"/><test-case name="19992NISTXML-SV-II-list-double-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19993NISTXML-SV-II-list-double-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19994NISTXML-SV-II-list-double-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19995NISTXML-SV-II-list-double-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19996NISTXML-SV-II-list-double-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19997NISTSchema-SV-II-list-double-maxLength-2 tokoe:valid" result="pass"/><test-case name="19998NISTXML-SV-II-list-double-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19999NISTXML-SV-II-list-double-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20000NISTXML-SV-II-list-double-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20001NISTXML-SV-II-list-double-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20002NISTXML-SV-II-list-double-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20003NISTSchema-SV-II-list-double-maxLength-3 tokoe:valid" result="pass"/><test-case name="20004NISTXML-SV-II-list-double-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20005NISTXML-SV-II-list-double-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20006NISTXML-SV-II-list-double-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20007NISTXML-SV-II-list-double-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20008NISTXML-SV-II-list-double-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20009NISTSchema-SV-II-list-double-maxLength-4 tokoe:valid" result="pass"/><test-case name="20010NISTXML-SV-II-list-double-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20011NISTXML-SV-II-list-double-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20012NISTXML-SV-II-list-double-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20013NISTXML-SV-II-list-double-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20014NISTXML-SV-II-list-double-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20015NISTSchema-SV-II-list-double-maxLength-5 tokoe:valid" result="pass"/><test-case name="20016NISTXML-SV-II-list-double-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20017NISTXML-SV-II-list-double-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20018NISTXML-SV-II-list-double-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20019NISTXML-SV-II-list-double-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20020NISTXML-SV-II-list-double-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20021NISTSchema-SV-II-list-double-minLength-1 tokoe:valid" result="pass"/><test-case name="20022NISTXML-SV-II-list-double-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20023NISTXML-SV-II-list-double-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20024NISTXML-SV-II-list-double-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20025NISTXML-SV-II-list-double-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20026NISTXML-SV-II-list-double-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20027NISTSchema-SV-II-list-double-minLength-2 tokoe:valid" result="pass"/><test-case name="20028NISTXML-SV-II-list-double-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20029NISTXML-SV-II-list-double-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20030NISTXML-SV-II-list-double-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20031NISTXML-SV-II-list-double-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20032NISTXML-SV-II-list-double-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20033NISTSchema-SV-II-list-double-minLength-3 tokoe:valid" result="pass"/><test-case name="20034NISTXML-SV-II-list-double-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20035NISTXML-SV-II-list-double-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20036NISTXML-SV-II-list-double-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20037NISTXML-SV-II-list-double-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20038NISTXML-SV-II-list-double-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20039NISTSchema-SV-II-list-double-minLength-4 tokoe:valid" result="pass"/><test-case name="20040NISTXML-SV-II-list-double-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20041NISTXML-SV-II-list-double-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20042NISTXML-SV-II-list-double-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20043NISTXML-SV-II-list-double-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20044NISTXML-SV-II-list-double-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20045NISTSchema-SV-II-list-double-minLength-5 tokoe:valid" result="pass"/><test-case name="20046NISTXML-SV-II-list-double-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20047NISTXML-SV-II-list-double-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20048NISTXML-SV-II-list-double-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20049NISTXML-SV-II-list-double-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20050NISTXML-SV-II-list-double-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20051NISTSchema-SV-II-list-double-length-1 tokoe:valid" result="pass"/><test-case name="20052NISTXML-SV-II-list-double-length-1-1 tokoe:invalid" result="pass"/><test-case name="20053NISTXML-SV-II-list-double-length-1-2 tokoe:invalid" result="pass"/><test-case name="20054NISTXML-SV-II-list-double-length-1-3 tokoe:invalid" result="pass"/><test-case name="20055NISTXML-SV-II-list-double-length-1-4 tokoe:invalid" result="pass"/><test-case name="20056NISTXML-SV-II-list-double-length-1-5 tokoe:invalid" result="pass"/><test-case name="20057NISTSchema-SV-II-list-double-length-2 tokoe:valid" result="pass"/><test-case name="20058NISTXML-SV-II-list-double-length-2-1 tokoe:invalid" result="pass"/><test-case name="20059NISTXML-SV-II-list-double-length-2-2 tokoe:invalid" result="pass"/><test-case name="20060NISTXML-SV-II-list-double-length-2-3 tokoe:invalid" result="pass"/><test-case name="20061NISTXML-SV-II-list-double-length-2-4 tokoe:invalid" result="pass"/><test-case name="20062NISTXML-SV-II-list-double-length-2-5 tokoe:invalid" result="pass"/><test-case name="20063NISTSchema-SV-II-list-double-length-3 tokoe:valid" result="pass"/><test-case name="20064NISTXML-SV-II-list-double-length-3-1 tokoe:invalid" result="pass"/><test-case name="20065NISTXML-SV-II-list-double-length-3-2 tokoe:invalid" result="pass"/><test-case name="20066NISTXML-SV-II-list-double-length-3-3 tokoe:invalid" result="pass"/><test-case name="20067NISTXML-SV-II-list-double-length-3-4 tokoe:invalid" result="pass"/><test-case name="20068NISTXML-SV-II-list-double-length-3-5 tokoe:invalid" result="pass"/><test-case name="20069NISTSchema-SV-II-list-double-length-4 tokoe:valid" result="pass"/><test-case name="20070NISTXML-SV-II-list-double-length-4-1 tokoe:invalid" result="pass"/><test-case name="20071NISTXML-SV-II-list-double-length-4-2 tokoe:invalid" result="pass"/><test-case name="20072NISTXML-SV-II-list-double-length-4-3 tokoe:invalid" result="pass"/><test-case name="20073NISTXML-SV-II-list-double-length-4-4 tokoe:invalid" result="pass"/><test-case name="20074NISTXML-SV-II-list-double-length-4-5 tokoe:invalid" result="pass"/><test-case name="20075NISTSchema-SV-II-list-double-length-5 tokoe:valid" result="pass"/><test-case name="20076NISTXML-SV-II-list-double-length-5-1 tokoe:invalid" result="pass"/><test-case name="20077NISTXML-SV-II-list-double-length-5-2 tokoe:invalid" result="pass"/><test-case name="20078NISTXML-SV-II-list-double-length-5-3 tokoe:invalid" result="pass"/><test-case name="20079NISTXML-SV-II-list-double-length-5-4 tokoe:invalid" result="pass"/><test-case name="20080NISTXML-SV-II-list-double-length-5-5 tokoe:invalid" result="pass"/><test-case name="20081NISTSchema-SV-II-list-double-pattern-1 tokoe:valid" result="pass"/><test-case name="20082NISTXML-SV-II-list-double-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20083NISTXML-SV-II-list-double-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20084NISTXML-SV-II-list-double-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20085NISTXML-SV-II-list-double-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20086NISTXML-SV-II-list-double-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20087NISTSchema-SV-II-list-double-pattern-2 tokoe:valid" result="pass"/><test-case name="20088NISTXML-SV-II-list-double-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20089NISTXML-SV-II-list-double-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20090NISTXML-SV-II-list-double-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20091NISTXML-SV-II-list-double-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20092NISTXML-SV-II-list-double-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20093NISTSchema-SV-II-list-double-pattern-3 tokoe:valid" result="pass"/><test-case name="20094NISTXML-SV-II-list-double-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20095NISTXML-SV-II-list-double-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20096NISTXML-SV-II-list-double-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20097NISTXML-SV-II-list-double-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20098NISTXML-SV-II-list-double-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20099NISTSchema-SV-II-list-double-pattern-4 tokoe:valid" result="pass"/><test-case name="20100NISTXML-SV-II-list-double-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20101NISTXML-SV-II-list-double-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20102NISTXML-SV-II-list-double-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20103NISTXML-SV-II-list-double-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20104NISTXML-SV-II-list-double-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20105NISTSchema-SV-II-list-double-pattern-5 tokoe:valid" result="pass"/><test-case name="20106NISTXML-SV-II-list-double-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20107NISTXML-SV-II-list-double-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20108NISTXML-SV-II-list-double-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20109NISTXML-SV-II-list-double-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20110NISTXML-SV-II-list-double-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20111NISTSchema-SV-II-list-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="20112NISTXML-SV-II-list-double-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20113NISTXML-SV-II-list-double-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20114NISTXML-SV-II-list-double-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20115NISTXML-SV-II-list-double-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20116NISTXML-SV-II-list-double-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20117NISTSchema-SV-II-list-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="20118NISTXML-SV-II-list-double-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20119NISTXML-SV-II-list-double-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20120NISTXML-SV-II-list-double-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20121NISTXML-SV-II-list-double-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20122NISTXML-SV-II-list-double-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20123NISTSchema-SV-II-list-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="20124NISTXML-SV-II-list-double-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20125NISTXML-SV-II-list-double-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20126NISTXML-SV-II-list-double-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20127NISTXML-SV-II-list-double-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20128NISTXML-SV-II-list-double-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20129NISTSchema-SV-II-list-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="20130NISTXML-SV-II-list-double-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20131NISTXML-SV-II-list-double-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20132NISTXML-SV-II-list-double-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20133NISTXML-SV-II-list-double-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20134NISTXML-SV-II-list-double-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20135NISTSchema-SV-II-list-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="20136NISTXML-SV-II-list-double-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20137NISTXML-SV-II-list-double-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20138NISTXML-SV-II-list-double-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20139NISTXML-SV-II-list-double-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20140NISTXML-SV-II-list-double-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20141NISTSchema-SV-II-list-float-maxLength-1 tokoe:valid" result="pass"/><test-case name="20142NISTXML-SV-II-list-float-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20143NISTXML-SV-II-list-float-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20144NISTXML-SV-II-list-float-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20145NISTXML-SV-II-list-float-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20146NISTXML-SV-II-list-float-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20147NISTSchema-SV-II-list-float-maxLength-2 tokoe:valid" result="pass"/><test-case name="20148NISTXML-SV-II-list-float-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20149NISTXML-SV-II-list-float-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20150NISTXML-SV-II-list-float-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20151NISTXML-SV-II-list-float-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20152NISTXML-SV-II-list-float-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20153NISTSchema-SV-II-list-float-maxLength-3 tokoe:valid" result="pass"/><test-case name="20154NISTXML-SV-II-list-float-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20155NISTXML-SV-II-list-float-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20156NISTXML-SV-II-list-float-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20157NISTXML-SV-II-list-float-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20158NISTXML-SV-II-list-float-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20159NISTSchema-SV-II-list-float-maxLength-4 tokoe:valid" result="pass"/><test-case name="20160NISTXML-SV-II-list-float-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20161NISTXML-SV-II-list-float-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20162NISTXML-SV-II-list-float-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20163NISTXML-SV-II-list-float-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20164NISTXML-SV-II-list-float-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20165NISTSchema-SV-II-list-float-maxLength-5 tokoe:valid" result="pass"/><test-case name="20166NISTXML-SV-II-list-float-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20167NISTXML-SV-II-list-float-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20168NISTXML-SV-II-list-float-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20169NISTXML-SV-II-list-float-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20170NISTXML-SV-II-list-float-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20171NISTSchema-SV-II-list-float-minLength-1 tokoe:valid" result="pass"/><test-case name="20172NISTXML-SV-II-list-float-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20173NISTXML-SV-II-list-float-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20174NISTXML-SV-II-list-float-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20175NISTXML-SV-II-list-float-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20176NISTXML-SV-II-list-float-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20177NISTSchema-SV-II-list-float-minLength-2 tokoe:valid" result="pass"/><test-case name="20178NISTXML-SV-II-list-float-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20179NISTXML-SV-II-list-float-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20180NISTXML-SV-II-list-float-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20181NISTXML-SV-II-list-float-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20182NISTXML-SV-II-list-float-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20183NISTSchema-SV-II-list-float-minLength-3 tokoe:valid" result="pass"/><test-case name="20184NISTXML-SV-II-list-float-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20185NISTXML-SV-II-list-float-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20186NISTXML-SV-II-list-float-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20187NISTXML-SV-II-list-float-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20188NISTXML-SV-II-list-float-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20189NISTSchema-SV-II-list-float-minLength-4 tokoe:valid" result="pass"/><test-case name="20190NISTXML-SV-II-list-float-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20191NISTXML-SV-II-list-float-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20192NISTXML-SV-II-list-float-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20193NISTXML-SV-II-list-float-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20194NISTXML-SV-II-list-float-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20195NISTSchema-SV-II-list-float-minLength-5 tokoe:valid" result="pass"/><test-case name="20196NISTXML-SV-II-list-float-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20197NISTXML-SV-II-list-float-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20198NISTXML-SV-II-list-float-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20199NISTXML-SV-II-list-float-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20200NISTXML-SV-II-list-float-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20201NISTSchema-SV-II-list-float-length-1 tokoe:valid" result="pass"/><test-case name="20202NISTXML-SV-II-list-float-length-1-1 tokoe:invalid" result="pass"/><test-case name="20203NISTXML-SV-II-list-float-length-1-2 tokoe:invalid" result="pass"/><test-case name="20204NISTXML-SV-II-list-float-length-1-3 tokoe:invalid" result="pass"/><test-case name="20205NISTXML-SV-II-list-float-length-1-4 tokoe:invalid" result="pass"/><test-case name="20206NISTXML-SV-II-list-float-length-1-5 tokoe:invalid" result="pass"/><test-case name="20207NISTSchema-SV-II-list-float-length-2 tokoe:valid" result="pass"/><test-case name="20208NISTXML-SV-II-list-float-length-2-1 tokoe:invalid" result="pass"/><test-case name="20209NISTXML-SV-II-list-float-length-2-2 tokoe:invalid" result="pass"/><test-case name="20210NISTXML-SV-II-list-float-length-2-3 tokoe:invalid" result="pass"/><test-case name="20211NISTXML-SV-II-list-float-length-2-4 tokoe:invalid" result="pass"/><test-case name="20212NISTXML-SV-II-list-float-length-2-5 tokoe:invalid" result="pass"/><test-case name="20213NISTSchema-SV-II-list-float-length-3 tokoe:valid" result="pass"/><test-case name="20214NISTXML-SV-II-list-float-length-3-1 tokoe:invalid" result="pass"/><test-case name="20215NISTXML-SV-II-list-float-length-3-2 tokoe:invalid" result="pass"/><test-case name="20216NISTXML-SV-II-list-float-length-3-3 tokoe:invalid" result="pass"/><test-case name="20217NISTXML-SV-II-list-float-length-3-4 tokoe:invalid" result="pass"/><test-case name="20218NISTXML-SV-II-list-float-length-3-5 tokoe:invalid" result="pass"/><test-case name="20219NISTSchema-SV-II-list-float-length-4 tokoe:valid" result="pass"/><test-case name="20220NISTXML-SV-II-list-float-length-4-1 tokoe:invalid" result="pass"/><test-case name="20221NISTXML-SV-II-list-float-length-4-2 tokoe:invalid" result="pass"/><test-case name="20222NISTXML-SV-II-list-float-length-4-3 tokoe:invalid" result="pass"/><test-case name="20223NISTXML-SV-II-list-float-length-4-4 tokoe:invalid" result="pass"/><test-case name="20224NISTXML-SV-II-list-float-length-4-5 tokoe:invalid" result="pass"/><test-case name="20225NISTSchema-SV-II-list-float-length-5 tokoe:valid" result="pass"/><test-case name="20226NISTXML-SV-II-list-float-length-5-1 tokoe:invalid" result="pass"/><test-case name="20227NISTXML-SV-II-list-float-length-5-2 tokoe:invalid" result="pass"/><test-case name="20228NISTXML-SV-II-list-float-length-5-3 tokoe:invalid" result="pass"/><test-case name="20229NISTXML-SV-II-list-float-length-5-4 tokoe:invalid" result="pass"/><test-case name="20230NISTXML-SV-II-list-float-length-5-5 tokoe:invalid" result="pass"/><test-case name="20231NISTSchema-SV-II-list-float-pattern-1 tokoe:valid" result="pass"/><test-case name="20232NISTXML-SV-II-list-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20233NISTXML-SV-II-list-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20234NISTXML-SV-II-list-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20235NISTXML-SV-II-list-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20236NISTXML-SV-II-list-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20237NISTSchema-SV-II-list-float-pattern-2 tokoe:valid" result="pass"/><test-case name="20238NISTXML-SV-II-list-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20239NISTXML-SV-II-list-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20240NISTXML-SV-II-list-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20241NISTXML-SV-II-list-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20242NISTXML-SV-II-list-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20243NISTSchema-SV-II-list-float-pattern-3 tokoe:valid" result="pass"/><test-case name="20244NISTXML-SV-II-list-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20245NISTXML-SV-II-list-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20246NISTXML-SV-II-list-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20247NISTXML-SV-II-list-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20248NISTXML-SV-II-list-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20249NISTSchema-SV-II-list-float-pattern-4 tokoe:valid" result="pass"/><test-case name="20250NISTXML-SV-II-list-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20251NISTXML-SV-II-list-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20252NISTXML-SV-II-list-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20253NISTXML-SV-II-list-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20254NISTXML-SV-II-list-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20255NISTSchema-SV-II-list-float-pattern-5 tokoe:valid" result="pass"/><test-case name="20256NISTXML-SV-II-list-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20257NISTXML-SV-II-list-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20258NISTXML-SV-II-list-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20259NISTXML-SV-II-list-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20260NISTXML-SV-II-list-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20261NISTSchema-SV-II-list-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="20262NISTXML-SV-II-list-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20263NISTXML-SV-II-list-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20264NISTXML-SV-II-list-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20265NISTXML-SV-II-list-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20266NISTXML-SV-II-list-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20267NISTSchema-SV-II-list-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="20268NISTXML-SV-II-list-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20269NISTXML-SV-II-list-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20270NISTXML-SV-II-list-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20271NISTXML-SV-II-list-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20272NISTXML-SV-II-list-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20273NISTSchema-SV-II-list-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="20274NISTXML-SV-II-list-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20275NISTXML-SV-II-list-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20276NISTXML-SV-II-list-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20277NISTXML-SV-II-list-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20278NISTXML-SV-II-list-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20279NISTSchema-SV-II-list-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="20280NISTXML-SV-II-list-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20281NISTXML-SV-II-list-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20282NISTXML-SV-II-list-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20283NISTXML-SV-II-list-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20284NISTXML-SV-II-list-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20285NISTSchema-SV-II-list-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="20286NISTXML-SV-II-list-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20287NISTXML-SV-II-list-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20288NISTXML-SV-II-list-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20289NISTXML-SV-II-list-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20290NISTXML-SV-II-list-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20291NISTSchema-SV-II-list-duration-maxLength-1 tokoe:valid" result="pass"/><test-case name="20292NISTXML-SV-II-list-duration-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20293NISTXML-SV-II-list-duration-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20294NISTXML-SV-II-list-duration-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20295NISTXML-SV-II-list-duration-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20296NISTXML-SV-II-list-duration-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20297NISTSchema-SV-II-list-duration-maxLength-2 tokoe:valid" result="pass"/><test-case name="20298NISTXML-SV-II-list-duration-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20299NISTXML-SV-II-list-duration-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20300NISTXML-SV-II-list-duration-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20301NISTXML-SV-II-list-duration-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20302NISTXML-SV-II-list-duration-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20303NISTSchema-SV-II-list-duration-maxLength-3 tokoe:valid" result="pass"/><test-case name="20304NISTXML-SV-II-list-duration-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20305NISTXML-SV-II-list-duration-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20306NISTXML-SV-II-list-duration-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20307NISTXML-SV-II-list-duration-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20308NISTXML-SV-II-list-duration-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20309NISTSchema-SV-II-list-duration-maxLength-4 tokoe:valid" result="pass"/><test-case name="20310NISTXML-SV-II-list-duration-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20311NISTXML-SV-II-list-duration-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20312NISTXML-SV-II-list-duration-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20313NISTXML-SV-II-list-duration-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20314NISTXML-SV-II-list-duration-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20315NISTSchema-SV-II-list-duration-maxLength-5 tokoe:valid" result="pass"/><test-case name="20316NISTXML-SV-II-list-duration-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20317NISTXML-SV-II-list-duration-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20318NISTXML-SV-II-list-duration-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20319NISTXML-SV-II-list-duration-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20320NISTXML-SV-II-list-duration-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20321NISTSchema-SV-II-list-duration-minLength-1 tokoe:valid" result="pass"/><test-case name="20322NISTXML-SV-II-list-duration-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20323NISTXML-SV-II-list-duration-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20324NISTXML-SV-II-list-duration-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20325NISTXML-SV-II-list-duration-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20326NISTXML-SV-II-list-duration-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20327NISTSchema-SV-II-list-duration-minLength-2 tokoe:valid" result="pass"/><test-case name="20328NISTXML-SV-II-list-duration-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20329NISTXML-SV-II-list-duration-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20330NISTXML-SV-II-list-duration-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20331NISTXML-SV-II-list-duration-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20332NISTXML-SV-II-list-duration-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20333NISTSchema-SV-II-list-duration-minLength-3 tokoe:valid" result="pass"/><test-case name="20334NISTXML-SV-II-list-duration-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20335NISTXML-SV-II-list-duration-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20336NISTXML-SV-II-list-duration-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20337NISTXML-SV-II-list-duration-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20338NISTXML-SV-II-list-duration-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20339NISTSchema-SV-II-list-duration-minLength-4 tokoe:valid" result="pass"/><test-case name="20340NISTXML-SV-II-list-duration-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20341NISTXML-SV-II-list-duration-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20342NISTXML-SV-II-list-duration-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20343NISTXML-SV-II-list-duration-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20344NISTXML-SV-II-list-duration-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20345NISTSchema-SV-II-list-duration-minLength-5 tokoe:valid" result="pass"/><test-case name="20346NISTXML-SV-II-list-duration-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20347NISTXML-SV-II-list-duration-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20348NISTXML-SV-II-list-duration-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20349NISTXML-SV-II-list-duration-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20350NISTXML-SV-II-list-duration-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20351NISTSchema-SV-II-list-duration-length-1 tokoe:valid" result="pass"/><test-case name="20352NISTXML-SV-II-list-duration-length-1-1 tokoe:invalid" result="pass"/><test-case name="20353NISTXML-SV-II-list-duration-length-1-2 tokoe:invalid" result="pass"/><test-case name="20354NISTXML-SV-II-list-duration-length-1-3 tokoe:invalid" result="pass"/><test-case name="20355NISTXML-SV-II-list-duration-length-1-4 tokoe:invalid" result="pass"/><test-case name="20356NISTXML-SV-II-list-duration-length-1-5 tokoe:invalid" result="pass"/><test-case name="20357NISTSchema-SV-II-list-duration-length-2 tokoe:valid" result="pass"/><test-case name="20358NISTXML-SV-II-list-duration-length-2-1 tokoe:invalid" result="pass"/><test-case name="20359NISTXML-SV-II-list-duration-length-2-2 tokoe:invalid" result="pass"/><test-case name="20360NISTXML-SV-II-list-duration-length-2-3 tokoe:invalid" result="pass"/><test-case name="20361NISTXML-SV-II-list-duration-length-2-4 tokoe:invalid" result="pass"/><test-case name="20362NISTXML-SV-II-list-duration-length-2-5 tokoe:invalid" result="pass"/><test-case name="20363NISTSchema-SV-II-list-duration-length-3 tokoe:valid" result="pass"/><test-case name="20364NISTXML-SV-II-list-duration-length-3-1 tokoe:invalid" result="pass"/><test-case name="20365NISTXML-SV-II-list-duration-length-3-2 tokoe:invalid" result="pass"/><test-case name="20366NISTXML-SV-II-list-duration-length-3-3 tokoe:invalid" result="pass"/><test-case name="20367NISTXML-SV-II-list-duration-length-3-4 tokoe:invalid" result="pass"/><test-case name="20368NISTXML-SV-II-list-duration-length-3-5 tokoe:invalid" result="pass"/><test-case name="20369NISTSchema-SV-II-list-duration-length-4 tokoe:valid" result="pass"/><test-case name="20370NISTXML-SV-II-list-duration-length-4-1 tokoe:invalid" result="pass"/><test-case name="20371NISTXML-SV-II-list-duration-length-4-2 tokoe:invalid" result="pass"/><test-case name="20372NISTXML-SV-II-list-duration-length-4-3 tokoe:invalid" result="pass"/><test-case name="20373NISTXML-SV-II-list-duration-length-4-4 tokoe:invalid" result="pass"/><test-case name="20374NISTXML-SV-II-list-duration-length-4-5 tokoe:invalid" result="pass"/><test-case name="20375NISTSchema-SV-II-list-duration-length-5 tokoe:valid" result="pass"/><test-case name="20376NISTXML-SV-II-list-duration-length-5-1 tokoe:invalid" result="pass"/><test-case name="20377NISTXML-SV-II-list-duration-length-5-2 tokoe:invalid" result="pass"/><test-case name="20378NISTXML-SV-II-list-duration-length-5-3 tokoe:invalid" result="pass"/><test-case name="20379NISTXML-SV-II-list-duration-length-5-4 tokoe:invalid" result="pass"/><test-case name="20380NISTXML-SV-II-list-duration-length-5-5 tokoe:invalid" result="pass"/><test-case name="20381NISTSchema-SV-II-list-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="20382NISTXML-SV-II-list-duration-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20383NISTXML-SV-II-list-duration-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20384NISTXML-SV-II-list-duration-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20385NISTXML-SV-II-list-duration-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20386NISTXML-SV-II-list-duration-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20387NISTSchema-SV-II-list-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="20388NISTXML-SV-II-list-duration-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20389NISTXML-SV-II-list-duration-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20390NISTXML-SV-II-list-duration-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20391NISTXML-SV-II-list-duration-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20392NISTXML-SV-II-list-duration-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20393NISTSchema-SV-II-list-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="20394NISTXML-SV-II-list-duration-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20395NISTXML-SV-II-list-duration-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20396NISTXML-SV-II-list-duration-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20397NISTXML-SV-II-list-duration-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20398NISTXML-SV-II-list-duration-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20399NISTSchema-SV-II-list-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="20400NISTXML-SV-II-list-duration-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20401NISTXML-SV-II-list-duration-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20402NISTXML-SV-II-list-duration-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20403NISTXML-SV-II-list-duration-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20404NISTXML-SV-II-list-duration-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20405NISTSchema-SV-II-list-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="20406NISTXML-SV-II-list-duration-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20407NISTXML-SV-II-list-duration-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20408NISTXML-SV-II-list-duration-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20409NISTXML-SV-II-list-duration-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20410NISTXML-SV-II-list-duration-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20411NISTSchema-SV-II-list-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="20412NISTXML-SV-II-list-duration-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20413NISTXML-SV-II-list-duration-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20414NISTXML-SV-II-list-duration-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20415NISTXML-SV-II-list-duration-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20416NISTXML-SV-II-list-duration-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20417NISTSchema-SV-II-list-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="20418NISTXML-SV-II-list-duration-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20419NISTXML-SV-II-list-duration-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20420NISTXML-SV-II-list-duration-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20421NISTXML-SV-II-list-duration-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20422NISTXML-SV-II-list-duration-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20423NISTSchema-SV-II-list-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="20424NISTXML-SV-II-list-duration-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20425NISTXML-SV-II-list-duration-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20426NISTXML-SV-II-list-duration-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20427NISTXML-SV-II-list-duration-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20428NISTXML-SV-II-list-duration-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20429NISTSchema-SV-II-list-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="20430NISTXML-SV-II-list-duration-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20431NISTXML-SV-II-list-duration-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20432NISTXML-SV-II-list-duration-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20433NISTXML-SV-II-list-duration-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20434NISTXML-SV-II-list-duration-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20435NISTSchema-SV-II-list-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="20436NISTXML-SV-II-list-duration-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20437NISTXML-SV-II-list-duration-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20438NISTXML-SV-II-list-duration-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20439NISTXML-SV-II-list-duration-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20440NISTXML-SV-II-list-duration-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20441NISTSchema-SV-II-list-dateTime-maxLength-1 tokoe:valid" result="pass"/><test-case name="20442NISTXML-SV-II-list-dateTime-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20443NISTXML-SV-II-list-dateTime-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20444NISTXML-SV-II-list-dateTime-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20445NISTXML-SV-II-list-dateTime-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20446NISTXML-SV-II-list-dateTime-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20447NISTSchema-SV-II-list-dateTime-maxLength-2 tokoe:valid" result="pass"/><test-case name="20448NISTXML-SV-II-list-dateTime-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20449NISTXML-SV-II-list-dateTime-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20450NISTXML-SV-II-list-dateTime-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20451NISTXML-SV-II-list-dateTime-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20452NISTXML-SV-II-list-dateTime-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20453NISTSchema-SV-II-list-dateTime-maxLength-3 tokoe:valid" result="pass"/><test-case name="20454NISTXML-SV-II-list-dateTime-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20455NISTXML-SV-II-list-dateTime-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20456NISTXML-SV-II-list-dateTime-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20457NISTXML-SV-II-list-dateTime-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20458NISTXML-SV-II-list-dateTime-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20459NISTSchema-SV-II-list-dateTime-maxLength-4 tokoe:valid" result="pass"/><test-case name="20460NISTXML-SV-II-list-dateTime-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20461NISTXML-SV-II-list-dateTime-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20462NISTXML-SV-II-list-dateTime-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20463NISTXML-SV-II-list-dateTime-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20464NISTXML-SV-II-list-dateTime-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20465NISTSchema-SV-II-list-dateTime-maxLength-5 tokoe:valid" result="pass"/><test-case name="20466NISTXML-SV-II-list-dateTime-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20467NISTXML-SV-II-list-dateTime-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20468NISTXML-SV-II-list-dateTime-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20469NISTXML-SV-II-list-dateTime-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20470NISTXML-SV-II-list-dateTime-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20471NISTSchema-SV-II-list-dateTime-minLength-1 tokoe:valid" result="pass"/><test-case name="20472NISTXML-SV-II-list-dateTime-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20473NISTXML-SV-II-list-dateTime-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20474NISTXML-SV-II-list-dateTime-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20475NISTXML-SV-II-list-dateTime-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20476NISTXML-SV-II-list-dateTime-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20477NISTSchema-SV-II-list-dateTime-minLength-2 tokoe:valid" result="pass"/><test-case name="20478NISTXML-SV-II-list-dateTime-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20479NISTXML-SV-II-list-dateTime-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20480NISTXML-SV-II-list-dateTime-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20481NISTXML-SV-II-list-dateTime-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20482NISTXML-SV-II-list-dateTime-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20483NISTSchema-SV-II-list-dateTime-minLength-3 tokoe:valid" result="pass"/><test-case name="20484NISTXML-SV-II-list-dateTime-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20485NISTXML-SV-II-list-dateTime-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20486NISTXML-SV-II-list-dateTime-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20487NISTXML-SV-II-list-dateTime-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20488NISTXML-SV-II-list-dateTime-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20489NISTSchema-SV-II-list-dateTime-minLength-4 tokoe:valid" result="pass"/><test-case name="20490NISTXML-SV-II-list-dateTime-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20491NISTXML-SV-II-list-dateTime-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20492NISTXML-SV-II-list-dateTime-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20493NISTXML-SV-II-list-dateTime-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20494NISTXML-SV-II-list-dateTime-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20495NISTSchema-SV-II-list-dateTime-minLength-5 tokoe:valid" result="pass"/><test-case name="20496NISTXML-SV-II-list-dateTime-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20497NISTXML-SV-II-list-dateTime-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20498NISTXML-SV-II-list-dateTime-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20499NISTXML-SV-II-list-dateTime-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20500NISTXML-SV-II-list-dateTime-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20501NISTSchema-SV-II-list-dateTime-length-1 tokoe:valid" result="pass"/><test-case name="20502NISTXML-SV-II-list-dateTime-length-1-1 tokoe:invalid" result="pass"/><test-case name="20503NISTXML-SV-II-list-dateTime-length-1-2 tokoe:invalid" result="pass"/><test-case name="20504NISTXML-SV-II-list-dateTime-length-1-3 tokoe:invalid" result="pass"/><test-case name="20505NISTXML-SV-II-list-dateTime-length-1-4 tokoe:invalid" result="pass"/><test-case name="20506NISTXML-SV-II-list-dateTime-length-1-5 tokoe:invalid" result="pass"/><test-case name="20507NISTSchema-SV-II-list-dateTime-length-2 tokoe:valid" result="pass"/><test-case name="20508NISTXML-SV-II-list-dateTime-length-2-1 tokoe:invalid" result="pass"/><test-case name="20509NISTXML-SV-II-list-dateTime-length-2-2 tokoe:invalid" result="pass"/><test-case name="20510NISTXML-SV-II-list-dateTime-length-2-3 tokoe:invalid" result="pass"/><test-case name="20511NISTXML-SV-II-list-dateTime-length-2-4 tokoe:invalid" result="pass"/><test-case name="20512NISTXML-SV-II-list-dateTime-length-2-5 tokoe:invalid" result="pass"/><test-case name="20513NISTSchema-SV-II-list-dateTime-length-3 tokoe:valid" result="pass"/><test-case name="20514NISTXML-SV-II-list-dateTime-length-3-1 tokoe:invalid" result="pass"/><test-case name="20515NISTXML-SV-II-list-dateTime-length-3-2 tokoe:invalid" result="pass"/><test-case name="20516NISTXML-SV-II-list-dateTime-length-3-3 tokoe:invalid" result="pass"/><test-case name="20517NISTXML-SV-II-list-dateTime-length-3-4 tokoe:invalid" result="pass"/><test-case name="20518NISTXML-SV-II-list-dateTime-length-3-5 tokoe:invalid" result="pass"/><test-case name="20519NISTSchema-SV-II-list-dateTime-length-4 tokoe:valid" result="pass"/><test-case name="20520NISTXML-SV-II-list-dateTime-length-4-1 tokoe:invalid" result="pass"/><test-case name="20521NISTXML-SV-II-list-dateTime-length-4-2 tokoe:invalid" result="pass"/><test-case name="20522NISTXML-SV-II-list-dateTime-length-4-3 tokoe:invalid" result="pass"/><test-case name="20523NISTXML-SV-II-list-dateTime-length-4-4 tokoe:invalid" result="pass"/><test-case name="20524NISTXML-SV-II-list-dateTime-length-4-5 tokoe:invalid" result="pass"/><test-case name="20525NISTSchema-SV-II-list-dateTime-length-5 tokoe:valid" result="pass"/><test-case name="20526NISTXML-SV-II-list-dateTime-length-5-1 tokoe:invalid" result="pass"/><test-case name="20527NISTXML-SV-II-list-dateTime-length-5-2 tokoe:invalid" result="pass"/><test-case name="20528NISTXML-SV-II-list-dateTime-length-5-3 tokoe:invalid" result="pass"/><test-case name="20529NISTXML-SV-II-list-dateTime-length-5-4 tokoe:invalid" result="pass"/><test-case name="20530NISTXML-SV-II-list-dateTime-length-5-5 tokoe:invalid" result="pass"/><test-case name="20531NISTSchema-SV-II-list-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="20532NISTXML-SV-II-list-dateTime-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20533NISTXML-SV-II-list-dateTime-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20534NISTXML-SV-II-list-dateTime-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20535NISTXML-SV-II-list-dateTime-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20536NISTXML-SV-II-list-dateTime-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20537NISTSchema-SV-II-list-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="20538NISTXML-SV-II-list-dateTime-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20539NISTXML-SV-II-list-dateTime-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20540NISTXML-SV-II-list-dateTime-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20541NISTXML-SV-II-list-dateTime-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20542NISTXML-SV-II-list-dateTime-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20543NISTSchema-SV-II-list-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="20544NISTXML-SV-II-list-dateTime-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20545NISTXML-SV-II-list-dateTime-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20546NISTXML-SV-II-list-dateTime-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20547NISTXML-SV-II-list-dateTime-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20548NISTXML-SV-II-list-dateTime-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20549NISTSchema-SV-II-list-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="20550NISTXML-SV-II-list-dateTime-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20551NISTXML-SV-II-list-dateTime-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20552NISTXML-SV-II-list-dateTime-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20553NISTXML-SV-II-list-dateTime-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20554NISTXML-SV-II-list-dateTime-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20555NISTSchema-SV-II-list-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="20556NISTXML-SV-II-list-dateTime-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20557NISTXML-SV-II-list-dateTime-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20558NISTXML-SV-II-list-dateTime-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20559NISTXML-SV-II-list-dateTime-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20560NISTXML-SV-II-list-dateTime-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20561NISTSchema-SV-II-list-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="20562NISTXML-SV-II-list-dateTime-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20563NISTXML-SV-II-list-dateTime-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20564NISTXML-SV-II-list-dateTime-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20565NISTXML-SV-II-list-dateTime-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20566NISTXML-SV-II-list-dateTime-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20567NISTSchema-SV-II-list-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="20568NISTXML-SV-II-list-dateTime-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20569NISTXML-SV-II-list-dateTime-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20570NISTXML-SV-II-list-dateTime-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20571NISTXML-SV-II-list-dateTime-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20572NISTXML-SV-II-list-dateTime-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20573NISTSchema-SV-II-list-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="20574NISTXML-SV-II-list-dateTime-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20575NISTXML-SV-II-list-dateTime-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20576NISTXML-SV-II-list-dateTime-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20577NISTXML-SV-II-list-dateTime-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20578NISTXML-SV-II-list-dateTime-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20579NISTSchema-SV-II-list-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="20580NISTXML-SV-II-list-dateTime-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20581NISTXML-SV-II-list-dateTime-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20582NISTXML-SV-II-list-dateTime-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20583NISTXML-SV-II-list-dateTime-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20584NISTXML-SV-II-list-dateTime-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20585NISTSchema-SV-II-list-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="20586NISTXML-SV-II-list-dateTime-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20587NISTXML-SV-II-list-dateTime-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20588NISTXML-SV-II-list-dateTime-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20589NISTXML-SV-II-list-dateTime-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20590NISTXML-SV-II-list-dateTime-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20591NISTSchema-SV-II-list-time-maxLength-1 tokoe:valid" result="pass"/><test-case name="20592NISTXML-SV-II-list-time-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20593NISTXML-SV-II-list-time-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20594NISTXML-SV-II-list-time-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20595NISTXML-SV-II-list-time-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20596NISTXML-SV-II-list-time-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20597NISTSchema-SV-II-list-time-maxLength-2 tokoe:valid" result="pass"/><test-case name="20598NISTXML-SV-II-list-time-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20599NISTXML-SV-II-list-time-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20600NISTXML-SV-II-list-time-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20601NISTXML-SV-II-list-time-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20602NISTXML-SV-II-list-time-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20603NISTSchema-SV-II-list-time-maxLength-3 tokoe:valid" result="pass"/><test-case name="20604NISTXML-SV-II-list-time-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20605NISTXML-SV-II-list-time-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20606NISTXML-SV-II-list-time-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20607NISTXML-SV-II-list-time-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20608NISTXML-SV-II-list-time-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20609NISTSchema-SV-II-list-time-maxLength-4 tokoe:valid" result="pass"/><test-case name="20610NISTXML-SV-II-list-time-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20611NISTXML-SV-II-list-time-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20612NISTXML-SV-II-list-time-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20613NISTXML-SV-II-list-time-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20614NISTXML-SV-II-list-time-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20615NISTSchema-SV-II-list-time-maxLength-5 tokoe:valid" result="pass"/><test-case name="20616NISTXML-SV-II-list-time-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20617NISTXML-SV-II-list-time-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20618NISTXML-SV-II-list-time-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20619NISTXML-SV-II-list-time-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20620NISTXML-SV-II-list-time-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20621NISTSchema-SV-II-list-time-minLength-1 tokoe:valid" result="pass"/><test-case name="20622NISTXML-SV-II-list-time-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20623NISTXML-SV-II-list-time-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20624NISTXML-SV-II-list-time-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20625NISTXML-SV-II-list-time-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20626NISTXML-SV-II-list-time-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20627NISTSchema-SV-II-list-time-minLength-2 tokoe:valid" result="pass"/><test-case name="20628NISTXML-SV-II-list-time-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20629NISTXML-SV-II-list-time-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20630NISTXML-SV-II-list-time-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20631NISTXML-SV-II-list-time-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20632NISTXML-SV-II-list-time-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20633NISTSchema-SV-II-list-time-minLength-3 tokoe:valid" result="pass"/><test-case name="20634NISTXML-SV-II-list-time-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20635NISTXML-SV-II-list-time-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20636NISTXML-SV-II-list-time-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20637NISTXML-SV-II-list-time-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20638NISTXML-SV-II-list-time-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20639NISTSchema-SV-II-list-time-minLength-4 tokoe:valid" result="pass"/><test-case name="20640NISTXML-SV-II-list-time-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20641NISTXML-SV-II-list-time-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20642NISTXML-SV-II-list-time-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20643NISTXML-SV-II-list-time-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20644NISTXML-SV-II-list-time-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20645NISTSchema-SV-II-list-time-minLength-5 tokoe:valid" result="pass"/><test-case name="20646NISTXML-SV-II-list-time-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20647NISTXML-SV-II-list-time-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20648NISTXML-SV-II-list-time-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20649NISTXML-SV-II-list-time-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20650NISTXML-SV-II-list-time-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20651NISTSchema-SV-II-list-time-length-1 tokoe:valid" result="pass"/><test-case name="20652NISTXML-SV-II-list-time-length-1-1 tokoe:invalid" result="pass"/><test-case name="20653NISTXML-SV-II-list-time-length-1-2 tokoe:invalid" result="pass"/><test-case name="20654NISTXML-SV-II-list-time-length-1-3 tokoe:invalid" result="pass"/><test-case name="20655NISTXML-SV-II-list-time-length-1-4 tokoe:invalid" result="pass"/><test-case name="20656NISTXML-SV-II-list-time-length-1-5 tokoe:invalid" result="pass"/><test-case name="20657NISTSchema-SV-II-list-time-length-2 tokoe:valid" result="pass"/><test-case name="20658NISTXML-SV-II-list-time-length-2-1 tokoe:invalid" result="pass"/><test-case name="20659NISTXML-SV-II-list-time-length-2-2 tokoe:invalid" result="pass"/><test-case name="20660NISTXML-SV-II-list-time-length-2-3 tokoe:invalid" result="pass"/><test-case name="20661NISTXML-SV-II-list-time-length-2-4 tokoe:invalid" result="pass"/><test-case name="20662NISTXML-SV-II-list-time-length-2-5 tokoe:invalid" result="pass"/><test-case name="20663NISTSchema-SV-II-list-time-length-3 tokoe:valid" result="pass"/><test-case name="20664NISTXML-SV-II-list-time-length-3-1 tokoe:invalid" result="pass"/><test-case name="20665NISTXML-SV-II-list-time-length-3-2 tokoe:invalid" result="pass"/><test-case name="20666NISTXML-SV-II-list-time-length-3-3 tokoe:invalid" result="pass"/><test-case name="20667NISTXML-SV-II-list-time-length-3-4 tokoe:invalid" result="pass"/><test-case name="20668NISTXML-SV-II-list-time-length-3-5 tokoe:invalid" result="pass"/><test-case name="20669NISTSchema-SV-II-list-time-length-4 tokoe:valid" result="pass"/><test-case name="20670NISTXML-SV-II-list-time-length-4-1 tokoe:invalid" result="pass"/><test-case name="20671NISTXML-SV-II-list-time-length-4-2 tokoe:invalid" result="pass"/><test-case name="20672NISTXML-SV-II-list-time-length-4-3 tokoe:invalid" result="pass"/><test-case name="20673NISTXML-SV-II-list-time-length-4-4 tokoe:invalid" result="pass"/><test-case name="20674NISTXML-SV-II-list-time-length-4-5 tokoe:invalid" result="pass"/><test-case name="20675NISTSchema-SV-II-list-time-length-5 tokoe:valid" result="pass"/><test-case name="20676NISTXML-SV-II-list-time-length-5-1 tokoe:invalid" result="pass"/><test-case name="20677NISTXML-SV-II-list-time-length-5-2 tokoe:invalid" result="pass"/><test-case name="20678NISTXML-SV-II-list-time-length-5-3 tokoe:invalid" result="pass"/><test-case name="20679NISTXML-SV-II-list-time-length-5-4 tokoe:invalid" result="pass"/><test-case name="20680NISTXML-SV-II-list-time-length-5-5 tokoe:invalid" result="pass"/><test-case name="20681NISTSchema-SV-II-list-time-pattern-1 tokoe:valid" result="pass"/><test-case name="20682NISTXML-SV-II-list-time-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20683NISTXML-SV-II-list-time-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20684NISTXML-SV-II-list-time-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20685NISTXML-SV-II-list-time-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20686NISTXML-SV-II-list-time-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20687NISTSchema-SV-II-list-time-pattern-2 tokoe:valid" result="pass"/><test-case name="20688NISTXML-SV-II-list-time-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20689NISTXML-SV-II-list-time-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20690NISTXML-SV-II-list-time-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20691NISTXML-SV-II-list-time-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20692NISTXML-SV-II-list-time-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20693NISTSchema-SV-II-list-time-pattern-3 tokoe:valid" result="pass"/><test-case name="20694NISTXML-SV-II-list-time-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20695NISTXML-SV-II-list-time-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20696NISTXML-SV-II-list-time-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20697NISTXML-SV-II-list-time-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20698NISTXML-SV-II-list-time-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20699NISTSchema-SV-II-list-time-pattern-4 tokoe:valid" result="pass"/><test-case name="20700NISTXML-SV-II-list-time-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20701NISTXML-SV-II-list-time-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20702NISTXML-SV-II-list-time-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20703NISTXML-SV-II-list-time-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20704NISTXML-SV-II-list-time-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20705NISTSchema-SV-II-list-time-pattern-5 tokoe:valid" result="pass"/><test-case name="20706NISTXML-SV-II-list-time-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20707NISTXML-SV-II-list-time-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20708NISTXML-SV-II-list-time-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20709NISTXML-SV-II-list-time-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20710NISTXML-SV-II-list-time-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20711NISTSchema-SV-II-list-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="20712NISTXML-SV-II-list-time-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20713NISTXML-SV-II-list-time-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20714NISTXML-SV-II-list-time-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20715NISTXML-SV-II-list-time-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20716NISTXML-SV-II-list-time-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20717NISTSchema-SV-II-list-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="20718NISTXML-SV-II-list-time-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20719NISTXML-SV-II-list-time-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20720NISTXML-SV-II-list-time-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20721NISTXML-SV-II-list-time-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20722NISTXML-SV-II-list-time-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20723NISTSchema-SV-II-list-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="20724NISTXML-SV-II-list-time-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20725NISTXML-SV-II-list-time-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20726NISTXML-SV-II-list-time-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20727NISTXML-SV-II-list-time-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20728NISTXML-SV-II-list-time-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20729NISTSchema-SV-II-list-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="20730NISTXML-SV-II-list-time-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20731NISTXML-SV-II-list-time-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20732NISTXML-SV-II-list-time-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20733NISTXML-SV-II-list-time-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20734NISTXML-SV-II-list-time-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20735NISTSchema-SV-II-list-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="20736NISTXML-SV-II-list-time-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20737NISTXML-SV-II-list-time-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20738NISTXML-SV-II-list-time-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20739NISTXML-SV-II-list-time-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20740NISTXML-SV-II-list-time-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20741NISTSchema-SV-II-list-date-maxLength-1 tokoe:valid" result="pass"/><test-case name="20742NISTXML-SV-II-list-date-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20743NISTXML-SV-II-list-date-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20744NISTXML-SV-II-list-date-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20745NISTXML-SV-II-list-date-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20746NISTXML-SV-II-list-date-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20747NISTSchema-SV-II-list-date-maxLength-2 tokoe:valid" result="pass"/><test-case name="20748NISTXML-SV-II-list-date-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20749NISTXML-SV-II-list-date-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20750NISTXML-SV-II-list-date-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20751NISTXML-SV-II-list-date-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20752NISTXML-SV-II-list-date-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20753NISTSchema-SV-II-list-date-maxLength-3 tokoe:valid" result="pass"/><test-case name="20754NISTXML-SV-II-list-date-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20755NISTXML-SV-II-list-date-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20756NISTXML-SV-II-list-date-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20757NISTXML-SV-II-list-date-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20758NISTXML-SV-II-list-date-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20759NISTSchema-SV-II-list-date-maxLength-4 tokoe:valid" result="pass"/><test-case name="20760NISTXML-SV-II-list-date-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20761NISTXML-SV-II-list-date-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20762NISTXML-SV-II-list-date-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20763NISTXML-SV-II-list-date-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20764NISTXML-SV-II-list-date-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20765NISTSchema-SV-II-list-date-maxLength-5 tokoe:valid" result="pass"/><test-case name="20766NISTXML-SV-II-list-date-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20767NISTXML-SV-II-list-date-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20768NISTXML-SV-II-list-date-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20769NISTXML-SV-II-list-date-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20770NISTXML-SV-II-list-date-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20771NISTSchema-SV-II-list-date-minLength-1 tokoe:valid" result="pass"/><test-case name="20772NISTXML-SV-II-list-date-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20773NISTXML-SV-II-list-date-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20774NISTXML-SV-II-list-date-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20775NISTXML-SV-II-list-date-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20776NISTXML-SV-II-list-date-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20777NISTSchema-SV-II-list-date-minLength-2 tokoe:valid" result="pass"/><test-case name="20778NISTXML-SV-II-list-date-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20779NISTXML-SV-II-list-date-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20780NISTXML-SV-II-list-date-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20781NISTXML-SV-II-list-date-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20782NISTXML-SV-II-list-date-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20783NISTSchema-SV-II-list-date-minLength-3 tokoe:valid" result="pass"/><test-case name="20784NISTXML-SV-II-list-date-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20785NISTXML-SV-II-list-date-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20786NISTXML-SV-II-list-date-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20787NISTXML-SV-II-list-date-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20788NISTXML-SV-II-list-date-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20789NISTSchema-SV-II-list-date-minLength-4 tokoe:valid" result="pass"/><test-case name="20790NISTXML-SV-II-list-date-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20791NISTXML-SV-II-list-date-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20792NISTXML-SV-II-list-date-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20793NISTXML-SV-II-list-date-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20794NISTXML-SV-II-list-date-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20795NISTSchema-SV-II-list-date-minLength-5 tokoe:valid" result="pass"/><test-case name="20796NISTXML-SV-II-list-date-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20797NISTXML-SV-II-list-date-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20798NISTXML-SV-II-list-date-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20799NISTXML-SV-II-list-date-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20800NISTXML-SV-II-list-date-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20801NISTSchema-SV-II-list-date-length-1 tokoe:valid" result="pass"/><test-case name="20802NISTXML-SV-II-list-date-length-1-1 tokoe:invalid" result="pass"/><test-case name="20803NISTXML-SV-II-list-date-length-1-2 tokoe:invalid" result="pass"/><test-case name="20804NISTXML-SV-II-list-date-length-1-3 tokoe:invalid" result="pass"/><test-case name="20805NISTXML-SV-II-list-date-length-1-4 tokoe:invalid" result="pass"/><test-case name="20806NISTXML-SV-II-list-date-length-1-5 tokoe:invalid" result="pass"/><test-case name="20807NISTSchema-SV-II-list-date-length-2 tokoe:valid" result="pass"/><test-case name="20808NISTXML-SV-II-list-date-length-2-1 tokoe:invalid" result="pass"/><test-case name="20809NISTXML-SV-II-list-date-length-2-2 tokoe:invalid" result="pass"/><test-case name="20810NISTXML-SV-II-list-date-length-2-3 tokoe:invalid" result="pass"/><test-case name="20811NISTXML-SV-II-list-date-length-2-4 tokoe:invalid" result="pass"/><test-case name="20812NISTXML-SV-II-list-date-length-2-5 tokoe:invalid" result="pass"/><test-case name="20813NISTSchema-SV-II-list-date-length-3 tokoe:valid" result="pass"/><test-case name="20814NISTXML-SV-II-list-date-length-3-1 tokoe:invalid" result="pass"/><test-case name="20815NISTXML-SV-II-list-date-length-3-2 tokoe:invalid" result="pass"/><test-case name="20816NISTXML-SV-II-list-date-length-3-3 tokoe:invalid" result="pass"/><test-case name="20817NISTXML-SV-II-list-date-length-3-4 tokoe:invalid" result="pass"/><test-case name="20818NISTXML-SV-II-list-date-length-3-5 tokoe:invalid" result="pass"/><test-case name="20819NISTSchema-SV-II-list-date-length-4 tokoe:valid" result="pass"/><test-case name="20820NISTXML-SV-II-list-date-length-4-1 tokoe:invalid" result="pass"/><test-case name="20821NISTXML-SV-II-list-date-length-4-2 tokoe:invalid" result="pass"/><test-case name="20822NISTXML-SV-II-list-date-length-4-3 tokoe:invalid" result="pass"/><test-case name="20823NISTXML-SV-II-list-date-length-4-4 tokoe:invalid" result="pass"/><test-case name="20824NISTXML-SV-II-list-date-length-4-5 tokoe:invalid" result="pass"/><test-case name="20825NISTSchema-SV-II-list-date-length-5 tokoe:valid" result="pass"/><test-case name="20826NISTXML-SV-II-list-date-length-5-1 tokoe:invalid" result="pass"/><test-case name="20827NISTXML-SV-II-list-date-length-5-2 tokoe:invalid" result="pass"/><test-case name="20828NISTXML-SV-II-list-date-length-5-3 tokoe:invalid" result="pass"/><test-case name="20829NISTXML-SV-II-list-date-length-5-4 tokoe:invalid" result="pass"/><test-case name="20830NISTXML-SV-II-list-date-length-5-5 tokoe:invalid" result="pass"/><test-case name="20831NISTSchema-SV-II-list-date-pattern-1 tokoe:valid" result="pass"/><test-case name="20832NISTXML-SV-II-list-date-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20833NISTXML-SV-II-list-date-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20834NISTXML-SV-II-list-date-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20835NISTXML-SV-II-list-date-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20836NISTXML-SV-II-list-date-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20837NISTSchema-SV-II-list-date-pattern-2 tokoe:valid" result="pass"/><test-case name="20838NISTXML-SV-II-list-date-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20839NISTXML-SV-II-list-date-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20840NISTXML-SV-II-list-date-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20841NISTXML-SV-II-list-date-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20842NISTXML-SV-II-list-date-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20843NISTSchema-SV-II-list-date-pattern-3 tokoe:valid" result="pass"/><test-case name="20844NISTXML-SV-II-list-date-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20845NISTXML-SV-II-list-date-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20846NISTXML-SV-II-list-date-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20847NISTXML-SV-II-list-date-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20848NISTXML-SV-II-list-date-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20849NISTSchema-SV-II-list-date-pattern-4 tokoe:valid" result="pass"/><test-case name="20850NISTXML-SV-II-list-date-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20851NISTXML-SV-II-list-date-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20852NISTXML-SV-II-list-date-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20853NISTXML-SV-II-list-date-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20854NISTXML-SV-II-list-date-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20855NISTSchema-SV-II-list-date-pattern-5 tokoe:valid" result="pass"/><test-case name="20856NISTXML-SV-II-list-date-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20857NISTXML-SV-II-list-date-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20858NISTXML-SV-II-list-date-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20859NISTXML-SV-II-list-date-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20860NISTXML-SV-II-list-date-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20861NISTSchema-SV-II-list-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="20862NISTXML-SV-II-list-date-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20863NISTXML-SV-II-list-date-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20864NISTXML-SV-II-list-date-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20865NISTXML-SV-II-list-date-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20866NISTXML-SV-II-list-date-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20867NISTSchema-SV-II-list-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="20868NISTXML-SV-II-list-date-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20869NISTXML-SV-II-list-date-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20870NISTXML-SV-II-list-date-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20871NISTXML-SV-II-list-date-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20872NISTXML-SV-II-list-date-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20873NISTSchema-SV-II-list-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="20874NISTXML-SV-II-list-date-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20875NISTXML-SV-II-list-date-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20876NISTXML-SV-II-list-date-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20877NISTXML-SV-II-list-date-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20878NISTXML-SV-II-list-date-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20879NISTSchema-SV-II-list-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="20880NISTXML-SV-II-list-date-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20881NISTXML-SV-II-list-date-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20882NISTXML-SV-II-list-date-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20883NISTXML-SV-II-list-date-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20884NISTXML-SV-II-list-date-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20885NISTSchema-SV-II-list-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="20886NISTXML-SV-II-list-date-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20887NISTXML-SV-II-list-date-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20888NISTXML-SV-II-list-date-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20889NISTXML-SV-II-list-date-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20890NISTXML-SV-II-list-date-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20891NISTSchema-SV-II-list-gYearMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="20892NISTXML-SV-II-list-gYearMonth-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20893NISTXML-SV-II-list-gYearMonth-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20894NISTXML-SV-II-list-gYearMonth-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20895NISTXML-SV-II-list-gYearMonth-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20896NISTXML-SV-II-list-gYearMonth-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20897NISTSchema-SV-II-list-gYearMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="20898NISTXML-SV-II-list-gYearMonth-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20899NISTXML-SV-II-list-gYearMonth-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20900NISTXML-SV-II-list-gYearMonth-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20901NISTXML-SV-II-list-gYearMonth-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20902NISTXML-SV-II-list-gYearMonth-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20903NISTSchema-SV-II-list-gYearMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="20904NISTXML-SV-II-list-gYearMonth-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20905NISTXML-SV-II-list-gYearMonth-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20906NISTXML-SV-II-list-gYearMonth-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20907NISTXML-SV-II-list-gYearMonth-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20908NISTXML-SV-II-list-gYearMonth-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20909NISTSchema-SV-II-list-gYearMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="20910NISTXML-SV-II-list-gYearMonth-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20911NISTXML-SV-II-list-gYearMonth-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20912NISTXML-SV-II-list-gYearMonth-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20913NISTXML-SV-II-list-gYearMonth-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20914NISTXML-SV-II-list-gYearMonth-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20915NISTSchema-SV-II-list-gYearMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="20916NISTXML-SV-II-list-gYearMonth-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20917NISTXML-SV-II-list-gYearMonth-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20918NISTXML-SV-II-list-gYearMonth-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20919NISTXML-SV-II-list-gYearMonth-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20920NISTXML-SV-II-list-gYearMonth-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20921NISTSchema-SV-II-list-gYearMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="20922NISTXML-SV-II-list-gYearMonth-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20923NISTXML-SV-II-list-gYearMonth-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20924NISTXML-SV-II-list-gYearMonth-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20925NISTXML-SV-II-list-gYearMonth-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20926NISTXML-SV-II-list-gYearMonth-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20927NISTSchema-SV-II-list-gYearMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="20928NISTXML-SV-II-list-gYearMonth-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20929NISTXML-SV-II-list-gYearMonth-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20930NISTXML-SV-II-list-gYearMonth-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20931NISTXML-SV-II-list-gYearMonth-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20932NISTXML-SV-II-list-gYearMonth-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20933NISTSchema-SV-II-list-gYearMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="20934NISTXML-SV-II-list-gYearMonth-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20935NISTXML-SV-II-list-gYearMonth-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20936NISTXML-SV-II-list-gYearMonth-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20937NISTXML-SV-II-list-gYearMonth-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20938NISTXML-SV-II-list-gYearMonth-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20939NISTSchema-SV-II-list-gYearMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="20940NISTXML-SV-II-list-gYearMonth-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20941NISTXML-SV-II-list-gYearMonth-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20942NISTXML-SV-II-list-gYearMonth-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20943NISTXML-SV-II-list-gYearMonth-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20944NISTXML-SV-II-list-gYearMonth-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20945NISTSchema-SV-II-list-gYearMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="20946NISTXML-SV-II-list-gYearMonth-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20947NISTXML-SV-II-list-gYearMonth-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20948NISTXML-SV-II-list-gYearMonth-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20949NISTXML-SV-II-list-gYearMonth-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20950NISTXML-SV-II-list-gYearMonth-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20951NISTSchema-SV-II-list-gYearMonth-length-1 tokoe:valid" result="pass"/><test-case name="20952NISTXML-SV-II-list-gYearMonth-length-1-1 tokoe:invalid" result="pass"/><test-case name="20953NISTXML-SV-II-list-gYearMonth-length-1-2 tokoe:invalid" result="pass"/><test-case name="20954NISTXML-SV-II-list-gYearMonth-length-1-3 tokoe:invalid" result="pass"/><test-case name="20955NISTXML-SV-II-list-gYearMonth-length-1-4 tokoe:invalid" result="pass"/><test-case name="20956NISTXML-SV-II-list-gYearMonth-length-1-5 tokoe:invalid" result="pass"/><test-case name="20957NISTSchema-SV-II-list-gYearMonth-length-2 tokoe:valid" result="pass"/><test-case name="20958NISTXML-SV-II-list-gYearMonth-length-2-1 tokoe:invalid" result="pass"/><test-case name="20959NISTXML-SV-II-list-gYearMonth-length-2-2 tokoe:invalid" result="pass"/><test-case name="20960NISTXML-SV-II-list-gYearMonth-length-2-3 tokoe:invalid" result="pass"/><test-case name="20961NISTXML-SV-II-list-gYearMonth-length-2-4 tokoe:invalid" result="pass"/><test-case name="20962NISTXML-SV-II-list-gYearMonth-length-2-5 tokoe:invalid" result="pass"/><test-case name="20963NISTSchema-SV-II-list-gYearMonth-length-3 tokoe:valid" result="pass"/><test-case name="20964NISTXML-SV-II-list-gYearMonth-length-3-1 tokoe:invalid" result="pass"/><test-case name="20965NISTXML-SV-II-list-gYearMonth-length-3-2 tokoe:invalid" result="pass"/><test-case name="20966NISTXML-SV-II-list-gYearMonth-length-3-3 tokoe:invalid" result="pass"/><test-case name="20967NISTXML-SV-II-list-gYearMonth-length-3-4 tokoe:invalid" result="pass"/><test-case name="20968NISTXML-SV-II-list-gYearMonth-length-3-5 tokoe:invalid" result="pass"/><test-case name="20969NISTSchema-SV-II-list-gYearMonth-length-4 tokoe:valid" result="pass"/><test-case name="20970NISTXML-SV-II-list-gYearMonth-length-4-1 tokoe:invalid" result="pass"/><test-case name="20971NISTXML-SV-II-list-gYearMonth-length-4-2 tokoe:invalid" result="pass"/><test-case name="20972NISTXML-SV-II-list-gYearMonth-length-4-3 tokoe:invalid" result="pass"/><test-case name="20973NISTXML-SV-II-list-gYearMonth-length-4-4 tokoe:invalid" result="pass"/><test-case name="20974NISTXML-SV-II-list-gYearMonth-length-4-5 tokoe:invalid" result="pass"/><test-case name="20975NISTSchema-SV-II-list-gYearMonth-length-5 tokoe:valid" result="pass"/><test-case name="20976NISTXML-SV-II-list-gYearMonth-length-5-1 tokoe:invalid" result="pass"/><test-case name="20977NISTXML-SV-II-list-gYearMonth-length-5-2 tokoe:invalid" result="pass"/><test-case name="20978NISTXML-SV-II-list-gYearMonth-length-5-3 tokoe:invalid" result="pass"/><test-case name="20979NISTXML-SV-II-list-gYearMonth-length-5-4 tokoe:invalid" result="pass"/><test-case name="20980NISTXML-SV-II-list-gYearMonth-length-5-5 tokoe:invalid" result="pass"/><test-case name="20981NISTSchema-SV-II-list-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="20982NISTXML-SV-II-list-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20983NISTXML-SV-II-list-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20984NISTXML-SV-II-list-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20985NISTXML-SV-II-list-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20986NISTXML-SV-II-list-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20987NISTSchema-SV-II-list-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="20988NISTXML-SV-II-list-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20989NISTXML-SV-II-list-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20990NISTXML-SV-II-list-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20991NISTXML-SV-II-list-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20992NISTXML-SV-II-list-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20993NISTSchema-SV-II-list-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="20994NISTXML-SV-II-list-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20995NISTXML-SV-II-list-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20996NISTXML-SV-II-list-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20997NISTXML-SV-II-list-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20998NISTXML-SV-II-list-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20999NISTSchema-SV-II-list-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="21000NISTXML-SV-II-list-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21001NISTXML-SV-II-list-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21002NISTXML-SV-II-list-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21003NISTXML-SV-II-list-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21004NISTXML-SV-II-list-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21005NISTSchema-SV-II-list-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="21006NISTXML-SV-II-list-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21007NISTXML-SV-II-list-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21008NISTXML-SV-II-list-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21009NISTXML-SV-II-list-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21010NISTXML-SV-II-list-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21011NISTSchema-SV-II-list-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="21012NISTXML-SV-II-list-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21013NISTXML-SV-II-list-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21014NISTXML-SV-II-list-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21015NISTXML-SV-II-list-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21016NISTXML-SV-II-list-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21017NISTSchema-SV-II-list-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="21018NISTXML-SV-II-list-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21019NISTXML-SV-II-list-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21020NISTXML-SV-II-list-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21021NISTXML-SV-II-list-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21022NISTXML-SV-II-list-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21023NISTSchema-SV-II-list-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="21024NISTXML-SV-II-list-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21025NISTXML-SV-II-list-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21026NISTXML-SV-II-list-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21027NISTXML-SV-II-list-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21028NISTXML-SV-II-list-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21029NISTSchema-SV-II-list-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="21030NISTXML-SV-II-list-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21031NISTXML-SV-II-list-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21032NISTXML-SV-II-list-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21033NISTXML-SV-II-list-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21034NISTXML-SV-II-list-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21035NISTSchema-SV-II-list-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="21036NISTXML-SV-II-list-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21037NISTXML-SV-II-list-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21038NISTXML-SV-II-list-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21039NISTXML-SV-II-list-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21040NISTXML-SV-II-list-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21041NISTSchema-SV-II-list-gYear-maxLength-1 tokoe:valid" result="pass"/><test-case name="21042NISTXML-SV-II-list-gYear-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21043NISTXML-SV-II-list-gYear-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21044NISTXML-SV-II-list-gYear-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21045NISTXML-SV-II-list-gYear-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21046NISTXML-SV-II-list-gYear-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21047NISTSchema-SV-II-list-gYear-maxLength-2 tokoe:valid" result="pass"/><test-case name="21048NISTXML-SV-II-list-gYear-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21049NISTXML-SV-II-list-gYear-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21050NISTXML-SV-II-list-gYear-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21051NISTXML-SV-II-list-gYear-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21052NISTXML-SV-II-list-gYear-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21053NISTSchema-SV-II-list-gYear-maxLength-3 tokoe:valid" result="pass"/><test-case name="21054NISTXML-SV-II-list-gYear-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21055NISTXML-SV-II-list-gYear-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21056NISTXML-SV-II-list-gYear-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21057NISTXML-SV-II-list-gYear-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21058NISTXML-SV-II-list-gYear-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21059NISTSchema-SV-II-list-gYear-maxLength-4 tokoe:valid" result="pass"/><test-case name="21060NISTXML-SV-II-list-gYear-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21061NISTXML-SV-II-list-gYear-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21062NISTXML-SV-II-list-gYear-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21063NISTXML-SV-II-list-gYear-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21064NISTXML-SV-II-list-gYear-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21065NISTSchema-SV-II-list-gYear-maxLength-5 tokoe:valid" result="pass"/><test-case name="21066NISTXML-SV-II-list-gYear-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21067NISTXML-SV-II-list-gYear-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21068NISTXML-SV-II-list-gYear-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21069NISTXML-SV-II-list-gYear-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21070NISTXML-SV-II-list-gYear-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21071NISTSchema-SV-II-list-gYear-minLength-1 tokoe:valid" result="pass"/><test-case name="21072NISTXML-SV-II-list-gYear-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21073NISTXML-SV-II-list-gYear-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21074NISTXML-SV-II-list-gYear-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21075NISTXML-SV-II-list-gYear-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21076NISTXML-SV-II-list-gYear-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21077NISTSchema-SV-II-list-gYear-minLength-2 tokoe:valid" result="pass"/><test-case name="21078NISTXML-SV-II-list-gYear-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21079NISTXML-SV-II-list-gYear-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21080NISTXML-SV-II-list-gYear-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21081NISTXML-SV-II-list-gYear-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21082NISTXML-SV-II-list-gYear-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21083NISTSchema-SV-II-list-gYear-minLength-3 tokoe:valid" result="pass"/><test-case name="21084NISTXML-SV-II-list-gYear-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21085NISTXML-SV-II-list-gYear-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21086NISTXML-SV-II-list-gYear-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21087NISTXML-SV-II-list-gYear-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21088NISTXML-SV-II-list-gYear-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21089NISTSchema-SV-II-list-gYear-minLength-4 tokoe:valid" result="pass"/><test-case name="21090NISTXML-SV-II-list-gYear-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21091NISTXML-SV-II-list-gYear-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21092NISTXML-SV-II-list-gYear-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21093NISTXML-SV-II-list-gYear-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21094NISTXML-SV-II-list-gYear-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21095NISTSchema-SV-II-list-gYear-minLength-5 tokoe:valid" result="pass"/><test-case name="21096NISTXML-SV-II-list-gYear-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21097NISTXML-SV-II-list-gYear-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21098NISTXML-SV-II-list-gYear-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21099NISTXML-SV-II-list-gYear-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21100NISTXML-SV-II-list-gYear-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21101NISTSchema-SV-II-list-gYear-length-1 tokoe:valid" result="pass"/><test-case name="21102NISTXML-SV-II-list-gYear-length-1-1 tokoe:invalid" result="pass"/><test-case name="21103NISTXML-SV-II-list-gYear-length-1-2 tokoe:invalid" result="pass"/><test-case name="21104NISTXML-SV-II-list-gYear-length-1-3 tokoe:invalid" result="pass"/><test-case name="21105NISTXML-SV-II-list-gYear-length-1-4 tokoe:invalid" result="pass"/><test-case name="21106NISTXML-SV-II-list-gYear-length-1-5 tokoe:invalid" result="pass"/><test-case name="21107NISTSchema-SV-II-list-gYear-length-2 tokoe:valid" result="pass"/><test-case name="21108NISTXML-SV-II-list-gYear-length-2-1 tokoe:invalid" result="pass"/><test-case name="21109NISTXML-SV-II-list-gYear-length-2-2 tokoe:invalid" result="pass"/><test-case name="21110NISTXML-SV-II-list-gYear-length-2-3 tokoe:invalid" result="pass"/><test-case name="21111NISTXML-SV-II-list-gYear-length-2-4 tokoe:invalid" result="pass"/><test-case name="21112NISTXML-SV-II-list-gYear-length-2-5 tokoe:invalid" result="pass"/><test-case name="21113NISTSchema-SV-II-list-gYear-length-3 tokoe:valid" result="pass"/><test-case name="21114NISTXML-SV-II-list-gYear-length-3-1 tokoe:invalid" result="pass"/><test-case name="21115NISTXML-SV-II-list-gYear-length-3-2 tokoe:invalid" result="pass"/><test-case name="21116NISTXML-SV-II-list-gYear-length-3-3 tokoe:invalid" result="pass"/><test-case name="21117NISTXML-SV-II-list-gYear-length-3-4 tokoe:invalid" result="pass"/><test-case name="21118NISTXML-SV-II-list-gYear-length-3-5 tokoe:invalid" result="pass"/><test-case name="21119NISTSchema-SV-II-list-gYear-length-4 tokoe:valid" result="pass"/><test-case name="21120NISTXML-SV-II-list-gYear-length-4-1 tokoe:invalid" result="pass"/><test-case name="21121NISTXML-SV-II-list-gYear-length-4-2 tokoe:invalid" result="pass"/><test-case name="21122NISTXML-SV-II-list-gYear-length-4-3 tokoe:invalid" result="pass"/><test-case name="21123NISTXML-SV-II-list-gYear-length-4-4 tokoe:invalid" result="pass"/><test-case name="21124NISTXML-SV-II-list-gYear-length-4-5 tokoe:invalid" result="pass"/><test-case name="21125NISTSchema-SV-II-list-gYear-length-5 tokoe:valid" result="pass"/><test-case name="21126NISTXML-SV-II-list-gYear-length-5-1 tokoe:invalid" result="pass"/><test-case name="21127NISTXML-SV-II-list-gYear-length-5-2 tokoe:invalid" result="pass"/><test-case name="21128NISTXML-SV-II-list-gYear-length-5-3 tokoe:invalid" result="pass"/><test-case name="21129NISTXML-SV-II-list-gYear-length-5-4 tokoe:invalid" result="pass"/><test-case name="21130NISTXML-SV-II-list-gYear-length-5-5 tokoe:invalid" result="pass"/><test-case name="21131NISTSchema-SV-II-list-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="21132NISTXML-SV-II-list-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21133NISTXML-SV-II-list-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21134NISTXML-SV-II-list-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21135NISTXML-SV-II-list-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21136NISTXML-SV-II-list-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21137NISTSchema-SV-II-list-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="21138NISTXML-SV-II-list-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21139NISTXML-SV-II-list-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21140NISTXML-SV-II-list-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21141NISTXML-SV-II-list-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21142NISTXML-SV-II-list-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21143NISTSchema-SV-II-list-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="21144NISTXML-SV-II-list-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21145NISTXML-SV-II-list-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21146NISTXML-SV-II-list-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21147NISTXML-SV-II-list-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21148NISTXML-SV-II-list-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21149NISTSchema-SV-II-list-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="21150NISTXML-SV-II-list-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21151NISTXML-SV-II-list-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21152NISTXML-SV-II-list-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21153NISTXML-SV-II-list-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21154NISTXML-SV-II-list-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21155NISTSchema-SV-II-list-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="21156NISTXML-SV-II-list-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21157NISTXML-SV-II-list-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21158NISTXML-SV-II-list-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21159NISTXML-SV-II-list-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21160NISTXML-SV-II-list-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21161NISTSchema-SV-II-list-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="21162NISTXML-SV-II-list-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21163NISTXML-SV-II-list-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21164NISTXML-SV-II-list-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21165NISTXML-SV-II-list-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21166NISTXML-SV-II-list-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21167NISTSchema-SV-II-list-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="21168NISTXML-SV-II-list-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21169NISTXML-SV-II-list-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21170NISTXML-SV-II-list-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21171NISTXML-SV-II-list-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21172NISTXML-SV-II-list-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21173NISTSchema-SV-II-list-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="21174NISTXML-SV-II-list-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21175NISTXML-SV-II-list-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21176NISTXML-SV-II-list-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21177NISTXML-SV-II-list-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21178NISTXML-SV-II-list-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21179NISTSchema-SV-II-list-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="21180NISTXML-SV-II-list-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21181NISTXML-SV-II-list-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21182NISTXML-SV-II-list-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21183NISTXML-SV-II-list-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21184NISTXML-SV-II-list-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21185NISTSchema-SV-II-list-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="21186NISTXML-SV-II-list-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21187NISTXML-SV-II-list-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21188NISTXML-SV-II-list-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21189NISTXML-SV-II-list-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21190NISTXML-SV-II-list-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21191NISTSchema-SV-II-list-gMonthDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="21192NISTXML-SV-II-list-gMonthDay-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21193NISTXML-SV-II-list-gMonthDay-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21194NISTXML-SV-II-list-gMonthDay-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21195NISTXML-SV-II-list-gMonthDay-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21196NISTXML-SV-II-list-gMonthDay-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21197NISTSchema-SV-II-list-gMonthDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="21198NISTXML-SV-II-list-gMonthDay-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21199NISTXML-SV-II-list-gMonthDay-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21200NISTXML-SV-II-list-gMonthDay-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21201NISTXML-SV-II-list-gMonthDay-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21202NISTXML-SV-II-list-gMonthDay-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21203NISTSchema-SV-II-list-gMonthDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="21204NISTXML-SV-II-list-gMonthDay-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21205NISTXML-SV-II-list-gMonthDay-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21206NISTXML-SV-II-list-gMonthDay-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21207NISTXML-SV-II-list-gMonthDay-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21208NISTXML-SV-II-list-gMonthDay-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21209NISTSchema-SV-II-list-gMonthDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="21210NISTXML-SV-II-list-gMonthDay-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21211NISTXML-SV-II-list-gMonthDay-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21212NISTXML-SV-II-list-gMonthDay-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21213NISTXML-SV-II-list-gMonthDay-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21214NISTXML-SV-II-list-gMonthDay-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21215NISTSchema-SV-II-list-gMonthDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="21216NISTXML-SV-II-list-gMonthDay-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21217NISTXML-SV-II-list-gMonthDay-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21218NISTXML-SV-II-list-gMonthDay-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21219NISTXML-SV-II-list-gMonthDay-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21220NISTXML-SV-II-list-gMonthDay-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21221NISTSchema-SV-II-list-gMonthDay-minLength-1 tokoe:valid" result="pass"/><test-case name="21222NISTXML-SV-II-list-gMonthDay-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21223NISTXML-SV-II-list-gMonthDay-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21224NISTXML-SV-II-list-gMonthDay-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21225NISTXML-SV-II-list-gMonthDay-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21226NISTXML-SV-II-list-gMonthDay-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21227NISTSchema-SV-II-list-gMonthDay-minLength-2 tokoe:valid" result="pass"/><test-case name="21228NISTXML-SV-II-list-gMonthDay-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21229NISTXML-SV-II-list-gMonthDay-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21230NISTXML-SV-II-list-gMonthDay-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21231NISTXML-SV-II-list-gMonthDay-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21232NISTXML-SV-II-list-gMonthDay-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21233NISTSchema-SV-II-list-gMonthDay-minLength-3 tokoe:valid" result="pass"/><test-case name="21234NISTXML-SV-II-list-gMonthDay-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21235NISTXML-SV-II-list-gMonthDay-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21236NISTXML-SV-II-list-gMonthDay-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21237NISTXML-SV-II-list-gMonthDay-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21238NISTXML-SV-II-list-gMonthDay-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21239NISTSchema-SV-II-list-gMonthDay-minLength-4 tokoe:valid" result="pass"/><test-case name="21240NISTXML-SV-II-list-gMonthDay-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21241NISTXML-SV-II-list-gMonthDay-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21242NISTXML-SV-II-list-gMonthDay-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21243NISTXML-SV-II-list-gMonthDay-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21244NISTXML-SV-II-list-gMonthDay-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21245NISTSchema-SV-II-list-gMonthDay-minLength-5 tokoe:valid" result="pass"/><test-case name="21246NISTXML-SV-II-list-gMonthDay-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21247NISTXML-SV-II-list-gMonthDay-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21248NISTXML-SV-II-list-gMonthDay-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21249NISTXML-SV-II-list-gMonthDay-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21250NISTXML-SV-II-list-gMonthDay-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21251NISTSchema-SV-II-list-gMonthDay-length-1 tokoe:valid" result="pass"/><test-case name="21252NISTXML-SV-II-list-gMonthDay-length-1-1 tokoe:invalid" result="pass"/><test-case name="21253NISTXML-SV-II-list-gMonthDay-length-1-2 tokoe:invalid" result="pass"/><test-case name="21254NISTXML-SV-II-list-gMonthDay-length-1-3 tokoe:invalid" result="pass"/><test-case name="21255NISTXML-SV-II-list-gMonthDay-length-1-4 tokoe:invalid" result="pass"/><test-case name="21256NISTXML-SV-II-list-gMonthDay-length-1-5 tokoe:invalid" result="pass"/><test-case name="21257NISTSchema-SV-II-list-gMonthDay-length-2 tokoe:valid" result="pass"/><test-case name="21258NISTXML-SV-II-list-gMonthDay-length-2-1 tokoe:invalid" result="pass"/><test-case name="21259NISTXML-SV-II-list-gMonthDay-length-2-2 tokoe:invalid" result="pass"/><test-case name="21260NISTXML-SV-II-list-gMonthDay-length-2-3 tokoe:invalid" result="pass"/><test-case name="21261NISTXML-SV-II-list-gMonthDay-length-2-4 tokoe:invalid" result="pass"/><test-case name="21262NISTXML-SV-II-list-gMonthDay-length-2-5 tokoe:invalid" result="pass"/><test-case name="21263NISTSchema-SV-II-list-gMonthDay-length-3 tokoe:valid" result="pass"/><test-case name="21264NISTXML-SV-II-list-gMonthDay-length-3-1 tokoe:invalid" result="pass"/><test-case name="21265NISTXML-SV-II-list-gMonthDay-length-3-2 tokoe:invalid" result="pass"/><test-case name="21266NISTXML-SV-II-list-gMonthDay-length-3-3 tokoe:invalid" result="pass"/><test-case name="21267NISTXML-SV-II-list-gMonthDay-length-3-4 tokoe:invalid" result="pass"/><test-case name="21268NISTXML-SV-II-list-gMonthDay-length-3-5 tokoe:invalid" result="pass"/><test-case name="21269NISTSchema-SV-II-list-gMonthDay-length-4 tokoe:valid" result="pass"/><test-case name="21270NISTXML-SV-II-list-gMonthDay-length-4-1 tokoe:invalid" result="pass"/><test-case name="21271NISTXML-SV-II-list-gMonthDay-length-4-2 tokoe:invalid" result="pass"/><test-case name="21272NISTXML-SV-II-list-gMonthDay-length-4-3 tokoe:invalid" result="pass"/><test-case name="21273NISTXML-SV-II-list-gMonthDay-length-4-4 tokoe:invalid" result="pass"/><test-case name="21274NISTXML-SV-II-list-gMonthDay-length-4-5 tokoe:invalid" result="pass"/><test-case name="21275NISTSchema-SV-II-list-gMonthDay-length-5 tokoe:valid" result="pass"/><test-case name="21276NISTXML-SV-II-list-gMonthDay-length-5-1 tokoe:invalid" result="pass"/><test-case name="21277NISTXML-SV-II-list-gMonthDay-length-5-2 tokoe:invalid" result="pass"/><test-case name="21278NISTXML-SV-II-list-gMonthDay-length-5-3 tokoe:invalid" result="pass"/><test-case name="21279NISTXML-SV-II-list-gMonthDay-length-5-4 tokoe:invalid" result="pass"/><test-case name="21280NISTXML-SV-II-list-gMonthDay-length-5-5 tokoe:invalid" result="pass"/><test-case name="21281NISTSchema-SV-II-list-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="21282NISTXML-SV-II-list-gMonthDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21283NISTXML-SV-II-list-gMonthDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21284NISTXML-SV-II-list-gMonthDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21285NISTXML-SV-II-list-gMonthDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21286NISTXML-SV-II-list-gMonthDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21287NISTSchema-SV-II-list-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="21288NISTXML-SV-II-list-gMonthDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21289NISTXML-SV-II-list-gMonthDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21290NISTXML-SV-II-list-gMonthDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21291NISTXML-SV-II-list-gMonthDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21292NISTXML-SV-II-list-gMonthDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21293NISTSchema-SV-II-list-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="21294NISTXML-SV-II-list-gMonthDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21295NISTXML-SV-II-list-gMonthDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21296NISTXML-SV-II-list-gMonthDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21297NISTXML-SV-II-list-gMonthDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21298NISTXML-SV-II-list-gMonthDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21299NISTSchema-SV-II-list-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="21300NISTXML-SV-II-list-gMonthDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21301NISTXML-SV-II-list-gMonthDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21302NISTXML-SV-II-list-gMonthDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21303NISTXML-SV-II-list-gMonthDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21304NISTXML-SV-II-list-gMonthDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21305NISTSchema-SV-II-list-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="21306NISTXML-SV-II-list-gMonthDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21307NISTXML-SV-II-list-gMonthDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21308NISTXML-SV-II-list-gMonthDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21309NISTXML-SV-II-list-gMonthDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21310NISTXML-SV-II-list-gMonthDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21311NISTSchema-SV-II-list-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="21312NISTXML-SV-II-list-gMonthDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21313NISTXML-SV-II-list-gMonthDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21314NISTXML-SV-II-list-gMonthDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21315NISTXML-SV-II-list-gMonthDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21316NISTXML-SV-II-list-gMonthDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21317NISTSchema-SV-II-list-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="21318NISTXML-SV-II-list-gMonthDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21319NISTXML-SV-II-list-gMonthDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21320NISTXML-SV-II-list-gMonthDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21321NISTXML-SV-II-list-gMonthDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21322NISTXML-SV-II-list-gMonthDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21323NISTSchema-SV-II-list-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="21324NISTXML-SV-II-list-gMonthDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21325NISTXML-SV-II-list-gMonthDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21326NISTXML-SV-II-list-gMonthDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21327NISTXML-SV-II-list-gMonthDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21328NISTXML-SV-II-list-gMonthDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21329NISTSchema-SV-II-list-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="21330NISTXML-SV-II-list-gMonthDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21331NISTXML-SV-II-list-gMonthDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21332NISTXML-SV-II-list-gMonthDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21333NISTXML-SV-II-list-gMonthDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21334NISTXML-SV-II-list-gMonthDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21335NISTSchema-SV-II-list-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="21336NISTXML-SV-II-list-gMonthDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21337NISTXML-SV-II-list-gMonthDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21338NISTXML-SV-II-list-gMonthDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21339NISTXML-SV-II-list-gMonthDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21340NISTXML-SV-II-list-gMonthDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21341NISTSchema-SV-II-list-gDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="21342NISTXML-SV-II-list-gDay-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21343NISTXML-SV-II-list-gDay-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21344NISTXML-SV-II-list-gDay-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21345NISTXML-SV-II-list-gDay-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21346NISTXML-SV-II-list-gDay-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21347NISTSchema-SV-II-list-gDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="21348NISTXML-SV-II-list-gDay-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21349NISTXML-SV-II-list-gDay-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21350NISTXML-SV-II-list-gDay-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21351NISTXML-SV-II-list-gDay-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21352NISTXML-SV-II-list-gDay-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21353NISTSchema-SV-II-list-gDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="21354NISTXML-SV-II-list-gDay-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21355NISTXML-SV-II-list-gDay-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21356NISTXML-SV-II-list-gDay-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21357NISTXML-SV-II-list-gDay-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21358NISTXML-SV-II-list-gDay-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21359NISTSchema-SV-II-list-gDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="21360NISTXML-SV-II-list-gDay-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21361NISTXML-SV-II-list-gDay-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21362NISTXML-SV-II-list-gDay-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21363NISTXML-SV-II-list-gDay-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21364NISTXML-SV-II-list-gDay-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21365NISTSchema-SV-II-list-gDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="21366NISTXML-SV-II-list-gDay-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21367NISTXML-SV-II-list-gDay-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21368NISTXML-SV-II-list-gDay-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21369NISTXML-SV-II-list-gDay-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21370NISTXML-SV-II-list-gDay-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21371NISTSchema-SV-II-list-gDay-minLength-1 tokoe:valid" result="pass"/><test-case name="21372NISTXML-SV-II-list-gDay-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21373NISTXML-SV-II-list-gDay-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21374NISTXML-SV-II-list-gDay-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21375NISTXML-SV-II-list-gDay-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21376NISTXML-SV-II-list-gDay-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21377NISTSchema-SV-II-list-gDay-minLength-2 tokoe:valid" result="pass"/><test-case name="21378NISTXML-SV-II-list-gDay-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21379NISTXML-SV-II-list-gDay-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21380NISTXML-SV-II-list-gDay-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21381NISTXML-SV-II-list-gDay-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21382NISTXML-SV-II-list-gDay-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21383NISTSchema-SV-II-list-gDay-minLength-3 tokoe:valid" result="pass"/><test-case name="21384NISTXML-SV-II-list-gDay-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21385NISTXML-SV-II-list-gDay-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21386NISTXML-SV-II-list-gDay-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21387NISTXML-SV-II-list-gDay-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21388NISTXML-SV-II-list-gDay-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21389NISTSchema-SV-II-list-gDay-minLength-4 tokoe:valid" result="pass"/><test-case name="21390NISTXML-SV-II-list-gDay-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21391NISTXML-SV-II-list-gDay-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21392NISTXML-SV-II-list-gDay-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21393NISTXML-SV-II-list-gDay-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21394NISTXML-SV-II-list-gDay-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21395NISTSchema-SV-II-list-gDay-minLength-5 tokoe:valid" result="pass"/><test-case name="21396NISTXML-SV-II-list-gDay-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21397NISTXML-SV-II-list-gDay-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21398NISTXML-SV-II-list-gDay-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21399NISTXML-SV-II-list-gDay-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21400NISTXML-SV-II-list-gDay-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21401NISTSchema-SV-II-list-gDay-length-1 tokoe:valid" result="pass"/><test-case name="21402NISTXML-SV-II-list-gDay-length-1-1 tokoe:invalid" result="pass"/><test-case name="21403NISTXML-SV-II-list-gDay-length-1-2 tokoe:invalid" result="pass"/><test-case name="21404NISTXML-SV-II-list-gDay-length-1-3 tokoe:invalid" result="pass"/><test-case name="21405NISTXML-SV-II-list-gDay-length-1-4 tokoe:invalid" result="pass"/><test-case name="21406NISTXML-SV-II-list-gDay-length-1-5 tokoe:invalid" result="pass"/><test-case name="21407NISTSchema-SV-II-list-gDay-length-2 tokoe:valid" result="pass"/><test-case name="21408NISTXML-SV-II-list-gDay-length-2-1 tokoe:invalid" result="pass"/><test-case name="21409NISTXML-SV-II-list-gDay-length-2-2 tokoe:invalid" result="pass"/><test-case name="21410NISTXML-SV-II-list-gDay-length-2-3 tokoe:invalid" result="pass"/><test-case name="21411NISTXML-SV-II-list-gDay-length-2-4 tokoe:invalid" result="pass"/><test-case name="21412NISTXML-SV-II-list-gDay-length-2-5 tokoe:invalid" result="pass"/><test-case name="21413NISTSchema-SV-II-list-gDay-length-3 tokoe:valid" result="pass"/><test-case name="21414NISTXML-SV-II-list-gDay-length-3-1 tokoe:invalid" result="pass"/><test-case name="21415NISTXML-SV-II-list-gDay-length-3-2 tokoe:invalid" result="pass"/><test-case name="21416NISTXML-SV-II-list-gDay-length-3-3 tokoe:invalid" result="pass"/><test-case name="21417NISTXML-SV-II-list-gDay-length-3-4 tokoe:invalid" result="pass"/><test-case name="21418NISTXML-SV-II-list-gDay-length-3-5 tokoe:invalid" result="pass"/><test-case name="21419NISTSchema-SV-II-list-gDay-length-4 tokoe:valid" result="pass"/><test-case name="21420NISTXML-SV-II-list-gDay-length-4-1 tokoe:invalid" result="pass"/><test-case name="21421NISTXML-SV-II-list-gDay-length-4-2 tokoe:invalid" result="pass"/><test-case name="21422NISTXML-SV-II-list-gDay-length-4-3 tokoe:invalid" result="pass"/><test-case name="21423NISTXML-SV-II-list-gDay-length-4-4 tokoe:invalid" result="pass"/><test-case name="21424NISTXML-SV-II-list-gDay-length-4-5 tokoe:invalid" result="pass"/><test-case name="21425NISTSchema-SV-II-list-gDay-length-5 tokoe:valid" result="pass"/><test-case name="21426NISTXML-SV-II-list-gDay-length-5-1 tokoe:invalid" result="pass"/><test-case name="21427NISTXML-SV-II-list-gDay-length-5-2 tokoe:invalid" result="pass"/><test-case name="21428NISTXML-SV-II-list-gDay-length-5-3 tokoe:invalid" result="pass"/><test-case name="21429NISTXML-SV-II-list-gDay-length-5-4 tokoe:invalid" result="pass"/><test-case name="21430NISTXML-SV-II-list-gDay-length-5-5 tokoe:invalid" result="pass"/><test-case name="21431NISTSchema-SV-II-list-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="21432NISTXML-SV-II-list-gDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21433NISTXML-SV-II-list-gDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21434NISTXML-SV-II-list-gDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21435NISTXML-SV-II-list-gDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21436NISTXML-SV-II-list-gDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21437NISTSchema-SV-II-list-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="21438NISTXML-SV-II-list-gDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21439NISTXML-SV-II-list-gDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21440NISTXML-SV-II-list-gDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21441NISTXML-SV-II-list-gDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21442NISTXML-SV-II-list-gDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21443NISTSchema-SV-II-list-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="21444NISTXML-SV-II-list-gDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21445NISTXML-SV-II-list-gDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21446NISTXML-SV-II-list-gDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21447NISTXML-SV-II-list-gDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21448NISTXML-SV-II-list-gDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21449NISTSchema-SV-II-list-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="21450NISTXML-SV-II-list-gDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21451NISTXML-SV-II-list-gDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21452NISTXML-SV-II-list-gDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21453NISTXML-SV-II-list-gDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21454NISTXML-SV-II-list-gDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21455NISTSchema-SV-II-list-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="21456NISTXML-SV-II-list-gDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21457NISTXML-SV-II-list-gDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21458NISTXML-SV-II-list-gDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21459NISTXML-SV-II-list-gDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21460NISTXML-SV-II-list-gDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21461NISTSchema-SV-II-list-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="21462NISTXML-SV-II-list-gDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21463NISTXML-SV-II-list-gDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21464NISTXML-SV-II-list-gDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21465NISTXML-SV-II-list-gDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21466NISTXML-SV-II-list-gDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21467NISTSchema-SV-II-list-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="21468NISTXML-SV-II-list-gDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21469NISTXML-SV-II-list-gDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21470NISTXML-SV-II-list-gDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21471NISTXML-SV-II-list-gDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21472NISTXML-SV-II-list-gDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21473NISTSchema-SV-II-list-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="21474NISTXML-SV-II-list-gDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21475NISTXML-SV-II-list-gDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21476NISTXML-SV-II-list-gDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21477NISTXML-SV-II-list-gDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21478NISTXML-SV-II-list-gDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21479NISTSchema-SV-II-list-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="21480NISTXML-SV-II-list-gDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21481NISTXML-SV-II-list-gDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21482NISTXML-SV-II-list-gDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21483NISTXML-SV-II-list-gDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21484NISTXML-SV-II-list-gDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21485NISTSchema-SV-II-list-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="21486NISTXML-SV-II-list-gDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21487NISTXML-SV-II-list-gDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21488NISTXML-SV-II-list-gDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21489NISTXML-SV-II-list-gDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21490NISTXML-SV-II-list-gDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21491NISTSchema-SV-II-list-gMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="21492NISTXML-SV-II-list-gMonth-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21493NISTXML-SV-II-list-gMonth-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21494NISTXML-SV-II-list-gMonth-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21495NISTXML-SV-II-list-gMonth-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21496NISTXML-SV-II-list-gMonth-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21497NISTSchema-SV-II-list-gMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="21498NISTXML-SV-II-list-gMonth-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21499NISTXML-SV-II-list-gMonth-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21500NISTXML-SV-II-list-gMonth-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21501NISTXML-SV-II-list-gMonth-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21502NISTXML-SV-II-list-gMonth-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21503NISTSchema-SV-II-list-gMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="21504NISTXML-SV-II-list-gMonth-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21505NISTXML-SV-II-list-gMonth-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21506NISTXML-SV-II-list-gMonth-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21507NISTXML-SV-II-list-gMonth-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21508NISTXML-SV-II-list-gMonth-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21509NISTSchema-SV-II-list-gMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="21510NISTXML-SV-II-list-gMonth-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21511NISTXML-SV-II-list-gMonth-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21512NISTXML-SV-II-list-gMonth-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21513NISTXML-SV-II-list-gMonth-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21514NISTXML-SV-II-list-gMonth-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21515NISTSchema-SV-II-list-gMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="21516NISTXML-SV-II-list-gMonth-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21517NISTXML-SV-II-list-gMonth-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21518NISTXML-SV-II-list-gMonth-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21519NISTXML-SV-II-list-gMonth-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21520NISTXML-SV-II-list-gMonth-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21521NISTSchema-SV-II-list-gMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="21522NISTXML-SV-II-list-gMonth-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21523NISTXML-SV-II-list-gMonth-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21524NISTXML-SV-II-list-gMonth-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21525NISTXML-SV-II-list-gMonth-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21526NISTXML-SV-II-list-gMonth-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21527NISTSchema-SV-II-list-gMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="21528NISTXML-SV-II-list-gMonth-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21529NISTXML-SV-II-list-gMonth-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21530NISTXML-SV-II-list-gMonth-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21531NISTXML-SV-II-list-gMonth-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21532NISTXML-SV-II-list-gMonth-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21533NISTSchema-SV-II-list-gMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="21534NISTXML-SV-II-list-gMonth-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21535NISTXML-SV-II-list-gMonth-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21536NISTXML-SV-II-list-gMonth-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21537NISTXML-SV-II-list-gMonth-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21538NISTXML-SV-II-list-gMonth-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21539NISTSchema-SV-II-list-gMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="21540NISTXML-SV-II-list-gMonth-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21541NISTXML-SV-II-list-gMonth-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21542NISTXML-SV-II-list-gMonth-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21543NISTXML-SV-II-list-gMonth-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21544NISTXML-SV-II-list-gMonth-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21545NISTSchema-SV-II-list-gMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="21546NISTXML-SV-II-list-gMonth-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21547NISTXML-SV-II-list-gMonth-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21548NISTXML-SV-II-list-gMonth-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21549NISTXML-SV-II-list-gMonth-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21550NISTXML-SV-II-list-gMonth-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21551NISTSchema-SV-II-list-gMonth-length-1 tokoe:valid" result="pass"/><test-case name="21552NISTXML-SV-II-list-gMonth-length-1-1 tokoe:invalid" result="pass"/><test-case name="21553NISTXML-SV-II-list-gMonth-length-1-2 tokoe:invalid" result="pass"/><test-case name="21554NISTXML-SV-II-list-gMonth-length-1-3 tokoe:invalid" result="pass"/><test-case name="21555NISTXML-SV-II-list-gMonth-length-1-4 tokoe:invalid" result="pass"/><test-case name="21556NISTXML-SV-II-list-gMonth-length-1-5 tokoe:invalid" result="pass"/><test-case name="21557NISTSchema-SV-II-list-gMonth-length-2 tokoe:valid" result="pass"/><test-case name="21558NISTXML-SV-II-list-gMonth-length-2-1 tokoe:invalid" result="pass"/><test-case name="21559NISTXML-SV-II-list-gMonth-length-2-2 tokoe:invalid" result="pass"/><test-case name="21560NISTXML-SV-II-list-gMonth-length-2-3 tokoe:invalid" result="pass"/><test-case name="21561NISTXML-SV-II-list-gMonth-length-2-4 tokoe:invalid" result="pass"/><test-case name="21562NISTXML-SV-II-list-gMonth-length-2-5 tokoe:invalid" result="pass"/><test-case name="21563NISTSchema-SV-II-list-gMonth-length-3 tokoe:valid" result="pass"/><test-case name="21564NISTXML-SV-II-list-gMonth-length-3-1 tokoe:invalid" result="pass"/><test-case name="21565NISTXML-SV-II-list-gMonth-length-3-2 tokoe:invalid" result="pass"/><test-case name="21566NISTXML-SV-II-list-gMonth-length-3-3 tokoe:invalid" result="pass"/><test-case name="21567NISTXML-SV-II-list-gMonth-length-3-4 tokoe:invalid" result="pass"/><test-case name="21568NISTXML-SV-II-list-gMonth-length-3-5 tokoe:invalid" result="pass"/><test-case name="21569NISTSchema-SV-II-list-gMonth-length-4 tokoe:valid" result="pass"/><test-case name="21570NISTXML-SV-II-list-gMonth-length-4-1 tokoe:invalid" result="pass"/><test-case name="21571NISTXML-SV-II-list-gMonth-length-4-2 tokoe:invalid" result="pass"/><test-case name="21572NISTXML-SV-II-list-gMonth-length-4-3 tokoe:invalid" result="pass"/><test-case name="21573NISTXML-SV-II-list-gMonth-length-4-4 tokoe:invalid" result="pass"/><test-case name="21574NISTXML-SV-II-list-gMonth-length-4-5 tokoe:invalid" result="pass"/><test-case name="21575NISTSchema-SV-II-list-gMonth-length-5 tokoe:valid" result="pass"/><test-case name="21576NISTXML-SV-II-list-gMonth-length-5-1 tokoe:invalid" result="pass"/><test-case name="21577NISTXML-SV-II-list-gMonth-length-5-2 tokoe:invalid" result="pass"/><test-case name="21578NISTXML-SV-II-list-gMonth-length-5-3 tokoe:invalid" result="pass"/><test-case name="21579NISTXML-SV-II-list-gMonth-length-5-4 tokoe:invalid" result="pass"/><test-case name="21580NISTXML-SV-II-list-gMonth-length-5-5 tokoe:invalid" result="pass"/><test-case name="21581NISTSchema-SV-II-list-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="21582NISTXML-SV-II-list-gMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21583NISTXML-SV-II-list-gMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21584NISTXML-SV-II-list-gMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21585NISTXML-SV-II-list-gMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21586NISTXML-SV-II-list-gMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21587NISTSchema-SV-II-list-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="21588NISTXML-SV-II-list-gMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21589NISTXML-SV-II-list-gMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21590NISTXML-SV-II-list-gMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21591NISTXML-SV-II-list-gMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21592NISTXML-SV-II-list-gMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21593NISTSchema-SV-II-list-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="21594NISTXML-SV-II-list-gMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21595NISTXML-SV-II-list-gMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21596NISTXML-SV-II-list-gMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21597NISTXML-SV-II-list-gMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21598NISTXML-SV-II-list-gMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21599NISTSchema-SV-II-list-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="21600NISTXML-SV-II-list-gMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21601NISTXML-SV-II-list-gMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21602NISTXML-SV-II-list-gMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21603NISTXML-SV-II-list-gMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21604NISTXML-SV-II-list-gMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21605NISTSchema-SV-II-list-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="21606NISTXML-SV-II-list-gMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21607NISTXML-SV-II-list-gMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21608NISTXML-SV-II-list-gMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21609NISTXML-SV-II-list-gMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21610NISTXML-SV-II-list-gMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21611NISTSchema-SV-II-list-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="21612NISTXML-SV-II-list-gMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21613NISTXML-SV-II-list-gMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21614NISTXML-SV-II-list-gMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21615NISTXML-SV-II-list-gMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21616NISTXML-SV-II-list-gMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21617NISTSchema-SV-II-list-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="21618NISTXML-SV-II-list-gMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21619NISTXML-SV-II-list-gMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21620NISTXML-SV-II-list-gMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21621NISTXML-SV-II-list-gMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21622NISTXML-SV-II-list-gMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21623NISTSchema-SV-II-list-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="21624NISTXML-SV-II-list-gMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21625NISTXML-SV-II-list-gMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21626NISTXML-SV-II-list-gMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21627NISTXML-SV-II-list-gMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21628NISTXML-SV-II-list-gMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21629NISTSchema-SV-II-list-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="21630NISTXML-SV-II-list-gMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21631NISTXML-SV-II-list-gMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21632NISTXML-SV-II-list-gMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21633NISTXML-SV-II-list-gMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21634NISTXML-SV-II-list-gMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21635NISTSchema-SV-II-list-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="21636NISTXML-SV-II-list-gMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21637NISTXML-SV-II-list-gMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21638NISTXML-SV-II-list-gMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21639NISTXML-SV-II-list-gMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21640NISTXML-SV-II-list-gMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21641NISTSchema-SV-II-list-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="21642NISTXML-SV-II-list-anyURI-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21643NISTXML-SV-II-list-anyURI-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21644NISTXML-SV-II-list-anyURI-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21645NISTXML-SV-II-list-anyURI-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21646NISTXML-SV-II-list-anyURI-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21647NISTSchema-SV-II-list-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="21648NISTXML-SV-II-list-anyURI-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21649NISTXML-SV-II-list-anyURI-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21650NISTXML-SV-II-list-anyURI-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21651NISTXML-SV-II-list-anyURI-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21652NISTXML-SV-II-list-anyURI-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21653NISTSchema-SV-II-list-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="21654NISTXML-SV-II-list-anyURI-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21655NISTXML-SV-II-list-anyURI-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21656NISTXML-SV-II-list-anyURI-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21657NISTXML-SV-II-list-anyURI-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21658NISTXML-SV-II-list-anyURI-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21659NISTSchema-SV-II-list-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="21660NISTXML-SV-II-list-anyURI-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21661NISTXML-SV-II-list-anyURI-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21662NISTXML-SV-II-list-anyURI-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21663NISTXML-SV-II-list-anyURI-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21664NISTXML-SV-II-list-anyURI-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21665NISTSchema-SV-II-list-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="21666NISTXML-SV-II-list-anyURI-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21667NISTXML-SV-II-list-anyURI-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21668NISTXML-SV-II-list-anyURI-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21669NISTXML-SV-II-list-anyURI-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21670NISTXML-SV-II-list-anyURI-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21671NISTSchema-SV-II-list-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="21672NISTXML-SV-II-list-anyURI-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21673NISTXML-SV-II-list-anyURI-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21674NISTXML-SV-II-list-anyURI-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21675NISTXML-SV-II-list-anyURI-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21676NISTXML-SV-II-list-anyURI-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21677NISTSchema-SV-II-list-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="21678NISTXML-SV-II-list-anyURI-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21679NISTXML-SV-II-list-anyURI-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21680NISTXML-SV-II-list-anyURI-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21681NISTXML-SV-II-list-anyURI-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21682NISTXML-SV-II-list-anyURI-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21683NISTSchema-SV-II-list-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="21684NISTXML-SV-II-list-anyURI-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21685NISTXML-SV-II-list-anyURI-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21686NISTXML-SV-II-list-anyURI-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21687NISTXML-SV-II-list-anyURI-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21688NISTXML-SV-II-list-anyURI-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21689NISTSchema-SV-II-list-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="21690NISTXML-SV-II-list-anyURI-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21691NISTXML-SV-II-list-anyURI-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21692NISTXML-SV-II-list-anyURI-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21693NISTXML-SV-II-list-anyURI-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21694NISTXML-SV-II-list-anyURI-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21695NISTSchema-SV-II-list-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="21696NISTXML-SV-II-list-anyURI-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21697NISTXML-SV-II-list-anyURI-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21698NISTXML-SV-II-list-anyURI-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21699NISTXML-SV-II-list-anyURI-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21700NISTXML-SV-II-list-anyURI-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21701NISTSchema-SV-II-list-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="21702NISTXML-SV-II-list-anyURI-length-1-1 tokoe:invalid" result="pass"/><test-case name="21703NISTXML-SV-II-list-anyURI-length-1-2 tokoe:invalid" result="pass"/><test-case name="21704NISTXML-SV-II-list-anyURI-length-1-3 tokoe:invalid" result="pass"/><test-case name="21705NISTXML-SV-II-list-anyURI-length-1-4 tokoe:invalid" result="pass"/><test-case name="21706NISTXML-SV-II-list-anyURI-length-1-5 tokoe:invalid" result="pass"/><test-case name="21707NISTSchema-SV-II-list-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="21708NISTXML-SV-II-list-anyURI-length-2-1 tokoe:invalid" result="pass"/><test-case name="21709NISTXML-SV-II-list-anyURI-length-2-2 tokoe:invalid" result="pass"/><test-case name="21710NISTXML-SV-II-list-anyURI-length-2-3 tokoe:invalid" result="pass"/><test-case name="21711NISTXML-SV-II-list-anyURI-length-2-4 tokoe:invalid" result="pass"/><test-case name="21712NISTXML-SV-II-list-anyURI-length-2-5 tokoe:invalid" result="pass"/><test-case name="21713NISTSchema-SV-II-list-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="21714NISTXML-SV-II-list-anyURI-length-3-1 tokoe:invalid" result="pass"/><test-case name="21715NISTXML-SV-II-list-anyURI-length-3-2 tokoe:invalid" result="pass"/><test-case name="21716NISTXML-SV-II-list-anyURI-length-3-3 tokoe:invalid" result="pass"/><test-case name="21717NISTXML-SV-II-list-anyURI-length-3-4 tokoe:invalid" result="pass"/><test-case name="21718NISTXML-SV-II-list-anyURI-length-3-5 tokoe:invalid" result="pass"/><test-case name="21719NISTSchema-SV-II-list-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="21720NISTXML-SV-II-list-anyURI-length-4-1 tokoe:invalid" result="pass"/><test-case name="21721NISTXML-SV-II-list-anyURI-length-4-2 tokoe:invalid" result="pass"/><test-case name="21722NISTXML-SV-II-list-anyURI-length-4-3 tokoe:invalid" result="pass"/><test-case name="21723NISTXML-SV-II-list-anyURI-length-4-4 tokoe:invalid" result="pass"/><test-case name="21724NISTXML-SV-II-list-anyURI-length-4-5 tokoe:invalid" result="pass"/><test-case name="21725NISTSchema-SV-II-list-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="21726NISTXML-SV-II-list-anyURI-length-5-1 tokoe:invalid" result="pass"/><test-case name="21727NISTXML-SV-II-list-anyURI-length-5-2 tokoe:invalid" result="pass"/><test-case name="21728NISTXML-SV-II-list-anyURI-length-5-3 tokoe:invalid" result="pass"/><test-case name="21729NISTXML-SV-II-list-anyURI-length-5-4 tokoe:invalid" result="pass"/><test-case name="21730NISTXML-SV-II-list-anyURI-length-5-5 tokoe:invalid" result="pass"/><test-case name="21731NISTSchema-SV-II-list-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="21732NISTXML-SV-II-list-anyURI-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21733NISTXML-SV-II-list-anyURI-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21734NISTXML-SV-II-list-anyURI-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21735NISTXML-SV-II-list-anyURI-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21736NISTXML-SV-II-list-anyURI-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21737NISTSchema-SV-II-list-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="21738NISTXML-SV-II-list-anyURI-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21739NISTXML-SV-II-list-anyURI-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21740NISTXML-SV-II-list-anyURI-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21741NISTXML-SV-II-list-anyURI-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21742NISTXML-SV-II-list-anyURI-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21743NISTSchema-SV-II-list-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="21744NISTXML-SV-II-list-anyURI-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21745NISTXML-SV-II-list-anyURI-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21746NISTXML-SV-II-list-anyURI-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21747NISTXML-SV-II-list-anyURI-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21748NISTXML-SV-II-list-anyURI-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21749NISTSchema-SV-II-list-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="21750NISTXML-SV-II-list-anyURI-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21751NISTXML-SV-II-list-anyURI-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21752NISTXML-SV-II-list-anyURI-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21753NISTXML-SV-II-list-anyURI-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21754NISTXML-SV-II-list-anyURI-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21755NISTSchema-SV-II-list-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="21756NISTXML-SV-II-list-anyURI-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21757NISTXML-SV-II-list-anyURI-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21758NISTXML-SV-II-list-anyURI-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21759NISTXML-SV-II-list-anyURI-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21760NISTXML-SV-II-list-anyURI-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21761NISTSchema-SV-II-list-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="21762NISTXML-SV-II-list-anyURI-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21763NISTXML-SV-II-list-anyURI-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21764NISTXML-SV-II-list-anyURI-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21765NISTXML-SV-II-list-anyURI-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21766NISTXML-SV-II-list-anyURI-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21767NISTSchema-SV-II-list-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="21768NISTXML-SV-II-list-anyURI-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21769NISTXML-SV-II-list-anyURI-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21770NISTXML-SV-II-list-anyURI-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21771NISTXML-SV-II-list-anyURI-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21772NISTXML-SV-II-list-anyURI-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21773NISTSchema-SV-II-list-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="21774NISTXML-SV-II-list-anyURI-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21775NISTXML-SV-II-list-anyURI-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21776NISTXML-SV-II-list-anyURI-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21777NISTXML-SV-II-list-anyURI-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21778NISTXML-SV-II-list-anyURI-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21779NISTSchema-SV-II-list-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="21780NISTXML-SV-II-list-anyURI-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21781NISTXML-SV-II-list-anyURI-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21782NISTXML-SV-II-list-anyURI-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21783NISTXML-SV-II-list-anyURI-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21784NISTXML-SV-II-list-anyURI-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21785NISTSchema-SV-II-list-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="21786NISTXML-SV-II-list-anyURI-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21787NISTXML-SV-II-list-anyURI-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21788NISTXML-SV-II-list-anyURI-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21789NISTXML-SV-II-list-anyURI-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21790NISTXML-SV-II-list-anyURI-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21791NISTSchema-SV-II-list-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="21792NISTXML-SV-II-list-string-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21793NISTXML-SV-II-list-string-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21794NISTXML-SV-II-list-string-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21795NISTXML-SV-II-list-string-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21796NISTXML-SV-II-list-string-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21797NISTSchema-SV-II-list-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="21798NISTXML-SV-II-list-string-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21799NISTXML-SV-II-list-string-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21800NISTXML-SV-II-list-string-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21801NISTXML-SV-II-list-string-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21802NISTXML-SV-II-list-string-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21803NISTSchema-SV-II-list-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="21804NISTXML-SV-II-list-string-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21805NISTXML-SV-II-list-string-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21806NISTXML-SV-II-list-string-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21807NISTXML-SV-II-list-string-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21808NISTXML-SV-II-list-string-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21809NISTSchema-SV-II-list-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="21810NISTXML-SV-II-list-string-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21811NISTXML-SV-II-list-string-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21812NISTXML-SV-II-list-string-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21813NISTXML-SV-II-list-string-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21814NISTXML-SV-II-list-string-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21815NISTSchema-SV-II-list-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="21816NISTXML-SV-II-list-string-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21817NISTXML-SV-II-list-string-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21818NISTXML-SV-II-list-string-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21819NISTXML-SV-II-list-string-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21820NISTXML-SV-II-list-string-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21821NISTSchema-SV-II-list-string-minLength-1 tokoe:valid" result="pass"/><test-case name="21822NISTXML-SV-II-list-string-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21823NISTXML-SV-II-list-string-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21824NISTXML-SV-II-list-string-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21825NISTXML-SV-II-list-string-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21826NISTXML-SV-II-list-string-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21827NISTSchema-SV-II-list-string-minLength-2 tokoe:valid" result="pass"/><test-case name="21828NISTXML-SV-II-list-string-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21829NISTXML-SV-II-list-string-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21830NISTXML-SV-II-list-string-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21831NISTXML-SV-II-list-string-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21832NISTXML-SV-II-list-string-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21833NISTSchema-SV-II-list-string-minLength-3 tokoe:valid" result="pass"/><test-case name="21834NISTXML-SV-II-list-string-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21835NISTXML-SV-II-list-string-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21836NISTXML-SV-II-list-string-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21837NISTXML-SV-II-list-string-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21838NISTXML-SV-II-list-string-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21839NISTSchema-SV-II-list-string-minLength-4 tokoe:valid" result="pass"/><test-case name="21840NISTXML-SV-II-list-string-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21841NISTXML-SV-II-list-string-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21842NISTXML-SV-II-list-string-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21843NISTXML-SV-II-list-string-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21844NISTXML-SV-II-list-string-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21845NISTSchema-SV-II-list-string-minLength-5 tokoe:valid" result="pass"/><test-case name="21846NISTXML-SV-II-list-string-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21847NISTXML-SV-II-list-string-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21848NISTXML-SV-II-list-string-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21849NISTXML-SV-II-list-string-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21850NISTXML-SV-II-list-string-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21851NISTSchema-SV-II-list-string-length-1 tokoe:valid" result="pass"/><test-case name="21852NISTXML-SV-II-list-string-length-1-1 tokoe:invalid" result="pass"/><test-case name="21853NISTXML-SV-II-list-string-length-1-2 tokoe:invalid" result="pass"/><test-case name="21854NISTXML-SV-II-list-string-length-1-3 tokoe:invalid" result="pass"/><test-case name="21855NISTXML-SV-II-list-string-length-1-4 tokoe:invalid" result="pass"/><test-case name="21856NISTXML-SV-II-list-string-length-1-5 tokoe:invalid" result="pass"/><test-case name="21857NISTSchema-SV-II-list-string-length-2 tokoe:valid" result="pass"/><test-case name="21858NISTXML-SV-II-list-string-length-2-1 tokoe:invalid" result="pass"/><test-case name="21859NISTXML-SV-II-list-string-length-2-2 tokoe:invalid" result="pass"/><test-case name="21860NISTXML-SV-II-list-string-length-2-3 tokoe:invalid" result="pass"/><test-case name="21861NISTXML-SV-II-list-string-length-2-4 tokoe:invalid" result="pass"/><test-case name="21862NISTXML-SV-II-list-string-length-2-5 tokoe:invalid" result="pass"/><test-case name="21863NISTSchema-SV-II-list-string-length-3 tokoe:valid" result="pass"/><test-case name="21864NISTXML-SV-II-list-string-length-3-1 tokoe:invalid" result="pass"/><test-case name="21865NISTXML-SV-II-list-string-length-3-2 tokoe:invalid" result="pass"/><test-case name="21866NISTXML-SV-II-list-string-length-3-3 tokoe:invalid" result="pass"/><test-case name="21867NISTXML-SV-II-list-string-length-3-4 tokoe:invalid" result="pass"/><test-case name="21868NISTXML-SV-II-list-string-length-3-5 tokoe:invalid" result="pass"/><test-case name="21869NISTSchema-SV-II-list-string-length-4 tokoe:valid" result="pass"/><test-case name="21870NISTXML-SV-II-list-string-length-4-1 tokoe:invalid" result="pass"/><test-case name="21871NISTXML-SV-II-list-string-length-4-2 tokoe:invalid" result="pass"/><test-case name="21872NISTXML-SV-II-list-string-length-4-3 tokoe:invalid" result="pass"/><test-case name="21873NISTXML-SV-II-list-string-length-4-4 tokoe:invalid" result="pass"/><test-case name="21874NISTXML-SV-II-list-string-length-4-5 tokoe:invalid" result="pass"/><test-case name="21875NISTSchema-SV-II-list-string-length-5 tokoe:valid" result="pass"/><test-case name="21876NISTXML-SV-II-list-string-length-5-1 tokoe:invalid" result="pass"/><test-case name="21877NISTXML-SV-II-list-string-length-5-2 tokoe:invalid" result="pass"/><test-case name="21878NISTXML-SV-II-list-string-length-5-3 tokoe:invalid" result="pass"/><test-case name="21879NISTXML-SV-II-list-string-length-5-4 tokoe:invalid" result="pass"/><test-case name="21880NISTXML-SV-II-list-string-length-5-5 tokoe:invalid" result="pass"/><test-case name="21881NISTSchema-SV-II-list-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="21882NISTXML-SV-II-list-normalizedString-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21883NISTXML-SV-II-list-normalizedString-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21884NISTXML-SV-II-list-normalizedString-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21885NISTXML-SV-II-list-normalizedString-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21886NISTXML-SV-II-list-normalizedString-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21887NISTSchema-SV-II-list-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="21888NISTXML-SV-II-list-normalizedString-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21889NISTXML-SV-II-list-normalizedString-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21890NISTXML-SV-II-list-normalizedString-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21891NISTXML-SV-II-list-normalizedString-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21892NISTXML-SV-II-list-normalizedString-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21893NISTSchema-SV-II-list-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="21894NISTXML-SV-II-list-normalizedString-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21895NISTXML-SV-II-list-normalizedString-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21896NISTXML-SV-II-list-normalizedString-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21897NISTXML-SV-II-list-normalizedString-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21898NISTXML-SV-II-list-normalizedString-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21899NISTSchema-SV-II-list-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="21900NISTXML-SV-II-list-normalizedString-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21901NISTXML-SV-II-list-normalizedString-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21902NISTXML-SV-II-list-normalizedString-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21903NISTXML-SV-II-list-normalizedString-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21904NISTXML-SV-II-list-normalizedString-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21905NISTSchema-SV-II-list-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="21906NISTXML-SV-II-list-normalizedString-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21907NISTXML-SV-II-list-normalizedString-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21908NISTXML-SV-II-list-normalizedString-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21909NISTXML-SV-II-list-normalizedString-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21910NISTXML-SV-II-list-normalizedString-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21911NISTSchema-SV-II-list-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="21912NISTXML-SV-II-list-normalizedString-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21913NISTXML-SV-II-list-normalizedString-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21914NISTXML-SV-II-list-normalizedString-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21915NISTXML-SV-II-list-normalizedString-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21916NISTXML-SV-II-list-normalizedString-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21917NISTSchema-SV-II-list-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="21918NISTXML-SV-II-list-normalizedString-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21919NISTXML-SV-II-list-normalizedString-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21920NISTXML-SV-II-list-normalizedString-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21921NISTXML-SV-II-list-normalizedString-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21922NISTXML-SV-II-list-normalizedString-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21923NISTSchema-SV-II-list-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="21924NISTXML-SV-II-list-normalizedString-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21925NISTXML-SV-II-list-normalizedString-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21926NISTXML-SV-II-list-normalizedString-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21927NISTXML-SV-II-list-normalizedString-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21928NISTXML-SV-II-list-normalizedString-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21929NISTSchema-SV-II-list-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="21930NISTXML-SV-II-list-normalizedString-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21931NISTXML-SV-II-list-normalizedString-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21932NISTXML-SV-II-list-normalizedString-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21933NISTXML-SV-II-list-normalizedString-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21934NISTXML-SV-II-list-normalizedString-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21935NISTSchema-SV-II-list-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="21936NISTXML-SV-II-list-normalizedString-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21937NISTXML-SV-II-list-normalizedString-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21938NISTXML-SV-II-list-normalizedString-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21939NISTXML-SV-II-list-normalizedString-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21940NISTXML-SV-II-list-normalizedString-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21941NISTSchema-SV-II-list-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="21942NISTXML-SV-II-list-normalizedString-length-1-1 tokoe:invalid" result="pass"/><test-case name="21943NISTXML-SV-II-list-normalizedString-length-1-2 tokoe:invalid" result="pass"/><test-case name="21944NISTXML-SV-II-list-normalizedString-length-1-3 tokoe:invalid" result="pass"/><test-case name="21945NISTXML-SV-II-list-normalizedString-length-1-4 tokoe:invalid" result="pass"/><test-case name="21946NISTXML-SV-II-list-normalizedString-length-1-5 tokoe:invalid" result="pass"/><test-case name="21947NISTSchema-SV-II-list-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="21948NISTXML-SV-II-list-normalizedString-length-2-1 tokoe:invalid" result="pass"/><test-case name="21949NISTXML-SV-II-list-normalizedString-length-2-2 tokoe:invalid" result="pass"/><test-case name="21950NISTXML-SV-II-list-normalizedString-length-2-3 tokoe:invalid" result="pass"/><test-case name="21951NISTXML-SV-II-list-normalizedString-length-2-4 tokoe:invalid" result="pass"/><test-case name="21952NISTXML-SV-II-list-normalizedString-length-2-5 tokoe:invalid" result="pass"/><test-case name="21953NISTSchema-SV-II-list-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="21954NISTXML-SV-II-list-normalizedString-length-3-1 tokoe:invalid" result="pass"/><test-case name="21955NISTXML-SV-II-list-normalizedString-length-3-2 tokoe:invalid" result="pass"/><test-case name="21956NISTXML-SV-II-list-normalizedString-length-3-3 tokoe:invalid" result="pass"/><test-case name="21957NISTXML-SV-II-list-normalizedString-length-3-4 tokoe:invalid" result="pass"/><test-case name="21958NISTXML-SV-II-list-normalizedString-length-3-5 tokoe:invalid" result="pass"/><test-case name="21959NISTSchema-SV-II-list-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="21960NISTXML-SV-II-list-normalizedString-length-4-1 tokoe:invalid" result="pass"/><test-case name="21961NISTXML-SV-II-list-normalizedString-length-4-2 tokoe:invalid" result="pass"/><test-case name="21962NISTXML-SV-II-list-normalizedString-length-4-3 tokoe:invalid" result="pass"/><test-case name="21963NISTXML-SV-II-list-normalizedString-length-4-4 tokoe:invalid" result="pass"/><test-case name="21964NISTXML-SV-II-list-normalizedString-length-4-5 tokoe:invalid" result="pass"/><test-case name="21965NISTSchema-SV-II-list-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="21966NISTXML-SV-II-list-normalizedString-length-5-1 tokoe:invalid" result="pass"/><test-case name="21967NISTXML-SV-II-list-normalizedString-length-5-2 tokoe:invalid" result="pass"/><test-case name="21968NISTXML-SV-II-list-normalizedString-length-5-3 tokoe:invalid" result="pass"/><test-case name="21969NISTXML-SV-II-list-normalizedString-length-5-4 tokoe:invalid" result="pass"/><test-case name="21970NISTXML-SV-II-list-normalizedString-length-5-5 tokoe:invalid" result="pass"/><test-case name="21971NISTSchema-SV-II-list-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="21972NISTXML-SV-II-list-token-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21973NISTXML-SV-II-list-token-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21974NISTXML-SV-II-list-token-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21975NISTXML-SV-II-list-token-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21976NISTXML-SV-II-list-token-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21977NISTSchema-SV-II-list-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="21978NISTXML-SV-II-list-token-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21979NISTXML-SV-II-list-token-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21980NISTXML-SV-II-list-token-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21981NISTXML-SV-II-list-token-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21982NISTXML-SV-II-list-token-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21983NISTSchema-SV-II-list-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="21984NISTXML-SV-II-list-token-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21985NISTXML-SV-II-list-token-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21986NISTXML-SV-II-list-token-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21987NISTXML-SV-II-list-token-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21988NISTXML-SV-II-list-token-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21989NISTSchema-SV-II-list-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="21990NISTXML-SV-II-list-token-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21991NISTXML-SV-II-list-token-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21992NISTXML-SV-II-list-token-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21993NISTXML-SV-II-list-token-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21994NISTXML-SV-II-list-token-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21995NISTSchema-SV-II-list-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="21996NISTXML-SV-II-list-token-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21997NISTXML-SV-II-list-token-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21998NISTXML-SV-II-list-token-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21999NISTXML-SV-II-list-token-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22000NISTXML-SV-II-list-token-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22001NISTSchema-SV-II-list-token-minLength-1 tokoe:valid" result="pass"/><test-case name="22002NISTXML-SV-II-list-token-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22003NISTXML-SV-II-list-token-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22004NISTXML-SV-II-list-token-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22005NISTXML-SV-II-list-token-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22006NISTXML-SV-II-list-token-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22007NISTSchema-SV-II-list-token-minLength-2 tokoe:valid" result="pass"/><test-case name="22008NISTXML-SV-II-list-token-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22009NISTXML-SV-II-list-token-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22010NISTXML-SV-II-list-token-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22011NISTXML-SV-II-list-token-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22012NISTXML-SV-II-list-token-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22013NISTSchema-SV-II-list-token-minLength-3 tokoe:valid" result="pass"/><test-case name="22014NISTXML-SV-II-list-token-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22015NISTXML-SV-II-list-token-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22016NISTXML-SV-II-list-token-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22017NISTXML-SV-II-list-token-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22018NISTXML-SV-II-list-token-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22019NISTSchema-SV-II-list-token-minLength-4 tokoe:valid" result="pass"/><test-case name="22020NISTXML-SV-II-list-token-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22021NISTXML-SV-II-list-token-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22022NISTXML-SV-II-list-token-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22023NISTXML-SV-II-list-token-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22024NISTXML-SV-II-list-token-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22025NISTSchema-SV-II-list-token-minLength-5 tokoe:valid" result="pass"/><test-case name="22026NISTXML-SV-II-list-token-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22027NISTXML-SV-II-list-token-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22028NISTXML-SV-II-list-token-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22029NISTXML-SV-II-list-token-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22030NISTXML-SV-II-list-token-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22031NISTSchema-SV-II-list-token-length-1 tokoe:valid" result="pass"/><test-case name="22032NISTXML-SV-II-list-token-length-1-1 tokoe:invalid" result="pass"/><test-case name="22033NISTXML-SV-II-list-token-length-1-2 tokoe:invalid" result="pass"/><test-case name="22034NISTXML-SV-II-list-token-length-1-3 tokoe:invalid" result="pass"/><test-case name="22035NISTXML-SV-II-list-token-length-1-4 tokoe:invalid" result="pass"/><test-case name="22036NISTXML-SV-II-list-token-length-1-5 tokoe:invalid" result="pass"/><test-case name="22037NISTSchema-SV-II-list-token-length-2 tokoe:valid" result="pass"/><test-case name="22038NISTXML-SV-II-list-token-length-2-1 tokoe:invalid" result="pass"/><test-case name="22039NISTXML-SV-II-list-token-length-2-2 tokoe:invalid" result="pass"/><test-case name="22040NISTXML-SV-II-list-token-length-2-3 tokoe:invalid" result="pass"/><test-case name="22041NISTXML-SV-II-list-token-length-2-4 tokoe:invalid" result="pass"/><test-case name="22042NISTXML-SV-II-list-token-length-2-5 tokoe:invalid" result="pass"/><test-case name="22043NISTSchema-SV-II-list-token-length-3 tokoe:valid" result="pass"/><test-case name="22044NISTXML-SV-II-list-token-length-3-1 tokoe:invalid" result="pass"/><test-case name="22045NISTXML-SV-II-list-token-length-3-2 tokoe:invalid" result="pass"/><test-case name="22046NISTXML-SV-II-list-token-length-3-3 tokoe:invalid" result="pass"/><test-case name="22047NISTXML-SV-II-list-token-length-3-4 tokoe:invalid" result="pass"/><test-case name="22048NISTXML-SV-II-list-token-length-3-5 tokoe:invalid" result="pass"/><test-case name="22049NISTSchema-SV-II-list-token-length-4 tokoe:valid" result="pass"/><test-case name="22050NISTXML-SV-II-list-token-length-4-1 tokoe:invalid" result="pass"/><test-case name="22051NISTXML-SV-II-list-token-length-4-2 tokoe:invalid" result="pass"/><test-case name="22052NISTXML-SV-II-list-token-length-4-3 tokoe:invalid" result="pass"/><test-case name="22053NISTXML-SV-II-list-token-length-4-4 tokoe:invalid" result="pass"/><test-case name="22054NISTXML-SV-II-list-token-length-4-5 tokoe:invalid" result="pass"/><test-case name="22055NISTSchema-SV-II-list-token-length-5 tokoe:valid" result="pass"/><test-case name="22056NISTXML-SV-II-list-token-length-5-1 tokoe:invalid" result="pass"/><test-case name="22057NISTXML-SV-II-list-token-length-5-2 tokoe:invalid" result="pass"/><test-case name="22058NISTXML-SV-II-list-token-length-5-3 tokoe:invalid" result="pass"/><test-case name="22059NISTXML-SV-II-list-token-length-5-4 tokoe:invalid" result="pass"/><test-case name="22060NISTXML-SV-II-list-token-length-5-5 tokoe:invalid" result="pass"/><test-case name="22061NISTSchema-SV-II-list-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="22062NISTXML-SV-II-list-Name-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22063NISTXML-SV-II-list-Name-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22064NISTXML-SV-II-list-Name-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22065NISTXML-SV-II-list-Name-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22066NISTXML-SV-II-list-Name-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22067NISTSchema-SV-II-list-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="22068NISTXML-SV-II-list-Name-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22069NISTXML-SV-II-list-Name-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22070NISTXML-SV-II-list-Name-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22071NISTXML-SV-II-list-Name-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22072NISTXML-SV-II-list-Name-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22073NISTSchema-SV-II-list-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="22074NISTXML-SV-II-list-Name-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22075NISTXML-SV-II-list-Name-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22076NISTXML-SV-II-list-Name-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22077NISTXML-SV-II-list-Name-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22078NISTXML-SV-II-list-Name-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22079NISTSchema-SV-II-list-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="22080NISTXML-SV-II-list-Name-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22081NISTXML-SV-II-list-Name-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22082NISTXML-SV-II-list-Name-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22083NISTXML-SV-II-list-Name-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22084NISTXML-SV-II-list-Name-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22085NISTSchema-SV-II-list-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="22086NISTXML-SV-II-list-Name-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22087NISTXML-SV-II-list-Name-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22088NISTXML-SV-II-list-Name-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22089NISTXML-SV-II-list-Name-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22090NISTXML-SV-II-list-Name-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22091NISTSchema-SV-II-list-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="22092NISTXML-SV-II-list-Name-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22093NISTXML-SV-II-list-Name-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22094NISTXML-SV-II-list-Name-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22095NISTXML-SV-II-list-Name-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22096NISTXML-SV-II-list-Name-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22097NISTSchema-SV-II-list-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="22098NISTXML-SV-II-list-Name-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22099NISTXML-SV-II-list-Name-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22100NISTXML-SV-II-list-Name-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22101NISTXML-SV-II-list-Name-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22102NISTXML-SV-II-list-Name-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22103NISTSchema-SV-II-list-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="22104NISTXML-SV-II-list-Name-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22105NISTXML-SV-II-list-Name-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22106NISTXML-SV-II-list-Name-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22107NISTXML-SV-II-list-Name-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22108NISTXML-SV-II-list-Name-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22109NISTSchema-SV-II-list-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="22110NISTXML-SV-II-list-Name-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22111NISTXML-SV-II-list-Name-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22112NISTXML-SV-II-list-Name-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22113NISTXML-SV-II-list-Name-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22114NISTXML-SV-II-list-Name-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22115NISTSchema-SV-II-list-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="22116NISTXML-SV-II-list-Name-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22117NISTXML-SV-II-list-Name-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22118NISTXML-SV-II-list-Name-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22119NISTXML-SV-II-list-Name-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22120NISTXML-SV-II-list-Name-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22121NISTSchema-SV-II-list-Name-length-1 tokoe:valid" result="pass"/><test-case name="22122NISTXML-SV-II-list-Name-length-1-1 tokoe:invalid" result="pass"/><test-case name="22123NISTXML-SV-II-list-Name-length-1-2 tokoe:invalid" result="pass"/><test-case name="22124NISTXML-SV-II-list-Name-length-1-3 tokoe:invalid" result="pass"/><test-case name="22125NISTXML-SV-II-list-Name-length-1-4 tokoe:invalid" result="pass"/><test-case name="22126NISTXML-SV-II-list-Name-length-1-5 tokoe:invalid" result="pass"/><test-case name="22127NISTSchema-SV-II-list-Name-length-2 tokoe:valid" result="pass"/><test-case name="22128NISTXML-SV-II-list-Name-length-2-1 tokoe:invalid" result="pass"/><test-case name="22129NISTXML-SV-II-list-Name-length-2-2 tokoe:invalid" result="pass"/><test-case name="22130NISTXML-SV-II-list-Name-length-2-3 tokoe:invalid" result="pass"/><test-case name="22131NISTXML-SV-II-list-Name-length-2-4 tokoe:invalid" result="pass"/><test-case name="22132NISTXML-SV-II-list-Name-length-2-5 tokoe:invalid" result="pass"/><test-case name="22133NISTSchema-SV-II-list-Name-length-3 tokoe:valid" result="pass"/><test-case name="22134NISTXML-SV-II-list-Name-length-3-1 tokoe:invalid" result="pass"/><test-case name="22135NISTXML-SV-II-list-Name-length-3-2 tokoe:invalid" result="pass"/><test-case name="22136NISTXML-SV-II-list-Name-length-3-3 tokoe:invalid" result="pass"/><test-case name="22137NISTXML-SV-II-list-Name-length-3-4 tokoe:invalid" result="pass"/><test-case name="22138NISTXML-SV-II-list-Name-length-3-5 tokoe:invalid" result="pass"/><test-case name="22139NISTSchema-SV-II-list-Name-length-4 tokoe:valid" result="pass"/><test-case name="22140NISTXML-SV-II-list-Name-length-4-1 tokoe:invalid" result="pass"/><test-case name="22141NISTXML-SV-II-list-Name-length-4-2 tokoe:invalid" result="pass"/><test-case name="22142NISTXML-SV-II-list-Name-length-4-3 tokoe:invalid" result="pass"/><test-case name="22143NISTXML-SV-II-list-Name-length-4-4 tokoe:invalid" result="pass"/><test-case name="22144NISTXML-SV-II-list-Name-length-4-5 tokoe:invalid" result="pass"/><test-case name="22145NISTSchema-SV-II-list-Name-length-5 tokoe:valid" result="pass"/><test-case name="22146NISTXML-SV-II-list-Name-length-5-1 tokoe:invalid" result="pass"/><test-case name="22147NISTXML-SV-II-list-Name-length-5-2 tokoe:invalid" result="pass"/><test-case name="22148NISTXML-SV-II-list-Name-length-5-3 tokoe:invalid" result="pass"/><test-case name="22149NISTXML-SV-II-list-Name-length-5-4 tokoe:invalid" result="pass"/><test-case name="22150NISTXML-SV-II-list-Name-length-5-5 tokoe:invalid" result="pass"/><test-case name="22151NISTSchema-SV-II-list-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="22152NISTXML-SV-II-list-NMTOKEN-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22153NISTXML-SV-II-list-NMTOKEN-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22154NISTXML-SV-II-list-NMTOKEN-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22155NISTXML-SV-II-list-NMTOKEN-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22156NISTXML-SV-II-list-NMTOKEN-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22157NISTSchema-SV-II-list-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="22158NISTXML-SV-II-list-NMTOKEN-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22159NISTXML-SV-II-list-NMTOKEN-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22160NISTXML-SV-II-list-NMTOKEN-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22161NISTXML-SV-II-list-NMTOKEN-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22162NISTXML-SV-II-list-NMTOKEN-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22163NISTSchema-SV-II-list-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="22164NISTXML-SV-II-list-NMTOKEN-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22165NISTXML-SV-II-list-NMTOKEN-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22166NISTXML-SV-II-list-NMTOKEN-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22167NISTXML-SV-II-list-NMTOKEN-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22168NISTXML-SV-II-list-NMTOKEN-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22169NISTSchema-SV-II-list-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="22170NISTXML-SV-II-list-NMTOKEN-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22171NISTXML-SV-II-list-NMTOKEN-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22172NISTXML-SV-II-list-NMTOKEN-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22173NISTXML-SV-II-list-NMTOKEN-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22174NISTXML-SV-II-list-NMTOKEN-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22175NISTSchema-SV-II-list-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="22176NISTXML-SV-II-list-NMTOKEN-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22177NISTXML-SV-II-list-NMTOKEN-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22178NISTXML-SV-II-list-NMTOKEN-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22179NISTXML-SV-II-list-NMTOKEN-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22180NISTXML-SV-II-list-NMTOKEN-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22181NISTSchema-SV-II-list-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="22182NISTXML-SV-II-list-NMTOKEN-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22183NISTXML-SV-II-list-NMTOKEN-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22184NISTXML-SV-II-list-NMTOKEN-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22185NISTXML-SV-II-list-NMTOKEN-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22186NISTXML-SV-II-list-NMTOKEN-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22187NISTSchema-SV-II-list-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="22188NISTXML-SV-II-list-NMTOKEN-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22189NISTXML-SV-II-list-NMTOKEN-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22190NISTXML-SV-II-list-NMTOKEN-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22191NISTXML-SV-II-list-NMTOKEN-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22192NISTXML-SV-II-list-NMTOKEN-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22193NISTSchema-SV-II-list-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="22194NISTXML-SV-II-list-NMTOKEN-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22195NISTXML-SV-II-list-NMTOKEN-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22196NISTXML-SV-II-list-NMTOKEN-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22197NISTXML-SV-II-list-NMTOKEN-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22198NISTXML-SV-II-list-NMTOKEN-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22199NISTSchema-SV-II-list-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="22200NISTXML-SV-II-list-NMTOKEN-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22201NISTXML-SV-II-list-NMTOKEN-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22202NISTXML-SV-II-list-NMTOKEN-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22203NISTXML-SV-II-list-NMTOKEN-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22204NISTXML-SV-II-list-NMTOKEN-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22205NISTSchema-SV-II-list-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="22206NISTXML-SV-II-list-NMTOKEN-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22207NISTXML-SV-II-list-NMTOKEN-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22208NISTXML-SV-II-list-NMTOKEN-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22209NISTXML-SV-II-list-NMTOKEN-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22210NISTXML-SV-II-list-NMTOKEN-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22211NISTSchema-SV-II-list-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="22212NISTXML-SV-II-list-NMTOKEN-length-1-1 tokoe:invalid" result="pass"/><test-case name="22213NISTXML-SV-II-list-NMTOKEN-length-1-2 tokoe:invalid" result="pass"/><test-case name="22214NISTXML-SV-II-list-NMTOKEN-length-1-3 tokoe:invalid" result="pass"/><test-case name="22215NISTXML-SV-II-list-NMTOKEN-length-1-4 tokoe:invalid" result="pass"/><test-case name="22216NISTXML-SV-II-list-NMTOKEN-length-1-5 tokoe:invalid" result="pass"/><test-case name="22217NISTSchema-SV-II-list-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="22218NISTXML-SV-II-list-NMTOKEN-length-2-1 tokoe:invalid" result="pass"/><test-case name="22219NISTXML-SV-II-list-NMTOKEN-length-2-2 tokoe:invalid" result="pass"/><test-case name="22220NISTXML-SV-II-list-NMTOKEN-length-2-3 tokoe:invalid" result="pass"/><test-case name="22221NISTXML-SV-II-list-NMTOKEN-length-2-4 tokoe:invalid" result="pass"/><test-case name="22222NISTXML-SV-II-list-NMTOKEN-length-2-5 tokoe:invalid" result="pass"/><test-case name="22223NISTSchema-SV-II-list-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="22224NISTXML-SV-II-list-NMTOKEN-length-3-1 tokoe:invalid" result="pass"/><test-case name="22225NISTXML-SV-II-list-NMTOKEN-length-3-2 tokoe:invalid" result="pass"/><test-case name="22226NISTXML-SV-II-list-NMTOKEN-length-3-3 tokoe:invalid" result="pass"/><test-case name="22227NISTXML-SV-II-list-NMTOKEN-length-3-4 tokoe:invalid" result="pass"/><test-case name="22228NISTXML-SV-II-list-NMTOKEN-length-3-5 tokoe:invalid" result="pass"/><test-case name="22229NISTSchema-SV-II-list-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="22230NISTXML-SV-II-list-NMTOKEN-length-4-1 tokoe:invalid" result="pass"/><test-case name="22231NISTXML-SV-II-list-NMTOKEN-length-4-2 tokoe:invalid" result="pass"/><test-case name="22232NISTXML-SV-II-list-NMTOKEN-length-4-3 tokoe:invalid" result="pass"/><test-case name="22233NISTXML-SV-II-list-NMTOKEN-length-4-4 tokoe:invalid" result="pass"/><test-case name="22234NISTXML-SV-II-list-NMTOKEN-length-4-5 tokoe:invalid" result="pass"/><test-case name="22235NISTSchema-SV-II-list-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="22236NISTXML-SV-II-list-NMTOKEN-length-5-1 tokoe:invalid" result="pass"/><test-case name="22237NISTXML-SV-II-list-NMTOKEN-length-5-2 tokoe:invalid" result="pass"/><test-case name="22238NISTXML-SV-II-list-NMTOKEN-length-5-3 tokoe:invalid" result="pass"/><test-case name="22239NISTXML-SV-II-list-NMTOKEN-length-5-4 tokoe:invalid" result="pass"/><test-case name="22240NISTXML-SV-II-list-NMTOKEN-length-5-5 tokoe:invalid" result="pass"/><test-case name="22241NISTSchema-SV-II-list-NMTOKENS-maxLength-1 tokoe:valid" result="pass"/><test-case name="22242NISTXML-SV-II-list-NMTOKENS-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22243NISTXML-SV-II-list-NMTOKENS-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22244NISTXML-SV-II-list-NMTOKENS-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22245NISTXML-SV-II-list-NMTOKENS-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22246NISTXML-SV-II-list-NMTOKENS-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22247NISTSchema-SV-II-list-NMTOKENS-maxLength-2 tokoe:valid" result="pass"/><test-case name="22248NISTXML-SV-II-list-NMTOKENS-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22249NISTXML-SV-II-list-NMTOKENS-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22250NISTXML-SV-II-list-NMTOKENS-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22251NISTXML-SV-II-list-NMTOKENS-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22252NISTXML-SV-II-list-NMTOKENS-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22253NISTSchema-SV-II-list-NMTOKENS-maxLength-3 tokoe:valid" result="pass"/><test-case name="22254NISTXML-SV-II-list-NMTOKENS-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22255NISTXML-SV-II-list-NMTOKENS-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22256NISTXML-SV-II-list-NMTOKENS-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22257NISTXML-SV-II-list-NMTOKENS-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22258NISTXML-SV-II-list-NMTOKENS-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22259NISTSchema-SV-II-list-NMTOKENS-maxLength-4 tokoe:valid" result="pass"/><test-case name="22260NISTXML-SV-II-list-NMTOKENS-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22261NISTXML-SV-II-list-NMTOKENS-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22262NISTXML-SV-II-list-NMTOKENS-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22263NISTXML-SV-II-list-NMTOKENS-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22264NISTXML-SV-II-list-NMTOKENS-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22265NISTSchema-SV-II-list-NMTOKENS-maxLength-5 tokoe:valid" result="pass"/><test-case name="22266NISTXML-SV-II-list-NMTOKENS-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22267NISTXML-SV-II-list-NMTOKENS-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22268NISTXML-SV-II-list-NMTOKENS-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22269NISTXML-SV-II-list-NMTOKENS-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22270NISTXML-SV-II-list-NMTOKENS-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22271NISTSchema-SV-II-list-NMTOKENS-minLength-1 tokoe:valid" result="pass"/><test-case name="22272NISTXML-SV-II-list-NMTOKENS-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22273NISTXML-SV-II-list-NMTOKENS-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22274NISTXML-SV-II-list-NMTOKENS-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22275NISTXML-SV-II-list-NMTOKENS-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22276NISTXML-SV-II-list-NMTOKENS-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22277NISTSchema-SV-II-list-NMTOKENS-minLength-2 tokoe:valid" result="pass"/><test-case name="22278NISTXML-SV-II-list-NMTOKENS-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22279NISTXML-SV-II-list-NMTOKENS-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22280NISTXML-SV-II-list-NMTOKENS-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22281NISTXML-SV-II-list-NMTOKENS-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22282NISTXML-SV-II-list-NMTOKENS-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22283NISTSchema-SV-II-list-NMTOKENS-minLength-3 tokoe:valid" result="pass"/><test-case name="22284NISTXML-SV-II-list-NMTOKENS-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22285NISTXML-SV-II-list-NMTOKENS-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22286NISTXML-SV-II-list-NMTOKENS-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22287NISTXML-SV-II-list-NMTOKENS-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22288NISTXML-SV-II-list-NMTOKENS-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22289NISTSchema-SV-II-list-NMTOKENS-minLength-4 tokoe:valid" result="pass"/><test-case name="22290NISTXML-SV-II-list-NMTOKENS-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22291NISTXML-SV-II-list-NMTOKENS-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22292NISTXML-SV-II-list-NMTOKENS-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22293NISTXML-SV-II-list-NMTOKENS-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22294NISTXML-SV-II-list-NMTOKENS-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22295NISTSchema-SV-II-list-NMTOKENS-minLength-5 tokoe:valid" result="pass"/><test-case name="22296NISTXML-SV-II-list-NMTOKENS-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22297NISTXML-SV-II-list-NMTOKENS-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22298NISTXML-SV-II-list-NMTOKENS-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22299NISTXML-SV-II-list-NMTOKENS-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22300NISTXML-SV-II-list-NMTOKENS-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22301NISTSchema-SV-II-list-NMTOKENS-length-1 tokoe:valid" result="pass"/><test-case name="22302NISTXML-SV-II-list-NMTOKENS-length-1-1 tokoe:invalid" result="pass"/><test-case name="22303NISTXML-SV-II-list-NMTOKENS-length-1-2 tokoe:invalid" result="pass"/><test-case name="22304NISTXML-SV-II-list-NMTOKENS-length-1-3 tokoe:invalid" result="pass"/><test-case name="22305NISTXML-SV-II-list-NMTOKENS-length-1-4 tokoe:invalid" result="pass"/><test-case name="22306NISTXML-SV-II-list-NMTOKENS-length-1-5 tokoe:invalid" result="pass"/><test-case name="22307NISTSchema-SV-II-list-NMTOKENS-length-2 tokoe:valid" result="pass"/><test-case name="22308NISTXML-SV-II-list-NMTOKENS-length-2-1 tokoe:invalid" result="pass"/><test-case name="22309NISTXML-SV-II-list-NMTOKENS-length-2-2 tokoe:invalid" result="pass"/><test-case name="22310NISTXML-SV-II-list-NMTOKENS-length-2-3 tokoe:invalid" result="pass"/><test-case name="22311NISTXML-SV-II-list-NMTOKENS-length-2-4 tokoe:invalid" result="pass"/><test-case name="22312NISTXML-SV-II-list-NMTOKENS-length-2-5 tokoe:invalid" result="pass"/><test-case name="22313NISTSchema-SV-II-list-NMTOKENS-length-3 tokoe:valid" result="pass"/><test-case name="22314NISTXML-SV-II-list-NMTOKENS-length-3-1 tokoe:invalid" result="pass"/><test-case name="22315NISTXML-SV-II-list-NMTOKENS-length-3-2 tokoe:invalid" result="pass"/><test-case name="22316NISTXML-SV-II-list-NMTOKENS-length-3-3 tokoe:invalid" result="pass"/><test-case name="22317NISTXML-SV-II-list-NMTOKENS-length-3-4 tokoe:invalid" result="pass"/><test-case name="22318NISTXML-SV-II-list-NMTOKENS-length-3-5 tokoe:invalid" result="pass"/><test-case name="22319NISTSchema-SV-II-list-NMTOKENS-length-4 tokoe:valid" result="pass"/><test-case name="22320NISTXML-SV-II-list-NMTOKENS-length-4-1 tokoe:invalid" result="pass"/><test-case name="22321NISTXML-SV-II-list-NMTOKENS-length-4-2 tokoe:invalid" result="pass"/><test-case name="22322NISTXML-SV-II-list-NMTOKENS-length-4-3 tokoe:invalid" result="pass"/><test-case name="22323NISTXML-SV-II-list-NMTOKENS-length-4-4 tokoe:invalid" result="pass"/><test-case name="22324NISTXML-SV-II-list-NMTOKENS-length-4-5 tokoe:invalid" result="pass"/><test-case name="22325NISTSchema-SV-II-list-NMTOKENS-length-5 tokoe:valid" result="pass"/><test-case name="22326NISTXML-SV-II-list-NMTOKENS-length-5-1 tokoe:invalid" result="pass"/><test-case name="22327NISTXML-SV-II-list-NMTOKENS-length-5-2 tokoe:invalid" result="pass"/><test-case name="22328NISTXML-SV-II-list-NMTOKENS-length-5-3 tokoe:invalid" result="pass"/><test-case name="22329NISTXML-SV-II-list-NMTOKENS-length-5-4 tokoe:invalid" result="pass"/><test-case name="22330NISTXML-SV-II-list-NMTOKENS-length-5-5 tokoe:invalid" result="pass"/><test-case name="22331NISTSchema-SV-II-list-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="22332NISTXML-SV-II-list-NCName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22333NISTXML-SV-II-list-NCName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22334NISTXML-SV-II-list-NCName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22335NISTXML-SV-II-list-NCName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22336NISTXML-SV-II-list-NCName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22337NISTSchema-SV-II-list-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="22338NISTXML-SV-II-list-NCName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22339NISTXML-SV-II-list-NCName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22340NISTXML-SV-II-list-NCName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22341NISTXML-SV-II-list-NCName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22342NISTXML-SV-II-list-NCName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22343NISTSchema-SV-II-list-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="22344NISTXML-SV-II-list-NCName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22345NISTXML-SV-II-list-NCName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22346NISTXML-SV-II-list-NCName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22347NISTXML-SV-II-list-NCName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22348NISTXML-SV-II-list-NCName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22349NISTSchema-SV-II-list-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="22350NISTXML-SV-II-list-NCName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22351NISTXML-SV-II-list-NCName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22352NISTXML-SV-II-list-NCName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22353NISTXML-SV-II-list-NCName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22354NISTXML-SV-II-list-NCName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22355NISTSchema-SV-II-list-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="22356NISTXML-SV-II-list-NCName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22357NISTXML-SV-II-list-NCName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22358NISTXML-SV-II-list-NCName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22359NISTXML-SV-II-list-NCName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22360NISTXML-SV-II-list-NCName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22361NISTSchema-SV-II-list-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="22362NISTXML-SV-II-list-NCName-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22363NISTXML-SV-II-list-NCName-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22364NISTXML-SV-II-list-NCName-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22365NISTXML-SV-II-list-NCName-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22366NISTXML-SV-II-list-NCName-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22367NISTSchema-SV-II-list-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="22368NISTXML-SV-II-list-NCName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22369NISTXML-SV-II-list-NCName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22370NISTXML-SV-II-list-NCName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22371NISTXML-SV-II-list-NCName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22372NISTXML-SV-II-list-NCName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22373NISTSchema-SV-II-list-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="22374NISTXML-SV-II-list-NCName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22375NISTXML-SV-II-list-NCName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22376NISTXML-SV-II-list-NCName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22377NISTXML-SV-II-list-NCName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22378NISTXML-SV-II-list-NCName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22379NISTSchema-SV-II-list-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="22380NISTXML-SV-II-list-NCName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22381NISTXML-SV-II-list-NCName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22382NISTXML-SV-II-list-NCName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22383NISTXML-SV-II-list-NCName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22384NISTXML-SV-II-list-NCName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22385NISTSchema-SV-II-list-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="22386NISTXML-SV-II-list-NCName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22387NISTXML-SV-II-list-NCName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22388NISTXML-SV-II-list-NCName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22389NISTXML-SV-II-list-NCName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22390NISTXML-SV-II-list-NCName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22391NISTSchema-SV-II-list-NCName-length-1 tokoe:valid" result="pass"/><test-case name="22392NISTXML-SV-II-list-NCName-length-1-1 tokoe:invalid" result="pass"/><test-case name="22393NISTXML-SV-II-list-NCName-length-1-2 tokoe:invalid" result="pass"/><test-case name="22394NISTXML-SV-II-list-NCName-length-1-3 tokoe:invalid" result="pass"/><test-case name="22395NISTXML-SV-II-list-NCName-length-1-4 tokoe:invalid" result="pass"/><test-case name="22396NISTXML-SV-II-list-NCName-length-1-5 tokoe:invalid" result="pass"/><test-case name="22397NISTSchema-SV-II-list-NCName-length-2 tokoe:valid" result="pass"/><test-case name="22398NISTXML-SV-II-list-NCName-length-2-1 tokoe:invalid" result="pass"/><test-case name="22399NISTXML-SV-II-list-NCName-length-2-2 tokoe:invalid" result="pass"/><test-case name="22400NISTXML-SV-II-list-NCName-length-2-3 tokoe:invalid" result="pass"/><test-case name="22401NISTXML-SV-II-list-NCName-length-2-4 tokoe:invalid" result="pass"/><test-case name="22402NISTXML-SV-II-list-NCName-length-2-5 tokoe:invalid" result="pass"/><test-case name="22403NISTSchema-SV-II-list-NCName-length-3 tokoe:valid" result="pass"/><test-case name="22404NISTXML-SV-II-list-NCName-length-3-1 tokoe:invalid" result="pass"/><test-case name="22405NISTXML-SV-II-list-NCName-length-3-2 tokoe:invalid" result="pass"/><test-case name="22406NISTXML-SV-II-list-NCName-length-3-3 tokoe:invalid" result="pass"/><test-case name="22407NISTXML-SV-II-list-NCName-length-3-4 tokoe:invalid" result="pass"/><test-case name="22408NISTXML-SV-II-list-NCName-length-3-5 tokoe:invalid" result="pass"/><test-case name="22409NISTSchema-SV-II-list-NCName-length-4 tokoe:valid" result="pass"/><test-case name="22410NISTXML-SV-II-list-NCName-length-4-1 tokoe:invalid" result="pass"/><test-case name="22411NISTXML-SV-II-list-NCName-length-4-2 tokoe:invalid" result="pass"/><test-case name="22412NISTXML-SV-II-list-NCName-length-4-3 tokoe:invalid" result="pass"/><test-case name="22413NISTXML-SV-II-list-NCName-length-4-4 tokoe:invalid" result="pass"/><test-case name="22414NISTXML-SV-II-list-NCName-length-4-5 tokoe:invalid" result="pass"/><test-case name="22415NISTSchema-SV-II-list-NCName-length-5 tokoe:valid" result="pass"/><test-case name="22416NISTXML-SV-II-list-NCName-length-5-1 tokoe:invalid" result="pass"/><test-case name="22417NISTXML-SV-II-list-NCName-length-5-2 tokoe:invalid" result="pass"/><test-case name="22418NISTXML-SV-II-list-NCName-length-5-3 tokoe:invalid" result="pass"/><test-case name="22419NISTXML-SV-II-list-NCName-length-5-4 tokoe:invalid" result="pass"/><test-case name="22420NISTXML-SV-II-list-NCName-length-5-5 tokoe:invalid" result="pass"/><test-case name="22421NISTSchema-SV-II-list-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="22422NISTXML-SV-II-list-ID-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22423NISTXML-SV-II-list-ID-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22424NISTXML-SV-II-list-ID-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22425NISTXML-SV-II-list-ID-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22426NISTXML-SV-II-list-ID-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22427NISTSchema-SV-II-list-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="22428NISTXML-SV-II-list-ID-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22429NISTXML-SV-II-list-ID-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22430NISTXML-SV-II-list-ID-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22431NISTXML-SV-II-list-ID-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22432NISTXML-SV-II-list-ID-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22433NISTSchema-SV-II-list-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="22434NISTXML-SV-II-list-ID-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22435NISTXML-SV-II-list-ID-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22436NISTXML-SV-II-list-ID-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22437NISTXML-SV-II-list-ID-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22438NISTXML-SV-II-list-ID-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22439NISTSchema-SV-II-list-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="22440NISTXML-SV-II-list-ID-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22441NISTXML-SV-II-list-ID-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22442NISTXML-SV-II-list-ID-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22443NISTXML-SV-II-list-ID-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22444NISTXML-SV-II-list-ID-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22445NISTSchema-SV-II-list-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="22446NISTXML-SV-II-list-ID-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22447NISTXML-SV-II-list-ID-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22448NISTXML-SV-II-list-ID-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22449NISTXML-SV-II-list-ID-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22450NISTXML-SV-II-list-ID-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22451NISTSchema-SV-II-list-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="22452NISTXML-SV-II-list-ID-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22453NISTXML-SV-II-list-ID-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22454NISTXML-SV-II-list-ID-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22455NISTXML-SV-II-list-ID-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22456NISTXML-SV-II-list-ID-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22457NISTSchema-SV-II-list-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="22458NISTXML-SV-II-list-ID-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22459NISTXML-SV-II-list-ID-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22460NISTXML-SV-II-list-ID-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22461NISTXML-SV-II-list-ID-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22462NISTXML-SV-II-list-ID-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22463NISTSchema-SV-II-list-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="22464NISTXML-SV-II-list-ID-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22465NISTXML-SV-II-list-ID-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22466NISTXML-SV-II-list-ID-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22467NISTXML-SV-II-list-ID-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22468NISTXML-SV-II-list-ID-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22469NISTSchema-SV-II-list-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="22470NISTXML-SV-II-list-ID-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22471NISTXML-SV-II-list-ID-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22472NISTXML-SV-II-list-ID-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22473NISTXML-SV-II-list-ID-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22474NISTXML-SV-II-list-ID-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22475NISTSchema-SV-II-list-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="22476NISTXML-SV-II-list-ID-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22477NISTXML-SV-II-list-ID-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22478NISTXML-SV-II-list-ID-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22479NISTXML-SV-II-list-ID-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22480NISTXML-SV-II-list-ID-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22481NISTSchema-SV-II-list-ID-length-1 tokoe:valid" result="pass"/><test-case name="22482NISTXML-SV-II-list-ID-length-1-1 tokoe:invalid" result="pass"/><test-case name="22483NISTXML-SV-II-list-ID-length-1-2 tokoe:invalid" result="pass"/><test-case name="22484NISTXML-SV-II-list-ID-length-1-3 tokoe:invalid" result="pass"/><test-case name="22485NISTXML-SV-II-list-ID-length-1-4 tokoe:invalid" result="pass"/><test-case name="22486NISTXML-SV-II-list-ID-length-1-5 tokoe:invalid" result="pass"/><test-case name="22487NISTSchema-SV-II-list-ID-length-2 tokoe:valid" result="pass"/><test-case name="22488NISTXML-SV-II-list-ID-length-2-1 tokoe:invalid" result="pass"/><test-case name="22489NISTXML-SV-II-list-ID-length-2-2 tokoe:invalid" result="pass"/><test-case name="22490NISTXML-SV-II-list-ID-length-2-3 tokoe:invalid" result="pass"/><test-case name="22491NISTXML-SV-II-list-ID-length-2-4 tokoe:invalid" result="pass"/><test-case name="22492NISTXML-SV-II-list-ID-length-2-5 tokoe:invalid" result="pass"/><test-case name="22493NISTSchema-SV-II-list-ID-length-3 tokoe:valid" result="pass"/><test-case name="22494NISTXML-SV-II-list-ID-length-3-1 tokoe:invalid" result="pass"/><test-case name="22495NISTXML-SV-II-list-ID-length-3-2 tokoe:invalid" result="pass"/><test-case name="22496NISTXML-SV-II-list-ID-length-3-3 tokoe:invalid" result="pass"/><test-case name="22497NISTXML-SV-II-list-ID-length-3-4 tokoe:invalid" result="pass"/><test-case name="22498NISTXML-SV-II-list-ID-length-3-5 tokoe:invalid" result="pass"/><test-case name="22499NISTSchema-SV-II-list-ID-length-4 tokoe:valid" result="pass"/><test-case name="22500NISTXML-SV-II-list-ID-length-4-1 tokoe:invalid" result="pass"/><test-case name="22501NISTXML-SV-II-list-ID-length-4-2 tokoe:invalid" result="pass"/><test-case name="22502NISTXML-SV-II-list-ID-length-4-3 tokoe:invalid" result="pass"/><test-case name="22503NISTXML-SV-II-list-ID-length-4-4 tokoe:invalid" result="pass"/><test-case name="22504NISTXML-SV-II-list-ID-length-4-5 tokoe:invalid" result="pass"/><test-case name="22505NISTSchema-SV-II-list-ID-length-5 tokoe:valid" result="pass"/><test-case name="22506NISTXML-SV-II-list-ID-length-5-1 tokoe:invalid" result="pass"/><test-case name="22507NISTXML-SV-II-list-ID-length-5-2 tokoe:invalid" result="pass"/><test-case name="22508NISTXML-SV-II-list-ID-length-5-3 tokoe:invalid" result="pass"/><test-case name="22509NISTXML-SV-II-list-ID-length-5-4 tokoe:invalid" result="pass"/><test-case name="22510NISTXML-SV-II-list-ID-length-5-5 tokoe:invalid" result="pass"/><test-case name="22511NISTSchema-SV-II-list-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="22512NISTXML-SV-II-list-language-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22513NISTXML-SV-II-list-language-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22514NISTXML-SV-II-list-language-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22515NISTXML-SV-II-list-language-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22516NISTXML-SV-II-list-language-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22517NISTSchema-SV-II-list-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="22518NISTXML-SV-II-list-language-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22519NISTXML-SV-II-list-language-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22520NISTXML-SV-II-list-language-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22521NISTXML-SV-II-list-language-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22522NISTXML-SV-II-list-language-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22523NISTSchema-SV-II-list-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="22524NISTXML-SV-II-list-language-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22525NISTXML-SV-II-list-language-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22526NISTXML-SV-II-list-language-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22527NISTXML-SV-II-list-language-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22528NISTXML-SV-II-list-language-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22529NISTSchema-SV-II-list-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="22530NISTXML-SV-II-list-language-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22531NISTXML-SV-II-list-language-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22532NISTXML-SV-II-list-language-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22533NISTXML-SV-II-list-language-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22534NISTXML-SV-II-list-language-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22535NISTSchema-SV-II-list-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="22536NISTXML-SV-II-list-language-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22537NISTXML-SV-II-list-language-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22538NISTXML-SV-II-list-language-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22539NISTXML-SV-II-list-language-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22540NISTXML-SV-II-list-language-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22541NISTSchema-SV-II-list-language-minLength-1 tokoe:valid" result="pass"/><test-case name="22542NISTXML-SV-II-list-language-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22543NISTXML-SV-II-list-language-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22544NISTXML-SV-II-list-language-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22545NISTXML-SV-II-list-language-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22546NISTXML-SV-II-list-language-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22547NISTSchema-SV-II-list-language-minLength-2 tokoe:valid" result="pass"/><test-case name="22548NISTXML-SV-II-list-language-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22549NISTXML-SV-II-list-language-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22550NISTXML-SV-II-list-language-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22551NISTXML-SV-II-list-language-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22552NISTXML-SV-II-list-language-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22553NISTSchema-SV-II-list-language-minLength-3 tokoe:valid" result="pass"/><test-case name="22554NISTXML-SV-II-list-language-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22555NISTXML-SV-II-list-language-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22556NISTXML-SV-II-list-language-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22557NISTXML-SV-II-list-language-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22558NISTXML-SV-II-list-language-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22559NISTSchema-SV-II-list-language-minLength-4 tokoe:valid" result="pass"/><test-case name="22560NISTXML-SV-II-list-language-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22561NISTXML-SV-II-list-language-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22562NISTXML-SV-II-list-language-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22563NISTXML-SV-II-list-language-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22564NISTXML-SV-II-list-language-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22565NISTSchema-SV-II-list-language-minLength-5 tokoe:valid" result="pass"/><test-case name="22566NISTXML-SV-II-list-language-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22567NISTXML-SV-II-list-language-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22568NISTXML-SV-II-list-language-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22569NISTXML-SV-II-list-language-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22570NISTXML-SV-II-list-language-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22571NISTSchema-SV-II-list-language-length-1 tokoe:valid" result="pass"/><test-case name="22572NISTXML-SV-II-list-language-length-1-1 tokoe:invalid" result="pass"/><test-case name="22573NISTXML-SV-II-list-language-length-1-2 tokoe:invalid" result="pass"/><test-case name="22574NISTXML-SV-II-list-language-length-1-3 tokoe:invalid" result="pass"/><test-case name="22575NISTXML-SV-II-list-language-length-1-4 tokoe:invalid" result="pass"/><test-case name="22576NISTXML-SV-II-list-language-length-1-5 tokoe:invalid" result="pass"/><test-case name="22577NISTSchema-SV-II-list-language-length-2 tokoe:valid" result="pass"/><test-case name="22578NISTXML-SV-II-list-language-length-2-1 tokoe:invalid" result="pass"/><test-case name="22579NISTXML-SV-II-list-language-length-2-2 tokoe:invalid" result="pass"/><test-case name="22580NISTXML-SV-II-list-language-length-2-3 tokoe:invalid" result="pass"/><test-case name="22581NISTXML-SV-II-list-language-length-2-4 tokoe:invalid" result="pass"/><test-case name="22582NISTXML-SV-II-list-language-length-2-5 tokoe:invalid" result="pass"/><test-case name="22583NISTSchema-SV-II-list-language-length-3 tokoe:valid" result="pass"/><test-case name="22584NISTXML-SV-II-list-language-length-3-1 tokoe:invalid" result="pass"/><test-case name="22585NISTXML-SV-II-list-language-length-3-2 tokoe:invalid" result="pass"/><test-case name="22586NISTXML-SV-II-list-language-length-3-3 tokoe:invalid" result="pass"/><test-case name="22587NISTXML-SV-II-list-language-length-3-4 tokoe:invalid" result="pass"/><test-case name="22588NISTXML-SV-II-list-language-length-3-5 tokoe:invalid" result="pass"/><test-case name="22589NISTSchema-SV-II-list-language-length-4 tokoe:valid" result="pass"/><test-case name="22590NISTXML-SV-II-list-language-length-4-1 tokoe:invalid" result="pass"/><test-case name="22591NISTXML-SV-II-list-language-length-4-2 tokoe:invalid" result="pass"/><test-case name="22592NISTXML-SV-II-list-language-length-4-3 tokoe:invalid" result="pass"/><test-case name="22593NISTXML-SV-II-list-language-length-4-4 tokoe:invalid" result="pass"/><test-case name="22594NISTXML-SV-II-list-language-length-4-5 tokoe:invalid" result="pass"/><test-case name="22595NISTSchema-SV-II-list-language-length-5 tokoe:valid" result="pass"/><test-case name="22596NISTXML-SV-II-list-language-length-5-1 tokoe:invalid" result="pass"/><test-case name="22597NISTXML-SV-II-list-language-length-5-2 tokoe:invalid" result="pass"/><test-case name="22598NISTXML-SV-II-list-language-length-5-3 tokoe:invalid" result="pass"/><test-case name="22599NISTXML-SV-II-list-language-length-5-4 tokoe:invalid" result="pass"/><test-case name="22600NISTXML-SV-II-list-language-length-5-5 tokoe:invalid" result="pass"/><test-case name="22601NISTSchema-SV-II-list-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="22602NISTXML-SV-II-list-QName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22603NISTXML-SV-II-list-QName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22604NISTXML-SV-II-list-QName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22605NISTXML-SV-II-list-QName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22606NISTXML-SV-II-list-QName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22607NISTSchema-SV-II-list-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="22608NISTXML-SV-II-list-QName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22609NISTXML-SV-II-list-QName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22610NISTXML-SV-II-list-QName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22611NISTXML-SV-II-list-QName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22612NISTXML-SV-II-list-QName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22613NISTSchema-SV-II-list-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="22614NISTXML-SV-II-list-QName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22615NISTXML-SV-II-list-QName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22616NISTXML-SV-II-list-QName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22617NISTXML-SV-II-list-QName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22618NISTXML-SV-II-list-QName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22619NISTSchema-SV-II-list-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="22620NISTXML-SV-II-list-QName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22621NISTXML-SV-II-list-QName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22622NISTXML-SV-II-list-QName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22623NISTXML-SV-II-list-QName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22624NISTXML-SV-II-list-QName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22625NISTSchema-SV-II-list-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="22626NISTXML-SV-II-list-QName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22627NISTXML-SV-II-list-QName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22628NISTXML-SV-II-list-QName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22629NISTXML-SV-II-list-QName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22630NISTXML-SV-II-list-QName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22631NISTSchema-SV-II-list-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="22632NISTXML-SV-II-list-QName-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22633NISTXML-SV-II-list-QName-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22634NISTXML-SV-II-list-QName-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22635NISTXML-SV-II-list-QName-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22636NISTXML-SV-II-list-QName-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22637NISTSchema-SV-II-list-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="22638NISTXML-SV-II-list-QName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22639NISTXML-SV-II-list-QName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22640NISTXML-SV-II-list-QName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22641NISTXML-SV-II-list-QName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22642NISTXML-SV-II-list-QName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22643NISTSchema-SV-II-list-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="22644NISTXML-SV-II-list-QName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22645NISTXML-SV-II-list-QName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22646NISTXML-SV-II-list-QName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22647NISTXML-SV-II-list-QName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22648NISTXML-SV-II-list-QName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22649NISTSchema-SV-II-list-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="22650NISTXML-SV-II-list-QName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22651NISTXML-SV-II-list-QName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22652NISTXML-SV-II-list-QName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22653NISTXML-SV-II-list-QName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22654NISTXML-SV-II-list-QName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22655NISTSchema-SV-II-list-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="22656NISTXML-SV-II-list-QName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22657NISTXML-SV-II-list-QName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22658NISTXML-SV-II-list-QName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22659NISTXML-SV-II-list-QName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22660NISTXML-SV-II-list-QName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22661NISTSchema-SV-II-list-QName-length-1 tokoe:valid" result="pass"/><test-case name="22662NISTXML-SV-II-list-QName-length-1-1 tokoe:invalid" result="pass"/><test-case name="22663NISTXML-SV-II-list-QName-length-1-2 tokoe:invalid" result="pass"/><test-case name="22664NISTXML-SV-II-list-QName-length-1-3 tokoe:invalid" result="pass"/><test-case name="22665NISTXML-SV-II-list-QName-length-1-4 tokoe:invalid" result="pass"/><test-case name="22666NISTXML-SV-II-list-QName-length-1-5 tokoe:invalid" result="pass"/><test-case name="22667NISTSchema-SV-II-list-QName-length-2 tokoe:valid" result="pass"/><test-case name="22668NISTXML-SV-II-list-QName-length-2-1 tokoe:invalid" result="pass"/><test-case name="22669NISTXML-SV-II-list-QName-length-2-2 tokoe:invalid" result="pass"/><test-case name="22670NISTXML-SV-II-list-QName-length-2-3 tokoe:invalid" result="pass"/><test-case name="22671NISTXML-SV-II-list-QName-length-2-4 tokoe:invalid" result="pass"/><test-case name="22672NISTXML-SV-II-list-QName-length-2-5 tokoe:invalid" result="pass"/><test-case name="22673NISTSchema-SV-II-list-QName-length-3 tokoe:valid" result="pass"/><test-case name="22674NISTXML-SV-II-list-QName-length-3-1 tokoe:invalid" result="pass"/><test-case name="22675NISTXML-SV-II-list-QName-length-3-2 tokoe:invalid" result="pass"/><test-case name="22676NISTXML-SV-II-list-QName-length-3-3 tokoe:invalid" result="pass"/><test-case name="22677NISTXML-SV-II-list-QName-length-3-4 tokoe:invalid" result="pass"/><test-case name="22678NISTXML-SV-II-list-QName-length-3-5 tokoe:invalid" result="pass"/><test-case name="22679NISTSchema-SV-II-list-QName-length-4 tokoe:valid" result="pass"/><test-case name="22680NISTXML-SV-II-list-QName-length-4-1 tokoe:invalid" result="pass"/><test-case name="22681NISTXML-SV-II-list-QName-length-4-2 tokoe:invalid" result="pass"/><test-case name="22682NISTXML-SV-II-list-QName-length-4-3 tokoe:invalid" result="pass"/><test-case name="22683NISTXML-SV-II-list-QName-length-4-4 tokoe:invalid" result="pass"/><test-case name="22684NISTXML-SV-II-list-QName-length-4-5 tokoe:invalid" result="pass"/><test-case name="22685NISTSchema-SV-II-list-QName-length-5 tokoe:valid" result="pass"/><test-case name="22686NISTXML-SV-II-list-QName-length-5-1 tokoe:invalid" result="pass"/><test-case name="22687NISTXML-SV-II-list-QName-length-5-2 tokoe:invalid" result="pass"/><test-case name="22688NISTXML-SV-II-list-QName-length-5-3 tokoe:invalid" result="pass"/><test-case name="22689NISTXML-SV-II-list-QName-length-5-4 tokoe:invalid" result="pass"/><test-case name="22690NISTXML-SV-II-list-QName-length-5-5 tokoe:invalid" result="pass"/><test-case name="22691NISTSchema-SV-IV-union-duration-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="22692NISTXML-SV-IV-union-duration-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22693NISTXML-SV-IV-union-duration-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22694NISTXML-SV-IV-union-duration-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22695NISTXML-SV-IV-union-duration-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22696NISTXML-SV-IV-union-duration-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22697NISTSchema-SV-IV-union-duration-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="22698NISTXML-SV-IV-union-duration-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22699NISTXML-SV-IV-union-duration-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22700NISTXML-SV-IV-union-duration-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22701NISTXML-SV-IV-union-duration-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22702NISTXML-SV-IV-union-duration-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22703NISTSchema-SV-IV-union-duration-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="22704NISTXML-SV-IV-union-duration-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22705NISTXML-SV-IV-union-duration-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22706NISTXML-SV-IV-union-duration-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22707NISTXML-SV-IV-union-duration-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22708NISTXML-SV-IV-union-duration-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22709NISTSchema-SV-IV-union-duration-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="22710NISTXML-SV-IV-union-duration-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22711NISTXML-SV-IV-union-duration-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22712NISTXML-SV-IV-union-duration-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22713NISTXML-SV-IV-union-duration-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22714NISTXML-SV-IV-union-duration-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22715NISTSchema-SV-IV-union-duration-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="22716NISTXML-SV-IV-union-duration-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22717NISTXML-SV-IV-union-duration-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22718NISTXML-SV-IV-union-duration-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22719NISTXML-SV-IV-union-duration-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22720NISTXML-SV-IV-union-duration-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22721NISTSchema-SV-IV-union-duration-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="22722NISTXML-SV-IV-union-duration-decimal-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22723NISTXML-SV-IV-union-duration-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22724NISTXML-SV-IV-union-duration-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22725NISTXML-SV-IV-union-duration-decimal-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22726NISTXML-SV-IV-union-duration-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22727NISTSchema-SV-IV-union-duration-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="22728NISTXML-SV-IV-union-duration-decimal-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22729NISTXML-SV-IV-union-duration-decimal-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22730NISTXML-SV-IV-union-duration-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22731NISTXML-SV-IV-union-duration-decimal-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22732NISTXML-SV-IV-union-duration-decimal-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22733NISTSchema-SV-IV-union-duration-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="22734NISTXML-SV-IV-union-duration-decimal-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22735NISTXML-SV-IV-union-duration-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22736NISTXML-SV-IV-union-duration-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22737NISTXML-SV-IV-union-duration-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22738NISTXML-SV-IV-union-duration-decimal-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22739NISTSchema-SV-IV-union-duration-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="22740NISTXML-SV-IV-union-duration-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22741NISTXML-SV-IV-union-duration-decimal-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22742NISTXML-SV-IV-union-duration-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22743NISTXML-SV-IV-union-duration-decimal-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22744NISTXML-SV-IV-union-duration-decimal-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22745NISTSchema-SV-IV-union-duration-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="22746NISTXML-SV-IV-union-duration-decimal-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22747NISTXML-SV-IV-union-duration-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22748NISTXML-SV-IV-union-duration-decimal-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22749NISTXML-SV-IV-union-duration-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22750NISTXML-SV-IV-union-duration-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22751NISTSchema-SV-IV-union-anyURI-float-pattern-1 tokoe:valid" result="pass"/><test-case name="22752NISTXML-SV-IV-union-anyURI-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22753NISTXML-SV-IV-union-anyURI-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22754NISTXML-SV-IV-union-anyURI-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22755NISTXML-SV-IV-union-anyURI-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22756NISTXML-SV-IV-union-anyURI-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22757NISTSchema-SV-IV-union-anyURI-float-pattern-2 tokoe:valid" result="pass"/><test-case name="22758NISTXML-SV-IV-union-anyURI-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22759NISTXML-SV-IV-union-anyURI-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22760NISTXML-SV-IV-union-anyURI-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22761NISTXML-SV-IV-union-anyURI-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22762NISTXML-SV-IV-union-anyURI-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22763NISTSchema-SV-IV-union-anyURI-float-pattern-3 tokoe:valid" result="pass"/><test-case name="22764NISTXML-SV-IV-union-anyURI-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22765NISTXML-SV-IV-union-anyURI-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22766NISTXML-SV-IV-union-anyURI-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22767NISTXML-SV-IV-union-anyURI-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22768NISTXML-SV-IV-union-anyURI-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22769NISTSchema-SV-IV-union-anyURI-float-pattern-4 tokoe:valid" result="pass"/><test-case name="22770NISTXML-SV-IV-union-anyURI-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22771NISTXML-SV-IV-union-anyURI-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22772NISTXML-SV-IV-union-anyURI-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22773NISTXML-SV-IV-union-anyURI-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22774NISTXML-SV-IV-union-anyURI-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22775NISTSchema-SV-IV-union-anyURI-float-pattern-5 tokoe:valid" result="pass"/><test-case name="22776NISTXML-SV-IV-union-anyURI-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22777NISTXML-SV-IV-union-anyURI-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22778NISTXML-SV-IV-union-anyURI-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22779NISTXML-SV-IV-union-anyURI-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22780NISTXML-SV-IV-union-anyURI-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22781NISTSchema-SV-IV-union-anyURI-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="22782NISTXML-SV-IV-union-anyURI-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22783NISTXML-SV-IV-union-anyURI-float-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22784NISTXML-SV-IV-union-anyURI-float-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22785NISTXML-SV-IV-union-anyURI-float-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22786NISTXML-SV-IV-union-anyURI-float-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22787NISTSchema-SV-IV-union-anyURI-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="22788NISTXML-SV-IV-union-anyURI-float-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22789NISTXML-SV-IV-union-anyURI-float-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22790NISTXML-SV-IV-union-anyURI-float-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22791NISTXML-SV-IV-union-anyURI-float-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22792NISTXML-SV-IV-union-anyURI-float-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22793NISTSchema-SV-IV-union-anyURI-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="22794NISTXML-SV-IV-union-anyURI-float-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22795NISTXML-SV-IV-union-anyURI-float-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22796NISTXML-SV-IV-union-anyURI-float-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22797NISTXML-SV-IV-union-anyURI-float-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22798NISTXML-SV-IV-union-anyURI-float-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22799NISTSchema-SV-IV-union-anyURI-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="22800NISTXML-SV-IV-union-anyURI-float-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22801NISTXML-SV-IV-union-anyURI-float-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22802NISTXML-SV-IV-union-anyURI-float-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22803NISTXML-SV-IV-union-anyURI-float-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22804NISTXML-SV-IV-union-anyURI-float-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22805NISTSchema-SV-IV-union-anyURI-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="22806NISTXML-SV-IV-union-anyURI-float-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22807NISTXML-SV-IV-union-anyURI-float-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22808NISTXML-SV-IV-union-anyURI-float-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22809NISTXML-SV-IV-union-anyURI-float-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22810NISTXML-SV-IV-union-anyURI-float-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22811NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="22812NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22813NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22814NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22815NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22816NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22817NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="22818NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22819NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22820NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22821NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22822NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22823NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="22824NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22825NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22826NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22827NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22828NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22829NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="22830NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22831NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22832NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22833NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22834NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22835NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="22836NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22837NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22838NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22839NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22840NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22841NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="22842NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22843NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22844NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22845NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22846NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22847NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="22848NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22849NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22850NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22851NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22852NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22853NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="22854NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22855NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22856NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22857NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22858NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22859NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="22860NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22861NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22862NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22863NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22864NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22865NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="22866NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22867NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22868NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22869NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22870NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22871NISTSchema-SV-IV-union-short-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="22872NISTXML-SV-IV-union-short-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22873NISTXML-SV-IV-union-short-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22874NISTXML-SV-IV-union-short-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22875NISTXML-SV-IV-union-short-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22876NISTXML-SV-IV-union-short-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22877NISTSchema-SV-IV-union-short-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="22878NISTXML-SV-IV-union-short-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22879NISTXML-SV-IV-union-short-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22880NISTXML-SV-IV-union-short-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22881NISTXML-SV-IV-union-short-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22882NISTXML-SV-IV-union-short-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22883NISTSchema-SV-IV-union-short-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="22884NISTXML-SV-IV-union-short-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22885NISTXML-SV-IV-union-short-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22886NISTXML-SV-IV-union-short-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22887NISTXML-SV-IV-union-short-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22888NISTXML-SV-IV-union-short-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22889NISTSchema-SV-IV-union-short-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="22890NISTXML-SV-IV-union-short-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22891NISTXML-SV-IV-union-short-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22892NISTXML-SV-IV-union-short-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22893NISTXML-SV-IV-union-short-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22894NISTXML-SV-IV-union-short-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22895NISTSchema-SV-IV-union-short-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="22896NISTXML-SV-IV-union-short-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22897NISTXML-SV-IV-union-short-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22898NISTXML-SV-IV-union-short-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22899NISTXML-SV-IV-union-short-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22900NISTXML-SV-IV-union-short-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22901NISTSchema-SV-IV-union-short-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="22902NISTXML-SV-IV-union-short-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22903NISTXML-SV-IV-union-short-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22904NISTXML-SV-IV-union-short-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22905NISTXML-SV-IV-union-short-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22906NISTXML-SV-IV-union-short-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22907NISTSchema-SV-IV-union-short-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="22908NISTXML-SV-IV-union-short-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22909NISTXML-SV-IV-union-short-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22910NISTXML-SV-IV-union-short-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22911NISTXML-SV-IV-union-short-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22912NISTXML-SV-IV-union-short-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22913NISTSchema-SV-IV-union-short-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="22914NISTXML-SV-IV-union-short-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22915NISTXML-SV-IV-union-short-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22916NISTXML-SV-IV-union-short-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22917NISTXML-SV-IV-union-short-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22918NISTXML-SV-IV-union-short-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22919NISTSchema-SV-IV-union-short-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="22920NISTXML-SV-IV-union-short-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22921NISTXML-SV-IV-union-short-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22922NISTXML-SV-IV-union-short-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22923NISTXML-SV-IV-union-short-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22924NISTXML-SV-IV-union-short-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22925NISTSchema-SV-IV-union-short-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="22926NISTXML-SV-IV-union-short-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22927NISTXML-SV-IV-union-short-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22928NISTXML-SV-IV-union-short-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22929NISTXML-SV-IV-union-short-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22930NISTXML-SV-IV-union-short-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22931NISTSchema-SV-II-union-duration-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="22932NISTXML-SV-II-union-duration-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="22933NISTXML-SV-II-union-duration-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="22934NISTXML-SV-II-union-duration-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="22935NISTXML-SV-II-union-duration-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="22936NISTXML-SV-II-union-duration-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="22937NISTSchema-SV-II-union-duration-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="22938NISTXML-SV-II-union-duration-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="22939NISTXML-SV-II-union-duration-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="22940NISTXML-SV-II-union-duration-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="22941NISTXML-SV-II-union-duration-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="22942NISTXML-SV-II-union-duration-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="22943NISTSchema-SV-II-union-duration-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="22944NISTXML-SV-II-union-duration-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="22945NISTXML-SV-II-union-duration-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="22946NISTXML-SV-II-union-duration-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="22947NISTXML-SV-II-union-duration-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="22948NISTXML-SV-II-union-duration-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="22949NISTSchema-SV-II-union-duration-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="22950NISTXML-SV-II-union-duration-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="22951NISTXML-SV-II-union-duration-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="22952NISTXML-SV-II-union-duration-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="22953NISTXML-SV-II-union-duration-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="22954NISTXML-SV-II-union-duration-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="22955NISTSchema-SV-II-union-duration-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="22956NISTXML-SV-II-union-duration-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="22957NISTXML-SV-II-union-duration-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="22958NISTXML-SV-II-union-duration-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="22959NISTXML-SV-II-union-duration-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="22960NISTXML-SV-II-union-duration-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="22961NISTSchema-SV-II-union-duration-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="22962NISTXML-SV-II-union-duration-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="22963NISTXML-SV-II-union-duration-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="22964NISTXML-SV-II-union-duration-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="22965NISTXML-SV-II-union-duration-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="22966NISTXML-SV-II-union-duration-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="22967NISTSchema-SV-II-union-duration-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="22968NISTXML-SV-II-union-duration-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="22969NISTXML-SV-II-union-duration-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="22970NISTXML-SV-II-union-duration-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="22971NISTXML-SV-II-union-duration-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="22972NISTXML-SV-II-union-duration-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="22973NISTSchema-SV-II-union-duration-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="22974NISTXML-SV-II-union-duration-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="22975NISTXML-SV-II-union-duration-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="22976NISTXML-SV-II-union-duration-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="22977NISTXML-SV-II-union-duration-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="22978NISTXML-SV-II-union-duration-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="22979NISTSchema-SV-II-union-duration-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="22980NISTXML-SV-II-union-duration-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="22981NISTXML-SV-II-union-duration-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="22982NISTXML-SV-II-union-duration-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="22983NISTXML-SV-II-union-duration-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="22984NISTXML-SV-II-union-duration-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="22985NISTSchema-SV-II-union-duration-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="22986NISTXML-SV-II-union-duration-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="22987NISTXML-SV-II-union-duration-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="22988NISTXML-SV-II-union-duration-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="22989NISTXML-SV-II-union-duration-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="22990NISTXML-SV-II-union-duration-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="22991NISTSchema-SV-II-union-anyURI-float-pattern-1 tokoe:valid" result="pass"/><test-case name="22992NISTXML-SV-II-union-anyURI-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="22993NISTXML-SV-II-union-anyURI-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="22994NISTXML-SV-II-union-anyURI-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="22995NISTXML-SV-II-union-anyURI-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="22996NISTXML-SV-II-union-anyURI-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="22997NISTSchema-SV-II-union-anyURI-float-pattern-2 tokoe:valid" result="pass"/><test-case name="22998NISTXML-SV-II-union-anyURI-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="22999NISTXML-SV-II-union-anyURI-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23000NISTXML-SV-II-union-anyURI-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23001NISTXML-SV-II-union-anyURI-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23002NISTXML-SV-II-union-anyURI-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23003NISTSchema-SV-II-union-anyURI-float-pattern-3 tokoe:valid" result="pass"/><test-case name="23004NISTXML-SV-II-union-anyURI-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23005NISTXML-SV-II-union-anyURI-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23006NISTXML-SV-II-union-anyURI-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23007NISTXML-SV-II-union-anyURI-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23008NISTXML-SV-II-union-anyURI-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23009NISTSchema-SV-II-union-anyURI-float-pattern-4 tokoe:valid" result="pass"/><test-case name="23010NISTXML-SV-II-union-anyURI-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23011NISTXML-SV-II-union-anyURI-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23012NISTXML-SV-II-union-anyURI-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23013NISTXML-SV-II-union-anyURI-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23014NISTXML-SV-II-union-anyURI-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23015NISTSchema-SV-II-union-anyURI-float-pattern-5 tokoe:valid" result="pass"/><test-case name="23016NISTXML-SV-II-union-anyURI-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23017NISTXML-SV-II-union-anyURI-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23018NISTXML-SV-II-union-anyURI-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23019NISTXML-SV-II-union-anyURI-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23020NISTXML-SV-II-union-anyURI-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23021NISTSchema-SV-II-union-anyURI-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="23022NISTXML-SV-II-union-anyURI-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23023NISTXML-SV-II-union-anyURI-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23024NISTXML-SV-II-union-anyURI-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23025NISTXML-SV-II-union-anyURI-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23026NISTXML-SV-II-union-anyURI-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23027NISTSchema-SV-II-union-anyURI-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="23028NISTXML-SV-II-union-anyURI-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23029NISTXML-SV-II-union-anyURI-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23030NISTXML-SV-II-union-anyURI-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23031NISTXML-SV-II-union-anyURI-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23032NISTXML-SV-II-union-anyURI-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23033NISTSchema-SV-II-union-anyURI-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="23034NISTXML-SV-II-union-anyURI-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23035NISTXML-SV-II-union-anyURI-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23036NISTXML-SV-II-union-anyURI-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23037NISTXML-SV-II-union-anyURI-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23038NISTXML-SV-II-union-anyURI-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23039NISTSchema-SV-II-union-anyURI-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="23040NISTXML-SV-II-union-anyURI-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23041NISTXML-SV-II-union-anyURI-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23042NISTXML-SV-II-union-anyURI-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23043NISTXML-SV-II-union-anyURI-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23044NISTXML-SV-II-union-anyURI-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23045NISTSchema-SV-II-union-anyURI-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="23046NISTXML-SV-II-union-anyURI-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23047NISTXML-SV-II-union-anyURI-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23048NISTXML-SV-II-union-anyURI-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23049NISTXML-SV-II-union-anyURI-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23050NISTXML-SV-II-union-anyURI-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23051NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="23052NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="23053NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="23054NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="23055NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="23056NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="23057NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="23058NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="23059NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23060NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23061NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23062NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23063NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="23064NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23065NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23066NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23067NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23068NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23069NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="23070NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23071NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23072NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23073NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23074NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23075NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="23076NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23077NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23078NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23079NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23080NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23081NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="23082NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23083NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23084NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23085NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23086NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23087NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="23088NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23089NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23090NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23091NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23092NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23093NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="23094NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23095NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23096NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23097NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23098NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23099NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="23100NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23101NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23102NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23103NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23104NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23105NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="23106NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23107NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23108NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23109NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23110NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23111NISTSchema-SV-II-union-short-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="23112NISTXML-SV-II-union-short-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="23113NISTXML-SV-II-union-short-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="23114NISTXML-SV-II-union-short-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="23115NISTXML-SV-II-union-short-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="23116NISTXML-SV-II-union-short-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="23117NISTSchema-SV-II-union-short-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="23118NISTXML-SV-II-union-short-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="23119NISTXML-SV-II-union-short-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23120NISTXML-SV-II-union-short-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23121NISTXML-SV-II-union-short-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23122NISTXML-SV-II-union-short-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23123NISTSchema-SV-II-union-short-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="23124NISTXML-SV-II-union-short-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23125NISTXML-SV-II-union-short-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23126NISTXML-SV-II-union-short-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23127NISTXML-SV-II-union-short-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23128NISTXML-SV-II-union-short-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23129NISTSchema-SV-II-union-short-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="23130NISTXML-SV-II-union-short-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23131NISTXML-SV-II-union-short-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23132NISTXML-SV-II-union-short-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23133NISTXML-SV-II-union-short-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23134NISTXML-SV-II-union-short-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23135NISTSchema-SV-II-union-short-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="23136NISTXML-SV-II-union-short-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23137NISTXML-SV-II-union-short-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23138NISTXML-SV-II-union-short-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23139NISTXML-SV-II-union-short-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23140NISTXML-SV-II-union-short-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23141NISTSchema-SV-II-union-short-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="23142NISTXML-SV-II-union-short-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23143NISTXML-SV-II-union-short-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23144NISTXML-SV-II-union-short-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23145NISTXML-SV-II-union-short-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23146NISTXML-SV-II-union-short-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23147NISTSchema-SV-II-union-short-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="23148NISTXML-SV-II-union-short-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23149NISTXML-SV-II-union-short-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23150NISTXML-SV-II-union-short-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23151NISTXML-SV-II-union-short-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23152NISTXML-SV-II-union-short-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23153NISTSchema-SV-II-union-short-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="23154NISTXML-SV-II-union-short-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23155NISTXML-SV-II-union-short-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23156NISTXML-SV-II-union-short-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23157NISTXML-SV-II-union-short-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23158NISTXML-SV-II-union-short-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23159NISTSchema-SV-II-union-short-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="23160NISTXML-SV-II-union-short-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23161NISTXML-SV-II-union-short-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23162NISTXML-SV-II-union-short-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23163NISTXML-SV-II-union-short-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23164NISTXML-SV-II-union-short-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23165NISTSchema-SV-II-union-short-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="23166NISTXML-SV-II-union-short-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23167NISTXML-SV-II-union-short-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23168NISTXML-SV-II-union-short-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23169NISTXML-SV-II-union-short-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23170NISTXML-SV-II-union-short-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23171test tokoe:valid" result="pass"/><test-case name="23172test.1.v tokoe:valid" result="pass"/><test-case name="23173test.2.n tokoe:invalid" result="pass"/><test-case name="23174test tokoe:valid" result="pass"/><test-case name="23175test.1.v tokoe:valid" result="pass"/><test-case name="23176test.2.n tokoe:invalid" result="pass"/><test-case name="23177test.3.n tokoe:invalid" result="pass"/><test-case name="23178test.4.n tokoe:invalid" result="pass"/><test-case name="23179test.5.n tokoe:invalid" result="pass"/><test-case name="23180test tokoe:valid" result="pass"/><test-case name="23181test.1.v tokoe:valid" result="pass"/><test-case name="23182test.2.n tokoe:invalid" result="pass"/><test-case name="23183test.3.n tokoe:invalid" result="pass"/><test-case name="23184test.4.n tokoe:invalid" result="pass"/><test-case name="23185test.5.n tokoe:invalid" result="pass"/><test-case name="23186test tokoe:valid" result="pass"/><test-case name="23187test.1.v tokoe:valid" result="pass"/><test-case name="23188test.2.n tokoe:invalid" result="pass"/><test-case name="23189test.3.n tokoe:invalid" result="pass"/><test-case name="23190test.4.n tokoe:invalid" result="pass"/><test-case name="23191test.5.n tokoe:invalid" result="pass"/><test-case name="23192test tokoe:valid" result="pass"/><test-case name="23193test.1.v tokoe:valid" result="pass"/><test-case name="23194test.2.n tokoe:invalid" result="pass"/><test-case name="23195test.3.n tokoe:invalid" result="pass"/><test-case name="23196test.4.n tokoe:invalid" result="pass"/><test-case name="23197test.5.n tokoe:invalid" result="pass"/><test-case name="23198test tokoe:valid" result="pass"/><test-case name="23199test.1.v tokoe:valid" result="pass"/><test-case name="23200test.10.n tokoe:invalid" result="pass"/><test-case name="23201test.11.n tokoe:invalid" result="pass"/><test-case name="23202test.12.n tokoe:invalid" result="pass"/><test-case name="23203test.13.n tokoe:invalid" result="pass"/><test-case name="23204test.14.n tokoe:invalid" result="pass"/><test-case name="23205test.15.n tokoe:invalid" result="pass"/><test-case name="23206test.16.n tokoe:invalid" result="pass"/><test-case name="23207test.17.n tokoe:invalid" result="pass"/><test-case name="23208test.18.n tokoe:invalid" result="pass"/><test-case name="23209test.19.n tokoe:invalid" result="pass"/><test-case name="23210test.2.v tokoe:valid" result="pass"/><test-case name="23211test.20.n tokoe:invalid" result="pass"/><test-case name="23212test.21.n tokoe:invalid" result="pass"/><test-case name="23213test.22.n tokoe:invalid" result="pass"/><test-case name="23214test.23.n tokoe:invalid" result="pass"/><test-case name="23215test.24.n tokoe:invalid" result="pass"/><test-case name="23216test.25.n tokoe:invalid" result="pass"/><test-case name="23217test.26.n tokoe:invalid" result="pass"/><test-case name="23218test.27.n tokoe:invalid" result="pass"/><test-case name="23219test.28.n tokoe:invalid" result="pass"/><test-case name="23220test.29.n tokoe:invalid" result="pass"/><test-case name="23221test.3.n tokoe:invalid" result="pass"/><test-case name="23222test.30.n tokoe:invalid" result="pass"/><test-case name="23223test.31.n tokoe:invalid" result="pass"/><test-case name="23224test.32.n tokoe:invalid" result="pass"/><test-case name="23225test.33.n tokoe:invalid" result="pass"/><test-case name="23226test.34.n tokoe:invalid" result="pass"/><test-case name="23227test.4.n tokoe:invalid" result="pass"/><test-case name="23228test.5.n tokoe:invalid" result="pass"/><test-case name="23229test.6.n tokoe:invalid" result="pass"/><test-case name="23230test.7.n tokoe:invalid" result="pass"/><test-case name="23231test.8.n tokoe:invalid" result="pass"/><test-case name="23232test.9.n tokoe:invalid" result="pass"/><test-case name="23233test tokoe:valid" result="pass"/><test-case name="23234test.1.v tokoe:valid" result="pass"/><test-case name="23235test.6.v tokoe:valid" result="pass"/><test-case name="23236test.2.n tokoe:invalid" result="pass"/><test-case name="23237test.3.n tokoe:invalid" result="pass"/><test-case name="23238test.4.n tokoe:invalid" result="pass"/><test-case name="23239test.5.n tokoe:invalid" result="pass"/><test-case name="23240test.7.n tokoe:invalid" result="pass"/><test-case name="23241test.8.n tokoe:invalid" result="pass"/><test-case name="23242test tokoe:valid" result="pass"/><test-case name="23243test.1.n tokoe:invalid" result="pass"/><test-case name="23244test.10.n tokoe:invalid" result="pass"/><test-case name="23245test.11.n tokoe:invalid" result="pass"/><test-case name="23246test.12.n tokoe:invalid" result="pass"/><test-case name="23247test.5.n tokoe:invalid" result="pass"/><test-case name="23248test.7.n tokoe:invalid" result="pass"/><test-case name="23249test.8.n tokoe:invalid" result="pass"/><test-case name="23250test.9.n tokoe:invalid" result="pass"/><test-case name="23251test.2.v tokoe:valid" result="pass"/><test-case name="23252test.3.v tokoe:valid" result="pass"/><test-case name="23253test.4.v tokoe:valid" result="pass"/><test-case name="23254test.6.v tokoe:valid" result="pass"/><test-case name="23255test tokoe:valid" result="pass"/><test-case name="23256test.13.n tokoe:invalid" result="pass"/><test-case name="23257test.8.n tokoe:invalid" result="pass"/><test-case name="23258test.1.v tokoe:valid" result="pass"/><test-case name="23259test.10.v tokoe:valid" result="pass"/><test-case name="23260test.11.v tokoe:valid" result="pass"/><test-case name="23261test.12.v tokoe:valid" result="pass"/><test-case name="23262test.2.v tokoe:valid" result="pass"/><test-case name="23263test.3.v tokoe:valid" result="pass"/><test-case name="23264test.4.v tokoe:valid" result="pass"/><test-case name="23265test.5.v tokoe:valid" result="pass"/><test-case name="23266test.6.v tokoe:valid" result="pass"/><test-case name="23267test.7.v tokoe:valid" result="pass"/><test-case name="23268test.9.v tokoe:valid" result="pass"/><test-case name="23269test tokoe:valid" result="pass"/><test-case name="23270test.1.v tokoe:valid" result="pass"/><test-case name="23271test.2.n tokoe:invalid" result="pass"/><test-case name="23272test tokoe:valid" result="pass"/><test-case name="23273test.1.v tokoe:valid" result="pass"/><test-case name="23274test.2.v tokoe:valid" result="pass"/><test-case name="23275test.3.n tokoe:invalid" result="pass"/><test-case name="23276test tokoe:valid" result="pass"/><test-case name="23277test.1.v tokoe:valid" result="pass"/><test-case name="23278test.2.v tokoe:valid" result="pass"/><test-case name="23279test.3.n tokoe:invalid" result="pass"/><test-case name="23280test tokoe:valid" result="pass"/><test-case name="23281test.1.v tokoe:valid" result="pass"/><test-case name="23282test.2.n tokoe:invalid" result="pass"/><test-case name="23283test.3.n tokoe:invalid" result="pass"/><test-case name="23284idc001.nogen tokoe:valid" result="pass"/><test-case name="23285idc001.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23286idc001.nogen.v00 tokoe:valid" result="pass"/><test-case name="23287idc001.nogen.v01 tokoe:valid" result="pass"/><test-case name="23288idc002.e tokoe:invalid" result="pass"/><test-case name="23289idc002b.e tokoe:invalid" result="pass"/><test-case name="23290idc003.e tokoe:invalid" result="pass"/><test-case name="23291idc004.nogen tokoe:valid" result="pass"/><test-case name="23292idc004.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23293idc004.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23294idc004.nogen.n02 tokoe:invalid" result="pass"/><test-case name="23295idc004.nogen.n03 tokoe:invalid" result="pass"/><test-case name="23296idc004.nogen.v00 tokoe:valid" result="pass"/><test-case name="23297idc004a.e tokoe:invalid" result="pass"/><test-case name="23298idc005.nogen tokoe:valid" result="pass"/><test-case name="23299idc005.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23300idc005.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23301idc005.nogen.v00 tokoe:valid" result="pass"/><test-case name="23302idc006.nogen tokoe:valid" result="pass"/><test-case name="23303idc006.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23304idc006.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23305idc006.nogen.v00 tokoe:valid" result="pass"/><test-case name="23306xsd001 tokoe:valid" result="pass"/><test-case name="23307xsd001.n00 tokoe:invalid" result="pass"/><test-case name="23308xsd001.n01 tokoe:invalid" result="pass"/><test-case name="23309xsd001.n02 tokoe:invalid" result="pass"/><test-case name="23310xsd001.n03 tokoe:invalid" result="pass"/><test-case name="23311xsd001.n04 tokoe:invalid" result="pass"/><test-case name="23312xsd001.n05 tokoe:invalid" result="pass"/><test-case name="23313xsd001.n06 tokoe:invalid" result="pass"/><test-case name="23314xsd001.n07 tokoe:invalid" result="pass"/><test-case name="23315xsd001.v00 tokoe:valid" result="pass"/><test-case name="23316xsd001.v01 tokoe:valid" result="pass"/><test-case name="23317xsd001.v02 tokoe:valid" result="pass"/><test-case name="23318xsd001.v03 tokoe:valid" result="pass"/><test-case name="23319xsd002 tokoe:valid" result="pass"/><test-case name="23320xsd002.n00 tokoe:invalid" result="pass"/><test-case name="23321xsd002.n01 tokoe:invalid" result="pass"/><test-case name="23322xsd002.n02 tokoe:invalid" result="pass"/><test-case name="23323xsd002.v00 tokoe:valid" result="pass"/><test-case name="23324xsd002.v01 tokoe:valid" result="pass"/><test-case name="23325xsd003-1.e tokoe:invalid" result="pass"/><test-case name="23326xsd003-2.e tokoe:invalid" result="pass"/><test-case name="23327xsd003a tokoe:valid" result="pass"/><test-case name="23328xsd003a.v00 tokoe:valid" result="pass"/><test-case name="23329xsd003b.e tokoe:invalid" result="pass"/><test-case name="23330xsd003b tokoe:valid" result="pass"/><test-case name="23331xsd003b.n00 tokoe:invalid" result="pass"/><test-case name="23332xsd003b.n01 tokoe:invalid" result="pass"/><test-case name="23333xsd003b.v00 tokoe:valid" result="pass"/><test-case name="23334xsd003b.v01 tokoe:valid" result="pass"/><test-case name="23335xsd004 tokoe:valid" result="pass"/><test-case name="23336xsd004.n00 tokoe:invalid" result="pass"/><test-case name="23337xsd004.n01 tokoe:invalid" result="pass"/><test-case name="23338xsd004.n02 tokoe:invalid" result="pass"/><test-case name="23339xsd004.n03 tokoe:invalid" result="pass"/><test-case name="23340xsd004.n04 tokoe:invalid" result="pass"/><test-case name="23341xsd004.n05 tokoe:invalid" result="pass"/><test-case name="23342xsd004.n06 tokoe:invalid" result="pass"/><test-case name="23343xsd004.n07 tokoe:invalid" result="pass"/><test-case name="23344xsd004.n08 tokoe:invalid" result="pass"/><test-case name="23345xsd004.n09 tokoe:invalid" result="pass"/><test-case name="23346xsd004.n10 tokoe:invalid" result="pass"/><test-case name="23347xsd004.n11 tokoe:invalid" result="pass"/><test-case name="23348xsd004.n12 tokoe:invalid" result="pass"/><test-case name="23349xsd004.v00 tokoe:valid" result="pass"/><test-case name="23350xsd005 tokoe:valid" result="pass"/><test-case name="23351xsd005.n00 tokoe:invalid" result="pass"/><test-case name="23352xsd005.n01 tokoe:invalid" result="pass"/><test-case name="23353xsd005.n02 tokoe:invalid" result="pass"/><test-case name="23354xsd005.n03 tokoe:invalid" result="pass"/><test-case name="23355xsd005.n04 tokoe:invalid" result="pass"/><test-case name="23356xsd005.n05 tokoe:invalid" result="pass"/><test-case name="23357xsd005.n06 tokoe:invalid" result="pass"/><test-case name="23358xsd005.v00 tokoe:valid" result="pass"/><test-case name="23359xsd006 tokoe:valid" result="pass"/><test-case name="23360xsd006.n00 tokoe:invalid" result="pass"/><test-case name="23361xsd006.n01 tokoe:invalid" result="pass"/><test-case name="23362xsd006.n02 tokoe:invalid" result="pass"/><test-case name="23363xsd006.n03 tokoe:invalid" result="pass"/><test-case name="23364xsd006.n04 tokoe:invalid" result="pass"/><test-case name="23365xsd006.n05 tokoe:invalid" result="pass"/><test-case name="23366xsd006.n06 tokoe:invalid" result="pass"/><test-case name="23367xsd006.n07 tokoe:invalid" result="pass"/><test-case name="23368xsd006.n08 tokoe:invalid" result="pass"/><test-case name="23369xsd006.n09 tokoe:invalid" result="pass"/><test-case name="23370xsd006.n10 tokoe:invalid" result="pass"/><test-case name="23371xsd006.n11 tokoe:invalid" result="pass"/><test-case name="23372xsd006.v00 tokoe:valid" result="pass"/><test-case name="23373xsd007.e tokoe:invalid" result="pass"/><test-case name="23374xsd008 tokoe:valid" result="pass"/><test-case name="23375xsd008.n00 tokoe:invalid" result="pass"/><test-case name="23376xsd008.n01 tokoe:invalid" result="pass"/><test-case name="23377xsd008.n02 tokoe:invalid" result="pass"/><test-case name="23378xsd008.v00 tokoe:valid" result="pass"/><test-case name="23379xsd009.e tokoe:invalid" result="pass"/><test-case name="23380xsd010.e tokoe:invalid" result="pass"/><test-case name="23381xsd011 tokoe:valid" result="pass"/><test-case name="23382xsd011.n00 tokoe:invalid" result="pass"/><test-case name="23383xsd011.n01 tokoe:invalid" result="pass"/><test-case name="23384xsd011.n02 tokoe:invalid" result="pass"/><test-case name="23385xsd011.n03 tokoe:invalid" result="pass"/><test-case name="23386xsd011.n04 tokoe:invalid" result="pass"/><test-case name="23387xsd011.v00 tokoe:valid" result="pass"/><test-case name="23388xsd012 tokoe:valid" result="pass"/><test-case name="23389xsd012.n00 tokoe:invalid" result="pass"/><test-case name="23390xsd012.v00 tokoe:valid" result="pass"/><test-case name="23391xsd013.e tokoe:invalid" result="pass"/><test-case name="23392xsd014.e tokoe:invalid" result="pass"/><test-case name="23393xsd015.e tokoe:invalid" result="pass"/><test-case name="23394xsd016.e tokoe:invalid" result="pass"/><test-case name="23395xsd017.e tokoe:invalid" result="pass"/><test-case name="23396xsd018.e tokoe:invalid" result="pass"/><test-case name="23397xsd019.e tokoe:invalid" result="pass"/><test-case name="23398xsd020-2.e tokoe:invalid" result="pass"/><test-case name="23399xsd020-3.e tokoe:invalid" result="pass"/><test-case name="23400xsd020-4.e tokoe:invalid" result="pass"/><test-case name="23401xsd020.e tokoe:invalid" result="pass"/><test-case name="23402xsd021 tokoe:valid" result="pass"/><test-case name="23403xsd021.n00 tokoe:invalid" result="pass"/><test-case name="23404xsd021.n01 tokoe:invalid" result="pass"/><test-case name="23405xsd021.n02 tokoe:invalid" result="pass"/><test-case name="23406xsd021.n03 tokoe:invalid" result="pass"/><test-case name="23407xsd021.n04 tokoe:invalid" result="pass"/><test-case name="23408xsd021.n05 tokoe:invalid" result="pass"/><test-case name="23409xsd021.n06 tokoe:invalid" result="pass"/><test-case name="23410xsd021.n07 tokoe:invalid" result="pass"/><test-case name="23411xsd021.n08 tokoe:invalid" result="pass"/><test-case name="23412xsd021.n09 tokoe:invalid" result="pass"/><test-case name="23413xsd021.n10 tokoe:invalid" result="pass"/><test-case name="23414xsd021.n11 tokoe:invalid" result="pass"/><test-case name="23415xsd021.v00 tokoe:valid" result="pass"/><test-case name="23416xsd022 tokoe:valid" result="pass"/><test-case name="23417xsd022.n00 tokoe:invalid" result="pass"/><test-case name="23418xsd022.v00 tokoe:valid" result="pass"/><test-case name="23419xsd023.e tokoe:invalid" result="pass"/><test-case name="23420xsd024 tokoe:valid" result="pass"/><test-case name="23421xsd024.v00 tokoe:valid" result="pass"/><test-case name="23422AG_attrUseNS00101m1_p tokoe:valid" result="pass"/><test-case name="23423Positive tokoe:valid" result="pass"/><test-case name="23424AG_attrUseNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23425AG_attrWCard00101m1 tokoe:valid" result="pass"/><test-case name="23426Positive tokoe:valid" result="pass"/><test-case name="23427AG_name00101m1_p tokoe:valid" result="pass"/><test-case name="23428Positive tokoe:valid" result="pass"/><test-case name="23429AG_name00101m1_n tokoe:invalid" result="pass"/><test-case name="23430AG_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23431Positive tokoe:valid" result="pass"/><test-case name="23432AG_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23433annotation00101m1 tokoe:valid" result="pass"/><test-case name="23434Positive tokoe:valid" result="pass"/><test-case name="23435annotation00101m2 tokoe:invalid" result="pass"/><test-case name="23436annotation00101m3 tokoe:invalid" result="pass"/><test-case name="23437annotation00101m4 tokoe:valid" result="pass"/><test-case name="23438Positive tokoe:valid" result="pass"/><test-case name="23439annotation00101m5 tokoe:invalid" result="pass"/><test-case name="23440annotation00101m6 tokoe:invalid" result="pass"/><test-case name="23441AD_annotation00101m1 tokoe:valid" result="pass"/><test-case name="23442Positive tokoe:valid" result="pass"/><test-case name="23443AD_annotation00101m2 tokoe:valid" result="pass"/><test-case name="23444Positive tokoe:valid" result="pass"/><test-case name="23445AD_name00101m1 tokoe:valid" result="pass"/><test-case name="23446Positive tokoe:valid" result="pass"/><test-case name="23447Negative tokoe:invalid" result="pass"/><test-case name="23448AD_name00101m2 tokoe:valid" result="pass"/><test-case name="23449Positive tokoe:valid" result="pass"/><test-case name="23450Negative tokoe:invalid" result="pass"/><test-case name="23451AD_name00101m3 tokoe:valid" result="pass"/><test-case name="23452Positive tokoe:valid" result="pass"/><test-case name="23453Negative tokoe:invalid" result="pass"/><test-case name="23454AD_name00101m4 tokoe:valid" result="pass"/><test-case name="23455Positive tokoe:valid" result="pass"/><test-case name="23456Negative tokoe:invalid" result="pass"/><test-case name="23457AD_name00102m1 tokoe:valid" result="pass"/><test-case name="23458Positive tokoe:valid" result="pass"/><test-case name="23459AD_name00103m1 tokoe:valid" result="pass"/><test-case name="23460Positive tokoe:valid" result="pass"/><test-case name="23461AD_name00103m2 tokoe:valid" result="pass"/><test-case name="23462Positive tokoe:valid" result="pass"/><test-case name="23463AD_name00104m1 tokoe:valid" result="pass"/><test-case name="23464Positive tokoe:valid" result="pass"/><test-case name="23465AD_name00104m10 tokoe:valid" result="pass"/><test-case name="23466Positive tokoe:valid" result="pass"/><test-case name="23467AD_name00104m11 tokoe:valid" result="pass"/><test-case name="23468Positive tokoe:valid" result="pass"/><test-case name="23469AD_name00104m12 tokoe:valid" result="pass"/><test-case name="23470Positive tokoe:valid" result="pass"/><test-case name="23471AD_name00104m13 tokoe:valid" result="pass"/><test-case name="23472Positive tokoe:valid" result="pass"/><test-case name="23473AD_name00104m14 tokoe:valid" result="pass"/><test-case name="23474Positive tokoe:valid" result="pass"/><test-case name="23475AD_name00104m15 tokoe:valid" result="pass"/><test-case name="23476Positive tokoe:valid" result="pass"/><test-case name="23477AD_name00104m16 tokoe:valid" result="pass"/><test-case name="23478Positive tokoe:valid" result="pass"/><test-case name="23479AD_name00104m17 tokoe:valid" result="pass"/><test-case name="23480Positive tokoe:valid" result="pass"/><test-case name="23481AD_name00104m18 tokoe:valid" result="pass"/><test-case name="23482Positive tokoe:valid" result="pass"/><test-case name="23483AD_name00104m19 tokoe:valid" result="pass"/><test-case name="23484Positive tokoe:valid" result="pass"/><test-case name="23485AD_name00104m2 tokoe:valid" result="pass"/><test-case name="23486Positive tokoe:valid" result="pass"/><test-case name="23487AD_name00104m20 tokoe:valid" result="pass"/><test-case name="23488Positive tokoe:valid" result="pass"/><test-case name="23489AD_name00104m21 tokoe:valid" result="pass"/><test-case name="23490Positive tokoe:valid" result="pass"/><test-case name="23491AD_name00104m3 tokoe:valid" result="pass"/><test-case name="23492Positive tokoe:valid" result="pass"/><test-case name="23493AD_name00104m4 tokoe:valid" result="pass"/><test-case name="23494Positive tokoe:valid" result="pass"/><test-case name="23495AD_name00104m5 tokoe:valid" result="pass"/><test-case name="23496Positive tokoe:valid" result="pass"/><test-case name="23497AD_name00104m6 tokoe:valid" result="pass"/><test-case name="23498Positive tokoe:valid" result="pass"/><test-case name="23499AD_name00104m7 tokoe:valid" result="pass"/><test-case name="23500Positive tokoe:valid" result="pass"/><test-case name="23501AD_name00104m8 tokoe:valid" result="pass"/><test-case name="23502Positive tokoe:valid" result="pass"/><test-case name="23503AD_name00104m9 tokoe:valid" result="pass"/><test-case name="23504Positive tokoe:valid" result="pass"/><test-case name="23505AD_name00105m1 tokoe:valid" result="pass"/><test-case name="23506Positive tokoe:valid" result="pass"/><test-case name="23507AD_name00106m1 tokoe:valid" result="pass"/><test-case name="23508Positive tokoe:valid" result="pass"/><test-case name="23509AD_name00107m1 tokoe:valid" result="pass"/><test-case name="23510Positive tokoe:valid" result="pass"/><test-case name="23511AD_name00108m1 tokoe:valid" result="pass"/><test-case name="23512Positive tokoe:valid" result="pass"/><test-case name="23513AD_name00108m10 tokoe:valid" result="pass"/><test-case name="23514Positive tokoe:valid" result="pass"/><test-case name="23515AD_name00108m11 tokoe:valid" result="pass"/><test-case name="23516Positive tokoe:valid" result="pass"/><test-case name="23517AD_name00108m12 tokoe:valid" result="pass"/><test-case name="23518Positive tokoe:valid" result="pass"/><test-case name="23519AD_name00108m13 tokoe:valid" result="pass"/><test-case name="23520Positive tokoe:valid" result="pass"/><test-case name="23521AD_name00108m14 tokoe:valid" result="pass"/><test-case name="23522Positive tokoe:valid" result="pass"/><test-case name="23523AD_name00108m15 tokoe:valid" result="pass"/><test-case name="23524Positive tokoe:valid" result="pass"/><test-case name="23525AD_name00108m16 tokoe:valid" result="pass"/><test-case name="23526Positive tokoe:valid" result="pass"/><test-case name="23527AD_name00108m17 tokoe:valid" result="pass"/><test-case name="23528Positive tokoe:valid" result="pass"/><test-case name="23529AD_name00108m18 tokoe:valid" result="pass"/><test-case name="23530Positive tokoe:valid" result="pass"/><test-case name="23531AD_name00108m19 tokoe:valid" result="pass"/><test-case name="23532Positive tokoe:valid" result="pass"/><test-case name="23533AD_name00108m2 tokoe:valid" result="pass"/><test-case name="23534Positive tokoe:valid" result="pass"/><test-case name="23535AD_name00108m20 tokoe:valid" result="pass"/><test-case name="23536Positive tokoe:valid" result="pass"/><test-case name="23537AD_name00108m21 tokoe:valid" result="pass"/><test-case name="23538Positive tokoe:valid" result="pass"/><test-case name="23539AD_name00108m3 tokoe:valid" result="pass"/><test-case name="23540Positive tokoe:valid" result="pass"/><test-case name="23541AD_name00108m4 tokoe:valid" result="pass"/><test-case name="23542Positive tokoe:valid" result="pass"/><test-case name="23543AD_name00108m5 tokoe:valid" result="pass"/><test-case name="23544Positive tokoe:valid" result="pass"/><test-case name="23545AD_name00108m6 tokoe:valid" result="pass"/><test-case name="23546Positive tokoe:valid" result="pass"/><test-case name="23547AD_name00108m7 tokoe:valid" result="pass"/><test-case name="23548Positive tokoe:valid" result="pass"/><test-case name="23549AD_name00108m8 tokoe:valid" result="pass"/><test-case name="23550Positive tokoe:valid" result="pass"/><test-case name="23551AD_name00108m9 tokoe:valid" result="pass"/><test-case name="23552Positive tokoe:valid" result="pass"/><test-case name="23553AD_name00109m1 tokoe:valid" result="pass"/><test-case name="23554Positive tokoe:valid" result="pass"/><test-case name="23555AD_name00109m2 tokoe:valid" result="pass"/><test-case name="23556Positive tokoe:valid" result="pass"/><test-case name="23557AD_name00110m1 tokoe:valid" result="pass"/><test-case name="23558Positive tokoe:valid" result="pass"/><test-case name="23559AD_name00110m10 tokoe:valid" result="pass"/><test-case name="23560Positive tokoe:valid" result="pass"/><test-case name="23561AD_name00110m2 tokoe:valid" result="pass"/><test-case name="23562Positive tokoe:valid" result="pass"/><test-case name="23563AD_name00110m3 tokoe:valid" result="pass"/><test-case name="23564Positive tokoe:valid" result="pass"/><test-case name="23565AD_name00110m4 tokoe:valid" result="pass"/><test-case name="23566Positive tokoe:valid" result="pass"/><test-case name="23567AD_name00110m5 tokoe:valid" result="pass"/><test-case name="23568Positive tokoe:valid" result="pass"/><test-case name="23569AD_name00110m6 tokoe:valid" result="pass"/><test-case name="23570Positive tokoe:valid" result="pass"/><test-case name="23571AD_name00110m7 tokoe:valid" result="pass"/><test-case name="23572Positive tokoe:valid" result="pass"/><test-case name="23573AD_name00110m8 tokoe:valid" result="pass"/><test-case name="23574Positive tokoe:valid" result="pass"/><test-case name="23575AD_name00110m9 tokoe:valid" result="pass"/><test-case name="23576Positive tokoe:valid" result="pass"/><test-case name="23577AD_name00111 tokoe:valid" result="pass"/><test-case name="23578AD_name00111_p tokoe:valid" result="pass"/><test-case name="23579AD_name00112 tokoe:valid" result="pass"/><test-case name="23580AD_name00112_p tokoe:valid" result="pass"/><test-case name="23581AD_name00113 tokoe:valid" result="pass"/><test-case name="23582AD_name00113_p tokoe:valid" result="pass"/><test-case name="23583AD_name00114 tokoe:valid" result="pass"/><test-case name="23584AD_name00114_p tokoe:valid" result="pass"/><test-case name="23585AD_name00115 tokoe:valid" result="pass"/><test-case name="23586AD_name00115_p tokoe:valid" result="pass"/><test-case name="23587AD_name00118 tokoe:valid" result="pass"/><test-case name="23588AD_name00118_p tokoe:valid" result="pass"/><test-case name="23589AD_scope00101m1 tokoe:valid" result="pass"/><test-case name="23590Positive tokoe:valid" result="pass"/><test-case name="23591AD_scope00101m2 tokoe:invalid" result="pass"/><test-case name="23592AD_targetNS00101m tokoe:valid" result="pass"/><test-case name="23593AD_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23594AD_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23595AD_targetNS00101m2_n tokoe:invalid" result="pass"/><test-case name="23596AD_targetNS00101m3_p tokoe:valid" result="pass"/><test-case name="23597AD_targetNS00101m3_n tokoe:invalid" result="pass"/><test-case name="23598AD_type00101m tokoe:valid" result="pass"/><test-case name="23599AD_type00101m1_p tokoe:valid" result="pass"/><test-case name="23600AD_type00101m1_n tokoe:invalid" result="pass"/><test-case name="23601AD_type00101m2_p tokoe:valid" result="pass"/><test-case name="23602AD_type00101m2_n tokoe:invalid" result="pass"/><test-case name="23603AD_type00102m tokoe:valid" result="pass"/><test-case name="23604AD_type00102m1_p tokoe:valid" result="pass"/><test-case name="23605AD_type00102m1_n tokoe:invalid" result="pass"/><test-case name="23606AD_type00102m2_p tokoe:valid" result="pass"/><test-case name="23607AD_type00102m2_n tokoe:invalid" result="pass"/><test-case name="23608AD_valConstr00101m tokoe:valid" result="pass"/><test-case name="23609AD_valConstr00101m1_p tokoe:valid" result="pass"/><test-case name="23610AD_valConstr00101m1_n tokoe:invalid" result="pass"/><test-case name="23611AD_valConstr00101m2_p tokoe:valid" result="pass"/><test-case name="23612AD_valConstr00101m2_n tokoe:invalid" result="pass"/><test-case name="23613AD_valConstr00201m1 tokoe:invalid" result="pass"/><test-case name="23614AD_valConstr00201m2 tokoe:invalid" result="pass"/><test-case name="23615AD_valConstr00201m3 tokoe:valid" result="pass"/><test-case name="23616Positive tokoe:valid" result="pass"/><test-case name="23617AD_valConstr00201m4 tokoe:invalid" result="pass"/><test-case name="23618AD_valConstr00201m5 tokoe:invalid" result="pass"/><test-case name="23619AU_attrDecl00101m1_p tokoe:valid" result="pass"/><test-case name="23620Positive tokoe:valid" result="pass"/><test-case name="23621AU_attrDecl00101m1_n tokoe:invalid" result="pass"/><test-case name="23622AU_required00101m1 tokoe:valid" result="pass"/><test-case name="23623Positive tokoe:valid" result="pass"/><test-case name="23624Negative tokoe:invalid" result="pass"/><test-case name="23625AU_valConstr00101m1 tokoe:valid" result="pass"/><test-case name="23626Positive tokoe:valid" result="pass"/><test-case name="23627Negative tokoe:invalid" result="pass"/><test-case name="23628abstract00101m1 tokoe:valid" result="pass"/><test-case name="23629Positive tokoe:valid" result="pass"/><test-case name="23630Negative tokoe:invalid" result="pass"/><test-case name="23631abstract00101m2 tokoe:valid" result="pass"/><test-case name="23632Negative tokoe:invalid" result="pass"/><test-case name="23633annotation00101m1 tokoe:valid" result="pass"/><test-case name="23634Positive tokoe:valid" result="pass"/><test-case name="23635annotation00101m2 tokoe:valid" result="pass"/><test-case name="23636Positive tokoe:valid" result="pass"/><test-case name="23637annotation00101m3 tokoe:invalid" result="pass"/><test-case name="23638annotation00101m4 tokoe:invalid" result="pass"/><test-case name="23639attrWildcard00101m1 tokoe:valid" result="pass"/><test-case name="23640Positive tokoe:valid" result="pass"/><test-case name="23641attributeUses00101m1 tokoe:valid" result="pass"/><test-case name="23642Positive tokoe:valid" result="pass"/><test-case name="23643Negative tokoe:invalid" result="pass"/><test-case name="23644baseTD00101m1 tokoe:valid" result="pass"/><test-case name="23645Positive tokoe:valid" result="pass"/><test-case name="23646Negative tokoe:invalid" result="pass"/><test-case name="23647baseTD00101m2 tokoe:valid" result="pass"/><test-case name="23648Positive tokoe:valid" result="pass"/><test-case name="23649Negative tokoe:invalid" result="pass"/><test-case name="23650baseTD00101m3 tokoe:valid" result="pass"/><test-case name="23651Positive tokoe:valid" result="pass"/><test-case name="23652Negative tokoe:invalid" result="pass"/><test-case name="23653baseTD00101m4 tokoe:valid" result="pass"/><test-case name="23654Positive tokoe:valid" result="pass"/><test-case name="23655Negative tokoe:invalid" result="pass"/><test-case name="23656contentType00101m tokoe:valid" result="pass"/><test-case name="23657contentType00101m1_p tokoe:valid" result="pass"/><test-case name="23658contentType00101m1_n tokoe:invalid" result="pass"/><test-case name="23659contentType00201m tokoe:valid" result="pass"/><test-case name="23660contentType00201m1_p tokoe:valid" result="pass"/><test-case name="23661contentType00201m1_n tokoe:invalid" result="pass"/><test-case name="23662contentType00301m tokoe:valid" result="pass"/><test-case name="23663contentType00301m1_p tokoe:valid" result="pass"/><test-case name="23664contentType00301m1_n tokoe:invalid" result="pass"/><test-case name="23665contentType00401m tokoe:valid" result="pass"/><test-case name="23666contentType00401m1_p tokoe:valid" result="pass"/><test-case name="23667contentType00401m1_n tokoe:invalid" result="pass"/><test-case name="23668derivationMethod00101m1 tokoe:valid" result="pass"/><test-case name="23669Positive tokoe:valid" result="pass"/><test-case name="23670Negative tokoe:invalid" result="pass"/><test-case name="23671derivationMethod00101m2 tokoe:valid" result="pass"/><test-case name="23672Positive tokoe:valid" result="pass"/><test-case name="23673Negative tokoe:invalid" result="pass"/><test-case name="23674derivationMethod00102m1 tokoe:valid" result="pass"/><test-case name="23675Positive tokoe:valid" result="pass"/><test-case name="23676Negative tokoe:invalid" result="pass"/><test-case name="23677derivationMethod00102m2 tokoe:valid" result="pass"/><test-case name="23678Positive tokoe:valid" result="pass"/><test-case name="23679Negative tokoe:invalid" result="pass"/><test-case name="23680final00101m2 tokoe:invalid" result="pass"/><test-case name="23681final00101m3 tokoe:valid" result="pass"/><test-case name="23682Positive tokoe:valid" result="pass"/><test-case name="23683Negative tokoe:invalid" result="pass"/><test-case name="23684final00101m4 tokoe:invalid" result="pass"/><test-case name="23685final00101m5 tokoe:invalid" result="pass"/><test-case name="23686final00101m6 tokoe:invalid" result="pass"/><test-case name="23687name00101m tokoe:valid" result="pass"/><test-case name="23688name00101m1_p tokoe:valid" result="pass"/><test-case name="23689name00101m1_n tokoe:invalid" result="pass"/><test-case name="23690pSubstitutions00101m tokoe:valid" result="pass"/><test-case name="23691pSubstitutions00101m1_p tokoe:valid" result="pass"/><test-case name="23692pSubstitutions00101m1_n tokoe:invalid" result="pass"/><test-case name="23693pSubstitutions00101m2_p tokoe:valid" result="pass"/><test-case name="23694pSubstitutions00101m2_n tokoe:invalid" result="pass"/><test-case name="23695pSubstitutions00102m tokoe:valid" result="pass"/><test-case name="23696pSubstitutions00102m1_p tokoe:valid" result="pass"/><test-case name="23697pSubstitutions00102m1_n tokoe:invalid" result="pass"/><test-case name="23698pSubstitutions00102m2_p tokoe:valid" result="pass"/><test-case name="23699pSubstitutions00102m2_n tokoe:invalid" result="pass"/><test-case name="23700pSubstitutions00103m tokoe:valid" result="pass"/><test-case name="23701pSubstitutions00103m1_p tokoe:valid" result="pass"/><test-case name="23702pSubstitutions00103m1_n tokoe:invalid" result="pass"/><test-case name="23703pSubstitutions00103m2_p tokoe:valid" result="pass"/><test-case name="23704pSubstitutions00103m2_n tokoe:invalid" result="pass"/><test-case name="23705pSubstitutions00104m tokoe:valid" result="pass"/><test-case name="23706pSubstitutions00104m1_p tokoe:valid" result="pass"/><test-case name="23707pSubstitutions00104m1_n tokoe:invalid" result="pass"/><test-case name="23708pSubstitutions00104m2_p tokoe:valid" result="pass"/><test-case name="23709pSubstitutions00104m2_n tokoe:invalid" result="pass"/><test-case name="23710targetNS00101m tokoe:valid" result="pass"/><test-case name="23711targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23712targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23713abstract00101m tokoe:valid" result="pass"/><test-case name="23714abstract00101m1_p tokoe:valid" result="pass"/><test-case name="23715abstract00101m1_n tokoe:invalid" result="pass"/><test-case name="23716abstract00201m1 tokoe:valid" result="pass"/><test-case name="23717Negative tokoe:invalid" result="pass"/><test-case name="23718abstract00201m2 tokoe:valid" result="pass"/><test-case name="23719Positive tokoe:valid" result="pass"/><test-case name="23720abstract00201m3 tokoe:valid" result="pass"/><test-case name="23721Positive tokoe:valid" result="pass"/><test-case name="23722annotation00101m1 tokoe:valid" result="pass"/><test-case name="23723Positive tokoe:valid" result="pass"/><test-case name="23724annotation00101m2 tokoe:invalid" result="pass"/><test-case name="23725annotation00101m3 tokoe:valid" result="pass"/><test-case name="23726Positive tokoe:valid" result="pass"/><test-case name="23727annotation00101m4 tokoe:invalid" result="pass"/><test-case name="23728disallowedSubst00101m tokoe:valid" result="pass"/><test-case name="23729disallowedSubst00101m1_p tokoe:valid" result="pass"/><test-case name="23730disallowedSubst00101m1_n tokoe:invalid" result="pass"/><test-case name="23731disallowedSubst00102m1 tokoe:valid" result="pass"/><test-case name="23732Positive tokoe:valid" result="pass"/><test-case name="23733disallowedSubst00102m2 tokoe:valid" result="pass"/><test-case name="23734Negative tokoe:invalid" result="pass"/><test-case name="23735disallowedSubst00105m tokoe:valid" result="pass"/><test-case name="23736disallowedSubst00105m1_p tokoe:valid" result="pass"/><test-case name="23737disallowedSubst00105m1_n tokoe:invalid" result="pass"/><test-case name="23738disallowedSubst00106m1 tokoe:valid" result="pass"/><test-case name="23739Positive tokoe:valid" result="pass"/><test-case name="23740disallowedSubst00106m2 tokoe:valid" result="pass"/><test-case name="23741Negative tokoe:invalid" result="pass"/><test-case name="23742disallowedSubst00202m1 tokoe:invalid" result="pass"/><test-case name="23743disallowedSubst00202m10 tokoe:invalid" result="pass"/><test-case name="23744disallowedSubst00202m11 tokoe:invalid" result="pass"/><test-case name="23745disallowedSubst00202m12 tokoe:valid" result="pass"/><test-case name="23746Positive tokoe:valid" result="pass"/><test-case name="23747disallowedSubst00202m2 tokoe:invalid" result="pass"/><test-case name="23748disallowedSubst00202m3 tokoe:invalid" result="pass"/><test-case name="23749disallowedSubst00202m4 tokoe:invalid" result="pass"/><test-case name="23750disallowedSubst00202m5 tokoe:invalid" result="pass"/><test-case name="23751disallowedSubst00202m6 tokoe:invalid" result="pass"/><test-case name="23752disallowedSubst00202m7 tokoe:invalid" result="pass"/><test-case name="23753disallowedSubst00202m8 tokoe:invalid" result="pass"/><test-case name="23754disallowedSubst00202m9 tokoe:invalid" result="pass"/><test-case name="23755disallowedSubst00301m1 tokoe:valid" result="pass"/><test-case name="23756Positive tokoe:valid" result="pass"/><test-case name="23757disallowedSubst00301m2 tokoe:valid" result="pass"/><test-case name="23758Negative tokoe:invalid" result="pass"/><test-case name="23759disallowedSubst00401m1 tokoe:valid" result="pass"/><test-case name="23760Positive tokoe:valid" result="pass"/><test-case name="23761disallowedSubst00401m2 tokoe:valid" result="pass"/><test-case name="23762Negative tokoe:invalid" result="pass"/><test-case name="23763disallowedSubst00501m1 tokoe:valid" result="pass"/><test-case name="23764Positive tokoe:valid" result="pass"/><test-case name="23765disallowedSubst00501m2 tokoe:valid" result="pass"/><test-case name="23766Negative tokoe:invalid" result="pass"/><test-case name="23767disallowedSubst00502m1 tokoe:valid" result="pass"/><test-case name="23768Positive tokoe:valid" result="pass"/><test-case name="23769disallowedSubst00502m2 tokoe:valid" result="pass"/><test-case name="23770Positive tokoe:valid" result="pass"/><test-case name="23771disallowedSubst00502m3 tokoe:valid" result="pass"/><test-case name="23772Negative tokoe:invalid" result="pass"/><test-case name="23773disallowedSubst00502m4 tokoe:valid" result="pass"/><test-case name="23774Negative tokoe:invalid" result="pass"/><test-case name="23775disallowedSubst00503m1 tokoe:valid" result="pass"/><test-case name="23776Positive tokoe:valid" result="pass"/><test-case name="23777disallowedSubst00503m2 tokoe:valid" result="pass"/><test-case name="23778Positive tokoe:valid" result="pass"/><test-case name="23779disallowedSubst00503m3 tokoe:valid" result="pass"/><test-case name="23780Negative tokoe:invalid" result="pass"/><test-case name="23781disallowedSubst00503m4 tokoe:valid" result="pass"/><test-case name="23782Negative tokoe:invalid" result="pass"/><test-case name="23783disallowedSubst00503m5 tokoe:valid" result="pass"/><test-case name="23784Negative tokoe:invalid" result="pass"/><test-case name="23785idConstrDefs00101m tokoe:valid" result="pass"/><test-case name="23786idConstrDefs00101m1_p tokoe:valid" result="pass"/><test-case name="23787idConstrDefs00101m1_n tokoe:invalid" result="pass"/><test-case name="23788idConstrDefs00201m tokoe:valid" result="pass"/><test-case name="23789idConstrDefs00201m1_p tokoe:valid" result="pass"/><test-case name="23790idConstrDefs00201m2_n tokoe:invalid" result="pass"/><test-case name="23791idConstrDefs00201m3_n tokoe:invalid" result="pass"/><test-case name="23792idConstrDefs00201m4_n tokoe:invalid" result="pass"/><test-case name="23793idConstrDefs00202m tokoe:valid" result="pass"/><test-case name="23794idConstrDefs00202m1_p tokoe:valid" result="pass"/><test-case name="23795idConstrDefs00202m1_n tokoe:invalid" result="pass"/><test-case name="23796idConstrDefs00203m tokoe:valid" result="pass"/><test-case name="23797idConstrDefs00203m1_p tokoe:valid" result="pass"/><test-case name="23798idConstrDefs00203m1_n tokoe:invalid" result="pass"/><test-case name="23799idConstrDefs00204m tokoe:valid" result="pass"/><test-case name="23800idConstrDefs00204m1_p tokoe:valid" result="pass"/><test-case name="23801idConstrDefs00204m1_n tokoe:invalid" result="pass"/><test-case name="23802idConstrDefs00301m tokoe:valid" result="pass"/><test-case name="23803idConstrDefs00301m1_p tokoe:valid" result="pass"/><test-case name="23804idConstrDefs00301m2_n tokoe:invalid" result="pass"/><test-case name="23805idConstrDefs00301m3_n tokoe:invalid" result="pass"/><test-case name="23806idConstrDefs00301m4_n tokoe:invalid" result="pass"/><test-case name="23807idConstrDefs00302m tokoe:valid" result="pass"/><test-case name="23808idConstrDefs00302m1_p tokoe:valid" result="pass"/><test-case name="23809idConstrDefs00302m2_n tokoe:invalid" result="pass"/><test-case name="23810idConstrDefs00302m3_n tokoe:invalid" result="pass"/><test-case name="23811idConstrDefs00302m4_n tokoe:invalid" result="pass"/><test-case name="23812idConstrDefs00401m tokoe:valid" result="pass"/><test-case name="23813idConstrDefs00401m1_p tokoe:valid" result="pass"/><test-case name="23814idConstrDefs00402m tokoe:valid" result="pass"/><test-case name="23815idConstrDefs00402m1_p tokoe:valid" result="pass"/><test-case name="23816idConstrDefs00402m1_n tokoe:invalid" result="pass"/><test-case name="23817idConstrDefs00403m tokoe:valid" result="pass"/><test-case name="23818idConstrDefs00403m1_p tokoe:valid" result="pass"/><test-case name="23819idConstrDefs00403m1_n tokoe:invalid" result="pass"/><test-case name="23820idConstrDefs00501m tokoe:valid" result="pass"/><test-case name="23821idConstrDefs00501m1_p tokoe:valid" result="pass"/><test-case name="23822idConstrDefs00501m1_n tokoe:invalid" result="pass"/><test-case name="23823maxOccurs00101m tokoe:valid" result="pass"/><test-case name="23824maxOccurs00101m1_p tokoe:valid" result="pass"/><test-case name="23825maxOccurs00101m1_n tokoe:invalid" result="pass"/><test-case name="23826maxOccurs00201m tokoe:valid" result="pass"/><test-case name="23827maxOccurs00201m1_p tokoe:valid" result="pass"/><test-case name="23828maxOccurs00201m1_n tokoe:invalid" result="pass"/><test-case name="23829minOccurs00101m tokoe:valid" result="pass"/><test-case name="23830minOccurs00101m1_p tokoe:valid" result="pass"/><test-case name="23831minOccurs00101m1_n tokoe:invalid" result="pass"/><test-case name="23832minOccurs00201m tokoe:valid" result="pass"/><test-case name="23833minOccurs00201m1_p tokoe:valid" result="pass"/><test-case name="23834minOccurs00201m1_n tokoe:invalid" result="pass"/><test-case name="23835name00101m tokoe:valid" result="pass"/><test-case name="23836name00101m1_p tokoe:valid" result="pass"/><test-case name="23837name00101m1_n tokoe:invalid" result="pass"/><test-case name="23838name00201m1 tokoe:valid" result="pass"/><test-case name="23839Positive tokoe:valid" result="pass"/><test-case name="23840name00201m2 tokoe:valid" result="pass"/><test-case name="23841Positive tokoe:valid" result="pass"/><test-case name="23842name00301m1 tokoe:valid" result="pass"/><test-case name="23843Positive tokoe:valid" result="pass"/><test-case name="23844name00401m1 tokoe:valid" result="pass"/><test-case name="23845Positive tokoe:valid" result="pass"/><test-case name="23846name00401m2 tokoe:valid" result="pass"/><test-case name="23847Positive tokoe:valid" result="pass"/><test-case name="23848name00401m3 tokoe:invalid" result="pass"/><test-case name="23849name00401m4 tokoe:invalid" result="pass"/><test-case name="23850name00401m5 tokoe:invalid" result="pass"/><test-case name="23851name00501m1 tokoe:valid" result="pass"/><test-case name="23852Positive tokoe:valid" result="pass"/><test-case name="23853name00501m10 tokoe:invalid" result="pass"/><test-case name="23854name00501m11 tokoe:valid" result="pass"/><test-case name="23855Positive tokoe:valid" result="pass"/><test-case name="23856name00501m12 tokoe:invalid" result="pass"/><test-case name="23857name00501m13 tokoe:valid" result="pass"/><test-case name="23858Positive tokoe:valid" result="pass"/><test-case name="23859name00501m14 tokoe:valid" result="pass"/><test-case name="23860Positive tokoe:valid" result="pass"/><test-case name="23861name00501m15 tokoe:valid" result="pass"/><test-case name="23862Positive tokoe:valid" result="pass"/><test-case name="23863name00501m2 tokoe:invalid" result="pass"/><test-case name="23864name00501m3 tokoe:valid" result="pass"/><test-case name="23865Positive tokoe:valid" result="pass"/><test-case name="23866name00501m4 tokoe:invalid" result="pass"/><test-case name="23867name00501m5 tokoe:valid" result="pass"/><test-case name="23868Positive tokoe:valid" result="pass"/><test-case name="23869name00501m6 tokoe:invalid" result="pass"/><test-case name="23870name00501m7 tokoe:valid" result="pass"/><test-case name="23871Positive tokoe:valid" result="pass"/><test-case name="23872name00501m8 tokoe:invalid" result="pass"/><test-case name="23873name00501m9 tokoe:valid" result="pass"/><test-case name="23874Positive tokoe:valid" result="pass"/><test-case name="23875name00502m1 tokoe:valid" result="pass"/><test-case name="23876Positive tokoe:valid" result="pass"/><test-case name="23877name00502m2 tokoe:invalid" result="pass"/><test-case name="23878name00503m1 tokoe:valid" result="pass"/><test-case name="23879Positive tokoe:valid" result="pass"/><test-case name="23880name00503m2 tokoe:invalid" result="pass"/><test-case name="23881name00504m1 tokoe:valid" result="pass"/><test-case name="23882Positive tokoe:valid" result="pass"/><test-case name="23883name00504m2 tokoe:invalid" result="pass"/><test-case name="23884name00504m3 tokoe:valid" result="pass"/><test-case name="23885Positive tokoe:valid" result="pass"/><test-case name="23886name00504m4 tokoe:invalid" result="pass"/><test-case name="23887name00505m1 tokoe:valid" result="pass"/><test-case name="23888Positive tokoe:valid" result="pass"/><test-case name="23889name00505m2 tokoe:invalid" result="pass"/><test-case name="23890name00601m tokoe:valid" result="pass"/><test-case name="23891name00601m1_p tokoe:valid" result="pass"/><test-case name="23892name00601m1_n tokoe:invalid" result="pass"/><test-case name="23893name00801 tokoe:valid" result="pass"/><test-case name="23894name00801_p tokoe:valid" result="pass"/><test-case name="23895name00802 tokoe:valid" result="pass"/><test-case name="23896name00802_p tokoe:valid" result="pass"/><test-case name="23897name00803 tokoe:valid" result="pass"/><test-case name="23898name00803_p tokoe:valid" result="pass"/><test-case name="23899name00804 tokoe:valid" result="pass"/><test-case name="23900name00804_p tokoe:valid" result="pass"/><test-case name="23901name00805 tokoe:valid" result="pass"/><test-case name="23902name00805_p tokoe:valid" result="pass"/><test-case name="23903nillable00101m1 tokoe:valid" result="pass"/><test-case name="23904Positive tokoe:valid" result="pass"/><test-case name="23905nillable00101m2 tokoe:valid" result="pass"/><test-case name="23906Negative tokoe:invalid" result="pass"/><test-case name="23907nillable00102m tokoe:valid" result="pass"/><test-case name="23908nillable00102m1_p tokoe:valid" result="pass"/><test-case name="23909nillable00102m1_n tokoe:invalid" result="pass"/><test-case name="23910nillable00201m tokoe:valid" result="pass"/><test-case name="23911nillable00201m1_n tokoe:invalid" result="pass"/><test-case name="23912nillable00201m2_n tokoe:invalid" result="pass"/><test-case name="23913nillable00201m3_p tokoe:valid" result="pass"/><test-case name="23914nillable00301m tokoe:valid" result="pass"/><test-case name="23915nillable00301m1_p tokoe:valid" result="pass"/><test-case name="23916nillable00301m1_n tokoe:invalid" result="pass"/><test-case name="23917nillable00302m tokoe:valid" result="pass"/><test-case name="23918nillable00302m1_p tokoe:valid" result="pass"/><test-case name="23919nillable00302m1_n tokoe:invalid" result="pass"/><test-case name="23920nillable00401m1 tokoe:valid" result="pass"/><test-case name="23921Positive tokoe:valid" result="pass"/><test-case name="23922nillable00401m2 tokoe:valid" result="pass"/><test-case name="23923Positive tokoe:valid" result="pass"/><test-case name="23924scope00101m tokoe:valid" result="pass"/><test-case name="23925scope00101m1_p tokoe:valid" result="pass"/><test-case name="23926scope00201m1 tokoe:valid" result="pass"/><test-case name="23927Positive tokoe:valid" result="pass"/><test-case name="23928scope00201m2 tokoe:invalid" result="pass"/><test-case name="23929scope00301m tokoe:valid" result="pass"/><test-case name="23930scope00301m1_p tokoe:valid" result="pass"/><test-case name="23931substGrpAffil00101m tokoe:valid" result="pass"/><test-case name="23932substGrpAffil00101m1_p tokoe:valid" result="pass"/><test-case name="23933substGrpAffil00101m1_n tokoe:invalid" result="pass"/><test-case name="23934substGrpAffil00201m tokoe:valid" result="pass"/><test-case name="23935substGrpAffil00201m1_p tokoe:valid" result="pass"/><test-case name="23936substGrpAffil00201m1_n tokoe:invalid" result="pass"/><test-case name="23937substGrpExcl00202m1 tokoe:valid" result="pass"/><test-case name="23938Positive tokoe:valid" result="pass"/><test-case name="23939substGrpExcl00202m2 tokoe:invalid" result="pass"/><test-case name="23940substGrpExcl00301m1 tokoe:valid" result="pass"/><test-case name="23941Positive tokoe:valid" result="pass"/><test-case name="23942substGrpExcl00301m3 tokoe:valid" result="pass"/><test-case name="23943Positive tokoe:valid" result="pass"/><test-case name="23944substGrpExcl00303m1 tokoe:valid" result="pass"/><test-case name="23945Positive tokoe:valid" result="pass"/><test-case name="23946substGrpExcl00303m2 tokoe:invalid" result="pass"/><test-case name="23947substGrpExcl00303m3 tokoe:valid" result="pass"/><test-case name="23948Positive tokoe:valid" result="pass"/><test-case name="23949substGrpExcl00401m1 tokoe:valid" result="pass"/><test-case name="23950Positive tokoe:valid" result="pass"/><test-case name="23951substGrpExcl00401m2 tokoe:valid" result="pass"/><test-case name="23952Positive tokoe:valid" result="pass"/><test-case name="23953substGrpExcl00401m3 tokoe:valid" result="pass"/><test-case name="23954Positive tokoe:valid" result="pass"/><test-case name="23955substGrpExcl00401m4 tokoe:valid" result="pass"/><test-case name="23956Positive tokoe:valid" result="pass"/><test-case name="23957substGrpExcl00401m5 tokoe:valid" result="pass"/><test-case name="23958Positive tokoe:valid" result="pass"/><test-case name="23959substGrpExcl00401m6 tokoe:valid" result="pass"/><test-case name="23960Positive tokoe:valid" result="pass"/><test-case name="23961substGrpExcl00402m1 tokoe:invalid" result="pass"/><test-case name="23962substGrpExcl00402m2 tokoe:invalid" result="pass"/><test-case name="23963substGrpExcl00402m3 tokoe:invalid" result="pass"/><test-case name="23964substGrpExcl00402m4 tokoe:invalid" result="pass"/><test-case name="23965substGrpExcl00402m5 tokoe:invalid" result="pass"/><test-case name="23966substGrpExcl00402m6 tokoe:invalid" result="pass"/><test-case name="23967substGrpExcl00402m7 tokoe:valid" result="pass"/><test-case name="23968Positive tokoe:valid" result="pass"/><test-case name="23969targetNS00101m tokoe:valid" result="pass"/><test-case name="23970targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23971targetNS00201m tokoe:valid" result="pass"/><test-case name="23972targetNS00201m1_p tokoe:valid" result="pass"/><test-case name="23973targetNS00201m1_n tokoe:invalid" result="pass"/><test-case name="23974targetNS00301m1 tokoe:valid" result="pass"/><test-case name="23975Positive tokoe:valid" result="pass"/><test-case name="23976Negative tokoe:invalid" result="pass"/><test-case name="23977targetNS00301m2 tokoe:valid" result="pass"/><test-case name="23978Positive tokoe:valid" result="pass"/><test-case name="23979Negative tokoe:invalid" result="pass"/><test-case name="23980targetNS00301m3 tokoe:valid" result="pass"/><test-case name="23981Positive tokoe:valid" result="pass"/><test-case name="23982Negative tokoe:invalid" result="pass"/><test-case name="23983targetNS00302m1 tokoe:valid" result="pass"/><test-case name="23984Positive tokoe:valid" result="pass"/><test-case name="23985Negative tokoe:invalid" result="pass"/><test-case name="23986targetNS00302m2 tokoe:valid" result="pass"/><test-case name="23987Positive tokoe:valid" result="pass"/><test-case name="23988Negative tokoe:invalid" result="pass"/><test-case name="23989targetNS00302m3 tokoe:valid" result="pass"/><test-case name="23990Positive tokoe:valid" result="pass"/><test-case name="23991Negative tokoe:invalid" result="pass"/><test-case name="23992targetNS00303m1 tokoe:valid" result="pass"/><test-case name="23993Positive tokoe:valid" result="pass"/><test-case name="23994Negative tokoe:invalid" result="pass"/><test-case name="23995targetNS00303m2 tokoe:valid" result="pass"/><test-case name="23996Positive tokoe:valid" result="pass"/><test-case name="23997Negative tokoe:invalid" result="pass"/><test-case name="23998targetNS00303m3 tokoe:valid" result="pass"/><test-case name="23999Positive tokoe:valid" result="pass"/><test-case name="24000Negative tokoe:invalid" result="pass"/><test-case name="24001targetNS00401m tokoe:valid" result="pass"/><test-case name="24002targetNS00401m1_p tokoe:valid" result="pass"/><test-case name="24003targetNS00401m1_n tokoe:invalid" result="pass"/><test-case name="24004targetNS00402m tokoe:valid" result="pass"/><test-case name="24005targetNS00402m1_p tokoe:valid" result="pass"/><test-case name="24006targetNS00402m1_n tokoe:invalid" result="pass"/><test-case name="24007term00101m tokoe:valid" result="pass"/><test-case name="24008term00101m1_p tokoe:valid" result="pass"/><test-case name="24009term00101m1_n tokoe:invalid" result="pass"/><test-case name="24010typeDef00101m tokoe:valid" result="pass"/><test-case name="24011typeDef00101m1_p tokoe:valid" result="pass"/><test-case name="24012typeDef00101m1_n tokoe:invalid" result="pass"/><test-case name="24013typeDef00201m tokoe:valid" result="pass"/><test-case name="24014typeDef00201m1_p tokoe:valid" result="pass"/><test-case name="24015typeDef00201m1_n tokoe:invalid" result="pass"/><test-case name="24016typeDef00202m tokoe:valid" result="pass"/><test-case name="24017typeDef00202m1_p tokoe:valid" result="pass"/><test-case name="24018typeDef00202m1_n tokoe:invalid" result="pass"/><test-case name="24019typeDef00203m tokoe:valid" result="pass"/><test-case name="24020typeDef00203m1_p tokoe:valid" result="pass"/><test-case name="24021typeDef00203m1_n tokoe:invalid" result="pass"/><test-case name="24022typeDef00204m tokoe:valid" result="pass"/><test-case name="24023typeDef00204m1_p tokoe:valid" result="pass"/><test-case name="24024typeDef00204m1_n tokoe:invalid" result="pass"/><test-case name="24025typeDef00205m tokoe:valid" result="pass"/><test-case name="24026typeDef00205m1_p tokoe:valid" result="pass"/><test-case name="24027typeDef00301m tokoe:valid" result="pass"/><test-case name="24028typeDef00301m1_p tokoe:valid" result="pass"/><test-case name="24029typeDef00301m1_n tokoe:invalid" result="pass"/><test-case name="24030typeDef00401m tokoe:valid" result="pass"/><test-case name="24031typeDef00401m1_p tokoe:valid" result="pass"/><test-case name="24032typeDef00401m1_n tokoe:invalid" result="pass"/><test-case name="24033typeDef00402m tokoe:valid" result="pass"/><test-case name="24034typeDef00402m1_p tokoe:valid" result="pass"/><test-case name="24035typeDef00402m1_n tokoe:invalid" result="pass"/><test-case name="24036typeDef00403m tokoe:valid" result="pass"/><test-case name="24037typeDef00403m1_p tokoe:valid" result="pass"/><test-case name="24038typeDef00501m1 tokoe:valid" result="pass"/><test-case name="24039Positive tokoe:valid" result="pass"/><test-case name="24040typeDef00501m2 tokoe:invalid" result="pass"/><test-case name="24041typeDef00502m1 tokoe:valid" result="pass"/><test-case name="24042Positive tokoe:valid" result="pass"/><test-case name="24043typeDef00502m2 tokoe:invalid" result="pass"/><test-case name="24044typeDef00601m tokoe:valid" result="pass"/><test-case name="24045typeDef00601m1_p tokoe:valid" result="pass"/><test-case name="24046typeDef00701m tokoe:valid" result="pass"/><test-case name="24047typeDef00701m1_p tokoe:valid" result="pass"/><test-case name="24048typeDef00701m1_n tokoe:invalid" result="pass"/><test-case name="24049typeDef00801m1 tokoe:valid" result="pass"/><test-case name="24050Positive tokoe:valid" result="pass"/><test-case name="24051typeDef00801m2 tokoe:valid" result="pass"/><test-case name="24052Negative tokoe:invalid" result="pass"/><test-case name="24053typeDef00801m3 tokoe:valid" result="pass"/><test-case name="24054Negative tokoe:invalid" result="pass"/><test-case name="24055typeDef00802m1 tokoe:valid" result="pass"/><test-case name="24056Positive tokoe:valid" result="pass"/><test-case name="24057Negative tokoe:invalid" result="pass"/><test-case name="24058typeDef00802m2 tokoe:valid" result="pass"/><test-case name="24059Negative tokoe:invalid" result="pass"/><test-case name="24060typeDef00901m1 tokoe:valid" result="pass"/><test-case name="24061Positive tokoe:valid" result="pass"/><test-case name="24062Negative tokoe:invalid" result="pass"/><test-case name="24063typeDef01101m1 tokoe:valid" result="pass"/><test-case name="24064Positive tokoe:valid" result="pass"/><test-case name="24065Negative tokoe:invalid" result="pass"/><test-case name="24066typeDef01201m1 tokoe:valid" result="pass"/><test-case name="24067Positive tokoe:valid" result="pass"/><test-case name="24068Negative tokoe:invalid" result="pass"/><test-case name="24069typeDef01202m1 tokoe:valid" result="pass"/><test-case name="24070Positive tokoe:valid" result="pass"/><test-case name="24071Negative tokoe:invalid" result="pass"/><test-case name="24072typeDef01301m1 tokoe:valid" result="pass"/><test-case name="24073Positive tokoe:valid" result="pass"/><test-case name="24074Negative tokoe:invalid" result="pass"/><test-case name="24075typeDef01401m1 tokoe:valid" result="pass"/><test-case name="24076Positive tokoe:valid" result="pass"/><test-case name="24077Negative tokoe:invalid" result="pass"/><test-case name="24078typeDef01501m1 tokoe:valid" result="pass"/><test-case name="24079Positive tokoe:valid" result="pass"/><test-case name="24080Negative tokoe:invalid" result="pass"/><test-case name="24081valueConstraint00101m1 tokoe:valid" result="pass"/><test-case name="24082Positive tokoe:valid" result="pass"/><test-case name="24083valueConstraint00101m2 tokoe:invalid" result="pass"/><test-case name="24084valueConstraint00201m tokoe:valid" result="pass"/><test-case name="24085valueConstraint00201m1_p tokoe:valid" result="pass"/><test-case name="24086valueConstraint00201m1_n tokoe:invalid" result="pass"/><test-case name="24087valueConstraint00301m1 tokoe:valid" result="pass"/><test-case name="24088Positive tokoe:valid" result="pass"/><test-case name="24089valueConstraint00301m2 tokoe:valid" result="pass"/><test-case name="24090Positive tokoe:valid" result="pass"/><test-case name="24091valueConstraint00301m3 tokoe:invalid" result="pass"/><test-case name="24092valueConstraint00301m4 tokoe:invalid" result="pass"/><test-case name="24093valueConstraint00301m5 tokoe:invalid" result="pass"/><test-case name="24094valueConstraint00401m1 tokoe:valid" result="pass"/><test-case name="24095Positive tokoe:valid" result="pass"/><test-case name="24096valueConstraint00401m2 tokoe:invalid" result="pass"/><test-case name="24097valueConstraint00401m3 tokoe:valid" result="pass"/><test-case name="24098Positive tokoe:valid" result="pass"/><test-case name="24099valueConstraint00401m4 tokoe:valid" result="pass"/><test-case name="24100Positive tokoe:valid" result="pass"/><test-case name="24101valueConstraint00401m5 tokoe:valid" result="pass"/><test-case name="24102Positive tokoe:valid" result="pass"/><test-case name="24103valueConstraint00401m6 tokoe:invalid" result="pass"/><test-case name="24104valueConstraint00401m7 tokoe:valid" result="pass"/><test-case name="24105Positive tokoe:valid" result="pass"/><test-case name="24106valueConstraint00401m8 tokoe:invalid" result="pass"/><test-case name="24107valueConstraint00401m9 tokoe:valid" result="pass"/><test-case name="24108Positive tokoe:valid" result="pass"/><test-case name="24109valueConstraint00402m1 tokoe:valid" result="pass"/><test-case name="24110Positive tokoe:valid" result="pass"/><test-case name="24111valueConstraint00402m2 tokoe:invalid" result="pass"/><test-case name="24112valueConstraint00402m3 tokoe:valid" result="pass"/><test-case name="24113Positive tokoe:valid" result="pass"/><test-case name="24114valueConstraint00402m4 tokoe:valid" result="pass"/><test-case name="24115Positive tokoe:valid" result="pass"/><test-case name="24116valueConstraint00402m5 tokoe:valid" result="pass"/><test-case name="24117Positive tokoe:valid" result="pass"/><test-case name="24118valueConstraint00402m6 tokoe:invalid" result="pass"/><test-case name="24119valueConstraint00402m7 tokoe:valid" result="pass"/><test-case name="24120Positive tokoe:valid" result="pass"/><test-case name="24121valueConstraint00402m8 tokoe:invalid" result="pass"/><test-case name="24122valueConstraint00402m9 tokoe:valid" result="pass"/><test-case name="24123Positive tokoe:valid" result="pass"/><test-case name="24124valueConstraint00501m1 tokoe:valid" result="pass"/><test-case name="24125Positive tokoe:valid" result="pass"/><test-case name="24126valueConstraint00501m2 tokoe:valid" result="pass"/><test-case name="24127Positive tokoe:valid" result="pass"/><test-case name="24128valueConstraint00501m3 tokoe:valid" result="pass"/><test-case name="24129Negative tokoe:invalid" result="pass"/><test-case name="24130valueConstraint00501m4 tokoe:valid" result="pass"/><test-case name="24131Positive tokoe:valid" result="pass"/><test-case name="24132valueConstraint00501m5 tokoe:valid" result="pass"/><test-case name="24133Positive tokoe:valid" result="pass"/><test-case name="24134valueConstraint00501m6 tokoe:valid" result="pass"/><test-case name="24135Negative tokoe:invalid" result="pass"/><test-case name="24136valueConstraint00601m1 tokoe:valid" result="pass"/><test-case name="24137Positive tokoe:valid" result="pass"/><test-case name="24138valueConstraint00601m2 tokoe:invalid" result="pass"/><test-case name="24139valueConstraint00601m3 tokoe:valid" result="pass"/><test-case name="24140Positive tokoe:valid" result="pass"/><test-case name="24141valueConstraint00601m4 tokoe:invalid" result="pass"/><test-case name="24142valueConstraint00601m5 tokoe:valid" result="pass"/><test-case name="24143Positive tokoe:valid" result="pass"/><test-case name="24144valueConstraint00601m6 tokoe:invalid" result="pass"/><test-case name="24145valueConstraint00601m7 tokoe:valid" result="pass"/><test-case name="24146Positive tokoe:valid" result="pass"/><test-case name="24147valueConstraint00601m8 tokoe:invalid" result="pass"/><test-case name="24148valueConstraint00701m1 tokoe:valid" result="pass"/><test-case name="24149Positive tokoe:valid" result="pass"/><test-case name="24150Negative tokoe:invalid" result="pass"/><test-case name="24151valueConstraint00801m1 tokoe:valid" result="pass"/><test-case name="24152Positive tokoe:valid" result="pass"/><test-case name="24153Negative tokoe:invalid" result="pass"/><test-case name="24154valueConstraint00901m1 tokoe:valid" result="pass"/><test-case name="24155Positive tokoe:valid" result="pass"/><test-case name="24156Negative tokoe:invalid" result="pass"/><test-case name="24157valueConstraint01001m1 tokoe:valid" result="pass"/><test-case name="24158Positive tokoe:valid" result="pass"/><test-case name="24159valueConstraint01001m2 tokoe:invalid" result="pass"/><test-case name="24160valueConstraint01001m3 tokoe:invalid" result="pass"/><test-case name="24161valueConstraint01001m4 tokoe:valid" result="pass"/><test-case name="24162Positive tokoe:valid" result="pass"/><test-case name="24163valueConstraint01001m5 tokoe:invalid" result="pass"/><test-case name="24164valueConstraint01001m6 tokoe:invalid" result="pass"/><test-case name="24165valueConstraint01001m7 tokoe:valid" result="pass"/><test-case name="24166Positive tokoe:valid" result="pass"/><test-case name="24167valueConstraint01001m8 tokoe:valid" result="pass"/><test-case name="24168Positive tokoe:valid" result="pass"/><test-case name="24169valueConstraint01101m1 tokoe:valid" result="pass"/><test-case name="24170Positive tokoe:valid" result="pass"/><test-case name="24171valueConstraint01101m2 tokoe:valid" result="pass"/><test-case name="24172Negative tokoe:invalid" result="pass"/><test-case name="24173valueConstraint01101m3 tokoe:valid" result="pass"/><test-case name="24174Positive tokoe:valid" result="pass"/><test-case name="24175valueConstraint01101m4 tokoe:valid" result="pass"/><test-case name="24176Negative tokoe:invalid" result="pass"/><test-case name="24177annotation00101m1 tokoe:valid" result="pass"/><test-case name="24178Positive tokoe:valid" result="pass"/><test-case name="24179annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24180annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24181annotation00101m4 tokoe:valid" result="pass"/><test-case name="24182Positive tokoe:valid" result="pass"/><test-case name="24183annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24184annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24185fields00101m1 tokoe:valid" result="pass"/><test-case name="24186Positive tokoe:valid" result="pass"/><test-case name="24187fields00201m1 tokoe:valid" result="pass"/><test-case name="24188Positive tokoe:valid" result="pass"/><test-case name="24189fields00201m2 tokoe:valid" result="pass"/><test-case name="24190Negative tokoe:invalid" result="pass"/><test-case name="24191fields00201m3 tokoe:valid" result="pass"/><test-case name="24192Negative tokoe:invalid" result="pass"/><test-case name="24193fields00201m4 tokoe:valid" result="pass"/><test-case name="24194Positive tokoe:valid" result="pass"/><test-case name="24195fields00201m5 tokoe:valid" result="pass"/><test-case name="24196Negative tokoe:invalid" result="pass"/><test-case name="24197fields00202m1 tokoe:valid" result="pass"/><test-case name="24198Positive tokoe:valid" result="pass"/><test-case name="24199fields00202m2 tokoe:valid" result="pass"/><test-case name="24200Positive tokoe:valid" result="pass"/><test-case name="24201fields00202m3 tokoe:valid" result="pass"/><test-case name="24202Positive tokoe:valid" result="pass"/><test-case name="24203fields00202m4 tokoe:valid" result="pass"/><test-case name="24204Positive tokoe:valid" result="pass"/><test-case name="24205fields00202m5 tokoe:valid" result="pass"/><test-case name="24206Negative tokoe:invalid" result="pass"/><test-case name="24207fields00203m1 tokoe:valid" result="pass"/><test-case name="24208Positive tokoe:valid" result="pass"/><test-case name="24209fields00203m2 tokoe:valid" result="pass"/><test-case name="24210Negative tokoe:invalid" result="pass"/><test-case name="24211fields00203m3 tokoe:valid" result="pass"/><test-case name="24212Negative tokoe:invalid" result="pass"/><test-case name="24213fields00203m4 tokoe:valid" result="pass"/><test-case name="24214Positive tokoe:valid" result="pass"/><test-case name="24215fields00203m5 tokoe:valid" result="pass"/><test-case name="24216Negative tokoe:invalid" result="pass"/><test-case name="24217name00101m1 tokoe:valid" result="pass"/><test-case name="24218Positive tokoe:valid" result="pass"/><test-case name="24219name00201m1 tokoe:valid" result="pass"/><test-case name="24220Positive tokoe:valid" result="pass"/><test-case name="24221targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24222Positive tokoe:valid" result="pass"/><test-case name="24223targetNS00101m2 tokoe:invalid" result="pass"/><test-case name="24224annotation00101m1 tokoe:valid" result="pass"/><test-case name="24225Positive tokoe:valid" result="pass"/><test-case name="24226annotation00101m10 tokoe:valid" result="pass"/><test-case name="24227Positive tokoe:valid" result="pass"/><test-case name="24228annotation00101m11 tokoe:invalid" result="pass"/><test-case name="24229annotation00101m12 tokoe:invalid" result="pass"/><test-case name="24230annotation00101m13 tokoe:valid" result="pass"/><test-case name="24231Positive tokoe:valid" result="pass"/><test-case name="24232annotation00101m14 tokoe:invalid" result="pass"/><test-case name="24233annotation00101m15 tokoe:invalid" result="pass"/><test-case name="24234annotation00101m16 tokoe:valid" result="pass"/><test-case name="24235Positive tokoe:valid" result="pass"/><test-case name="24236annotation00101m17 tokoe:invalid" result="pass"/><test-case name="24237annotation00101m18 tokoe:invalid" result="pass"/><test-case name="24238annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24239annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24240annotation00101m4 tokoe:valid" result="pass"/><test-case name="24241Positive tokoe:valid" result="pass"/><test-case name="24242annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24243annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24244annotation00101m7 tokoe:valid" result="pass"/><test-case name="24245Positive tokoe:valid" result="pass"/><test-case name="24246annotation00101m8 tokoe:invalid" result="pass"/><test-case name="24247annotation00101m9 tokoe:invalid" result="pass"/><test-case name="24248compositor00101m1 tokoe:valid" result="pass"/><test-case name="24249Positive tokoe:valid" result="pass"/><test-case name="24250Negative tokoe:invalid" result="pass"/><test-case name="24251compositor00102m1 tokoe:valid" result="pass"/><test-case name="24252Positive tokoe:valid" result="pass"/><test-case name="24253Negative tokoe:invalid" result="pass"/><test-case name="24254compositor00103m1 tokoe:valid" result="pass"/><test-case name="24255Positive tokoe:valid" result="pass"/><test-case name="24256Negative tokoe:invalid" result="pass"/><test-case name="24257compositor00201m1 tokoe:valid" result="pass"/><test-case name="24258Positive tokoe:valid" result="pass"/><test-case name="24259compositor00202m1 tokoe:valid" result="pass"/><test-case name="24260Positive tokoe:valid" result="pass"/><test-case name="24261compositor00203m1 tokoe:valid" result="pass"/><test-case name="24262Positive tokoe:valid" result="pass"/><test-case name="24263particles00101m1 tokoe:valid" result="pass"/><test-case name="24264Positive tokoe:valid" result="pass"/><test-case name="24265Negative tokoe:invalid" result="pass"/><test-case name="24266particles00101m2 tokoe:valid" result="pass"/><test-case name="24267Positive tokoe:valid" result="pass"/><test-case name="24268Negative tokoe:invalid" result="pass"/><test-case name="24269particles00102m1 tokoe:invalid" result="pass"/><test-case name="24270particles00103m1 tokoe:invalid" result="pass"/><test-case name="24271particles00104m1 tokoe:invalid" result="pass"/><test-case name="24272particles00105m1 tokoe:invalid" result="pass"/><test-case name="24273particles00201m1 tokoe:valid" result="pass"/><test-case name="24274Positive tokoe:valid" result="pass"/><test-case name="24275Negative tokoe:invalid" result="pass"/><test-case name="24276particles00202m1 tokoe:valid" result="pass"/><test-case name="24277Positive tokoe:valid" result="pass"/><test-case name="24278Negative tokoe:invalid" result="pass"/><test-case name="24279particles00203m1 tokoe:valid" result="pass"/><test-case name="24280Positive tokoe:valid" result="pass"/><test-case name="24281Negative tokoe:invalid" result="pass"/><test-case name="24282particles00204m1 tokoe:valid" result="pass"/><test-case name="24283Positive tokoe:valid" result="pass"/><test-case name="24284Negative tokoe:invalid" result="pass"/><test-case name="24285particles00205m1 tokoe:valid" result="pass"/><test-case name="24286Positive tokoe:valid" result="pass"/><test-case name="24287Negative tokoe:invalid" result="pass"/><test-case name="24288particles00301m1 tokoe:valid" result="pass"/><test-case name="24289Positive tokoe:valid" result="fail"/><test-case name="24290Negative tokoe:invalid" result="pass"/><test-case name="24291particles00302m1 tokoe:valid" result="pass"/><test-case name="24292Positive tokoe:valid" result="fail"/><test-case name="24293Negative tokoe:invalid" result="pass"/><test-case name="24294particles00303m1 tokoe:valid" result="pass"/><test-case name="24295Positive tokoe:valid" result="pass"/><test-case name="24296Negative tokoe:invalid" result="pass"/><test-case name="24297particles00304m1 tokoe:valid" result="pass"/><test-case name="24298Positive tokoe:valid" result="pass"/><test-case name="24299Negative tokoe:invalid" result="pass"/><test-case name="24300particles00305m1 tokoe:valid" result="pass"/><test-case name="24301Positive tokoe:valid" result="pass"/><test-case name="24302Negative tokoe:invalid" result="pass"/><test-case name="24303annotation00101m1 tokoe:valid" result="pass"/><test-case name="24304Positive tokoe:valid" result="pass"/><test-case name="24305annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24306annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24307annotation00101m4 tokoe:valid" result="pass"/><test-case name="24308Positive tokoe:valid" result="pass"/><test-case name="24309annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24310annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24311modelGroup00101m1 tokoe:valid" result="pass"/><test-case name="24312Positive tokoe:valid" result="pass"/><test-case name="24313Negative tokoe:invalid" result="pass"/><test-case name="24314modelGroup00101m2 tokoe:valid" result="pass"/><test-case name="24315Positive tokoe:valid" result="pass"/><test-case name="24316Negative tokoe:invalid" result="pass"/><test-case name="24317modelGroup00101m3 tokoe:valid" result="pass"/><test-case name="24318Positive tokoe:valid" result="pass"/><test-case name="24319Negative tokoe:invalid" result="pass"/><test-case name="24320modelGroup00102m1 tokoe:invalid" result="pass"/><test-case name="24321modelGroup00102m2 tokoe:invalid" result="pass"/><test-case name="24322modelGroup00102m3 tokoe:invalid" result="pass"/><test-case name="24323modelGroup00102m4 tokoe:invalid" result="pass"/><test-case name="24324modelGroup00102m5 tokoe:invalid" result="pass"/><test-case name="24325modelGroup00102m6 tokoe:invalid" result="pass"/><test-case name="24326name00101m1 tokoe:valid" result="pass"/><test-case name="24327Positive tokoe:valid" result="pass"/><test-case name="24328Negative tokoe:invalid" result="pass"/><test-case name="24329targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24330Positive tokoe:valid" result="pass"/><test-case name="24331Negative tokoe:invalid" result="pass"/><test-case name="24332targetNS00101m2 tokoe:valid" result="pass"/><test-case name="24333Positive tokoe:valid" result="pass"/><test-case name="24334Negative tokoe:invalid" result="pass"/><test-case name="24335annotation00101m1 tokoe:valid" result="pass"/><test-case name="24336Positive tokoe:valid" result="pass"/><test-case name="24337annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24338annotation00101m3 tokoe:valid" result="pass"/><test-case name="24339Positive tokoe:valid" result="pass"/><test-case name="24340annotation00101m4 tokoe:invalid" result="pass"/><test-case name="24341name00101m1 tokoe:valid" result="pass"/><test-case name="24342Positive tokoe:valid" result="pass"/><test-case name="24343name00201m1 tokoe:invalid" result="pass"/><test-case name="24344publicId00101m1 tokoe:valid" result="pass"/><test-case name="24345Positive tokoe:valid" result="pass"/><test-case name="24346publicId00201m1 tokoe:invalid" result="pass"/><test-case name="24347systemId00101m1 tokoe:valid" result="pass"/><test-case name="24348Positive tokoe:valid" result="pass"/><test-case name="24349systemId00201m1 tokoe:valid" result="pass"/><test-case name="24350Positive tokoe:valid" result="pass"/><test-case name="24351targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24352Positive tokoe:valid" result="pass"/><test-case name="24353targetNS00101m2 tokoe:valid" result="pass"/><test-case name="24354Positive tokoe:valid" result="pass"/><test-case name="24355ST_annotation00101m1 tokoe:valid" result="pass"/><test-case name="24356Positive tokoe:valid" result="pass"/><test-case name="24357ST_annotation00101m2 tokoe:valid" result="pass"/><test-case name="24358Positive tokoe:valid" result="pass"/><test-case name="24359ST_baseTD00101m tokoe:valid" result="pass"/><test-case name="24360ST_baseTD00101m1_p tokoe:valid" result="pass"/><test-case name="24361ST_baseTD00101m1_n tokoe:invalid" result="pass"/><test-case name="24362ST_baseTD00101m2_p tokoe:valid" result="pass"/><test-case name="24363ST_baseTD00201m tokoe:valid" result="pass"/><test-case name="24364ST_baseTD00201m1_p tokoe:valid" result="pass"/><test-case name="24365ST_baseTD00201m1_n tokoe:invalid" result="pass"/><test-case name="24366ST_baseTD00301m tokoe:valid" result="pass"/><test-case name="24367ST_baseTD00301m1_p tokoe:valid" result="pass"/><test-case name="24368ST_baseTD00301m1_n tokoe:invalid" result="pass"/><test-case name="24369ST_baseTD00302m tokoe:valid" result="pass"/><test-case name="24370ST_baseTD00302m1_p tokoe:valid" result="pass"/><test-case name="24371ST_baseTD00302m1_n tokoe:invalid" result="pass"/><test-case name="24372ST_baseTD00302m2_p tokoe:valid" result="pass"/><test-case name="24373ST_baseTD00302m2_n tokoe:invalid" result="pass"/><test-case name="24374ST_baseTD00302m3_n tokoe:invalid" result="pass"/><test-case name="24375ST_facets00101m tokoe:valid" result="pass"/><test-case name="24376ST_facets00101m1_p tokoe:valid" result="pass"/><test-case name="24377ST_facets00101m1_n tokoe:invalid" result="pass"/><test-case name="24378ST_facets00101m2_p tokoe:valid" result="pass"/><test-case name="24379ST_facets00101m3_p tokoe:valid" result="pass"/><test-case name="24380ST_facets00102m tokoe:valid" result="pass"/><test-case name="24381ST_facets00102m1_p tokoe:valid" result="pass"/><test-case name="24382ST_facets00102m1_n tokoe:invalid" result="pass"/><test-case name="24383ST_facets00103m tokoe:valid" result="pass"/><test-case name="24384ST_facets00103m1_p tokoe:valid" result="pass"/><test-case name="24385ST_facets00103m1_n tokoe:invalid" result="pass"/><test-case name="24386ST_facets00104m tokoe:valid" result="pass"/><test-case name="24387ST_facets00104m1_p tokoe:valid" result="pass"/><test-case name="24388ST_facets00104m1_n tokoe:invalid" result="pass"/><test-case name="24389ST_facets00105m tokoe:valid" result="pass"/><test-case name="24390ST_facets00105m1_p tokoe:valid" result="pass"/><test-case name="24391ST_facets00105m1_n tokoe:invalid" result="pass"/><test-case name="24392ST_facets00106m tokoe:valid" result="pass"/><test-case name="24393ST_facets00106m1_p tokoe:valid" result="pass"/><test-case name="24394ST_facets00106m1_n tokoe:invalid" result="pass"/><test-case name="24395ST_facets00107m tokoe:valid" result="pass"/><test-case name="24396ST_facets00107m1_p tokoe:valid" result="pass"/><test-case name="24397ST_facets00107m1_n tokoe:invalid" result="pass"/><test-case name="24398ST_facets00108m tokoe:valid" result="pass"/><test-case name="24399ST_facets00108m1_p tokoe:valid" result="pass"/><test-case name="24400ST_facets00108m1_n tokoe:invalid" result="pass"/><test-case name="24401ST_facets00109m tokoe:valid" result="pass"/><test-case name="24402ST_facets00109m1_p tokoe:valid" result="pass"/><test-case name="24403ST_facets00109m1_n tokoe:invalid" result="pass"/><test-case name="24404ST_facets00110m tokoe:valid" result="pass"/><test-case name="24405ST_facets00110m1_p tokoe:valid" result="pass"/><test-case name="24406ST_facets00110m1_n tokoe:invalid" result="pass"/><test-case name="24407ST_facets00111m tokoe:valid" result="pass"/><test-case name="24408ST_facets00111m1_p tokoe:valid" result="pass"/><test-case name="24409ST_facets00111m1_n tokoe:invalid" result="pass"/><test-case name="24410ST_facets00112m tokoe:valid" result="pass"/><test-case name="24411ST_facets00112m1_p tokoe:valid" result="pass"/><test-case name="24412ST_facets00112m1_n tokoe:invalid" result="pass"/><test-case name="24413ST_facets00113m tokoe:valid" result="pass"/><test-case name="24414ST_facets00113m1_p tokoe:valid" result="pass"/><test-case name="24415ST_facets00113m1_n tokoe:invalid" result="pass"/><test-case name="24416ST_facets00114m tokoe:valid" result="pass"/><test-case name="24417ST_facets00114m1_p tokoe:valid" result="pass"/><test-case name="24418ST_facets00114m1_n tokoe:invalid" result="pass"/><test-case name="24419ST_facets00115m tokoe:valid" result="pass"/><test-case name="24420ST_facets00115m1_p tokoe:valid" result="pass"/><test-case name="24421ST_facets00115m1_n tokoe:invalid" result="pass"/><test-case name="24422ST_facets00116m tokoe:valid" result="pass"/><test-case name="24423ST_facets00116m1_p tokoe:valid" result="pass"/><test-case name="24424ST_facets00116m1_n tokoe:invalid" result="pass"/><test-case name="24425ST_facets00117m tokoe:valid" result="pass"/><test-case name="24426ST_facets00117m1_p tokoe:valid" result="pass"/><test-case name="24427ST_facets00117m1_n tokoe:invalid" result="pass"/><test-case name="24428ST_facets00118m tokoe:valid" result="pass"/><test-case name="24429ST_facets00118m1_p tokoe:valid" result="pass"/><test-case name="24430ST_facets00118m1_n tokoe:invalid" result="pass"/><test-case name="24431ST_facets00119m tokoe:valid" result="fail"/><test-case name="24432ST_facets00119m1_p tokoe:valid" result="fail"/><test-case name="24433ST_facets00119m1_n tokoe:invalid" result="pass"/><test-case name="24434ST_facets00120m tokoe:valid" result="pass"/><test-case name="24435ST_facets00120m1_p tokoe:valid" result="pass"/><test-case name="24436ST_facets00120m1_n tokoe:invalid" result="pass"/><test-case name="24437ST_facets00121m tokoe:valid" result="pass"/><test-case name="24438ST_facets00121m1_p tokoe:valid" result="pass"/><test-case name="24439ST_facets00121m1_n tokoe:invalid" result="pass"/><test-case name="24440ST_facets00122m tokoe:valid" result="pass"/><test-case name="24441ST_facets00122m1_p tokoe:valid" result="pass"/><test-case name="24442ST_facets00122m1_n tokoe:invalid" result="pass"/><test-case name="24443ST_facets00123m tokoe:valid" result="pass"/><test-case name="24444ST_facets00123m1_p tokoe:valid" result="pass"/><test-case name="24445ST_facets00123m1_n tokoe:invalid" result="pass"/><test-case name="24446ST_facets00124m1 tokoe:valid" result="pass"/><test-case name="24447Positive tokoe:valid" result="pass"/><test-case name="24448Negative tokoe:invalid" result="pass"/><test-case name="24449ST_facets00201m1 tokoe:valid" result="pass"/><test-case name="24450Positive tokoe:valid" result="pass"/><test-case name="24451Negative tokoe:invalid" result="pass"/><test-case name="24452ST_facets00201m10 tokoe:valid" result="pass"/><test-case name="24453Positive tokoe:valid" result="pass"/><test-case name="24454Negative tokoe:invalid" result="pass"/><test-case name="24455ST_facets00201m11 tokoe:valid" result="pass"/><test-case name="24456Positive tokoe:valid" result="pass"/><test-case name="24457Negative tokoe:invalid" result="pass"/><test-case name="24458ST_facets00201m12 tokoe:valid" result="pass"/><test-case name="24459Positive tokoe:valid" result="pass"/><test-case name="24460Negative tokoe:invalid" result="pass"/><test-case name="24461ST_facets00201m13 tokoe:valid" result="pass"/><test-case name="24462Positive tokoe:valid" result="pass"/><test-case name="24463Negative tokoe:invalid" result="pass"/><test-case name="24464ST_facets00201m14 tokoe:valid" result="pass"/><test-case name="24465Positive tokoe:valid" result="pass"/><test-case name="24466Negative tokoe:invalid" result="pass"/><test-case name="24467ST_facets00201m15 tokoe:valid" result="pass"/><test-case name="24468Positive tokoe:valid" result="pass"/><test-case name="24469Negative tokoe:invalid" result="pass"/><test-case name="24470ST_facets00201m16 tokoe:valid" result="pass"/><test-case name="24471Positive tokoe:valid" result="pass"/><test-case name="24472Negative tokoe:invalid" result="pass"/><test-case name="24473ST_facets00201m2 tokoe:valid" result="pass"/><test-case name="24474Positive tokoe:valid" result="pass"/><test-case name="24475Negative tokoe:invalid" result="pass"/><test-case name="24476ST_facets00201m3 tokoe:valid" result="pass"/><test-case name="24477Positive tokoe:valid" result="pass"/><test-case name="24478Negative tokoe:invalid" result="pass"/><test-case name="24479ST_facets00201m4 tokoe:valid" result="pass"/><test-case name="24480Positive tokoe:valid" result="pass"/><test-case name="24481Negative tokoe:invalid" result="pass"/><test-case name="24482ST_facets00201m5 tokoe:valid" result="pass"/><test-case name="24483Positive tokoe:valid" result="pass"/><test-case name="24484Negative tokoe:invalid" result="pass"/><test-case name="24485ST_facets00201m6 tokoe:valid" result="pass"/><test-case name="24486Positive tokoe:valid" result="pass"/><test-case name="24487Negative tokoe:invalid" result="pass"/><test-case name="24488ST_facets00201m7 tokoe:valid" result="pass"/><test-case name="24489Positive tokoe:valid" result="pass"/><test-case name="24490Negative tokoe:invalid" result="pass"/><test-case name="24491ST_facets00201m8 tokoe:valid" result="pass"/><test-case name="24492Positive tokoe:valid" result="pass"/><test-case name="24493Negative tokoe:invalid" result="pass"/><test-case name="24494ST_facets00201m9 tokoe:valid" result="pass"/><test-case name="24495Positive tokoe:valid" result="pass"/><test-case name="24496Negative tokoe:invalid" result="pass"/><test-case name="24497ST_facets00301m tokoe:valid" result="pass"/><test-case name="24498ST_facets00301m1_p tokoe:valid" result="pass"/><test-case name="24499ST_facets00301m1_n tokoe:invalid" result="pass"/><test-case name="24500ST_facets00401m1 tokoe:valid" result="pass"/><test-case name="24501Positive tokoe:valid" result="pass"/><test-case name="24502ST_facets00401m10 tokoe:valid" result="pass"/><test-case name="24503Positive tokoe:valid" result="pass"/><test-case name="24504ST_facets00401m11 tokoe:valid" result="pass"/><test-case name="24505Positive tokoe:valid" result="pass"/><test-case name="24506ST_facets00401m12 tokoe:valid" result="pass"/><test-case name="24507Positive tokoe:valid" result="pass"/><test-case name="24508ST_facets00401m13 tokoe:valid" result="pass"/><test-case name="24509Positive tokoe:valid" result="pass"/><test-case name="24510ST_facets00401m14 tokoe:valid" result="pass"/><test-case name="24511Positive tokoe:valid" result="pass"/><test-case name="24512ST_facets00401m15 tokoe:valid" result="pass"/><test-case name="24513Positive tokoe:valid" result="pass"/><test-case name="24514ST_facets00401m16 tokoe:valid" result="pass"/><test-case name="24515Positive tokoe:valid" result="pass"/><test-case name="24516ST_facets00401m17 tokoe:valid" result="pass"/><test-case name="24517Positive tokoe:valid" result="pass"/><test-case name="24518ST_facets00401m18 tokoe:valid" result="pass"/><test-case name="24519Positive tokoe:valid" result="pass"/><test-case name="24520ST_facets00401m19 tokoe:valid" result="pass"/><test-case name="24521Positive tokoe:valid" result="pass"/><test-case name="24522ST_facets00401m2 tokoe:valid" result="pass"/><test-case name="24523Positive tokoe:valid" result="pass"/><test-case name="24524ST_facets00401m20 tokoe:valid" result="pass"/><test-case name="24525Positive tokoe:valid" result="pass"/><test-case name="24526ST_facets00401m21 tokoe:valid" result="pass"/><test-case name="24527Positive tokoe:valid" result="pass"/><test-case name="24528ST_facets00401m3 tokoe:valid" result="pass"/><test-case name="24529Positive tokoe:valid" result="pass"/><test-case name="24530ST_facets00401m4 tokoe:valid" result="pass"/><test-case name="24531Positive tokoe:valid" result="pass"/><test-case name="24532ST_facets00401m5 tokoe:valid" result="pass"/><test-case name="24533Positive tokoe:valid" result="pass"/><test-case name="24534ST_facets00401m6 tokoe:valid" result="pass"/><test-case name="24535Positive tokoe:valid" result="pass"/><test-case name="24536ST_facets00401m7 tokoe:valid" result="pass"/><test-case name="24537Positive tokoe:valid" result="pass"/><test-case name="24538ST_facets00401m8 tokoe:valid" result="pass"/><test-case name="24539Positive tokoe:valid" result="pass"/><test-case name="24540ST_facets00401m9 tokoe:valid" result="pass"/><test-case name="24541Positive tokoe:valid" result="pass"/><test-case name="24542ST_facets00402m1 tokoe:valid" result="pass"/><test-case name="24543Positive tokoe:valid" result="pass"/><test-case name="24544ST_facets00403m1 tokoe:valid" result="pass"/><test-case name="24545Positive tokoe:valid" result="pass"/><test-case name="24546ST_facets00501m1 tokoe:valid" result="pass"/><test-case name="24547Positive tokoe:valid" result="pass"/><test-case name="24548ST_facets00501m10 tokoe:valid" result="pass"/><test-case name="24549Positive tokoe:valid" result="pass"/><test-case name="24550ST_facets00501m11 tokoe:valid" result="pass"/><test-case name="24551Positive tokoe:valid" result="pass"/><test-case name="24552ST_facets00501m12 tokoe:valid" result="pass"/><test-case name="24553Positive tokoe:valid" result="pass"/><test-case name="24554ST_facets00501m13 tokoe:valid" result="pass"/><test-case name="24555Positive tokoe:valid" result="pass"/><test-case name="24556ST_facets00501m14 tokoe:valid" result="pass"/><test-case name="24557Positive tokoe:valid" result="pass"/><test-case name="24558ST_facets00501m15 tokoe:valid" result="pass"/><test-case name="24559Positive tokoe:valid" result="pass"/><test-case name="24560ST_facets00501m16 tokoe:valid" result="pass"/><test-case name="24561Positive tokoe:valid" result="pass"/><test-case name="24562ST_facets00501m17 tokoe:valid" result="pass"/><test-case name="24563Positive tokoe:valid" result="pass"/><test-case name="24564ST_facets00501m18 tokoe:valid" result="pass"/><test-case name="24565Positive tokoe:valid" result="pass"/><test-case name="24566ST_facets00501m19 tokoe:valid" result="pass"/><test-case name="24567Positive tokoe:valid" result="pass"/><test-case name="24568ST_facets00501m2 tokoe:valid" result="pass"/><test-case name="24569Positive tokoe:valid" result="pass"/><test-case name="24570ST_facets00501m20 tokoe:valid" result="pass"/><test-case name="24571Positive tokoe:valid" result="pass"/><test-case name="24572ST_facets00501m21 tokoe:valid" result="pass"/><test-case name="24573Positive tokoe:valid" result="pass"/><test-case name="24574ST_facets00501m3 tokoe:valid" result="pass"/><test-case name="24575Positive tokoe:valid" result="pass"/><test-case name="24576ST_facets00501m4 tokoe:valid" result="pass"/><test-case name="24577Positive tokoe:valid" result="pass"/><test-case name="24578ST_facets00501m5 tokoe:valid" result="pass"/><test-case name="24579Positive tokoe:valid" result="pass"/><test-case name="24580ST_facets00501m6 tokoe:valid" result="pass"/><test-case name="24581Positive tokoe:valid" result="pass"/><test-case name="24582ST_facets00501m7 tokoe:valid" result="pass"/><test-case name="24583Positive tokoe:valid" result="pass"/><test-case name="24584ST_facets00501m8 tokoe:valid" result="pass"/><test-case name="24585Positive tokoe:valid" result="pass"/><test-case name="24586ST_facets00501m9 tokoe:valid" result="pass"/><test-case name="24587Positive tokoe:valid" result="pass"/><test-case name="24588ST_facets00502m1 tokoe:valid" result="pass"/><test-case name="24589Positive tokoe:valid" result="pass"/><test-case name="24590ST_facets00503m1 tokoe:valid" result="pass"/><test-case name="24591Positive tokoe:valid" result="pass"/><test-case name="24592ST_facets00504m1 tokoe:valid" result="pass"/><test-case name="24593Positive tokoe:valid" result="pass"/><test-case name="24594ST_facets00504m2 tokoe:valid" result="pass"/><test-case name="24595Positive tokoe:valid" result="pass"/><test-case name="24596ST_facets00505m1 tokoe:valid" result="pass"/><test-case name="24597Positive tokoe:valid" result="pass"/><test-case name="24598ST_facets00505m10 tokoe:valid" result="pass"/><test-case name="24599Positive tokoe:valid" result="pass"/><test-case name="24600ST_facets00505m2 tokoe:valid" result="pass"/><test-case name="24601Positive tokoe:valid" result="pass"/><test-case name="24602ST_facets00505m3 tokoe:valid" result="pass"/><test-case name="24603Positive tokoe:valid" result="pass"/><test-case name="24604ST_facets00505m4 tokoe:valid" result="pass"/><test-case name="24605Positive tokoe:valid" result="pass"/><test-case name="24606ST_facets00505m5 tokoe:valid" result="pass"/><test-case name="24607Positive tokoe:valid" result="pass"/><test-case name="24608ST_facets00505m6 tokoe:valid" result="pass"/><test-case name="24609Positive tokoe:valid" result="pass"/><test-case name="24610ST_facets00505m7 tokoe:valid" result="pass"/><test-case name="24611Positive tokoe:valid" result="pass"/><test-case name="24612ST_facets00505m8 tokoe:valid" result="pass"/><test-case name="24613Positive tokoe:valid" result="pass"/><test-case name="24614ST_facets00505m9 tokoe:valid" result="pass"/><test-case name="24615Positive tokoe:valid" result="pass"/><test-case name="24616ST_facets00506m1 tokoe:valid" result="pass"/><test-case name="24617Positive tokoe:valid" result="pass"/><test-case name="24618ST_facets00506m2 tokoe:valid" result="pass"/><test-case name="24619Positive tokoe:valid" result="pass"/><test-case name="24620ST_facets00601 tokoe:valid" result="pass"/><test-case name="24621ST_facets00601_p tokoe:valid" result="pass"/><test-case name="24622ST_facets00602 tokoe:valid" result="pass"/><test-case name="24623ST_facets00602_p tokoe:valid" result="pass"/><test-case name="24624ST_facets00603 tokoe:valid" result="pass"/><test-case name="24625ST_facets00603_p tokoe:valid" result="pass"/><test-case name="24626ST_facets00604 tokoe:valid" result="pass"/><test-case name="24627ST_facets00604_p tokoe:valid" result="pass"/><test-case name="24628ST_facets00605 tokoe:valid" result="pass"/><test-case name="24629ST_facets00605_p tokoe:valid" result="pass"/><test-case name="24630ST_facets00608 tokoe:valid" result="pass"/><test-case name="24631ST_facets00608_p tokoe:valid" result="pass"/><test-case name="24632ST_final00101m1 tokoe:invalid" result="pass"/><test-case name="24633ST_final00101m2 tokoe:valid" result="pass"/><test-case name="24634Positive tokoe:valid" result="pass"/><test-case name="24635Negative tokoe:invalid" result="pass"/><test-case name="24636ST_final00101m3 tokoe:valid" result="pass"/><test-case name="24637Positive tokoe:valid" result="pass"/><test-case name="24638Negative tokoe:invalid" result="pass"/><test-case name="24639ST_final00101m4 tokoe:valid" result="pass"/><test-case name="24640Positive tokoe:valid" result="pass"/><test-case name="24641Negative tokoe:invalid" result="pass"/><test-case name="24642ST_final00101m5 tokoe:valid" result="pass"/><test-case name="24643Positive tokoe:valid" result="pass"/><test-case name="24644Negative tokoe:invalid" result="pass"/><test-case name="24645ST_final00101m6 tokoe:valid" result="pass"/><test-case name="24646Positive tokoe:valid" result="pass"/><test-case name="24647Negative tokoe:invalid" result="pass"/><test-case name="24648ST_final00102m1 tokoe:invalid" result="pass"/><test-case name="24649ST_final00102m2 tokoe:valid" result="pass"/><test-case name="24650Positive tokoe:valid" result="pass"/><test-case name="24651Negative tokoe:invalid" result="pass"/><test-case name="24652ST_final00102m3 tokoe:valid" result="pass"/><test-case name="24653Positive tokoe:valid" result="pass"/><test-case name="24654Negative tokoe:invalid" result="pass"/><test-case name="24655ST_final00102m4 tokoe:valid" result="pass"/><test-case name="24656Positive tokoe:valid" result="pass"/><test-case name="24657Negative tokoe:invalid" result="pass"/><test-case name="24658ST_final00102m5 tokoe:valid" result="pass"/><test-case name="24659Positive tokoe:valid" result="pass"/><test-case name="24660Negative tokoe:invalid" result="pass"/><test-case name="24661ST_final00102m6 tokoe:valid" result="pass"/><test-case name="24662Positive tokoe:valid" result="pass"/><test-case name="24663Negative tokoe:invalid" result="pass"/><test-case name="24664ST_final00103m1 tokoe:invalid" result="pass"/><test-case name="24665ST_final00103m2 tokoe:valid" result="pass"/><test-case name="24666Positive tokoe:valid" result="pass"/><test-case name="24667Negative tokoe:invalid" result="pass"/><test-case name="24668ST_final00103m3 tokoe:valid" result="pass"/><test-case name="24669Positive tokoe:valid" result="pass"/><test-case name="24670Negative tokoe:invalid" result="pass"/><test-case name="24671ST_name00101m tokoe:valid" result="pass"/><test-case name="24672ST_name00101m1_p tokoe:valid" result="pass"/><test-case name="24673ST_name00101m1_n tokoe:invalid" result="pass"/><test-case name="24674ST_name00201m tokoe:invalid" result="pass"/><test-case name="24675ST_name00301m tokoe:invalid" result="pass"/><test-case name="24676ST_name00401m tokoe:valid" result="pass"/><test-case name="24677ST_name00401m1_p tokoe:valid" result="pass"/><test-case name="24678ST_targetNS00101m tokoe:valid" result="pass"/><test-case name="24679ST_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="24680ST_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="24681ST_targetNS00101m2_p tokoe:valid" result="pass"/><test-case name="24682ST_targetNS00101m2_n tokoe:invalid" result="pass"/><test-case name="24683ST_targetNS00201m tokoe:valid" result="pass"/><test-case name="24684ST_targetNS00201m1_p tokoe:valid" result="pass"/><test-case name="24685ST_variety00101m1 tokoe:valid" result="pass"/><test-case name="24686Positive tokoe:valid" result="pass"/><test-case name="24687Negative tokoe:invalid" result="pass"/><test-case name="24688ST_variety00101m2 tokoe:valid" result="pass"/><test-case name="24689Positive tokoe:valid" result="pass"/><test-case name="24690Negative tokoe:invalid" result="pass"/><test-case name="24691ST_variety00201m1 tokoe:invalid" result="pass"/><test-case name="24692ST_variety00201m2 tokoe:invalid" result="pass"/><test-case name="24693annotations00101m1 tokoe:valid" result="pass"/><test-case name="24694Positive tokoe:valid" result="pass"/><test-case name="24695annotations00101m2 tokoe:valid" result="pass"/><test-case name="24696Positive tokoe:valid" result="pass"/><test-case name="24697annotations00101m3 tokoe:valid" result="pass"/><test-case name="24698Positive tokoe:valid" result="pass"/><test-case name="24699annotations00101m4 tokoe:valid" result="pass"/><test-case name="24700Positive tokoe:valid" result="pass"/><test-case name="24701annotations00101m5 tokoe:valid" result="pass"/><test-case name="24702Positive tokoe:valid" result="pass"/><test-case name="24703annotations00101m6 tokoe:valid" result="pass"/><test-case name="24704Positive tokoe:valid" result="pass"/><test-case name="24705annotation00101m1 tokoe:valid" result="pass"/><test-case name="24706Positive tokoe:valid" result="pass"/><test-case name="24707annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24708annotation00101m3 tokoe:valid" result="pass"/><test-case name="24709Positive tokoe:valid" result="pass"/><test-case name="24710annotation00101m4 tokoe:invalid" result="pass"/><test-case name="24711annotation00101m5 tokoe:valid" result="pass"/><test-case name="24712Positive tokoe:valid" result="pass"/><test-case name="24713annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24714annotation00101m7 tokoe:valid" result="pass"/><test-case name="24715Positive tokoe:valid" result="pass"/><test-case name="24716annotation00101m8 tokoe:invalid" result="pass"/><test-case name="24717nsConstraint00101m1 tokoe:valid" result="pass"/><test-case name="24718Positive tokoe:valid" result="pass"/><test-case name="24719Negative tokoe:invalid" result="pass"/><test-case name="24720nsConstraint00101m2 tokoe:valid" result="pass"/><test-case name="24721Positive tokoe:valid" result="pass"/><test-case name="24722Negative tokoe:invalid" result="pass"/><test-case name="24723nsConstraint00102m1 tokoe:valid" result="pass"/><test-case name="24724Positive tokoe:valid" result="pass"/><test-case name="24725nsConstraint00102m2 tokoe:valid" result="pass"/><test-case name="24726Positive tokoe:valid" result="pass"/><test-case name="24727nsConstraint00201m1 tokoe:valid" result="pass"/><test-case name="24728Positive tokoe:valid" result="pass"/><test-case name="24729Negative tokoe:invalid" result="pass"/><test-case name="24730nsConstraint00202m1 tokoe:valid" result="pass"/><test-case name="24731Positive tokoe:valid" result="pass"/><test-case name="24732Negative tokoe:invalid" result="pass"/><test-case name="24733nsConstraint00301m1 tokoe:valid" result="pass"/><test-case name="24734Positive tokoe:valid" result="pass"/><test-case name="24735Negative tokoe:invalid" result="pass"/><test-case name="24736nsConstraint00302m1 tokoe:valid" result="pass"/><test-case name="24737Positive tokoe:valid" result="pass"/><test-case name="24738Negative tokoe:invalid" result="pass"/><test-case name="24739psContents00101m1 tokoe:valid" result="pass"/><test-case name="24740Positive tokoe:valid" result="pass"/><test-case name="24741Negative tokoe:invalid" result="pass"/><test-case name="24742psContents00101m2 tokoe:valid" result="pass"/><test-case name="24743Negative tokoe:invalid" result="pass"/><test-case name="24744psContents00102m1 tokoe:valid" result="pass"/><test-case name="24745Positive tokoe:valid" result="pass"/><test-case name="24746Negative tokoe:invalid" result="pass"/><test-case name="24747psContents00102m2 tokoe:valid" result="pass"/><test-case name="24748Negative tokoe:invalid" result="pass"/><test-case name="24749psContents00201m1 tokoe:valid" result="pass"/><test-case name="24750Positive tokoe:valid" result="pass"/><test-case name="24751Negative tokoe:invalid" result="pass"/><test-case name="24752psContents00202m1 tokoe:valid" result="pass"/><test-case name="24753Positive tokoe:valid" result="pass"/><test-case name="24754psContents00301m1 tokoe:valid" result="pass"/><test-case name="24755Positive tokoe:valid" result="pass"/><test-case name="24756Negative tokoe:invalid" result="pass"/><test-case name="24757psContents00301m2 tokoe:valid" result="pass"/><test-case name="24758Positive tokoe:valid" result="pass"/><test-case name="24759Negative tokoe:invalid" result="pass"/><test-case name="24760psContents00302m1 tokoe:valid" result="pass"/><test-case name="24761Positive tokoe:valid" result="pass"/><test-case name="24762Negative tokoe:invalid" result="pass"/><test-case name="24763psContents00302m2 tokoe:valid" result="pass"/><test-case name="24764Positive tokoe:valid" result="pass"/><test-case name="24765Negative tokoe:invalid" result="pass"/><test-case name="24766addA001 tokoe:valid" result="pass"/><test-case name="24767addA002 tokoe:valid" result="pass"/><test-case name="24768addA003 tokoe:invalid" result="pass"/><test-case name="24769addA005 tokoe:valid" result="pass"/><test-case name="24770addA005.v tokoe:valid" result="pass"/><test-case name="24771addA006.v tokoe:valid" result="fail"/><test-case name="24772adda007.v tokoe:valid" result="pass"/><test-case name="24773addA008.v tokoe:valid" result="pass"/><test-case name="24774addC001 tokoe:valid" result="pass"/><test-case name="24775addC001.v tokoe:valid" result="pass"/><test-case name="24776addC002 tokoe:valid" result="pass"/><test-case name="24777addB001 tokoe:valid" result="pass"/><test-case name="24778addB002 tokoe:valid" result="pass"/><test-case name="24779addB002.i tokoe:invalid" result="pass"/><test-case name="24780addB003 tokoe:valid" result="pass"/><test-case name="24781addB003.i tokoe:invalid" result="pass"/><test-case name="24782addB004 tokoe:invalid" result="pass"/><test-case name="24783addB005 tokoe:invalid" result="pass"/><test-case name="24784addB006 tokoe:valid" result="pass"/><test-case name="24785addB007 tokoe:valid" result="pass"/><test-case name="24786addB008 tokoe:invalid" result="pass"/><test-case name="24787addB009 tokoe:invalid" result="pass"/><test-case name="24788addB010 tokoe:invalid" result="pass"/><test-case name="24789addB011 tokoe:valid" result="pass"/><test-case name="24790addB011.i tokoe:invalid" result="pass"/><test-case name="24791addB012 tokoe:valid" result="pass"/><test-case name="24792addB012.v tokoe:valid" result="pass"/><test-case name="24793addB013 tokoe:valid" result="pass"/><test-case name="24794addB013.i tokoe:invalid" result="pass"/><test-case name="24795addB014 tokoe:invalid" result="pass"/><test-case name="24796addB016 tokoe:valid" result="fail"/><test-case name="24797addB017 tokoe:valid" result="pass"/><test-case name="24798addB018 tokoe:valid" result="pass"/><test-case name="24799addB019 tokoe:valid" result="pass"/><test-case name="24800addB019.v tokoe:valid" result="pass"/><test-case name="24801addB020 tokoe:valid" result="pass"/><test-case name="24802addB021 tokoe:valid" result="pass"/><test-case name="24803addB021a tokoe:invalid" result="pass"/><test-case name="24804addB022 tokoe:invalid" result="pass"/><test-case name="24805addB023 tokoe:valid" result="pass"/><test-case name="24806addB024 tokoe:valid" result="pass"/><test-case name="24807addB025 tokoe:valid" result="pass"/><test-case name="24808addB026 tokoe:valid" result="pass"/><test-case name="24809addB027 tokoe:valid" result="pass"/><test-case name="24810addB028 tokoe:valid" result="pass"/><test-case name="24811addB028.v tokoe:valid" result="pass"/><test-case name="24812addB029 tokoe:valid" result="pass"/><test-case name="24813addB030 tokoe:invalid" result="pass"/><test-case name="24814addB31 tokoe:valid" result="pass"/><test-case name="24815addB31.v tokoe:valid" result="pass"/><test-case name="24816addB32 tokoe:invalid" result="pass"/><test-case name="24817addB033 tokoe:invalid" result="pass"/><test-case name="24818addB034 tokoe:valid" result="pass"/><test-case name="24819addB034.v tokoe:valid" result="pass"/><test-case name="24820addB035 tokoe:invalid" result="pass"/><test-case name="24821addB036 tokoe:invalid" result="pass"/><test-case name="24822addB037 tokoe:valid" result="pass"/><test-case name="24823addB037.i tokoe:invalid" result="pass"/><test-case name="24824addB040 tokoe:valid" result="pass"/><test-case name="24825addB040.v tokoe:valid" result="pass"/><test-case name="24826addB041 tokoe:invalid" result="pass"/><test-case name="24827addB042 tokoe:valid" result="pass"/><test-case name="24828addB043 tokoe:invalid" result="pass"/><test-case name="24829addB044 tokoe:invalid" result="pass"/><test-case name="24830addB045 tokoe:invalid" result="pass"/><test-case name="24831addB046 tokoe:valid" result="pass"/><test-case name="24832addB046.v tokoe:valid" result="pass"/><test-case name="24833addB047 tokoe:valid" result="pass"/><test-case name="24834addB047.v tokoe:valid" result="pass"/><test-case name="24835addB050 tokoe:valid" result="pass"/><test-case name="24836addB050.i tokoe:invalid" result="pass"/><test-case name="24837addB051 tokoe:valid" result="pass"/><test-case name="24838addB051b tokoe:valid" result="pass"/><test-case name="24839addB052 tokoe:invalid" result="pass"/><test-case name="24840addB053 tokoe:invalid" result="pass"/><test-case name="24841addB054 tokoe:valid" result="pass"/><test-case name="24842addB054.v tokoe:valid" result="pass"/><test-case name="24843addB055 tokoe:valid" result="pass"/><test-case name="24844addB056 tokoe:valid" result="pass"/><test-case name="24845addB056.v tokoe:valid" result="pass"/><test-case name="24846addB057 tokoe:valid" result="pass"/><test-case name="24847addB057.i tokoe:invalid" result="pass"/><test-case name="24848addB058 tokoe:valid" result="pass"/><test-case name="24849addB058.v tokoe:valid" result="pass"/><test-case name="24850addB059 tokoe:valid" result="pass"/><test-case name="24851addB059.v tokoe:valid" result="pass"/><test-case name="24852addB060 tokoe:valid" result="pass"/><test-case name="24853addB061 tokoe:valid" result="pass"/><test-case name="24854addB062 tokoe:valid" result="pass"/><test-case name="24855addB063.i tokoe:invalid" result="pass"/><test-case name="24856addB064 tokoe:valid" result="pass"/><test-case name="24857addB065 tokoe:valid" result="pass"/><test-case name="24858addB065.i tokoe:invalid" result="pass"/><test-case name="24859addB066 tokoe:valid" result="pass"/><test-case name="24860addB066.i tokoe:invalid" result="pass"/><test-case name="24861addB067 tokoe:valid" result="pass"/><test-case name="24862addB067.v tokoe:valid" result="pass"/><test-case name="24863addB069 tokoe:valid" result="pass"/><test-case name="24864addB069.i tokoe:invalid" result="pass"/><test-case name="24865addB070 tokoe:invalid" result="pass"/><test-case name="24866addB070a tokoe:invalid" result="pass"/><test-case name="24867addB071 tokoe:valid" result="pass"/><test-case name="24868addB072 tokoe:valid" result="pass"/><test-case name="24869addB073 tokoe:valid" result="pass"/><test-case name="24870addB075 tokoe:valid" result="pass"/><test-case name="24871addB075.i tokoe:invalid" result="pass"/><test-case name="24872addB076 tokoe:valid" result="pass"/><test-case name="24873addB076.v tokoe:valid" result="pass"/><test-case name="24874addB077 tokoe:valid" result="pass"/><test-case name="24875addB079 tokoe:valid" result="pass"/><test-case name="24876addB080 tokoe:valid" result="pass"/><test-case name="24877addB080.i tokoe:invalid" result="pass"/><test-case name="24878addB081 tokoe:invalid" result="pass"/><test-case name="24879addB082 tokoe:invalid" result="pass"/><test-case name="24880addB083 tokoe:invalid" result="pass"/><test-case name="24881addB084 tokoe:valid" result="pass"/><test-case name="24882addB084.v tokoe:valid" result="pass"/><test-case name="24883addB085 tokoe:valid" result="pass"/><test-case name="24884addB087 tokoe:valid" result="pass"/><test-case name="24885addB087.i tokoe:invalid" result="pass"/><test-case name="24886addB088 tokoe:valid" result="pass"/><test-case name="24887addB088.v tokoe:valid" result="pass"/><test-case name="24888addB089 tokoe:invalid" result="pass"/><test-case name="24889addB090 tokoe:valid" result="pass"/><test-case name="24890addB090.v tokoe:valid" result="pass"/><test-case name="24891addB091 tokoe:valid" result="pass"/><test-case name="24892addB092 tokoe:valid" result="pass"/><test-case name="24893addB092.i tokoe:invalid" result="pass"/><test-case name="24894addB093 tokoe:valid" result="pass"/><test-case name="24895addB094 tokoe:valid" result="pass"/><test-case name="24896addB095 tokoe:invalid" result="pass"/><test-case name="24897addB096 tokoe:valid" result="pass"/><test-case name="24898addB096.v tokoe:valid" result="pass"/><test-case name="24899addB097 tokoe:invalid" result="pass"/><test-case name="24900addB098 tokoe:valid" result="pass"/><test-case name="24901addB098.i tokoe:invalid" result="pass"/><test-case name="24902addB100 tokoe:invalid" result="pass"/><test-case name="24903addB101 tokoe:invalid" result="pass"/><test-case name="24904addB102 tokoe:valid" result="pass"/><test-case name="24905addB102.i tokoe:invalid" result="pass"/><test-case name="24906addB103 tokoe:valid" result="pass"/><test-case name="24907addB104 tokoe:valid" result="pass"/><test-case name="24908addB104.v tokoe:valid" result="pass"/><test-case name="24909addB105 tokoe:valid" result="pass"/><test-case name="24910addB105.i tokoe:invalid" result="pass"/><test-case name="24911addB106 tokoe:valid" result="pass"/><test-case name="24912addB107 tokoe:valid" result="pass"/><test-case name="24913addB108 tokoe:invalid" result="pass"/><test-case name="24914addB109 tokoe:valid" result="pass"/><test-case name="24915addB109.i tokoe:invalid" result="pass"/><test-case name="24916addB110 tokoe:invalid" result="pass"/><test-case name="24917addB111 tokoe:invalid" result="pass"/><test-case name="24918addB112 tokoe:invalid" result="pass"/><test-case name="24919addB113 tokoe:invalid" result="pass"/><test-case name="24920addB114 tokoe:valid" result="pass"/><test-case name="24921addB114.i tokoe:invalid" result="pass"/><test-case name="24922addB115 tokoe:valid" result="pass"/><test-case name="24923addB115.i tokoe:invalid" result="pass"/><test-case name="24924addB116 tokoe:valid" result="pass"/><test-case name="24925addB116.v tokoe:valid" result="pass"/><test-case name="24926addB117 tokoe:valid" result="pass"/><test-case name="24927addB121 tokoe:invalid" result="pass"/><test-case name="24928addB122 tokoe:valid" result="pass"/><test-case name="24929addB122.v tokoe:valid" result="pass"/><test-case name="24930addB123 tokoe:valid" result="pass"/><test-case name="24931addB123.i tokoe:invalid" result="pass"/><test-case name="24932addB124.i tokoe:invalid" result="pass"/><test-case name="24933addB125 tokoe:valid" result="pass"/><test-case name="24934addB125.v tokoe:valid" result="pass"/><test-case name="24935addB126 tokoe:valid" result="pass"/><test-case name="24936addB127 tokoe:valid" result="pass"/><test-case name="24937addB128 tokoe:valid" result="pass"/><test-case name="24938addB129 tokoe:valid" result="pass"/><test-case name="24939addB129.v tokoe:valid" result="pass"/><test-case name="24940addB130 tokoe:valid" result="pass"/><test-case name="24941addB130.v tokoe:valid" result="pass"/><test-case name="24942addB131 tokoe:valid" result="pass"/><test-case name="24943addB131.v tokoe:valid" result="pass"/><test-case name="24944addB132 tokoe:valid" result="pass"/><test-case name="24945addB132.v tokoe:valid" result="pass"/><test-case name="24946addB134.v tokoe:valid" result="pass"/><test-case name="24947addB135 tokoe:valid" result="pass"/><test-case name="24948addB135.v tokoe:valid" result="pass"/><test-case name="24949addB136 tokoe:valid" result="pass"/><test-case name="24950addB136.v tokoe:valid" result="pass"/><test-case name="24951addB137 tokoe:invalid" result="pass"/><test-case name="24952addB138.i tokoe:invalid" result="pass"/><test-case name="24953addB139.i tokoe:invalid" result="pass"/><test-case name="24954addB140 tokoe:valid" result="pass"/><test-case name="24955addB140.v tokoe:valid" result="pass"/><test-case name="24956addB141 tokoe:invalid" result="pass"/><test-case name="24957addB142.i tokoe:invalid" result="pass"/><test-case name="24958addB143 tokoe:valid" result="pass"/><test-case name="24959addB143.i tokoe:invalid" result="pass"/><test-case name="24960addB144 tokoe:valid" result="pass"/><test-case name="24961addB145 tokoe:valid" result="pass"/><test-case name="24962addB145.v tokoe:valid" result="pass"/><test-case name="24963test93160 tokoe:valid" result="pass"/><test-case name="24964test93160.i tokoe:invalid" result="pass"/><test-case name="24965addB147 tokoe:valid" result="pass"/><test-case name="24966addB148 tokoe:valid" result="pass"/><test-case name="24967addB148.v tokoe:valid" result="pass"/><test-case name="24968addB149 tokoe:valid" result="pass"/><test-case name="24969addB149.i tokoe:invalid" result="pass"/><test-case name="24970addB150 tokoe:valid" result="pass"/><test-case name="24971addB151 tokoe:valid" result="pass"/><test-case name="24972addB153 tokoe:invalid" result="pass"/><test-case name="24973addB155.v tokoe:valid" result="pass"/><test-case name="24974addB156.i tokoe:invalid" result="pass"/><test-case name="24975addB157.v tokoe:valid" result="pass"/><test-case name="24976addB158.i tokoe:invalid" result="pass"/><test-case name="24977addB159.i tokoe:invalid" result="pass"/><test-case name="24978addB160.v tokoe:valid" result="pass"/><test-case name="24979addB161.i tokoe:invalid" result="pass"/><test-case name="24980addB162.i tokoe:invalid" result="pass"/><test-case name="24981addB163.v tokoe:valid" result="pass"/><test-case name="24982addB164.i tokoe:invalid" result="pass"/><test-case name="24983addB165.v tokoe:valid" result="pass"/><test-case name="24984addB166.i tokoe:invalid" result="pass"/><test-case name="24985addB167.i tokoe:invalid" result="fail"/><test-case name="24986addB168.v tokoe:valid" result="pass"/><test-case name="24987addB169.v tokoe:valid" result="pass"/><test-case name="24988addB169.1 tokoe:valid" result="pass"/><test-case name="24989addB169.1.v tokoe:valid" result="pass"/><test-case name="24990addB170 tokoe:valid" result="pass"/><test-case name="24991addB170.i tokoe:invalid" result="pass"/><test-case name="24992addB171 tokoe:valid" result="pass"/><test-case name="24993addB171.i tokoe:invalid" result="pass"/><test-case name="24994addB172 tokoe:valid" result="pass"/><test-case name="24995addB172.i tokoe:invalid" result="pass"/><test-case name="24996addB173 tokoe:valid" result="pass"/><test-case name="24997addB173.i tokoe:invalid" result="pass"/><test-case name="24998addB174 tokoe:valid" result="pass"/><test-case name="24999addB174.v tokoe:valid" result="pass"/><test-case name="25000addB175 tokoe:valid" result="pass"/><test-case name="25001addB175.i tokoe:invalid" result="pass"/><test-case name="25002addB176 tokoe:valid" result="pass"/><test-case name="25003addB176.v tokoe:valid" result="pass"/><test-case name="25004addB177 tokoe:invalid" result="pass"/><test-case name="25005addB178 tokoe:invalid" result="pass"/><test-case name="25006addB180 tokoe:invalid" result="pass"/><test-case name="25007addB181.i tokoe:invalid" result="pass"/><test-case name="25008addB182 tokoe:valid" result="pass"/><test-case name="25009addB182.v tokoe:valid" result="pass"/><test-case name="25010addB183 tokoe:valid" result="pass"/><test-case name="25011addB184 tokoe:valid" result="pass"/><test-case name="25012addB187 tokoe:valid" result="pass"/><test-case name="25013addB187.v tokoe:valid" result="pass"/><test-case name="25014addB188 tokoe:valid" result="pass"/><test-case name="25015addB188.i tokoe:invalid" result="pass"/><test-case name="25016addB191.v tokoe:invalid" result="pass"/><test-case name="25017addB193 tokoe:valid" result="pass"/><test-case name="25018addB194 tokoe:valid" result="fail"/><test-case name="25019addB196a tokoe:valid" result="pass"/><test-case name="25020addB196a.v tokoe:valid" result="pass"/><test-case name="25021addB196b tokoe:valid" result="pass"/><test-case name="25022addB196b.i tokoe:invalid" result="pass"/><test-case name="25023addB196c tokoe:valid" result="pass"/><test-case name="25024addB196c.v tokoe:valid" result="pass"/><test-case name="25025addB196d tokoe:valid" result="pass"/><test-case name="25026addB196d.i tokoe:invalid" result="pass"/><test-case name="25027addB196e tokoe:valid" result="pass"/><test-case name="25028addB196e.i tokoe:invalid" result="pass"/><test-case name="25029addB196f tokoe:valid" result="pass"/><test-case name="25030addB196f.v tokoe:valid" result="pass"/><test-case name="25031addB196g tokoe:valid" result="pass"/><test-case name="25032addB196g.i tokoe:invalid" result="pass"/><test-case name="25033addB196h tokoe:valid" result="pass"/><test-case name="25034addB196h.v tokoe:valid" result="pass"/><test-case name="25035addB196i tokoe:valid" result="pass"/><test-case name="25036addB196i.i tokoe:invalid" result="pass"/><test-case name="25037addB196j tokoe:valid" result="pass"/><test-case name="25038addB196j.i tokoe:invalid" result="pass"/><test-case name="25039addB196k tokoe:valid" result="pass"/><test-case name="25040addB196k.i tokoe:invalid" result="pass"/><test-case name="25041addB196l tokoe:valid" result="pass"/><test-case name="25042addB196l.i tokoe:invalid" result="pass"/><test-case name="25043addB197a tokoe:valid" result="pass"/><test-case name="25044addB197a.v tokoe:valid" result="pass"/><test-case name="25045addB197b tokoe:valid" result="pass"/><test-case name="25046addB197b.i tokoe:invalid" result="pass"/><test-case name="25047addB197c tokoe:valid" result="pass"/><test-case name="25048addB197c.v tokoe:valid" result="pass"/><test-case name="25049addB197d tokoe:valid" result="pass"/><test-case name="25050addB197d.i tokoe:invalid" result="pass"/><test-case name="25051addB197e tokoe:valid" result="pass"/><test-case name="25052addB197e.i tokoe:invalid" result="pass"/><test-case name="25053addB197f tokoe:valid" result="pass"/><test-case name="25054addB197f.i tokoe:invalid" result="pass"/><test-case name="25055addB198a tokoe:valid" result="pass"/><test-case name="25056addB198a.i tokoe:invalid" result="pass"/><test-case name="25057addB198b tokoe:valid" result="pass"/><test-case name="25058addB198b.i tokoe:invalid" result="pass"/><test-case name="25059addB198c tokoe:valid" result="pass"/><test-case name="25060addB198c.v tokoe:valid" result="pass"/><test-case name="25061addB198d tokoe:valid" result="pass"/><test-case name="25062addB198d.v tokoe:valid" result="pass"/><test-case name="25063addB199.i tokoe:invalid" result="pass"/><test-case name="25064addB200a tokoe:valid" result="pass"/><test-case name="25065addB200a.i tokoe:invalid" result="pass"/><test-case name="25066addB200b tokoe:valid" result="pass"/><test-case name="25067addB200b.i tokoe:invalid" result="pass"/><test-case name="25068addB200c tokoe:valid" result="pass"/><test-case name="25069addB200c.i tokoe:invalid" result="pass"/><test-case name="25070addB201 tokoe:valid" result="pass"/><test-case name="25071addB201.i tokoe:invalid" result="pass"/><test-case name="25072addB202a.i tokoe:invalid" result="pass"/><test-case name="25073addB202b.i tokoe:invalid" result="pass"/><test-case name="25074addD001 tokoe:valid" result="pass"/><test-case name="25075addD001.v tokoe:valid" result="pass"/><test-case name="25076addD002 tokoe:valid" result="pass"/><test-case name="25077addD002.v tokoe:valid" result="pass"/><test-case name="25078addD003 tokoe:valid" result="pass"/><test-case name="25079addD004 tokoe:valid" result="pass"/><test-case name="25080addD004.v tokoe:valid" result="pass"/><test-case name="25081addD004a tokoe:valid" result="pass"/><test-case name="25082addD004a.v tokoe:valid" result="pass"/><test-case name="25083isDefault001 tokoe:valid" result="pass"/><test-case name="25084isDefault001.v tokoe:valid" result="pass"/><test-case name="25085isDefault002 tokoe:valid" result="pass"/><test-case name="25086isDefault002.v tokoe:valid" result="pass"/><test-case name="25087isDefault003 tokoe:valid" result="pass"/><test-case name="25088isDefault003.v tokoe:valid" result="pass"/><test-case name="25089isDefault004 tokoe:valid" result="pass"/><test-case name="25090isDefault004.i tokoe:invalid" result="pass"/><test-case name="25091isDefault005 tokoe:valid" result="pass"/><test-case name="25092isDefault005.v tokoe:valid" result="pass"/><test-case name="25093isDefault006 tokoe:valid" result="pass"/><test-case name="25094isDefault006.v tokoe:valid" result="pass"/><test-case name="25095isDefault007 tokoe:valid" result="pass"/><test-case name="25096isDefault007.v tokoe:valid" result="pass"/><test-case name="25097isDefault008 tokoe:valid" result="pass"/><test-case name="25098isDefault008.i tokoe:invalid" result="pass"/><test-case name="25099isDefault009 tokoe:valid" result="pass"/><test-case name="25100isDefault009.i tokoe:invalid" result="pass"/><test-case name="25101isDefault010 tokoe:valid" result="pass"/><test-case name="25102isDefault010.i tokoe:invalid" result="pass"/><test-case name="25103isDefault011 tokoe:valid" result="pass"/><test-case name="25104isDefault011.i tokoe:invalid" result="pass"/><test-case name="25105isDefault021 tokoe:valid" result="pass"/><test-case name="25106isDefault021.v tokoe:valid" result="pass"/><test-case name="25107isDefault022 tokoe:valid" result="pass"/><test-case name="25108isDefault022.v tokoe:valid" result="pass"/><test-case name="25109isDefault023 tokoe:valid" result="pass"/><test-case name="25110isDefault023.v tokoe:valid" result="pass"/><test-case name="25111isDefault024 tokoe:valid" result="pass"/><test-case name="25112isDefault024.v tokoe:valid" result="pass"/><test-case name="25113isDefault025 tokoe:valid" result="pass"/><test-case name="25114isDefault025.v tokoe:valid" result="pass"/><test-case name="25115isDefault026 tokoe:valid" result="pass"/><test-case name="25116isDefault026.v tokoe:valid" result="pass"/><test-case name="25117isDefault027 tokoe:valid" result="pass"/><test-case name="25118isDefault027.v tokoe:valid" result="pass"/><test-case name="25119isDefault028 tokoe:valid" result="pass"/><test-case name="25120isDefault028.v tokoe:valid" result="pass"/><test-case name="25121isDefault051 tokoe:valid" result="pass"/><test-case name="25122isDefault051.v tokoe:valid" result="pass"/><test-case name="25123isDefault052 tokoe:valid" result="pass"/><test-case name="25124isDefault052.i tokoe:invalid" result="pass"/><test-case name="25125isDefault053 tokoe:valid" result="pass"/><test-case name="25126isDefault053.i tokoe:invalid" result="pass"/><test-case name="25127isDefault054 tokoe:valid" result="pass"/><test-case name="25128isDefault054.i tokoe:invalid" result="pass"/><test-case name="25129isDefault055 tokoe:valid" result="pass"/><test-case name="25130isDefault055.v tokoe:valid" result="pass"/><test-case name="25131isDefault056 tokoe:valid" result="pass"/><test-case name="25132isDefault056.v tokoe:valid" result="pass"/><test-case name="25133isDefault057 tokoe:valid" result="pass"/><test-case name="25134isDefault057.v tokoe:valid" result="pass"/><test-case name="25135isDefault058 tokoe:valid" result="pass"/><test-case name="25136isDefault058.v tokoe:valid" result="pass"/><test-case name="25137isDefault061 tokoe:valid" result="pass"/><test-case name="25138isDefault061.v tokoe:valid" result="pass"/><test-case name="25139isDefault062 tokoe:valid" result="pass"/><test-case name="25140isDefault062.i tokoe:invalid" result="pass"/><test-case name="25141isDefault063 tokoe:valid" result="pass"/><test-case name="25142isDefault063.i tokoe:invalid" result="pass"/><test-case name="25143isDefault064 tokoe:valid" result="pass"/><test-case name="25144isDefault064.i tokoe:invalid" result="pass"/><test-case name="25145isDefault065 tokoe:valid" result="pass"/><test-case name="25146isDefault065.v tokoe:valid" result="pass"/><test-case name="25147isDefault066 tokoe:valid" result="pass"/><test-case name="25148isDefault066.v tokoe:valid" result="pass"/><test-case name="25149isDefault067 tokoe:valid" result="pass"/><test-case name="25150isDefault067.v tokoe:valid" result="pass"/><test-case name="25151isDefault068 tokoe:valid" result="pass"/><test-case name="25152isDefault068.v tokoe:valid" result="pass"/><test-case name="25153isDefault060_1 tokoe:valid" result="pass"/><test-case name="25154isDefault060_1.v tokoe:valid" result="pass"/><test-case name="25155isDefault070 tokoe:valid" result="pass"/><test-case name="25156isDefault070.i tokoe:invalid" result="pass"/><test-case name="25157isDefault071 tokoe:valid" result="pass"/><test-case name="25158isDefault071.v tokoe:valid" result="pass"/><test-case name="25159isDefault072 tokoe:valid" result="pass"/><test-case name="25160isDefault072.v tokoe:valid" result="pass"/><test-case name="25161isDefault073 tokoe:valid" result="pass"/><test-case name="25162isDefault073.v tokoe:valid" result="pass"/><test-case name="25163isDefault074 tokoe:valid" result="pass"/><test-case name="25164isDefault074.v tokoe:valid" result="pass"/><test-case name="25165isDefault075 tokoe:valid" result="pass"/><test-case name="25166isDefault075.v tokoe:valid" result="pass"/><test-case name="25167isDefault076 tokoe:valid" result="pass"/><test-case name="25168isDefault076.v tokoe:valid" result="pass"/><test-case name="25169isDefault077 tokoe:valid" result="pass"/><test-case name="25170isDefault077.i tokoe:invalid" result="pass"/><test-case name="25171isDefault078 tokoe:valid" result="pass"/><test-case name="25172isDefault078.v tokoe:valid" result="pass"/><test-case name="25173isDefault079 tokoe:valid" result="pass"/><test-case name="25174isDefault079.v tokoe:valid" result="pass"/><test-case name="25175memberType001 tokoe:valid" result="pass"/><test-case name="25176memberType001.v tokoe:valid" result="pass"/><test-case name="25177memberType002 tokoe:valid" result="pass"/><test-case name="25178memberType002.v tokoe:valid" result="pass"/><test-case name="25179memberType003 tokoe:valid" result="pass"/><test-case name="25180memberType003.v tokoe:valid" result="pass"/><test-case name="25181memberType004 tokoe:valid" result="pass"/><test-case name="25182memberType004.v tokoe:valid" result="pass"/><test-case name="25183memberType005 tokoe:valid" result="pass"/><test-case name="25184memberType005.v tokoe:valid" result="pass"/><test-case name="25185memberType006 tokoe:valid" result="pass"/><test-case name="25186memberType006.v tokoe:valid" result="pass"/><test-case name="25187memberType007 tokoe:valid" result="pass"/><test-case name="25188memberType007.v tokoe:valid" result="pass"/><test-case name="25189memberType008 tokoe:valid" result="pass"/><test-case name="25190memberType008.v tokoe:valid" result="pass"/><test-case name="25191memberType021 tokoe:valid" result="pass"/><test-case name="25192memberType021.v tokoe:valid" result="pass"/><test-case name="25193memberType022 tokoe:valid" result="pass"/><test-case name="25194memberType022.v tokoe:valid" result="pass"/><test-case name="25195memberType023 tokoe:valid" result="pass"/><test-case name="25196memberType023.v tokoe:valid" result="pass"/><test-case name="25197memberType024 tokoe:valid" result="pass"/><test-case name="25198memberType024.v tokoe:valid" result="pass"/><test-case name="25199annotA001 tokoe:valid" result="pass"/><test-case name="25200annotA002 tokoe:valid" result="pass"/><test-case name="25201annotA003 tokoe:valid" result="pass"/><test-case name="25202annotA004 tokoe:valid" result="pass"/><test-case name="25203annotA005 tokoe:valid" result="pass"/><test-case name="25204annotA006 tokoe:valid" result="pass"/><test-case name="25205annotA007 tokoe:valid" result="pass"/><test-case name="25206annotA008 tokoe:valid" result="pass"/><test-case name="25207annotA009 tokoe:valid" result="pass"/><test-case name="25208annotA010 tokoe:valid" result="pass"/><test-case name="25209annotA011 tokoe:valid" result="pass"/><test-case name="25210annotA012 tokoe:valid" result="pass"/><test-case name="25211annotA013 tokoe:valid" result="pass"/><test-case name="25212annotA014 tokoe:valid" result="pass"/><test-case name="25213annotA015 tokoe:valid" result="pass"/><test-case name="25214annotA016 tokoe:valid" result="pass"/><test-case name="25215annotA017 tokoe:valid" result="pass"/><test-case name="25216annotA018 tokoe:valid" result="pass"/><test-case name="25217annotA019 tokoe:valid" result="pass"/><test-case name="25218annotA020 tokoe:valid" result="pass"/><test-case name="25219annotA021 tokoe:valid" result="pass"/><test-case name="25220annotA022 tokoe:valid" result="pass"/><test-case name="25221annotA023 tokoe:valid" result="pass"/><test-case name="25222annotB001 tokoe:invalid" result="pass"/><test-case name="25223annotB002 tokoe:valid" result="pass"/><test-case name="25224annotB003 tokoe:valid" result="pass"/><test-case name="25225annotB004 tokoe:invalid" result="pass"/><test-case name="25226annotB005 tokoe:invalid" result="pass"/><test-case name="25227annotB006 tokoe:invalid" result="pass"/><test-case name="25228annotB007 tokoe:invalid" result="pass"/><test-case name="25229annotB008 tokoe:valid" result="pass"/><test-case name="25230annotB009 tokoe:invalid" result="pass"/><test-case name="25231annotB010 tokoe:invalid" result="pass"/><test-case name="25232annotB011 tokoe:invalid" result="pass"/><test-case name="25233annotB012 tokoe:invalid" result="pass"/><test-case name="25234annotB013 tokoe:invalid" result="pass"/><test-case name="25235annotB014 tokoe:valid" result="pass"/><test-case name="25236annotB015 tokoe:invalid" result="pass"/><test-case name="25237annotB016 tokoe:invalid" result="pass"/><test-case name="25238annotB017 tokoe:invalid" result="pass"/><test-case name="25239annotB018 tokoe:invalid" result="pass"/><test-case name="25240annotB019 tokoe:invalid" result="pass"/><test-case name="25241annotB020 tokoe:invalid" result="pass"/><test-case name="25242annotB021 tokoe:invalid" result="pass"/><test-case name="25243annotB022 tokoe:invalid" result="pass"/><test-case name="25244annotB023 tokoe:invalid" result="pass"/><test-case name="25245annotB024 tokoe:invalid" result="pass"/><test-case name="25246annotB026 tokoe:invalid" result="pass"/><test-case name="25247annotB027 tokoe:valid" result="pass"/><test-case name="25248annotB028 tokoe:invalid" result="pass"/><test-case name="25249annotB029 tokoe:invalid" result="pass"/><test-case name="25250annotB030 tokoe:invalid" result="pass"/><test-case name="25251annotB031 tokoe:invalid" result="pass"/><test-case name="25252annotB032 tokoe:invalid" result="pass"/><test-case name="25253annotB033 tokoe:invalid" result="pass"/><test-case name="25254annotC001 tokoe:valid" result="pass"/><test-case name="25255annotC002 tokoe:valid" result="pass"/><test-case name="25256annotC003 tokoe:valid" result="pass"/><test-case name="25257annotC004 tokoe:valid" result="pass"/><test-case name="25258annotC005 tokoe:valid" result="pass"/><test-case name="25259annotD001 tokoe:valid" result="pass"/><test-case name="25260annotD002 tokoe:valid" result="pass"/><test-case name="25261annotD003 tokoe:valid" result="pass"/><test-case name="25262annotD004 tokoe:valid" result="pass"/><test-case name="25263annotD005 tokoe:valid" result="pass"/><test-case name="25264annotE001 tokoe:valid" result="pass"/><test-case name="25265annotE002 tokoe:valid" result="pass"/><test-case name="25266annotF001 tokoe:invalid" result="pass"/><test-case name="25267annotF002 tokoe:valid" result="pass"/><test-case name="25268annotF003 tokoe:invalid" result="pass"/><test-case name="25269annotF004 tokoe:valid" result="pass"/><test-case name="25270annotF005 tokoe:valid" result="pass"/><test-case name="25271annotF006 tokoe:valid" result="pass"/><test-case name="25272annotF007 tokoe:valid" result="pass"/><test-case name="25273annotF008 tokoe:valid" result="pass"/><test-case name="25274annotF009 tokoe:invalid" result="pass"/><test-case name="25275annotZ001 tokoe:valid" result="pass"/><test-case name="25276annotZ002 tokoe:valid" result="pass"/><test-case name="25277annotZ004 tokoe:valid" result="pass"/><test-case name="25278attgA001 tokoe:valid" result="pass"/><test-case name="25279attgA002 tokoe:invalid" result="pass"/><test-case name="25280attgA003 tokoe:invalid" result="pass"/><test-case name="25281attgA004 tokoe:invalid" result="pass"/><test-case name="25282attgA005 tokoe:invalid" result="pass"/><test-case name="25283attgA006 tokoe:invalid" result="pass"/><test-case name="25284attgA007 tokoe:invalid" result="pass"/><test-case name="25285attgA008 tokoe:valid" result="pass"/><test-case name="25286attgA009 tokoe:invalid" result="pass"/><test-case name="25287attgB001 tokoe:valid" result="pass"/><test-case name="25288attgB002 tokoe:invalid" result="pass"/><test-case name="25289attgB003 tokoe:invalid" result="pass"/><test-case name="25290attgB004 tokoe:invalid" result="pass"/><test-case name="25291attgB005 tokoe:valid" result="pass"/><test-case name="25292attgB006 tokoe:invalid" result="pass"/><test-case name="25293attgB007 tokoe:invalid" result="pass"/><test-case name="25294attgB008 tokoe:valid" result="pass"/><test-case name="25295attgB009 tokoe:valid" result="pass"/><test-case name="25296attgB010 tokoe:invalid" result="pass"/><test-case name="25297attgB011 tokoe:invalid" result="pass"/><test-case name="25298attgB012 tokoe:valid" result="pass"/><test-case name="25299attgB013 tokoe:invalid" result="pass"/><test-case name="25300attgB014 tokoe:valid" result="pass"/><test-case name="25301attgB015 tokoe:invalid" result="pass"/><test-case name="25302attgC001 tokoe:invalid" result="pass"/><test-case name="25303attgC002 tokoe:valid" result="pass"/><test-case name="25304attgC003 tokoe:valid" result="pass"/><test-case name="25305attgC004 tokoe:valid" result="pass"/><test-case name="25306attgC005 tokoe:valid" result="pass"/><test-case name="25307attgC006 tokoe:valid" result="pass"/><test-case name="25308attgC006.i tokoe:invalid" result="pass"/><test-case name="25309attgC007 tokoe:valid" result="pass"/><test-case name="25310attgC007.v tokoe:valid" result="pass"/><test-case name="25311attgC008 tokoe:invalid" result="pass"/><test-case name="25312attgC009 tokoe:invalid" result="pass"/><test-case name="25313attgC010 tokoe:invalid" result="pass"/><test-case name="25314attgC011 tokoe:invalid" result="pass"/><test-case name="25315attgC012 tokoe:valid" result="pass"/><test-case name="25316attgC013 tokoe:valid" result="pass"/><test-case name="25317attgC014 tokoe:valid" result="pass"/><test-case name="25318attgC015 tokoe:valid" result="pass"/><test-case name="25319attgC016 tokoe:valid" result="pass"/><test-case name="25320attgC017 tokoe:valid" result="pass"/><test-case name="25321attgC018 tokoe:invalid" result="pass"/><test-case name="25322attgC019 tokoe:invalid" result="pass"/><test-case name="25323attgC020 tokoe:invalid" result="pass"/><test-case name="25324attgC021 tokoe:invalid" result="pass"/><test-case name="25325attgC022 tokoe:valid" result="pass"/><test-case name="25326attgC023 tokoe:valid" result="pass"/><test-case name="25327attgC024 tokoe:valid" result="pass"/><test-case name="25328attgC024.v tokoe:valid" result="pass"/><test-case name="25329attgC025 tokoe:valid" result="pass"/><test-case name="25330attgC025.i tokoe:invalid" result="pass"/><test-case name="25331attgC026 tokoe:valid" result="pass"/><test-case name="25332attgC026.v tokoe:valid" result="pass"/><test-case name="25333attgC027 tokoe:valid" result="pass"/><test-case name="25334attgC028 tokoe:invalid" result="pass"/><test-case name="25335attgC029 tokoe:invalid" result="pass"/><test-case name="25336attgC030 tokoe:invalid" result="pass"/><test-case name="25337attgC031 tokoe:invalid" result="pass"/><test-case name="25338attgC032 tokoe:invalid" result="pass"/><test-case name="25339attgC033 tokoe:valid" result="pass"/><test-case name="25340attgC034 tokoe:valid" result="pass"/><test-case name="25341attgC035 tokoe:valid" result="pass"/><test-case name="25342attgC035.v tokoe:valid" result="pass"/><test-case name="25343attgC036 tokoe:valid" result="pass"/><test-case name="25344attgC036.v tokoe:valid" result="pass"/><test-case name="25345attgC037 tokoe:valid" result="pass"/><test-case name="25346attgC037.v tokoe:valid" result="pass"/><test-case name="25347attgC038 tokoe:valid" result="pass"/><test-case name="25348attgC038.v tokoe:valid" result="pass"/><test-case name="25349attgC039 tokoe:invalid" result="pass"/><test-case name="25350attgC040 tokoe:invalid" result="pass"/><test-case name="25351attgC041 tokoe:valid" result="pass"/><test-case name="25352attgC042 tokoe:invalid" result="pass"/><test-case name="25353attgC043 tokoe:valid" result="pass"/><test-case name="25354attgC044 tokoe:invalid" result="pass"/><test-case name="25355attgC045 tokoe:valid" result="pass"/><test-case name="25356attgD001 tokoe:valid" result="pass"/><test-case name="25357attgD002 tokoe:invalid" result="pass"/><test-case name="25358attgD003 tokoe:valid" result="pass"/><test-case name="25359attgD003.v tokoe:valid" result="pass"/><test-case name="25360attgD004 tokoe:valid" result="pass"/><test-case name="25361attgD004.v tokoe:valid" result="pass"/><test-case name="25362attgD005 tokoe:valid" result="pass"/><test-case name="25363attgD005.v tokoe:valid" result="pass"/><test-case name="25364attgD006 tokoe:invalid" result="pass"/><test-case name="25365attgD007 tokoe:invalid" result="pass"/><test-case name="25366attgD008 tokoe:invalid" result="pass"/><test-case name="25367attgD009 tokoe:invalid" result="pass"/><test-case name="25368attgD010 tokoe:valid" result="pass"/><test-case name="25369attgD011 tokoe:invalid" result="pass"/><test-case name="25370attgD012 tokoe:invalid" result="pass"/><test-case name="25371attgD013 tokoe:invalid" result="pass"/><test-case name="25372attgD014 tokoe:invalid" result="pass"/><test-case name="25373attgD015 tokoe:invalid" result="pass"/><test-case name="25374attgD016 tokoe:invalid" result="pass"/><test-case name="25375attgD017 tokoe:invalid" result="pass"/><test-case name="25376attgD018 tokoe:valid" result="pass"/><test-case name="25377attgD018.v tokoe:valid" result="pass"/><test-case name="25378attgD019 tokoe:valid" result="pass"/><test-case name="25379attgD019.v tokoe:valid" result="pass"/><test-case name="25380attgD020 tokoe:valid" result="pass"/><test-case name="25381attgD020.v tokoe:valid" result="pass"/><test-case name="25382attgD021 tokoe:valid" result="pass"/><test-case name="25383attgD021.v tokoe:valid" result="pass"/><test-case name="25384attgD022 tokoe:valid" result="pass"/><test-case name="25385attgD022.v tokoe:valid" result="pass"/><test-case name="25386attgD023 tokoe:valid" result="pass"/><test-case name="25387attgD023.i tokoe:invalid" result="pass"/><test-case name="25388attgD024 tokoe:valid" result="pass"/><test-case name="25389attgD024.i tokoe:invalid" result="pass"/><test-case name="25390attgD025 tokoe:valid" result="pass"/><test-case name="25391attgD025.v tokoe:valid" result="pass"/><test-case name="25392attgD026 tokoe:valid" result="pass"/><test-case name="25393attgD026.i tokoe:invalid" result="pass"/><test-case name="25394attgD027 tokoe:valid" result="pass"/><test-case name="25395attgD027.v tokoe:valid" result="pass"/><test-case name="25396attgD028 tokoe:valid" result="pass"/><test-case name="25397attgD028.i tokoe:invalid" result="pass"/><test-case name="25398attgD029 tokoe:valid" result="pass"/><test-case name="25399attgD029.v tokoe:valid" result="pass"/><test-case name="25400attgD030 tokoe:valid" result="pass"/><test-case name="25401attgD030.i tokoe:invalid" result="pass"/><test-case name="25402attgD031 tokoe:valid" result="pass"/><test-case name="25403attgD031.v tokoe:valid" result="pass"/><test-case name="25404attgD032 tokoe:valid" result="pass"/><test-case name="25405attgD032.v tokoe:valid" result="pass"/><test-case name="25406attgD033 tokoe:valid" result="pass"/><test-case name="25407attgD033.v tokoe:valid" result="pass"/><test-case name="25408attgD034 tokoe:valid" result="pass"/><test-case name="25409attgD034.v tokoe:valid" result="pass"/><test-case name="25410attgD035 tokoe:valid" result="pass"/><test-case name="25411attgD035.i tokoe:invalid" result="pass"/><test-case name="25412attgD036 tokoe:valid" result="pass"/><test-case name="25413attgD036.v tokoe:valid" result="pass"/><test-case name="25414attgD037 tokoe:invalid" result="pass"/><test-case name="25415attgD038 tokoe:invalid" result="pass"/><test-case name="25416attgD039 tokoe:invalid" result="pass"/><test-case name="25417attgD040 tokoe:valid" result="pass"/><test-case name="25418attgD041 tokoe:invalid" result="pass"/><test-case name="25419attgD042 tokoe:valid" result="pass"/><test-case name="25420attgD042.i tokoe:invalid" result="pass"/><test-case name="25421attgZ001 tokoe:valid" result="pass"/><test-case name="25422attgZ001.i tokoe:invalid" result="pass"/><test-case name="25423attgZ002 tokoe:invalid" result="pass"/><test-case name="25424attgZ003 tokoe:invalid" result="pass"/><test-case name="25425attA001 tokoe:invalid" result="pass"/><test-case name="25426attA002 tokoe:invalid" result="pass"/><test-case name="25427attA003 tokoe:invalid" result="pass"/><test-case name="25428attA004 tokoe:invalid" result="pass"/><test-case name="25429attA005 tokoe:invalid" result="pass"/><test-case name="25430attA006 tokoe:invalid" result="pass"/><test-case name="25431attA007 tokoe:valid" result="pass"/><test-case name="25432attA008 tokoe:valid" result="pass"/><test-case name="25433attB001 tokoe:valid" result="pass"/><test-case name="25434attB002 tokoe:valid" result="pass"/><test-case name="25435attB003 tokoe:valid" result="pass"/><test-case name="25436attB004 tokoe:valid" result="pass"/><test-case name="25437attB005 tokoe:invalid" result="pass"/><test-case name="25438attB006 tokoe:invalid" result="pass"/><test-case name="25439attC001 tokoe:valid" result="pass"/><test-case name="25440attC002 tokoe:valid" result="pass"/><test-case name="25441attC003 tokoe:valid" result="pass"/><test-case name="25442attC004 tokoe:invalid" result="pass"/><test-case name="25443attC005 tokoe:invalid" result="pass"/><test-case name="25444attC006 tokoe:invalid" result="pass"/><test-case name="25445attC007 tokoe:invalid" result="pass"/><test-case name="25446attC008 tokoe:invalid" result="pass"/><test-case name="25447attC009 tokoe:invalid" result="pass"/><test-case name="25448attC010 tokoe:invalid" result="pass"/><test-case name="25449attD001 tokoe:valid" result="pass"/><test-case name="25450attD002 tokoe:invalid" result="pass"/><test-case name="25451attD003 tokoe:valid" result="pass"/><test-case name="25452attD003.v tokoe:valid" result="pass"/><test-case name="25453attD004 tokoe:valid" result="pass"/><test-case name="25454attD004.v tokoe:valid" result="pass"/><test-case name="25455attD005 tokoe:invalid" result="pass"/><test-case name="25456attD006 tokoe:invalid" result="pass"/><test-case name="25457attD007 tokoe:valid" result="pass"/><test-case name="25458attD007.v tokoe:valid" result="pass"/><test-case name="25459attE001 tokoe:valid" result="pass"/><test-case name="25460attE001.v tokoe:valid" result="pass"/><test-case name="25461attE002 tokoe:invalid" result="pass"/><test-case name="25462attE003 tokoe:invalid" result="pass"/><test-case name="25463attE004 tokoe:invalid" result="pass"/><test-case name="25464attE005 tokoe:invalid" result="pass"/><test-case name="25465attE006 tokoe:invalid" result="pass"/><test-case name="25466attE007 tokoe:invalid" result="pass"/><test-case name="25467attE008 tokoe:valid" result="pass"/><test-case name="25468attF001 tokoe:valid" result="pass"/><test-case name="25469attF001.i tokoe:invalid" result="pass"/><test-case name="25470attF002 tokoe:valid" result="pass"/><test-case name="25471attF002.v tokoe:valid" result="pass"/><test-case name="25472attF003 tokoe:valid" result="pass"/><test-case name="25473attF003.v tokoe:valid" result="pass"/><test-case name="25474attF004 tokoe:invalid" result="pass"/><test-case name="25475attF005 tokoe:invalid" result="pass"/><test-case name="25476attF006 tokoe:invalid" result="pass"/><test-case name="25477attF007 tokoe:invalid" result="pass"/><test-case name="25478attF008 tokoe:invalid" result="pass"/><test-case name="25479attF009 tokoe:invalid" result="pass"/><test-case name="25480attF010 tokoe:invalid" result="pass"/><test-case name="25481attF011 tokoe:invalid" result="pass"/><test-case name="25482attJ001 tokoe:valid" result="pass"/><test-case name="25483attJ001.v tokoe:valid" result="pass"/><test-case name="25484attJ002 tokoe:valid" result="pass"/><test-case name="25485attJ002.i tokoe:invalid" result="pass"/><test-case name="25486attJ003 tokoe:valid" result="pass"/><test-case name="25487attJ003.i tokoe:invalid" result="pass"/><test-case name="25488attJ004 tokoe:valid" result="pass"/><test-case name="25489attJ004.v tokoe:valid" result="pass"/><test-case name="25490attJ005 tokoe:valid" result="pass"/><test-case name="25491attJ005.v tokoe:valid" result="pass"/><test-case name="25492attJ006 tokoe:valid" result="pass"/><test-case name="25493attJ006.v tokoe:valid" result="pass"/><test-case name="25494attJ007 tokoe:valid" result="pass"/><test-case name="25495attJ007.v tokoe:valid" result="pass"/><test-case name="25496attJ008 tokoe:valid" result="pass"/><test-case name="25497attJ008.i tokoe:invalid" result="pass"/><test-case name="25498attJ009 tokoe:valid" result="pass"/><test-case name="25499attJ009.i tokoe:invalid" result="pass"/><test-case name="25500attJ010 tokoe:valid" result="pass"/><test-case name="25501attJ010.i tokoe:invalid" result="pass"/><test-case name="25502attJ011 tokoe:invalid" result="pass"/><test-case name="25503attJ012 tokoe:invalid" result="pass"/><test-case name="25504attJ013 tokoe:invalid" result="pass"/><test-case name="25505attJ014 tokoe:invalid" result="pass"/><test-case name="25506attJ015 tokoe:invalid" result="pass"/><test-case name="25507attJ016 tokoe:invalid" result="pass"/><test-case name="25508attJ017 tokoe:invalid" result="pass"/><test-case name="25509attJ018 tokoe:valid" result="pass"/><test-case name="25510attJ018.v tokoe:valid" result="pass"/><test-case name="25511attG001 tokoe:valid" result="pass"/><test-case name="25512attG002 tokoe:valid" result="pass"/><test-case name="25513attG003 tokoe:valid" result="pass"/><test-case name="25514attH001 tokoe:invalid" result="pass"/><test-case name="25515attI001 tokoe:valid" result="pass"/><test-case name="25516attI002 tokoe:valid" result="pass"/><test-case name="25517attI003 tokoe:valid" result="pass"/><test-case name="25518attI003.v tokoe:valid" result="pass"/><test-case name="25519attI004 tokoe:invalid" result="pass"/><test-case name="25520attI005 tokoe:invalid" result="pass"/><test-case name="25521attI006 tokoe:invalid" result="pass"/><test-case name="25522attKa001 tokoe:invalid" result="pass"/><test-case name="25523attKa002 tokoe:valid" result="pass"/><test-case name="25524attKa003 tokoe:invalid" result="pass"/><test-case name="25525attKa004 tokoe:invalid" result="pass"/><test-case name="25526attKa005 tokoe:invalid" result="pass"/><test-case name="25527attKa006 tokoe:valid" result="pass"/><test-case name="25528attKa007 tokoe:invalid" result="pass"/><test-case name="25529attKa008 tokoe:invalid" result="pass"/><test-case name="25530attKa009 tokoe:invalid" result="pass"/><test-case name="25531attKa010 tokoe:invalid" result="pass"/><test-case name="25532attKa011 tokoe:invalid" result="pass"/><test-case name="25533attKa012 tokoe:invalid" result="pass"/><test-case name="25534attKa013 tokoe:invalid" result="pass"/><test-case name="25535attKa014 tokoe:invalid" result="pass"/><test-case name="25536attKa015 tokoe:invalid" result="pass"/><test-case name="25537attKb001 tokoe:invalid" result="pass"/><test-case name="25538attKb002 tokoe:valid" result="pass"/><test-case name="25539attKb003 tokoe:valid" result="pass"/><test-case name="25540attKb004 tokoe:invalid" result="pass"/><test-case name="25541attKb005 tokoe:invalid" result="pass"/><test-case name="25542attKb006 tokoe:valid" result="pass"/><test-case name="25543attKb007 tokoe:valid" result="pass"/><test-case name="25544attKb008 tokoe:valid" result="pass"/><test-case name="25545attKb009 tokoe:valid" result="pass"/><test-case name="25546attKb010 tokoe:invalid" result="pass"/><test-case name="25547attKb011 tokoe:invalid" result="pass"/><test-case name="25548attKb012 tokoe:invalid" result="pass"/><test-case name="25549attKb013 tokoe:invalid" result="pass"/><test-case name="25550attKb014 tokoe:invalid" result="pass"/><test-case name="25551attKb015 tokoe:invalid" result="pass"/><test-case name="25552attKb016 tokoe:invalid" result="pass"/><test-case name="25553attKb017 tokoe:invalid" result="pass"/><test-case name="25554attKb018 tokoe:valid" result="pass"/><test-case name="25555attKb018a tokoe:invalid" result="pass"/><test-case name="25556attKc001 tokoe:invalid" result="pass"/><test-case name="25557attKc002 tokoe:valid" result="pass"/><test-case name="25558attKc003 tokoe:valid" result="pass"/><test-case name="25559attKc004 tokoe:invalid" result="pass"/><test-case name="25560attKc005 tokoe:invalid" result="pass"/><test-case name="25561attKc006 tokoe:valid" result="pass"/><test-case name="25562attKc007 tokoe:valid" result="pass"/><test-case name="25563attKc008 tokoe:valid" result="pass"/><test-case name="25564attKc009 tokoe:valid" result="pass"/><test-case name="25565attKc010 tokoe:invalid" result="pass"/><test-case name="25566attKc011 tokoe:invalid" result="pass"/><test-case name="25567attKc012 tokoe:invalid" result="pass"/><test-case name="25568attKc013 tokoe:invalid" result="pass"/><test-case name="25569attKc014 tokoe:invalid" result="pass"/><test-case name="25570attKc015 tokoe:invalid" result="pass"/><test-case name="25571attKc016 tokoe:invalid" result="pass"/><test-case name="25572attKc017 tokoe:invalid" result="pass"/><test-case name="25573attKc018 tokoe:valid" result="pass"/><test-case name="25574attKc018a tokoe:invalid" result="pass"/><test-case name="25575attLa001 tokoe:valid" result="pass"/><test-case name="25576attLa001.v tokoe:valid" result="pass"/><test-case name="25577attLa002 tokoe:valid" result="pass"/><test-case name="25578attLa002.v tokoe:valid" result="pass"/><test-case name="25579attLa003 tokoe:valid" result="pass"/><test-case name="25580attLa003.v tokoe:valid" result="pass"/><test-case name="25581attLa004 tokoe:valid" result="pass"/><test-case name="25582attLa004.v tokoe:valid" result="pass"/><test-case name="25583attLa005 tokoe:valid" result="pass"/><test-case name="25584attLa005.i tokoe:invalid" result="pass"/><test-case name="25585attLa006 tokoe:valid" result="pass"/><test-case name="25586attLa006.v tokoe:valid" result="pass"/><test-case name="25587attLb001 tokoe:valid" result="pass"/><test-case name="25588attLb001.v tokoe:valid" result="pass"/><test-case name="25589attLb002 tokoe:valid" result="pass"/><test-case name="25590attLb002.v tokoe:valid" result="pass"/><test-case name="25591attLb003 tokoe:valid" result="pass"/><test-case name="25592attLb003.v tokoe:valid" result="pass"/><test-case name="25593attLb004 tokoe:valid" result="pass"/><test-case name="25594attLb004.v tokoe:valid" result="pass"/><test-case name="25595attLb005 tokoe:valid" result="pass"/><test-case name="25596attLb005.i tokoe:invalid" result="pass"/><test-case name="25597attLb006 tokoe:valid" result="pass"/><test-case name="25598attLb006.v tokoe:valid" result="pass"/><test-case name="25599attLc001 tokoe:valid" result="pass"/><test-case name="25600attLc001.v tokoe:valid" result="pass"/><test-case name="25601attLc002 tokoe:valid" result="pass"/><test-case name="25602attLc002.v tokoe:valid" result="pass"/><test-case name="25603attLc003 tokoe:valid" result="pass"/><test-case name="25604attLc003.v tokoe:valid" result="pass"/><test-case name="25605attLc004 tokoe:valid" result="pass"/><test-case name="25606attLc004.v tokoe:valid" result="pass"/><test-case name="25607attLc005 tokoe:valid" result="pass"/><test-case name="25608attLc005.i tokoe:invalid" result="pass"/><test-case name="25609attLc006 tokoe:valid" result="pass"/><test-case name="25610attLc006.v tokoe:valid" result="pass"/><test-case name="25611attO001 tokoe:valid" result="pass"/><test-case name="25612attO001.i tokoe:invalid" result="pass"/><test-case name="25613attO002 tokoe:invalid" result="pass"/><test-case name="25614attO003 tokoe:invalid" result="pass"/><test-case name="25615attO004 tokoe:valid" result="pass"/><test-case name="25616attO004.i tokoe:invalid" result="pass"/><test-case name="25617attO005 tokoe:invalid" result="pass"/><test-case name="25618attO006 tokoe:valid" result="pass"/><test-case name="25619attO006.v tokoe:valid" result="pass"/><test-case name="25620attO007 tokoe:valid" result="pass"/><test-case name="25621attO007.v tokoe:valid" result="pass"/><test-case name="25622attO008 tokoe:valid" result="pass"/><test-case name="25623attO008.i tokoe:invalid" result="pass"/><test-case name="25624attO009 tokoe:valid" result="pass"/><test-case name="25625attO009.v tokoe:valid" result="pass"/><test-case name="25626attO010 tokoe:valid" result="pass"/><test-case name="25627attO010.v tokoe:valid" result="pass"/><test-case name="25628attO011 tokoe:valid" result="pass"/><test-case name="25629attO011.v tokoe:valid" result="pass"/><test-case name="25630attO012 tokoe:valid" result="pass"/><test-case name="25631attO012.i tokoe:invalid" result="pass"/><test-case name="25632attO013 tokoe:invalid" result="pass"/><test-case name="25633attO014 tokoe:invalid" result="pass"/><test-case name="25634attO015 tokoe:invalid" result="pass"/><test-case name="25635attO016 tokoe:invalid" result="pass"/><test-case name="25636attO017 tokoe:invalid" result="pass"/><test-case name="25637attO018 tokoe:valid" result="pass"/><test-case name="25638attO019 tokoe:invalid" result="pass"/><test-case name="25639attO020 tokoe:invalid" result="pass"/><test-case name="25640attO021 tokoe:invalid" result="pass"/><test-case name="25641attO022 tokoe:invalid" result="pass"/><test-case name="25642attO023 tokoe:invalid" result="pass"/><test-case name="25643attO024 tokoe:invalid" result="pass"/><test-case name="25644attO025 tokoe:invalid" result="pass"/><test-case name="25645attMa001 tokoe:valid" result="pass"/><test-case name="25646attMa001.i tokoe:invalid" result="pass"/><test-case name="25647attMa002 tokoe:valid" result="pass"/><test-case name="25648attMa002.i tokoe:invalid" result="pass"/><test-case name="25649attMa003 tokoe:valid" result="pass"/><test-case name="25650attMa003.v tokoe:valid" result="pass"/><test-case name="25651attMa004 tokoe:valid" result="pass"/><test-case name="25652attMa004.v tokoe:valid" result="pass"/><test-case name="25653attMb001 tokoe:valid" result="pass"/><test-case name="25654attMb001.i tokoe:invalid" result="pass"/><test-case name="25655attMb002 tokoe:valid" result="pass"/><test-case name="25656attMb002.i tokoe:invalid" result="pass"/><test-case name="25657attMb003 tokoe:valid" result="pass"/><test-case name="25658attMb003.i tokoe:invalid" result="pass"/><test-case name="25659attMb004 tokoe:valid" result="pass"/><test-case name="25660attMb004.v tokoe:valid" result="pass"/><test-case name="25661attMb005 tokoe:valid" result="pass"/><test-case name="25662attMb005.v tokoe:valid" result="pass"/><test-case name="25663attMb006 tokoe:valid" result="pass"/><test-case name="25664attMb006.v tokoe:valid" result="pass"/><test-case name="25665attMb007 tokoe:valid" result="pass"/><test-case name="25666attMb007.v tokoe:valid" result="pass"/><test-case name="25667attMb008 tokoe:valid" result="pass"/><test-case name="25668attMb008.v tokoe:valid" result="pass"/><test-case name="25669attMb009 tokoe:valid" result="pass"/><test-case name="25670attMb009.v tokoe:valid" result="pass"/><test-case name="25671attMb010 tokoe:valid" result="pass"/><test-case name="25672attMb010.i tokoe:invalid" result="pass"/><test-case name="25673attMb011 tokoe:valid" result="pass"/><test-case name="25674attMb011.i tokoe:invalid" result="pass"/><test-case name="25675attMb012 tokoe:valid" result="pass"/><test-case name="25676attMb012.i tokoe:invalid" result="pass"/><test-case name="25677attMc001 tokoe:valid" result="pass"/><test-case name="25678attMc001.i tokoe:invalid" result="pass"/><test-case name="25679attMc002 tokoe:valid" result="pass"/><test-case name="25680attMc002.i tokoe:invalid" result="pass"/><test-case name="25681attMc003 tokoe:valid" result="pass"/><test-case name="25682attMc003.i tokoe:invalid" result="pass"/><test-case name="25683attMc004 tokoe:valid" result="pass"/><test-case name="25684attMc004.v tokoe:valid" result="pass"/><test-case name="25685attMc005 tokoe:valid" result="pass"/><test-case name="25686attMc005.v tokoe:valid" result="pass"/><test-case name="25687attMc006 tokoe:valid" result="pass"/><test-case name="25688attMc006.v tokoe:valid" result="pass"/><test-case name="25689attMc007 tokoe:valid" result="pass"/><test-case name="25690attMc007.v tokoe:valid" result="pass"/><test-case name="25691attMc008 tokoe:valid" result="pass"/><test-case name="25692attMc008.v tokoe:valid" result="pass"/><test-case name="25693attMc009 tokoe:valid" result="pass"/><test-case name="25694attMc009.v tokoe:valid" result="pass"/><test-case name="25695attMc010 tokoe:valid" result="pass"/><test-case name="25696attMc010.i tokoe:invalid" result="pass"/><test-case name="25697attMc011 tokoe:valid" result="pass"/><test-case name="25698attMc011.i tokoe:invalid" result="pass"/><test-case name="25699attMc012 tokoe:valid" result="pass"/><test-case name="25700attMc012.i tokoe:invalid" result="pass"/><test-case name="25701attMd001.i tokoe:invalid" result="pass"/><test-case name="25702attMd002.i tokoe:invalid" result="pass"/><test-case name="25703attMd003.i tokoe:invalid" result="pass"/><test-case name="25704attMd004.i tokoe:invalid" result="pass"/><test-case name="25705attMd005.i tokoe:invalid" result="pass"/><test-case name="25706attMd006.i tokoe:invalid" result="pass"/><test-case name="25707attMd007.i tokoe:invalid" result="pass"/><test-case name="25708attMd008.i tokoe:invalid" result="pass"/><test-case name="25709attMd009.i tokoe:invalid" result="pass"/><test-case name="25710attMd010.i tokoe:invalid" result="pass"/><test-case name="25711attMd011.i tokoe:invalid" result="pass"/><test-case name="25712attP001 tokoe:invalid" result="pass"/><test-case name="25713attP002 tokoe:invalid" result="pass"/><test-case name="25714attP003 tokoe:invalid" result="pass"/><test-case name="25715attP004 tokoe:valid" result="pass"/><test-case name="25716attP004.v tokoe:valid" result="pass"/><test-case name="25717attP005 tokoe:valid" result="pass"/><test-case name="25718attP005.i tokoe:invalid" result="pass"/><test-case name="25719attP006 tokoe:invalid" result="pass"/><test-case name="25720attP007 tokoe:valid" result="pass"/><test-case name="25721attP007.v tokoe:valid" result="pass"/><test-case name="25722attP008 tokoe:valid" result="pass"/><test-case name="25723attP008.i tokoe:invalid" result="pass"/><test-case name="25724attP009 tokoe:valid" result="pass"/><test-case name="25725attP009.i tokoe:invalid" result="pass"/><test-case name="25726attP010 tokoe:valid" result="pass"/><test-case name="25727attP010.i tokoe:invalid" result="pass"/><test-case name="25728attP011 tokoe:valid" result="pass"/><test-case name="25729attP011.v tokoe:valid" result="pass"/><test-case name="25730attP012 tokoe:valid" result="pass"/><test-case name="25731attP012.i tokoe:invalid" result="pass"/><test-case name="25732attP013 tokoe:valid" result="pass"/><test-case name="25733attP013.v tokoe:valid" result="pass"/><test-case name="25734attP014 tokoe:valid" result="pass"/><test-case name="25735attP014.i tokoe:invalid" result="pass"/><test-case name="25736attP015 tokoe:valid" result="pass"/><test-case name="25737attP015.v tokoe:valid" result="pass"/><test-case name="25738attP016 tokoe:valid" result="pass"/><test-case name="25739attP016.i tokoe:invalid" result="pass"/><test-case name="25740attP017 tokoe:valid" result="pass"/><test-case name="25741attP017.v tokoe:valid" result="pass"/><test-case name="25742attP018 tokoe:valid" result="pass"/><test-case name="25743attP018.i tokoe:invalid" result="pass"/><test-case name="25744attP019 tokoe:valid" result="pass"/><test-case name="25745attP019.v tokoe:valid" result="pass"/><test-case name="25746attP020 tokoe:valid" result="pass"/><test-case name="25747attP020.i tokoe:invalid" result="pass"/><test-case name="25748attP021 tokoe:valid" result="pass"/><test-case name="25749attP021.v tokoe:valid" result="pass"/><test-case name="25750attP022 tokoe:valid" result="pass"/><test-case name="25751attP022.v tokoe:valid" result="pass"/><test-case name="25752attP023 tokoe:valid" result="pass"/><test-case name="25753attP023.v tokoe:valid" result="pass"/><test-case name="25754attP024 tokoe:valid" result="pass"/><test-case name="25755attP024.v tokoe:valid" result="pass"/><test-case name="25756attP025 tokoe:valid" result="pass"/><test-case name="25757attP025.v tokoe:valid" result="pass"/><test-case name="25758attP026 tokoe:valid" result="pass"/><test-case name="25759attP026.v tokoe:valid" result="pass"/><test-case name="25760attP027 tokoe:valid" result="pass"/><test-case name="25761attP027.i tokoe:invalid" result="pass"/><test-case name="25762attP028 tokoe:valid" result="pass"/><test-case name="25763attP028.v tokoe:valid" result="pass"/><test-case name="25764attP029 tokoe:valid" result="pass"/><test-case name="25765attP029.v tokoe:valid" result="pass"/><test-case name="25766attP030 tokoe:invalid" result="pass"/><test-case name="25767attP031 tokoe:valid" result="pass"/><test-case name="25768attP031.i tokoe:invalid" result="pass"/><test-case name="25769attP032 tokoe:valid" result="pass"/><test-case name="25770attP032.v tokoe:valid" result="pass"/><test-case name="25771attQ001 tokoe:invalid" result="pass"/><test-case name="25772attQ002 tokoe:invalid" result="pass"/><test-case name="25773attQ003 tokoe:valid" result="pass"/><test-case name="25774attQ003.v tokoe:valid" result="pass"/><test-case name="25775attQ004 tokoe:invalid" result="pass"/><test-case name="25776attQ005 tokoe:invalid" result="pass"/><test-case name="25777attQ006 tokoe:invalid" result="pass"/><test-case name="25778attQ007 tokoe:invalid" result="pass"/><test-case name="25779attQ008 tokoe:invalid" result="pass"/><test-case name="25780attQ009 tokoe:invalid" result="pass"/><test-case name="25781attQ010 tokoe:valid" result="pass"/><test-case name="25782attQ011 tokoe:invalid" result="pass"/><test-case name="25783attQ012 tokoe:invalid" result="pass"/><test-case name="25784attQ013 tokoe:invalid" result="pass"/><test-case name="25785attQ014 tokoe:valid" result="pass"/><test-case name="25786attQ014.v tokoe:valid" result="pass"/><test-case name="25787attQ015 tokoe:invalid" result="pass"/><test-case name="25788attQ016 tokoe:invalid" result="pass"/><test-case name="25789attQ017 tokoe:invalid" result="pass"/><test-case name="25790attQ018 tokoe:invalid" result="pass"/><test-case name="25791attQ019 tokoe:valid" result="pass"/><test-case name="25792attQ019.v tokoe:valid" result="pass"/><test-case name="25793attZ001 tokoe:valid" result="pass"/><test-case name="25794attZ001.i tokoe:invalid" result="pass"/><test-case name="25795attZ002 tokoe:valid" result="pass"/><test-case name="25796attZ002.v tokoe:valid" result="pass"/><test-case name="25797attZ004 tokoe:invalid" result="pass"/><test-case name="25798attZ005 tokoe:valid" result="pass"/><test-case name="25799attZ005.v tokoe:valid" result="pass"/><test-case name="25800attZ006 tokoe:invalid" result="pass"/><test-case name="25801attZ007v tokoe:valid" result="pass"/><test-case name="25802attZ007v.v tokoe:valid" result="pass"/><test-case name="25803attZ007i tokoe:valid" result="pass"/><test-case name="25804attZ007i.i tokoe:invalid" result="pass"/><test-case name="25805attZ008_a tokoe:valid" result="pass"/><test-case name="25806attZ008_b tokoe:valid" result="pass"/><test-case name="25807attZ008_c tokoe:valid" result="pass"/><test-case name="25808attZ008_d tokoe:valid" result="pass"/><test-case name="25809attZ008_e tokoe:invalid" result="pass"/><test-case name="25810attZ008_f tokoe:invalid" result="pass"/><test-case name="25811attZ008_g tokoe:valid" result="pass"/><test-case name="25812attZ008_h tokoe:invalid" result="pass"/><test-case name="25813attZ009 tokoe:valid" result="pass"/><test-case name="25814attZ009.i tokoe:invalid" result="pass"/><test-case name="25815attZ010a tokoe:valid" result="pass"/><test-case name="25816attZ010b tokoe:valid" result="pass"/><test-case name="25817attZ010c tokoe:valid" result="pass"/><test-case name="25818attZ011 tokoe:invalid" result="pass"/><test-case name="25819attZ012 tokoe:invalid" result="pass"/><test-case name="25820attZ013a tokoe:invalid" result="pass"/><test-case name="25821attZ013b tokoe:invalid" result="pass"/><test-case name="25822attZ014a tokoe:valid" result="pass"/><test-case name="25823attZ014a.i tokoe:invalid" result="pass"/><test-case name="25824attZ014b tokoe:valid" result="pass"/><test-case name="25825attZ014b.i tokoe:invalid" result="pass"/><test-case name="25826attZ015 tokoe:valid" result="pass"/><test-case name="25827attZ015.v tokoe:valid" result="pass"/><test-case name="25828ctA001 tokoe:valid" result="pass"/><test-case name="25829ctA001.v tokoe:valid" result="pass"/><test-case name="25830ctA002 tokoe:valid" result="pass"/><test-case name="25831ctA002.v tokoe:valid" result="pass"/><test-case name="25832ctA003 tokoe:valid" result="pass"/><test-case name="25833ctA003.v tokoe:valid" result="pass"/><test-case name="25834ctA004 tokoe:invalid" result="pass"/><test-case name="25835ctA005 tokoe:valid" result="pass"/><test-case name="25836ctA005.v tokoe:valid" result="pass"/><test-case name="25837ctA006 tokoe:invalid" result="pass"/><test-case name="25838ctA007 tokoe:invalid" result="pass"/><test-case name="25839ctA008 tokoe:invalid" result="pass"/><test-case name="25840ctA009 tokoe:valid" result="pass"/><test-case name="25841ctA009.v tokoe:valid" result="pass"/><test-case name="25842ctA010 tokoe:valid" result="pass"/><test-case name="25843ctA010.v tokoe:valid" result="pass"/><test-case name="25844ctA011 tokoe:valid" result="pass"/><test-case name="25845ctA011.v tokoe:valid" result="pass"/><test-case name="25846ctA012 tokoe:valid" result="pass"/><test-case name="25847ctA012.v tokoe:valid" result="pass"/><test-case name="25848ctA013 tokoe:valid" result="pass"/><test-case name="25849ctA013.v tokoe:valid" result="pass"/><test-case name="25850ctA014 tokoe:valid" result="pass"/><test-case name="25851ctA015 tokoe:valid" result="pass"/><test-case name="25852ctA016 tokoe:invalid" result="pass"/><test-case name="25853ctA017 tokoe:valid" result="pass"/><test-case name="25854ctA017.v tokoe:valid" result="pass"/><test-case name="25855ctA018 tokoe:valid" result="pass"/><test-case name="25856ctA018.v tokoe:valid" result="pass"/><test-case name="25857ctA019 tokoe:valid" result="pass"/><test-case name="25858ctA019.v tokoe:valid" result="pass"/><test-case name="25859ctA020 tokoe:valid" result="pass"/><test-case name="25860ctA020.v tokoe:valid" result="pass"/><test-case name="25861ctA021 tokoe:valid" result="pass"/><test-case name="25862ctA021.v tokoe:valid" result="pass"/><test-case name="25863ctA022 tokoe:valid" result="pass"/><test-case name="25864ctA022.v tokoe:valid" result="pass"/><test-case name="25865ctA023 tokoe:valid" result="pass"/><test-case name="25866ctA024 tokoe:valid" result="pass"/><test-case name="25867ctA025 tokoe:invalid" result="pass"/><test-case name="25868ctA026 tokoe:valid" result="pass"/><test-case name="25869ctA026.v tokoe:valid" result="pass"/><test-case name="25870ctA027 tokoe:valid" result="pass"/><test-case name="25871ctA027.v tokoe:valid" result="pass"/><test-case name="25872ctA028 tokoe:invalid" result="pass"/><test-case name="25873ctA029 tokoe:valid" result="pass"/><test-case name="25874ctA030 tokoe:invalid" result="pass"/><test-case name="25875ctA031 tokoe:invalid" result="pass"/><test-case name="25876ctA032 tokoe:valid" result="pass"/><test-case name="25877ctA032.v tokoe:valid" result="pass"/><test-case name="25878ctA033 tokoe:valid" result="pass"/><test-case name="25879ctA033.v tokoe:valid" result="pass"/><test-case name="25880ctA034 tokoe:valid" result="pass"/><test-case name="25881ctA034.v tokoe:valid" result="pass"/><test-case name="25882ctA035 tokoe:valid" result="pass"/><test-case name="25883ctA035.v tokoe:valid" result="pass"/><test-case name="25884ctA036 tokoe:invalid" result="pass"/><test-case name="25885ctA037 tokoe:valid" result="pass"/><test-case name="25886ctA037.v tokoe:valid" result="pass"/><test-case name="25887ctA038 tokoe:invalid" result="pass"/><test-case name="25888ctA039 tokoe:invalid" result="pass"/><test-case name="25889ctA040 tokoe:invalid" result="pass"/><test-case name="25890ctA041 tokoe:valid" result="pass"/><test-case name="25891ctA041.v tokoe:valid" result="pass"/><test-case name="25892ctA042 tokoe:invalid" result="pass"/><test-case name="25893ctA043 tokoe:invalid" result="pass"/><test-case name="25894ctA044 tokoe:invalid" result="pass"/><test-case name="25895ctA045 tokoe:valid" result="pass"/><test-case name="25896ctA045.v tokoe:valid" result="pass"/><test-case name="25897ctA046 tokoe:invalid" result="pass"/><test-case name="25898ctA047 tokoe:valid" result="pass"/><test-case name="25899ctA047.v tokoe:valid" result="pass"/><test-case name="25900ctA048 tokoe:valid" result="pass"/><test-case name="25901ctA048.v tokoe:valid" result="pass"/><test-case name="25902ctA049 tokoe:valid" result="pass"/><test-case name="25903ctA049.v tokoe:valid" result="pass"/><test-case name="25904ctB001 tokoe:valid" result="pass"/><test-case name="25905ctB001.v tokoe:valid" result="pass"/><test-case name="25906ctB002 tokoe:invalid" result="pass"/><test-case name="25907ctB003 tokoe:valid" result="pass"/><test-case name="25908ctB003.v tokoe:valid" result="pass"/><test-case name="25909ctB004 tokoe:invalid" result="pass"/><test-case name="25910ctB005 tokoe:invalid" result="pass"/><test-case name="25911ctB006 tokoe:invalid" result="pass"/><test-case name="25912ctB007 tokoe:invalid" result="pass"/><test-case name="25913ctB008 tokoe:invalid" result="pass"/><test-case name="25914ctB009 tokoe:invalid" result="pass"/><test-case name="25915ctB010 tokoe:invalid" result="pass"/><test-case name="25916ctB011 tokoe:invalid" result="pass"/><test-case name="25917ctB012 tokoe:invalid" result="pass"/><test-case name="25918ctB013 tokoe:invalid" result="pass"/><test-case name="25919ctB014 tokoe:invalid" result="pass"/><test-case name="25920ctB015 tokoe:invalid" result="pass"/><test-case name="25921ctB016 tokoe:invalid" result="pass"/><test-case name="25922ctB017 tokoe:valid" result="pass"/><test-case name="25923ctB017.v tokoe:valid" result="pass"/><test-case name="25924ctB018 tokoe:invalid" result="pass"/><test-case name="25925ctB019 tokoe:invalid" result="pass"/><test-case name="25926ctB020 tokoe:invalid" result="pass"/><test-case name="25927ctB021 tokoe:invalid" result="pass"/><test-case name="25928ctB022 tokoe:invalid" result="pass"/><test-case name="25929ctB023 tokoe:invalid" result="pass"/><test-case name="25930ctB024 tokoe:invalid" result="pass"/><test-case name="25931ctB025 tokoe:invalid" result="pass"/><test-case name="25932ctB026 tokoe:invalid" result="pass"/><test-case name="25933ctB027 tokoe:invalid" result="pass"/><test-case name="25934ctB028 tokoe:invalid" result="pass"/><test-case name="25935ctB029 tokoe:invalid" result="pass"/><test-case name="25936ctB030 tokoe:invalid" result="pass"/><test-case name="25937ctB031 tokoe:valid" result="pass"/><test-case name="25938ctB031.v tokoe:valid" result="pass"/><test-case name="25939ctB032 tokoe:invalid" result="pass"/><test-case name="25940ctB033 tokoe:invalid" result="pass"/><test-case name="25941ctB034 tokoe:invalid" result="pass"/><test-case name="25942ctB035 tokoe:invalid" result="pass"/><test-case name="25943ctB036 tokoe:invalid" result="pass"/><test-case name="25944ctB037 tokoe:invalid" result="pass"/><test-case name="25945ctB038 tokoe:invalid" result="pass"/><test-case name="25946ctB039 tokoe:valid" result="pass"/><test-case name="25947ctB039.v tokoe:valid" result="pass"/><test-case name="25948ctB040 tokoe:valid" result="pass"/><test-case name="25949ctB040.v tokoe:valid" result="pass"/><test-case name="25950ctB041 tokoe:valid" result="pass"/><test-case name="25951ctB041.v tokoe:valid" result="pass"/><test-case name="25952ctB042 tokoe:valid" result="pass"/><test-case name="25953ctB042.v tokoe:valid" result="pass"/><test-case name="25954ctB043 tokoe:valid" result="pass"/><test-case name="25955ctB043.v tokoe:valid" result="pass"/><test-case name="25956ctB044 tokoe:invalid" result="pass"/><test-case name="25957ctB045 tokoe:valid" result="pass"/><test-case name="25958ctB045.v tokoe:valid" result="pass"/><test-case name="25959ctB046 tokoe:invalid" result="pass"/><test-case name="25960ctB047 tokoe:invalid" result="pass"/><test-case name="25961ctB048 tokoe:invalid" result="pass"/><test-case name="25962ctB049 tokoe:invalid" result="pass"/><test-case name="25963ctB050 tokoe:invalid" result="pass"/><test-case name="25964ctB051 tokoe:invalid" result="pass"/><test-case name="25965ctB052 tokoe:invalid" result="pass"/><test-case name="25966ctB053 tokoe:valid" result="pass"/><test-case name="25967ctB053.v tokoe:valid" result="pass"/><test-case name="25968ctB054 tokoe:valid" result="pass"/><test-case name="25969ctB054.v tokoe:valid" result="pass"/><test-case name="25970ctB055 tokoe:valid" result="pass"/><test-case name="25971ctB055.v tokoe:valid" result="pass"/><test-case name="25972ctB056 tokoe:valid" result="pass"/><test-case name="25973ctB056.v tokoe:valid" result="pass"/><test-case name="25974ctB057 tokoe:valid" result="pass"/><test-case name="25975ctB057.v tokoe:valid" result="pass"/><test-case name="25976ctB058 tokoe:invalid" result="pass"/><test-case name="25977ctB059 tokoe:valid" result="pass"/><test-case name="25978ctB059.v tokoe:valid" result="pass"/><test-case name="25979ctB060 tokoe:invalid" result="pass"/><test-case name="25980ctB061 tokoe:invalid" result="pass"/><test-case name="25981ctB062 tokoe:invalid" result="pass"/><test-case name="25982ctB063 tokoe:invalid" result="pass"/><test-case name="25983ctB064 tokoe:invalid" result="pass"/><test-case name="25984ctB065 tokoe:invalid" result="pass"/><test-case name="25985ctB066 tokoe:invalid" result="pass"/><test-case name="25986ctB067 tokoe:valid" result="pass"/><test-case name="25987ctB067.v tokoe:valid" result="pass"/><test-case name="25988ctB068 tokoe:valid" result="pass"/><test-case name="25989ctB068.v tokoe:valid" result="pass"/><test-case name="25990ctB069 tokoe:valid" result="pass"/><test-case name="25991ctB069.v tokoe:valid" result="pass"/><test-case name="25992ctB070 tokoe:valid" result="pass"/><test-case name="25993ctB070.v tokoe:valid" result="pass"/><test-case name="25994ctB071 tokoe:valid" result="pass"/><test-case name="25995ctB071.v tokoe:valid" result="pass"/><test-case name="25996ctB072 tokoe:invalid" result="pass"/><test-case name="25997ctB073 tokoe:valid" result="pass"/><test-case name="25998ctB073.v tokoe:valid" result="pass"/><test-case name="25999ctB074 tokoe:invalid" result="pass"/><test-case name="26000ctB075 tokoe:invalid" result="pass"/><test-case name="26001ctB076 tokoe:invalid" result="pass"/><test-case name="26002ctB077 tokoe:invalid" result="pass"/><test-case name="26003ctB078 tokoe:invalid" result="pass"/><test-case name="26004ctB079 tokoe:invalid" result="pass"/><test-case name="26005ctB080 tokoe:invalid" result="pass"/><test-case name="26006ctB081 tokoe:valid" result="pass"/><test-case name="26007ctB081.v tokoe:valid" result="pass"/><test-case name="26008ctB082 tokoe:valid" result="pass"/><test-case name="26009ctB082.v tokoe:valid" result="pass"/><test-case name="26010ctB083 tokoe:valid" result="pass"/><test-case name="26011ctB083.v tokoe:valid" result="pass"/><test-case name="26012ctB084 tokoe:valid" result="pass"/><test-case name="26013ctB084.v tokoe:valid" result="pass"/><test-case name="26014ctB085 tokoe:valid" result="pass"/><test-case name="26015ctB085.v tokoe:valid" result="pass"/><test-case name="26016ctB086 tokoe:invalid" result="pass"/><test-case name="26017ctB087 tokoe:valid" result="pass"/><test-case name="26018ctB087.v tokoe:valid" result="pass"/><test-case name="26019ctB088 tokoe:invalid" result="pass"/><test-case name="26020ctB089 tokoe:invalid" result="pass"/><test-case name="26021ctB090 tokoe:invalid" result="pass"/><test-case name="26022ctB091 tokoe:invalid" result="pass"/><test-case name="26023ctB092 tokoe:invalid" result="pass"/><test-case name="26024ctB093 tokoe:invalid" result="pass"/><test-case name="26025ctB094 tokoe:invalid" result="pass"/><test-case name="26026ctB095 tokoe:valid" result="pass"/><test-case name="26027ctB095.v tokoe:valid" result="pass"/><test-case name="26028ctB096 tokoe:valid" result="pass"/><test-case name="26029ctB096.v tokoe:valid" result="pass"/><test-case name="26030ctB097 tokoe:valid" result="pass"/><test-case name="26031ctB097.v tokoe:valid" result="pass"/><test-case name="26032ctB098 tokoe:valid" result="pass"/><test-case name="26033ctB098.v tokoe:valid" result="pass"/><test-case name="26034ctB099 tokoe:invalid" result="pass"/><test-case name="26035ctB100 tokoe:valid" result="pass"/><test-case name="26036ctB100.v tokoe:valid" result="pass"/><test-case name="26037ctB101 tokoe:invalid" result="pass"/><test-case name="26038ctB102 tokoe:invalid" result="pass"/><test-case name="26039ctB103 tokoe:invalid" result="pass"/><test-case name="26040ctB104 tokoe:invalid" result="pass"/><test-case name="26041ctB105 tokoe:invalid" result="pass"/><test-case name="26042ctB106 tokoe:invalid" result="pass"/><test-case name="26043ctB107 tokoe:invalid" result="pass"/><test-case name="26044ctB108 tokoe:valid" result="pass"/><test-case name="26045ctB108.v tokoe:valid" result="pass"/><test-case name="26046ctB109 tokoe:valid" result="pass"/><test-case name="26047ctB109.v tokoe:valid" result="pass"/><test-case name="26048ctB110 tokoe:valid" result="pass"/><test-case name="26049ctB110.v tokoe:valid" result="pass"/><test-case name="26050ctB111 tokoe:valid" result="pass"/><test-case name="26051ctB111.v tokoe:valid" result="pass"/><test-case name="26052ctB112 tokoe:invalid" result="pass"/><test-case name="26053ctB113 tokoe:valid" result="pass"/><test-case name="26054ctB113.v tokoe:valid" result="pass"/><test-case name="26055ctB114 tokoe:invalid" result="pass"/><test-case name="26056ctB115 tokoe:invalid" result="pass"/><test-case name="26057ctB116 tokoe:invalid" result="pass"/><test-case name="26058ctB117 tokoe:invalid" result="pass"/><test-case name="26059ctB118 tokoe:invalid" result="pass"/><test-case name="26060ctB119 tokoe:invalid" result="pass"/><test-case name="26061ctB120 tokoe:invalid" result="pass"/><test-case name="26062ctB121 tokoe:invalid" result="pass"/><test-case name="26063ctB122 tokoe:invalid" result="pass"/><test-case name="26064ctB123 tokoe:invalid" result="pass"/><test-case name="26065ctB124 tokoe:invalid" result="pass"/><test-case name="26066ctB125 tokoe:invalid" result="pass"/><test-case name="26067ctC001 tokoe:valid" result="pass"/><test-case name="26068ctC001.v tokoe:valid" result="pass"/><test-case name="26069ctC002 tokoe:invalid" result="pass"/><test-case name="26070ctC003 tokoe:valid" result="pass"/><test-case name="26071ctC004 tokoe:invalid" result="pass"/><test-case name="26072ctC005 tokoe:invalid" result="pass"/><test-case name="26073ctC006 tokoe:valid" result="pass"/><test-case name="26074ctC006.v tokoe:valid" result="pass"/><test-case name="26075ctC007 tokoe:valid" result="pass"/><test-case name="26076ctC007.v tokoe:valid" result="pass"/><test-case name="26077ctC008 tokoe:valid" result="pass"/><test-case name="26078ctC008.v tokoe:valid" result="pass"/><test-case name="26079ctC009 tokoe:invalid" result="pass"/><test-case name="26080ctC010 tokoe:invalid" result="pass"/><test-case name="26081ctC011 tokoe:invalid" result="pass"/><test-case name="26082ctC012 tokoe:valid" result="pass"/><test-case name="26083ctC012.v tokoe:valid" result="pass"/><test-case name="26084ctD001 tokoe:invalid" result="pass"/><test-case name="26085ctD002 tokoe:valid" result="pass"/><test-case name="26086ctD002.v tokoe:valid" result="pass"/><test-case name="26087ctD003 tokoe:invalid" result="pass"/><test-case name="26088ctD004 tokoe:invalid" result="pass"/><test-case name="26089ctD005 tokoe:valid" result="pass"/><test-case name="26090ctD005.v tokoe:valid" result="pass"/><test-case name="26091ctD006 tokoe:valid" result="pass"/><test-case name="26092ctD006.v tokoe:valid" result="pass"/><test-case name="26093ctD007 tokoe:invalid" result="pass"/><test-case name="26094ctD008 tokoe:valid" result="pass"/><test-case name="26095ctD008.v tokoe:valid" result="pass"/><test-case name="26096ctD009 tokoe:invalid" result="pass"/><test-case name="26097ctD010 tokoe:valid" result="pass"/><test-case name="26098ctD010.v tokoe:valid" result="pass"/><test-case name="26099ctD011 tokoe:invalid" result="pass"/><test-case name="26100ctD012 tokoe:valid" result="pass"/><test-case name="26101ctD012.v tokoe:valid" result="pass"/><test-case name="26102ctD013 tokoe:invalid" result="pass"/><test-case name="26103ctD014 tokoe:invalid" result="pass"/><test-case name="26104ctD015 tokoe:valid" result="pass"/><test-case name="26105ctD015.v tokoe:valid" result="pass"/><test-case name="26106ctD016 tokoe:valid" result="pass"/><test-case name="26107ctD016.v tokoe:valid" result="pass"/><test-case name="26108ctD017 tokoe:valid" result="pass"/><test-case name="26109ctD017.v tokoe:valid" result="pass"/><test-case name="26110ctD018 tokoe:valid" result="pass"/><test-case name="26111ctD018.v tokoe:valid" result="pass"/><test-case name="26112ctD019 tokoe:valid" result="pass"/><test-case name="26113ctD019.v tokoe:valid" result="pass"/><test-case name="26114ctD020 tokoe:valid" result="pass"/><test-case name="26115ctD020.v tokoe:valid" result="pass"/><test-case name="26116ctD021 tokoe:valid" result="pass"/><test-case name="26117ctD021.v tokoe:valid" result="pass"/><test-case name="26118ctD022 tokoe:valid" result="pass"/><test-case name="26119ctD022.v tokoe:valid" result="pass"/><test-case name="26120ctD023 tokoe:valid" result="pass"/><test-case name="26121ctD023.v tokoe:valid" result="pass"/><test-case name="26122ctD024 tokoe:invalid" result="pass"/><test-case name="26123ctD025 tokoe:valid" result="pass"/><test-case name="26124ctD025.v tokoe:valid" result="pass"/><test-case name="26125ctD026 tokoe:valid" result="pass"/><test-case name="26126ctD026.v tokoe:valid" result="pass"/><test-case name="26127ctD027 tokoe:valid" result="pass"/><test-case name="26128ctD027.v tokoe:valid" result="pass"/><test-case name="26129ctD028 tokoe:valid" result="pass"/><test-case name="26130ctD028.v tokoe:valid" result="pass"/><test-case name="26131ctD029 tokoe:valid" result="pass"/><test-case name="26132ctD029.v tokoe:valid" result="pass"/><test-case name="26133ctD030 tokoe:valid" result="pass"/><test-case name="26134ctD030.v tokoe:valid" result="pass"/><test-case name="26135ctD031 tokoe:valid" result="pass"/><test-case name="26136ctD031.v tokoe:valid" result="pass"/><test-case name="26137ctD032 tokoe:valid" result="pass"/><test-case name="26138ctD032.v tokoe:valid" result="pass"/><test-case name="26139ctD033 tokoe:valid" result="pass"/><test-case name="26140ctD033.v tokoe:valid" result="pass"/><test-case name="26141ctD034 tokoe:invalid" result="pass"/><test-case name="26142ctD035 tokoe:valid" result="pass"/><test-case name="26143ctD035.v tokoe:valid" result="pass"/><test-case name="26144ctD036 tokoe:invalid" result="pass"/><test-case name="26145ctD037 tokoe:invalid" result="pass"/><test-case name="26146ctD038 tokoe:invalid" result="pass"/><test-case name="26147ctD039 tokoe:invalid" result="pass"/><test-case name="26148ctD040 tokoe:invalid" result="pass"/><test-case name="26149ctD041 tokoe:invalid" result="pass"/><test-case name="26150ctD042 tokoe:invalid" result="pass"/><test-case name="26151ctD043 tokoe:invalid" result="pass"/><test-case name="26152ctE001 tokoe:valid" result="pass"/><test-case name="26153ctE001.v tokoe:valid" result="pass"/><test-case name="26154ctE002 tokoe:valid" result="pass"/><test-case name="26155ctE002.v tokoe:valid" result="pass"/><test-case name="26156ctE003 tokoe:invalid" result="pass"/><test-case name="26157ctE004 tokoe:invalid" result="pass"/><test-case name="26158ctE005 tokoe:invalid" result="pass"/><test-case name="26159ctE006 tokoe:valid" result="pass"/><test-case name="26160ctE006.v tokoe:valid" result="pass"/><test-case name="26161ctE007 tokoe:valid" result="pass"/><test-case name="26162ctE007.v tokoe:valid" result="pass"/><test-case name="26163ctE008 tokoe:valid" result="pass"/><test-case name="26164ctE008.v tokoe:valid" result="pass"/><test-case name="26165ctE009 tokoe:invalid" result="pass"/><test-case name="26166ctE010 tokoe:valid" result="pass"/><test-case name="26167ctE010.v tokoe:valid" result="pass"/><test-case name="26168ctE011 tokoe:invalid" result="pass"/><test-case name="26169ctE012 tokoe:invalid" result="pass"/><test-case name="26170ctE013 tokoe:invalid" result="pass"/><test-case name="26171ctE014 tokoe:invalid" result="pass"/><test-case name="26172ctE015 tokoe:invalid" result="pass"/><test-case name="26173ctE016 tokoe:invalid" result="pass"/><test-case name="26174ctE017 tokoe:valid" result="pass"/><test-case name="26175ctE017.v tokoe:valid" result="pass"/><test-case name="26176ctE018 tokoe:valid" result="pass"/><test-case name="26177ctE018.v tokoe:valid" result="pass"/><test-case name="26178ctE019 tokoe:valid" result="pass"/><test-case name="26179ctE019.v tokoe:valid" result="pass"/><test-case name="26180ctF001 tokoe:valid" result="pass"/><test-case name="26181ctF001.v tokoe:valid" result="pass"/><test-case name="26182ctF002 tokoe:invalid" result="pass"/><test-case name="26183ctF003 tokoe:valid" result="pass"/><test-case name="26184ctF004 tokoe:invalid" result="pass"/><test-case name="26185ctF005 tokoe:invalid" result="pass"/><test-case name="26186ctF006 tokoe:invalid" result="pass"/><test-case name="26187ctF007 tokoe:valid" result="pass"/><test-case name="26188ctF007.v tokoe:valid" result="pass"/><test-case name="26189ctF008 tokoe:invalid" result="pass"/><test-case name="26190ctF009 tokoe:invalid" result="pass"/><test-case name="26191ctF010 tokoe:valid" result="pass"/><test-case name="26192ctF010.v tokoe:valid" result="pass"/><test-case name="26193ctF011 tokoe:valid" result="pass"/><test-case name="26194ctF011.v tokoe:valid" result="pass"/><test-case name="26195ctF012 tokoe:invalid" result="pass"/><test-case name="26196ctF013 tokoe:valid" result="pass"/><test-case name="26197ctF013.v tokoe:valid" result="pass"/><test-case name="26198ctF014 tokoe:valid" result="pass"/><test-case name="26199ctF014.v tokoe:valid" result="pass"/><test-case name="26200ctF015 tokoe:invalid" result="pass"/><test-case name="26201ctF016 tokoe:invalid" result="pass"/><test-case name="26202ctF017 tokoe:invalid" result="pass"/><test-case name="26203ctG001 tokoe:valid" result="pass"/><test-case name="26204ctG001.v tokoe:valid" result="pass"/><test-case name="26205ctG002 tokoe:invalid" result="pass"/><test-case name="26206ctG003 tokoe:invalid" result="pass"/><test-case name="26207ctG004 tokoe:invalid" result="pass"/><test-case name="26208ctG005 tokoe:invalid" result="pass"/><test-case name="26209ctG006 tokoe:invalid" result="pass"/><test-case name="26210ctG007 tokoe:valid" result="pass"/><test-case name="26211ctG007.v tokoe:valid" result="pass"/><test-case name="26212ctG008 tokoe:valid" result="pass"/><test-case name="26213ctG008.v tokoe:valid" result="pass"/><test-case name="26214ctG009 tokoe:valid" result="pass"/><test-case name="26215ctG009.v tokoe:valid" result="pass"/><test-case name="26216ctG010 tokoe:valid" result="pass"/><test-case name="26217ctG010.v tokoe:valid" result="pass"/><test-case name="26218ctG011 tokoe:valid" result="pass"/><test-case name="26219ctG011.v tokoe:valid" result="pass"/><test-case name="26220ctG012 tokoe:invalid" result="pass"/><test-case name="26221ctG013 tokoe:valid" result="pass"/><test-case name="26222ctG013.v tokoe:valid" result="pass"/><test-case name="26223ctG014 tokoe:invalid" result="pass"/><test-case name="26224ctG015 tokoe:invalid" result="pass"/><test-case name="26225ctG016 tokoe:invalid" result="pass"/><test-case name="26226ctG017 tokoe:invalid" result="pass"/><test-case name="26227ctG018 tokoe:invalid" result="pass"/><test-case name="26228ctG019 tokoe:valid" result="pass"/><test-case name="26229ctG019.v tokoe:valid" result="pass"/><test-case name="26230ctG020 tokoe:valid" result="pass"/><test-case name="26231ctG020.v tokoe:valid" result="pass"/><test-case name="26232ctG021 tokoe:valid" result="pass"/><test-case name="26233ctG021.v tokoe:valid" result="pass"/><test-case name="26234ctG022 tokoe:valid" result="pass"/><test-case name="26235ctG022.v tokoe:valid" result="pass"/><test-case name="26236ctG023 tokoe:valid" result="pass"/><test-case name="26237ctG023.v tokoe:valid" result="pass"/><test-case name="26238ctG024 tokoe:invalid" result="pass"/><test-case name="26239ctG025 tokoe:valid" result="pass"/><test-case name="26240ctG025.v tokoe:valid" result="pass"/><test-case name="26241ctG026 tokoe:invalid" result="pass"/><test-case name="26242ctG027 tokoe:invalid" result="pass"/><test-case name="26243ctG028 tokoe:invalid" result="pass"/><test-case name="26244ctG029 tokoe:invalid" result="pass"/><test-case name="26245ctG030 tokoe:invalid" result="pass"/><test-case name="26246ctG031 tokoe:valid" result="pass"/><test-case name="26247ctG031.v tokoe:valid" result="pass"/><test-case name="26248ctG032 tokoe:valid" result="pass"/><test-case name="26249ctG032.v tokoe:valid" result="pass"/><test-case name="26250ctG033 tokoe:valid" result="pass"/><test-case name="26251ctG033.v tokoe:valid" result="pass"/><test-case name="26252ctG034 tokoe:valid" result="pass"/><test-case name="26253ctG034.v tokoe:valid" result="pass"/><test-case name="26254ctG035 tokoe:valid" result="pass"/><test-case name="26255ctG035.v tokoe:valid" result="pass"/><test-case name="26256ctG036 tokoe:invalid" result="pass"/><test-case name="26257ctG037 tokoe:valid" result="pass"/><test-case name="26258ctG037.v tokoe:valid" result="pass"/><test-case name="26259ctG038 tokoe:invalid" result="pass"/><test-case name="26260ctG039 tokoe:invalid" result="pass"/><test-case name="26261ctG040 tokoe:invalid" result="pass"/><test-case name="26262ctG041 tokoe:invalid" result="pass"/><test-case name="26263ctG042 tokoe:invalid" result="pass"/><test-case name="26264ctG043 tokoe:valid" result="pass"/><test-case name="26265ctG043.v tokoe:valid" result="pass"/><test-case name="26266ctG044 tokoe:valid" result="pass"/><test-case name="26267ctG044.v tokoe:valid" result="pass"/><test-case name="26268ctG045 tokoe:valid" result="pass"/><test-case name="26269ctG045.v tokoe:valid" result="pass"/><test-case name="26270ctG046 tokoe:valid" result="pass"/><test-case name="26271ctG046.v tokoe:valid" result="pass"/><test-case name="26272ctG047 tokoe:valid" result="pass"/><test-case name="26273ctG047.v tokoe:valid" result="pass"/><test-case name="26274ctG048 tokoe:invalid" result="pass"/><test-case name="26275ctG049 tokoe:valid" result="pass"/><test-case name="26276ctG049.v tokoe:valid" result="pass"/><test-case name="26277ctG050 tokoe:invalid" result="pass"/><test-case name="26278ctG051 tokoe:invalid" result="pass"/><test-case name="26279ctG052 tokoe:invalid" result="pass"/><test-case name="26280ctG053 tokoe:invalid" result="pass"/><test-case name="26281ctG054 tokoe:invalid" result="pass"/><test-case name="26282ctG055 tokoe:valid" result="pass"/><test-case name="26283ctG055.v tokoe:valid" result="pass"/><test-case name="26284ctG056 tokoe:valid" result="pass"/><test-case name="26285ctG056.v tokoe:valid" result="pass"/><test-case name="26286ctG057 tokoe:valid" result="pass"/><test-case name="26287ctG057.v tokoe:valid" result="pass"/><test-case name="26288ctG058 tokoe:valid" result="pass"/><test-case name="26289ctG058.v tokoe:valid" result="pass"/><test-case name="26290ctG059 tokoe:invalid" result="pass"/><test-case name="26291ctG060 tokoe:valid" result="pass"/><test-case name="26292ctG060.v tokoe:valid" result="pass"/><test-case name="26293ctG061 tokoe:invalid" result="pass"/><test-case name="26294ctG062 tokoe:invalid" result="pass"/><test-case name="26295ctG063 tokoe:invalid" result="pass"/><test-case name="26296ctG064 tokoe:invalid" result="pass"/><test-case name="26297ctG065 tokoe:invalid" result="pass"/><test-case name="26298ctG066 tokoe:valid" result="pass"/><test-case name="26299ctG066.v tokoe:valid" result="pass"/><test-case name="26300ctG067 tokoe:valid" result="pass"/><test-case name="26301ctG067.v tokoe:valid" result="pass"/><test-case name="26302ctG068 tokoe:valid" result="pass"/><test-case name="26303ctG068.v tokoe:valid" result="pass"/><test-case name="26304ctG069 tokoe:valid" result="pass"/><test-case name="26305ctG069.v tokoe:valid" result="pass"/><test-case name="26306ctG070 tokoe:invalid" result="pass"/><test-case name="26307ctG071 tokoe:valid" result="pass"/><test-case name="26308ctG071.v tokoe:valid" result="pass"/><test-case name="26309ctG072 tokoe:invalid" result="pass"/><test-case name="26310ctG073 tokoe:invalid" result="pass"/><test-case name="26311ctG074 tokoe:invalid" result="pass"/><test-case name="26312ctG075 tokoe:invalid" result="pass"/><test-case name="26313ctG076 tokoe:invalid" result="pass"/><test-case name="26314ctG077 tokoe:invalid" result="pass"/><test-case name="26315ctG078 tokoe:invalid" result="pass"/><test-case name="26316ctG079 tokoe:invalid" result="pass"/><test-case name="26317ctG080 tokoe:invalid" result="pass"/><test-case name="26318ctG081 tokoe:invalid" result="pass"/><test-case name="26319ctH001 tokoe:valid" result="pass"/><test-case name="26320ctH001.v tokoe:valid" result="pass"/><test-case name="26321ctH002 tokoe:invalid" result="pass"/><test-case name="26322ctH003 tokoe:invalid" result="pass"/><test-case name="26323ctH004 tokoe:invalid" result="pass"/><test-case name="26324ctH005 tokoe:invalid" result="pass"/><test-case name="26325ctH006 tokoe:invalid" result="pass"/><test-case name="26326ctH007 tokoe:valid" result="pass"/><test-case name="26327ctH007.v tokoe:valid" result="pass"/><test-case name="26328ctH008 tokoe:valid" result="pass"/><test-case name="26329ctH008.v tokoe:valid" result="pass"/><test-case name="26330ctH009 tokoe:valid" result="pass"/><test-case name="26331ctH009.v tokoe:valid" result="pass"/><test-case name="26332ctH010 tokoe:valid" result="pass"/><test-case name="26333ctH010.v tokoe:valid" result="pass"/><test-case name="26334ctH011 tokoe:valid" result="pass"/><test-case name="26335ctH011.v tokoe:valid" result="pass"/><test-case name="26336ctH012 tokoe:invalid" result="pass"/><test-case name="26337ctH013 tokoe:invalid" result="pass"/><test-case name="26338ctH014 tokoe:invalid" result="pass"/><test-case name="26339ctH015 tokoe:invalid" result="pass"/><test-case name="26340ctH016 tokoe:invalid" result="pass"/><test-case name="26341ctH017 tokoe:invalid" result="pass"/><test-case name="26342ctH018 tokoe:invalid" result="pass"/><test-case name="26343ctH019 tokoe:invalid" result="pass"/><test-case name="26344ctH020 tokoe:invalid" result="pass"/><test-case name="26345ctH021 tokoe:invalid" result="pass"/><test-case name="26346ctH022 tokoe:invalid" result="pass"/><test-case name="26347ctH023 tokoe:invalid" result="pass"/><test-case name="26348ctH024 tokoe:invalid" result="pass"/><test-case name="26349ctH025 tokoe:valid" result="pass"/><test-case name="26350ctH025.v tokoe:valid" result="pass"/><test-case name="26351ctH026 tokoe:invalid" result="pass"/><test-case name="26352ctH027 tokoe:invalid" result="pass"/><test-case name="26353ctH028 tokoe:invalid" result="pass"/><test-case name="26354ctH029 tokoe:invalid" result="pass"/><test-case name="26355ctH030 tokoe:invalid" result="pass"/><test-case name="26356ctH031 tokoe:valid" result="pass"/><test-case name="26357ctH031.v tokoe:valid" result="pass"/><test-case name="26358ctH032 tokoe:valid" result="pass"/><test-case name="26359ctH032.v tokoe:valid" result="pass"/><test-case name="26360ctH033 tokoe:valid" result="pass"/><test-case name="26361ctH033.v tokoe:valid" result="pass"/><test-case name="26362ctH034 tokoe:valid" result="pass"/><test-case name="26363ctH034.v tokoe:valid" result="pass"/><test-case name="26364ctH035 tokoe:valid" result="pass"/><test-case name="26365ctH035.v tokoe:valid" result="pass"/><test-case name="26366ctH036 tokoe:invalid" result="pass"/><test-case name="26367ctH037 tokoe:valid" result="pass"/><test-case name="26368ctH037.v tokoe:valid" result="pass"/><test-case name="26369ctH038 tokoe:invalid" result="pass"/><test-case name="26370ctH039 tokoe:invalid" result="pass"/><test-case name="26371ctH040 tokoe:invalid" result="pass"/><test-case name="26372ctH041 tokoe:invalid" result="pass"/><test-case name="26373ctH042 tokoe:invalid" result="pass"/><test-case name="26374ctH043 tokoe:valid" result="pass"/><test-case name="26375ctH043.v tokoe:valid" result="pass"/><test-case name="26376ctH044 tokoe:valid" result="pass"/><test-case name="26377ctH044.v tokoe:valid" result="pass"/><test-case name="26378ctH045 tokoe:valid" result="pass"/><test-case name="26379ctH045.v tokoe:valid" result="pass"/><test-case name="26380ctH046 tokoe:valid" result="pass"/><test-case name="26381ctH046.v tokoe:valid" result="pass"/><test-case name="26382ctH047 tokoe:valid" result="pass"/><test-case name="26383ctH047.v tokoe:valid" result="pass"/><test-case name="26384ctH048 tokoe:invalid" result="pass"/><test-case name="26385ctH049 tokoe:valid" result="pass"/><test-case name="26386ctH049.v tokoe:valid" result="pass"/><test-case name="26387ctH050 tokoe:invalid" result="pass"/><test-case name="26388ctH051 tokoe:invalid" result="pass"/><test-case name="26389ctH052 tokoe:invalid" result="pass"/><test-case name="26390ctH053 tokoe:invalid" result="pass"/><test-case name="26391ctH054 tokoe:invalid" result="pass"/><test-case name="26392ctH055 tokoe:valid" result="pass"/><test-case name="26393ctH055.v tokoe:valid" result="pass"/><test-case name="26394ctH056 tokoe:valid" result="pass"/><test-case name="26395ctH056.v tokoe:valid" result="pass"/><test-case name="26396ctH057 tokoe:valid" result="pass"/><test-case name="26397ctH057.v tokoe:valid" result="pass"/><test-case name="26398ctH058 tokoe:valid" result="pass"/><test-case name="26399ctH058.v tokoe:valid" result="pass"/><test-case name="26400ctH059 tokoe:invalid" result="pass"/><test-case name="26401ctH060 tokoe:valid" result="pass"/><test-case name="26402ctH060.v tokoe:valid" result="pass"/><test-case name="26403ctH061 tokoe:invalid" result="pass"/><test-case name="26404ctH062 tokoe:invalid" result="pass"/><test-case name="26405ctH063 tokoe:invalid" result="pass"/><test-case name="26406ctH064 tokoe:invalid" result="pass"/><test-case name="26407ctH065 tokoe:invalid" result="pass"/><test-case name="26408ctH066 tokoe:valid" result="pass"/><test-case name="26409ctH066.v tokoe:valid" result="pass"/><test-case name="26410ctH067 tokoe:valid" result="pass"/><test-case name="26411ctH067.v tokoe:valid" result="pass"/><test-case name="26412ctH068 tokoe:valid" result="pass"/><test-case name="26413ctH068.v tokoe:valid" result="pass"/><test-case name="26414ctH069 tokoe:valid" result="pass"/><test-case name="26415ctH069.v tokoe:valid" result="pass"/><test-case name="26416ctH070 tokoe:invalid" result="pass"/><test-case name="26417ctH071 tokoe:valid" result="pass"/><test-case name="26418ctH071.v tokoe:valid" result="pass"/><test-case name="26419ctH072 tokoe:invalid" result="pass"/><test-case name="26420ctH073 tokoe:invalid" result="pass"/><test-case name="26421ctH074 tokoe:invalid" result="pass"/><test-case name="26422ctH075 tokoe:invalid" result="pass"/><test-case name="26423ctH076 tokoe:invalid" result="pass"/><test-case name="26424ctH077 tokoe:invalid" result="pass"/><test-case name="26425ctH078 tokoe:invalid" result="pass"/><test-case name="26426ctH079 tokoe:invalid" result="pass"/><test-case name="26427ctH080 tokoe:invalid" result="pass"/><test-case name="26428ctH081 tokoe:invalid" result="pass"/><test-case name="26429ctH082 tokoe:valid" result="pass"/><test-case name="26430ctH082.v tokoe:valid" result="pass"/><test-case name="26431ctI001 tokoe:invalid" result="pass"/><test-case name="26432ctI002 tokoe:invalid" result="pass"/><test-case name="26433ctI003 tokoe:valid" result="pass"/><test-case name="26434ctI003.v tokoe:valid" result="pass"/><test-case name="26435ctI004 tokoe:valid" result="pass"/><test-case name="26436ctI004.v tokoe:valid" result="pass"/><test-case name="26437ctI005 tokoe:valid" result="pass"/><test-case name="26438ctI005.v tokoe:valid" result="pass"/><test-case name="26439ctI006 tokoe:invalid" result="pass"/><test-case name="26440ctI007 tokoe:invalid" result="pass"/><test-case name="26441ctI008 tokoe:invalid" result="pass"/><test-case name="26442ctI009 tokoe:valid" result="pass"/><test-case name="26443ctI009.v tokoe:valid" result="pass"/><test-case name="26444ctI010 tokoe:valid" result="pass"/><test-case name="26445ctI010.v tokoe:valid" result="pass"/><test-case name="26446ctI011 tokoe:invalid" result="pass"/><test-case name="26447ctI012 tokoe:invalid" result="pass"/><test-case name="26448ctI013 tokoe:invalid" result="pass"/><test-case name="26449ctI014 tokoe:valid" result="pass"/><test-case name="26450ctI014.v tokoe:valid" result="pass"/><test-case name="26451ctI015 tokoe:valid" result="pass"/><test-case name="26452ctI015.v tokoe:valid" result="pass"/><test-case name="26453ctI016 tokoe:invalid" result="pass"/><test-case name="26454ctI017 tokoe:invalid" result="pass"/><test-case name="26455ctI018 tokoe:valid" result="pass"/><test-case name="26456ctI018.v tokoe:valid" result="pass"/><test-case name="26457ctI019 tokoe:valid" result="pass"/><test-case name="26458ctI019.v tokoe:valid" result="pass"/><test-case name="26459ctI020 tokoe:invalid" result="pass"/><test-case name="26460ctI021 tokoe:valid" result="pass"/><test-case name="26461ctI021.v tokoe:valid" result="pass"/><test-case name="26462ctI022 tokoe:valid" result="pass"/><test-case name="26463ctI022.v tokoe:valid" result="pass"/><test-case name="26464ctI023 tokoe:valid" result="pass"/><test-case name="26465ctI023.v tokoe:valid" result="pass"/><test-case name="26466ctI024 tokoe:invalid" result="pass"/><test-case name="26467ctI025 tokoe:valid" result="pass"/><test-case name="26468ctI025.v tokoe:valid" result="pass"/><test-case name="26469ctI026 tokoe:valid" result="pass"/><test-case name="26470ctI026.v tokoe:valid" result="pass"/><test-case name="26471ctI027 tokoe:valid" result="pass"/><test-case name="26472ctI027.v tokoe:valid" result="pass"/><test-case name="26473ctI028 tokoe:valid" result="pass"/><test-case name="26474ctI028.v tokoe:valid" result="pass"/><test-case name="26475ctI029 tokoe:valid" result="pass"/><test-case name="26476ctI029.v tokoe:valid" result="pass"/><test-case name="26477ctI030 tokoe:valid" result="pass"/><test-case name="26478ctI030.i tokoe:invalid" result="pass"/><test-case name="26479ctI031 tokoe:valid" result="pass"/><test-case name="26480ctI031.i tokoe:invalid" result="pass"/><test-case name="26481ctI032 tokoe:valid" result="pass"/><test-case name="26482ctI032.i tokoe:invalid" result="pass"/><test-case name="26483ctI033 tokoe:valid" result="pass"/><test-case name="26484ctI033.v tokoe:valid" result="pass"/><test-case name="26485ctI034 tokoe:valid" result="pass"/><test-case name="26486ctI034.v tokoe:valid" result="pass"/><test-case name="26487ctI035 tokoe:valid" result="pass"/><test-case name="26488ctI035.i tokoe:invalid" result="pass"/><test-case name="26489ctI036 tokoe:valid" result="pass"/><test-case name="26490ctI036.v tokoe:valid" result="pass"/><test-case name="26491ctI037 tokoe:valid" result="pass"/><test-case name="26492ctI037.v tokoe:valid" result="pass"/><test-case name="26493ctI038 tokoe:valid" result="pass"/><test-case name="26494ctI038.i tokoe:invalid" result="pass"/><test-case name="26495ctI039 tokoe:valid" result="pass"/><test-case name="26496ctI039.i tokoe:invalid" result="pass"/><test-case name="26497ctI040 tokoe:valid" result="pass"/><test-case name="26498ctI040.v tokoe:valid" result="pass"/><test-case name="26499ctI041 tokoe:valid" result="pass"/><test-case name="26500ctI041.v tokoe:valid" result="pass"/><test-case name="26501ctI042 tokoe:valid" result="pass"/><test-case name="26502ctI042.i tokoe:invalid" result="pass"/><test-case name="26503ctI043 tokoe:valid" result="pass"/><test-case name="26504ctI043.v tokoe:valid" result="pass"/><test-case name="26505ctI044 tokoe:valid" result="pass"/><test-case name="26506ctI044.v tokoe:valid" result="pass"/><test-case name="26507ctI045 tokoe:valid" result="pass"/><test-case name="26508ctI045.i tokoe:invalid" result="pass"/><test-case name="26509ctI046 tokoe:valid" result="pass"/><test-case name="26510ctI046.v tokoe:valid" result="pass"/><test-case name="26511ctI047 tokoe:valid" result="pass"/><test-case name="26512ctI047.v tokoe:valid" result="pass"/><test-case name="26513ctI048 tokoe:valid" result="pass"/><test-case name="26514ctI048.i tokoe:invalid" result="pass"/><test-case name="26515ctI049 tokoe:valid" result="pass"/><test-case name="26516ctI049.i tokoe:invalid" result="pass"/><test-case name="26517ctI050 tokoe:valid" result="pass"/><test-case name="26518ctI050.v tokoe:valid" result="pass"/><test-case name="26519ctJ001 tokoe:valid" result="pass"/><test-case name="26520ctJ001.v tokoe:valid" result="pass"/><test-case name="26521ctJ002 tokoe:invalid" result="pass"/><test-case name="26522ctJ003 tokoe:invalid" result="pass"/><test-case name="26523ctK001 tokoe:valid" result="pass"/><test-case name="26524ctK001.v tokoe:valid" result="pass"/><test-case name="26525ctK002 tokoe:invalid" result="pass"/><test-case name="26526ctL001 tokoe:valid" result="pass"/><test-case name="26527ctL001.i tokoe:invalid" result="pass"/><test-case name="26528ctL002 tokoe:valid" result="pass"/><test-case name="26529ctL002.i tokoe:invalid" result="pass"/><test-case name="26530ctL003 tokoe:valid" result="pass"/><test-case name="26531ctL003.v tokoe:valid" result="pass"/><test-case name="26532ctL004 tokoe:valid" result="pass"/><test-case name="26533ctL004.i tokoe:invalid" result="pass"/><test-case name="26534ctL005 tokoe:valid" result="pass"/><test-case name="26535ctL005.v tokoe:valid" result="pass"/><test-case name="26536ctL006 tokoe:valid" result="pass"/><test-case name="26537ctL006.i tokoe:invalid" result="pass"/><test-case name="26538ctL007 tokoe:valid" result="pass"/><test-case name="26539ctL007.v tokoe:valid" result="pass"/><test-case name="26540ctL008 tokoe:valid" result="pass"/><test-case name="26541ctL008.v tokoe:valid" result="pass"/><test-case name="26542ctL009 tokoe:valid" result="pass"/><test-case name="26543ctL009.i tokoe:invalid" result="pass"/><test-case name="26544ctL010 tokoe:valid" result="pass"/><test-case name="26545ctL010.i tokoe:invalid" result="pass"/><test-case name="26546ctL011 tokoe:valid" result="pass"/><test-case name="26547ctL011.v tokoe:valid" result="pass"/><test-case name="26548ctL012 tokoe:valid" result="pass"/><test-case name="26549ctL012.i tokoe:invalid" result="pass"/><test-case name="26550ctL013 tokoe:valid" result="pass"/><test-case name="26551ctL013.i tokoe:invalid" result="pass"/><test-case name="26552ctL014 tokoe:valid" result="pass"/><test-case name="26553ctL014.v tokoe:valid" result="pass"/><test-case name="26554ctL015 tokoe:valid" result="pass"/><test-case name="26555ctL015.v tokoe:valid" result="pass"/><test-case name="26556ctL016 tokoe:valid" result="pass"/><test-case name="26557ctL016.v tokoe:valid" result="pass"/><test-case name="26558ctL017 tokoe:valid" result="pass"/><test-case name="26559ctL017.v tokoe:valid" result="pass"/><test-case name="26560ctL018 tokoe:valid" result="pass"/><test-case name="26561ctL018.v tokoe:valid" result="pass"/><test-case name="26562ctL019 tokoe:valid" result="pass"/><test-case name="26563ctL019.v tokoe:valid" result="pass"/><test-case name="26564ctL020 tokoe:valid" result="pass"/><test-case name="26565ctL020.i tokoe:invalid" result="pass"/><test-case name="26566ctL021 tokoe:valid" result="pass"/><test-case name="26567ctL021.v tokoe:valid" result="pass"/><test-case name="26568ctL022 tokoe:valid" result="pass"/><test-case name="26569ctL022.v tokoe:valid" result="pass"/><test-case name="26570ctM001 tokoe:invalid" result="pass"/><test-case name="26571ctM002 tokoe:valid" result="pass"/><test-case name="26572ctM002.v tokoe:valid" result="pass"/><test-case name="26573ctM003 tokoe:invalid" result="pass"/><test-case name="26574ctM004 tokoe:invalid" result="pass"/><test-case name="26575ctN001 tokoe:valid" result="pass"/><test-case name="26576ctN001.v tokoe:valid" result="pass"/><test-case name="26577ctN002 tokoe:invalid" result="pass"/><test-case name="26578ctN003 tokoe:valid" result="pass"/><test-case name="26579ctN003.v tokoe:valid" result="pass"/><test-case name="26580ctN004 tokoe:valid" result="pass"/><test-case name="26581ctN004.v tokoe:valid" result="pass"/><test-case name="26582ctO001 tokoe:valid" result="pass"/><test-case name="26583ctO001.v tokoe:valid" result="pass"/><test-case name="26584ctO002 tokoe:invalid" result="pass"/><test-case name="26585ctO003 tokoe:valid" result="pass"/><test-case name="26586ctO003.v tokoe:valid" result="pass"/><test-case name="26587ctO004 tokoe:invalid" result="pass"/><test-case name="26588ctO005 tokoe:invalid" result="pass"/><test-case name="26589ctO006 tokoe:valid" result="pass"/><test-case name="26590ctO006.v tokoe:valid" result="pass"/><test-case name="26591ctO007 tokoe:invalid" result="pass"/><test-case name="26592ctZ001 tokoe:valid" result="pass"/><test-case name="26593ctZ001.v tokoe:valid" result="pass"/><test-case name="26594ctZ002 tokoe:invalid" result="pass"/><test-case name="26595ctZ003 tokoe:valid" result="pass"/><test-case name="26596ctZ003.v tokoe:valid" result="pass"/><test-case name="26597ctZ004 tokoe:valid" result="pass"/><test-case name="26598ctZ005 tokoe:valid" result="pass"/><test-case name="26599ctZ005.i tokoe:invalid" result="pass"/><test-case name="26600ctZ006 tokoe:valid" result="pass"/><test-case name="26601ctZ006.v tokoe:valid" result="pass"/><test-case name="26602ctZ007 tokoe:valid" result="pass"/><test-case name="26603ctZ007.v tokoe:valid" result="fail"/><test-case name="26604ctZ008 tokoe:valid" result="pass"/><test-case name="26605ctZ008.v tokoe:valid" result="pass"/><test-case name="26606ctZ009 tokoe:valid" result="pass"/><test-case name="26607ctZ009.v tokoe:valid" result="pass"/><test-case name="26608ctZ009_a tokoe:valid" result="pass"/><test-case name="26609ctZ009_a.v tokoe:valid" result="pass"/><test-case name="26610ctZ009_b tokoe:valid" result="pass"/><test-case name="26611ctZ009_b.v tokoe:valid" result="pass"/><test-case name="26612ctZ009_c tokoe:valid" result="pass"/><test-case name="26613ctZ009_c.i tokoe:invalid" result="pass"/><test-case name="26614ctZ009_d tokoe:valid" result="pass"/><test-case name="26615ctZ009_d.v tokoe:valid" result="pass"/><test-case name="26616ctZ010 tokoe:valid" result="pass"/><test-case name="26617ctZ010a tokoe:invalid" result="pass"/><test-case name="26618ctZ010b tokoe:valid" result="pass"/><test-case name="26619ctZ010c tokoe:valid" result="pass"/><test-case name="26620ctZ010d tokoe:invalid" result="pass"/><test-case name="26621ctZ010e tokoe:invalid" result="pass"/><test-case name="26622ctZ010f tokoe:valid" result="pass"/><test-case name="26623ctZ010g tokoe:valid" result="pass"/><test-case name="26624ctZ010h tokoe:valid" result="pass"/><test-case name="26625ctZ011_a.v tokoe:valid" result="pass"/><test-case name="26626ctZ011_b tokoe:valid" result="pass"/><test-case name="26627ctZ011_b.v tokoe:valid" result="pass"/><test-case name="26628ctZ012a tokoe:valid" result="pass"/><test-case name="26629ctZ012b tokoe:valid" result="pass"/><test-case name="26630ctZ013a tokoe:valid" result="pass"/><test-case name="26631ctZ013a.v tokoe:valid" result="pass"/><test-case name="26632ctZ013b tokoe:valid" result="pass"/><test-case name="26633ctZ013b.v tokoe:valid" result="pass"/><test-case name="26634ctZ013c tokoe:valid" result="pass"/><test-case name="26635ctZ013c.i tokoe:invalid" result="pass"/><test-case name="26636ctZ013d tokoe:valid" result="pass"/><test-case name="26637ctZ013d.i tokoe:invalid" result="pass"/><test-case name="26638ctZ013e tokoe:valid" result="pass"/><test-case name="26639ctZ013e.i tokoe:invalid" result="pass"/><test-case name="26640string_length001_0 tokoe:invalid" result="pass"/><test-case name="26641string_length002_1 tokoe:invalid" result="pass"/><test-case name="26642string_length003_2 tokoe:valid" result="pass"/><test-case name="26643string_length004_3 tokoe:invalid" result="pass"/><test-case name="26644string_length005_4 tokoe:invalid" result="pass"/><test-case name="26645string_length006_5 tokoe:invalid" result="pass"/><test-case name="26646string_length007_6 tokoe:invalid" result="pass"/><test-case name="26647string_minLength001_7 tokoe:invalid" result="pass"/><test-case name="26648string_minLength002_8 tokoe:invalid" result="pass"/><test-case name="26649string_minLength003_9 tokoe:valid" result="pass"/><test-case name="26650string_minLength004_10 tokoe:invalid" result="pass"/><test-case name="26651string_minLength005_11 tokoe:invalid" result="pass"/><test-case name="26652string_minLength006_12 tokoe:invalid" result="pass"/><test-case name="26653string_minLength007_13 tokoe:valid" result="pass"/><test-case name="26654string_minLength008_14 tokoe:valid" result="pass"/><test-case name="26655string_maxLength001_15 tokoe:invalid" result="pass"/><test-case name="26656string_maxLength002_16 tokoe:invalid" result="pass"/><test-case name="26657string_maxLength003_17 tokoe:valid" result="pass"/><test-case name="26658string_maxLength004_18 tokoe:invalid" result="pass"/><test-case name="26659string_maxLength005_19 tokoe:invalid" result="pass"/><test-case name="26660string_pattern001_20 tokoe:valid" result="pass"/><test-case name="26661string_enumeration001_21 tokoe:valid" result="pass"/><test-case name="26662string_enumeration002_22 tokoe:valid" result="pass"/><test-case name="26663decimal_pattern001_23 tokoe:valid" result="pass"/><test-case name="26664decimal_enumeration001_24 tokoe:invalid" result="pass"/><test-case name="26665decimal_enumeration002_25 tokoe:valid" result="pass"/><test-case name="26666decimal_maxInclusive001_26 tokoe:invalid" result="pass"/><test-case name="26667decimal_maxInclusive002_27 tokoe:valid" result="pass"/><test-case name="26668decimal_maxInclusive003_28 tokoe:invalid" result="pass"/><test-case name="26669decimal_maxExclusive001_29 tokoe:invalid" result="pass"/><test-case name="26670decimal_maxExclusive002_30 tokoe:valid" result="pass"/><test-case name="26671decimal_minInclusive001_31 tokoe:invalid" result="pass"/><test-case name="26672decimal_minInclusive002_32 tokoe:valid" result="pass"/><test-case name="26673decimal_minInclusive003_33 tokoe:invalid" result="pass"/><test-case name="26674decimal_minExclusive001_34 tokoe:invalid" result="pass"/><test-case name="26675decimal_minExclusive002_35 tokoe:valid" result="pass"/><test-case name="26676decimal_minExclusive003_36 tokoe:invalid" result="pass"/><test-case name="26677decimal_totalDigits001_37 tokoe:invalid" result="pass"/><test-case name="26678decimal_totalDigits002_38 tokoe:invalid" result="pass"/><test-case name="26679decimal_totalDigits003_39 tokoe:invalid" result="pass"/><test-case name="26680decimal_totalDigits004_40 tokoe:valid" result="pass"/><test-case name="26681decimal_totalDigits005_41 tokoe:invalid" result="pass"/><test-case name="26682decimal_totalDigits006_42 tokoe:invalid" result="pass"/><test-case name="26683decimal_totalDigits007_43 tokoe:valid" result="pass"/><test-case name="26684decimal_fractionDigits001_44 tokoe:invalid" result="pass"/><test-case name="26685decimal_fractionDigits002_45 tokoe:invalid" result="pass"/><test-case name="26686decimal_fractionDigits003_46 tokoe:valid" result="pass"/><test-case name="26687decimal_fractionDigits004_47 tokoe:valid" result="pass"/><test-case name="26688decimal_fractionDigits005_48 tokoe:invalid" result="pass"/><test-case name="26689decimal_fractionDigits006_49 tokoe:invalid" result="pass"/><test-case name="26690decimal_fractionDigits007_50 tokoe:valid" result="pass"/><test-case name="26691decimal_fractionDigits008_51 tokoe:invalid" result="pass"/><test-case name="26692float_pattern001_52 tokoe:valid" result="pass"/><test-case name="26693float_enumeration001_53 tokoe:invalid" result="pass"/><test-case name="26694float_enumeration002_54 tokoe:valid" result="pass"/><test-case name="26695float_maxInclusive001_55 tokoe:invalid" result="pass"/><test-case name="26696float_maxInclusive002_56 tokoe:valid" result="pass"/><test-case name="26697float_maxInclusive003_57 tokoe:invalid" result="pass"/><test-case name="26698float_maxExclusive001_58 tokoe:invalid" result="pass"/><test-case name="26699float_maxExclusive002_59 tokoe:valid" result="pass"/><test-case name="26700float_minInclusive001_60 tokoe:invalid" result="pass"/><test-case name="26701float_minInclusive002_61 tokoe:valid" result="pass"/><test-case name="26702float_minInclusive003_62 tokoe:invalid" result="pass"/><test-case name="26703float_minExclusive001_63 tokoe:invalid" result="pass"/><test-case name="26704float_minExclusive002_64 tokoe:valid" result="pass"/><test-case name="26705float_minExclusive003_65 tokoe:invalid" result="pass"/><test-case name="26706double_pattern001_66 tokoe:valid" result="pass"/><test-case name="26707double_enumeration001_67 tokoe:invalid" result="pass"/><test-case name="26708double_enumeration002_68 tokoe:valid" result="pass"/><test-case name="26709double_maxInclusive001_69 tokoe:invalid" result="pass"/><test-case name="26710double_maxInclusive002_70 tokoe:valid" result="pass"/><test-case name="26711double_maxInclusive003_71 tokoe:invalid" result="pass"/><test-case name="26712double_maxExclusive001_72 tokoe:invalid" result="pass"/><test-case name="26713double_maxExclusive002_73 tokoe:valid" result="pass"/><test-case name="26714double_minInclusive001_74 tokoe:invalid" result="pass"/><test-case name="26715double_minInclusive002_75 tokoe:valid" result="pass"/><test-case name="26716double_minInclusive003_76 tokoe:invalid" result="pass"/><test-case name="26717double_minExclusive001_77 tokoe:invalid" result="pass"/><test-case name="26718double_minExclusive002_78 tokoe:valid" result="pass"/><test-case name="26719double_minExclusive003_79 tokoe:invalid" result="pass"/><test-case name="26720duration_pattern001_80 tokoe:valid" result="pass"/><test-case name="26721duration_enumeration001_81 tokoe:invalid" result="pass"/><test-case name="26722duration_enumeration002_82 tokoe:valid" result="pass"/><test-case name="26723duration_enumeration003_83 tokoe:valid" result="pass"/><test-case name="26724duration_enumeration004_84 tokoe:valid" result="pass"/><test-case name="26725duration_maxInclusive001_85 tokoe:invalid" result="pass"/><test-case name="26726duration_maxInclusive002_86 tokoe:valid" result="pass"/><test-case name="26727duration_maxInclusive003_87 tokoe:invalid" result="pass"/><test-case name="26728duration_maxExclusive001_88 tokoe:invalid" result="pass"/><test-case name="26729duration_maxExclusive002_89 tokoe:valid" result="pass"/><test-case name="26730duration_minInclusive001_90 tokoe:invalid" result="pass"/><test-case name="26731duration_minInclusive002_91 tokoe:valid" result="pass"/><test-case name="26732duration_minInclusive003_92 tokoe:invalid" result="pass"/><test-case name="26733duration_minInclusive004_93 tokoe:valid" result="fail"/><test-case name="26734duration_minExclusive001_94 tokoe:invalid" result="pass"/><test-case name="26735duration_minExclusive002_95 tokoe:valid" result="pass"/><test-case name="26736duration_minExclusive003_96 tokoe:invalid" result="pass"/><test-case name="26737dateTime_pattern001_97 tokoe:valid" result="pass"/><test-case name="26738dateTime_enumeration001_98 tokoe:invalid" result="pass"/><test-case name="26739dateTime_enumeration002_99 tokoe:valid" result="pass"/><test-case name="26740dateTime_enumeration003_100 tokoe:valid" result="fail"/><test-case name="26741dateTime_maxInclusive001_101 tokoe:invalid" result="pass"/><test-case name="26742dateTime_maxInclusive002_102 tokoe:valid" result="pass"/><test-case name="26743dateTime_maxInclusive003_103 tokoe:invalid" result="pass"/><test-case name="26744dateTime_maxInclusive004_104 tokoe:valid" result="pass"/><test-case name="26745dateTime_maxExclusive001_105 tokoe:invalid" result="pass"/><test-case name="26746dateTime_maxExclusive002_106 tokoe:valid" result="pass"/><test-case name="26747dateTime_minInclusive001_107 tokoe:invalid" result="pass"/><test-case name="26748dateTime_minInclusive002_108 tokoe:valid" result="pass"/><test-case name="26749dateTime_minInclusive003_109 tokoe:invalid" result="pass"/><test-case name="26750dateTime_minExclusive001_110 tokoe:invalid" result="pass"/><test-case name="26751dateTime_minExclusive002_111 tokoe:valid" result="pass"/><test-case name="26752dateTime_minExclusive003_112 tokoe:invalid" result="pass"/><test-case name="26753time_pattern001_113 tokoe:valid" result="pass"/><test-case name="26754time_enumeration001_114 tokoe:invalid" result="pass"/><test-case name="26755time_enumeration002_115 tokoe:valid" result="pass"/><test-case name="26756time_maxInclusive001_116 tokoe:invalid" result="pass"/><test-case name="26757time_maxInclusive002_117 tokoe:valid" result="pass"/><test-case name="26758time_maxInclusive003_118 tokoe:invalid" result="pass"/><test-case name="26759time_maxInclusive007_119 tokoe:invalid" result="pass"/><test-case name="26760time_maxExclusive001_120 tokoe:invalid" result="pass"/><test-case name="26761time_maxExclusive002_121 tokoe:valid" result="pass"/><test-case name="26762time_minInclusive001_122 tokoe:invalid" result="pass"/><test-case name="26763time_minInclusive002_123 tokoe:valid" result="pass"/><test-case name="26764time_minInclusive003_124 tokoe:invalid" result="pass"/><test-case name="26765time_minExclusive001_125 tokoe:invalid" result="pass"/><test-case name="26766time_minExclusive002_126 tokoe:valid" result="pass"/><test-case name="26767time_minExclusive003_127 tokoe:invalid" result="pass"/><test-case name="26768date_pattern001_128 tokoe:valid" result="pass"/><test-case name="26769date_enumeration001_129 tokoe:invalid" result="pass"/><test-case name="26770date_enumeration002_130 tokoe:valid" result="pass"/><test-case name="26771date_maxInclusive001_131 tokoe:invalid" result="pass"/><test-case name="26772date_maxInclusive002_132 tokoe:valid" result="pass"/><test-case name="26773date_maxInclusive003_133 tokoe:invalid" result="pass"/><test-case name="26774date_maxInclusive007_134 tokoe:invalid" result="pass"/><test-case name="26775date_maxInclusive008_135 tokoe:invalid" result="pass"/><test-case name="26776date_maxInclusive009_136 tokoe:valid" result="pass"/><test-case name="26777date_maxExclusive001_137 tokoe:invalid" result="pass"/><test-case name="26778date_maxExclusive002_138 tokoe:valid" result="pass"/><test-case name="26779date_minInclusive001_139 tokoe:invalid" result="pass"/><test-case name="26780date_minInclusive002_140 tokoe:valid" result="pass"/><test-case name="26781date_minInclusive003_141 tokoe:invalid" result="pass"/><test-case name="26782date_minExclusive001_142 tokoe:invalid" result="pass"/><test-case name="26783date_minExclusive002_143 tokoe:valid" result="pass"/><test-case name="26784date_minExclusive003_144 tokoe:invalid" result="pass"/><test-case name="26785gYearMonth_pattern001_145 tokoe:valid" result="pass"/><test-case name="26786gYearMonth_enumeration001_146 tokoe:invalid" result="pass"/><test-case name="26787gYearMonth_enumeration002_147 tokoe:valid" result="pass"/><test-case name="26788gYearMonth_maxInclusive001_148 tokoe:invalid" result="pass"/><test-case name="26789gYearMonth_maxInclusive002_149 tokoe:valid" result="pass"/><test-case name="26790gYearMonth_maxInclusive003_150 tokoe:invalid" result="pass"/><test-case name="26791gYearMonth_maxExclusive001_151 tokoe:invalid" result="pass"/><test-case name="26792gYearMonth_maxExclusive002_152 tokoe:valid" result="pass"/><test-case name="26793gYearMonth_minInclusive001_153 tokoe:invalid" result="pass"/><test-case name="26794gYearMonth_minInclusive002_154 tokoe:valid" result="pass"/><test-case name="26795gYearMonth_minInclusive003_155 tokoe:invalid" result="pass"/><test-case name="26796gYearMonth_minExclusive001_156 tokoe:invalid" result="pass"/><test-case name="26797gYearMonth_minExclusive002_157 tokoe:valid" result="pass"/><test-case name="26798gYearMonth_minExclusive003_158 tokoe:invalid" result="pass"/><test-case name="26799gYear_pattern001_159 tokoe:valid" result="pass"/><test-case name="26800gYear_enumeration001_160 tokoe:invalid" result="pass"/><test-case name="26801gYear_enumeration002_161 tokoe:valid" result="pass"/><test-case name="26802gYear_maxInclusive001_162 tokoe:invalid" result="pass"/><test-case name="26803gYear_maxInclusive002_163 tokoe:valid" result="pass"/><test-case name="26804gYear_maxInclusive003_164 tokoe:invalid" result="pass"/><test-case name="26805gYear_maxExclusive001_165 tokoe:invalid" result="pass"/><test-case name="26806gYear_maxExclusive002_166 tokoe:valid" result="pass"/><test-case name="26807gYear_minInclusive001_167 tokoe:invalid" result="pass"/><test-case name="26808gYear_minInclusive002_168 tokoe:valid" result="pass"/><test-case name="26809gYear_minInclusive003_169 tokoe:invalid" result="pass"/><test-case name="26810gYear_minExclusive001_170 tokoe:invalid" result="pass"/><test-case name="26811gYear_minExclusive002_171 tokoe:valid" result="pass"/><test-case name="26812gYear_minExclusive003_172 tokoe:invalid" result="pass"/><test-case name="26813gMonthDay_pattern001_173 tokoe:valid" result="pass"/><test-case name="26814gMonthDay_enumeration001_174 tokoe:invalid" result="pass"/><test-case name="26815gMonthDay_enumeration002_175 tokoe:valid" result="pass"/><test-case name="26816gMonthDay_maxInclusive001_176 tokoe:invalid" result="pass"/><test-case name="26817gMonthDay_maxInclusive002_177 tokoe:valid" result="pass"/><test-case name="26818gMonthDay_maxInclusive003_178 tokoe:invalid" result="pass"/><test-case name="26819gMonthDay_maxExclusive001_179 tokoe:invalid" result="pass"/><test-case name="26820gMonthDay_maxExclusive002_180 tokoe:valid" result="pass"/><test-case name="26821gMonthDay_minInclusive001_181 tokoe:invalid" result="pass"/><test-case name="26822gMonthDay_minInclusive002_182 tokoe:valid" result="pass"/><test-case name="26823gMonthDay_minInclusive003_183 tokoe:invalid" result="pass"/><test-case name="26824gMonthDay_minExclusive001_184 tokoe:invalid" result="pass"/><test-case name="26825gMonthDay_minExclusive002_185 tokoe:valid" result="pass"/><test-case name="26826gMonthDay_minExclusive003_186 tokoe:invalid" result="pass"/><test-case name="26827gDay_pattern001_187 tokoe:valid" result="pass"/><test-case name="26828gDay_enumeration001_188 tokoe:invalid" result="pass"/><test-case name="26829gDay_enumeration002_189 tokoe:valid" result="pass"/><test-case name="26830gDay_maxInclusive001_190 tokoe:invalid" result="pass"/><test-case name="26831gDay_maxInclusive002_191 tokoe:valid" result="pass"/><test-case name="26832gDay_maxInclusive003_192 tokoe:invalid" result="pass"/><test-case name="26833gDay_maxExclusive001_193 tokoe:invalid" result="pass"/><test-case name="26834gDay_maxExclusive002_194 tokoe:valid" result="pass"/><test-case name="26835gDay_minInclusive001_195 tokoe:invalid" result="pass"/><test-case name="26836gDay_minInclusive002_196 tokoe:valid" result="pass"/><test-case name="26837gDay_minInclusive003_197 tokoe:invalid" result="pass"/><test-case name="26838gDay_minExclusive001_198 tokoe:invalid" result="pass"/><test-case name="26839gDay_minExclusive002_199 tokoe:valid" result="pass"/><test-case name="26840gDay_minExclusive003_200 tokoe:invalid" result="pass"/><test-case name="26841gMonth_pattern001_201 tokoe:valid" result="pass"/><test-case name="26842gMonth_enumeration001_202 tokoe:invalid" result="pass"/><test-case name="26843gMonth_enumeration002_203 tokoe:valid" result="fail"/><test-case name="26844gMonth_maxInclusive001_204 tokoe:invalid" result="pass"/><test-case name="26845gMonth_maxInclusive002_205 tokoe:valid" result="fail"/><test-case name="26846gMonth_maxInclusive003_206 tokoe:invalid" result="pass"/><test-case name="26847gMonth_maxExclusive001_207 tokoe:invalid" result="pass"/><test-case name="26848gMonth_maxExclusive002_208 tokoe:valid" result="fail"/><test-case name="26849gMonth_minInclusive001_209 tokoe:invalid" result="pass"/><test-case name="26850gMonth_minInclusive002_210 tokoe:valid" result="fail"/><test-case name="26851gMonth_minInclusive003_211 tokoe:invalid" result="pass"/><test-case name="26852gMonth_minExclusive001_212 tokoe:invalid" result="pass"/><test-case name="26853gMonth_minExclusive002_213 tokoe:valid" result="fail"/><test-case name="26854gMonth_minExclusive003_214 tokoe:invalid" result="pass"/><test-case name="26855hexBinary_length001_215 tokoe:invalid" result="pass"/><test-case name="26856hexBinary_length002_216 tokoe:invalid" result="pass"/><test-case name="26857hexBinary_length003_217 tokoe:valid" result="pass"/><test-case name="26858hexBinary_length004_218 tokoe:invalid" result="pass"/><test-case name="26859hexBinary_length005_219 tokoe:invalid" result="pass"/><test-case name="26860hexBinary_length006_220 tokoe:invalid" result="pass"/><test-case name="26861hexBinary_length007_221 tokoe:invalid" result="pass"/><test-case name="26862hexBinary_minLength001_222 tokoe:invalid" result="pass"/><test-case name="26863hexBinary_minLength002_223 tokoe:invalid" result="pass"/><test-case name="26864hexBinary_minLength003_224 tokoe:valid" result="pass"/><test-case name="26865hexBinary_minLength004_225 tokoe:invalid" result="pass"/><test-case name="26866hexBinary_minLength005_226 tokoe:invalid" result="pass"/><test-case name="26867hexBinary_minLength006_227 tokoe:invalid" result="pass"/><test-case name="26868hexBinary_minLength007_228 tokoe:valid" result="pass"/><test-case name="26869hexBinary_maxLength001_229 tokoe:invalid" result="pass"/><test-case name="26870hexBinary_maxLength002_230 tokoe:invalid" result="pass"/><test-case name="26871hexBinary_maxLength003_231 tokoe:valid" result="pass"/><test-case name="26872hexBinary_maxLength004_232 tokoe:invalid" result="pass"/><test-case name="26873hexBinary_maxLength005_233 tokoe:invalid" result="pass"/><test-case name="26874hexBinary_enumeration001_234 tokoe:valid" result="pass"/><test-case name="26875hexBinary_enumeration002_235 tokoe:valid" result="pass"/><test-case name="26876base64Binary_length001_236 tokoe:invalid" result="pass"/><test-case name="26877base64Binary_length002_237 tokoe:invalid" result="pass"/><test-case name="26878base64Binary_length003_238 tokoe:valid" result="pass"/><test-case name="26879base64Binary_length004_239 tokoe:invalid" result="pass"/><test-case name="26880base64Binary_length005_240 tokoe:invalid" result="pass"/><test-case name="26881base64Binary_length006_241 tokoe:invalid" result="pass"/><test-case name="26882base64Binary_length007_242 tokoe:invalid" result="pass"/><test-case name="26883base64Binary_minLength001_243 tokoe:invalid" result="pass"/><test-case name="26884base64Binary_minLength002_244 tokoe:invalid" result="pass"/><test-case name="26885base64Binary_minLength003_245 tokoe:valid" result="pass"/><test-case name="26886base64Binary_minLength004_246 tokoe:invalid" result="pass"/><test-case name="26887base64Binary_minLength005_247 tokoe:invalid" result="pass"/><test-case name="26888base64Binary_minLength006_248 tokoe:invalid" result="pass"/><test-case name="26889base64Binary_minLength007_249 tokoe:valid" result="pass"/><test-case name="26890base64Binary_maxLength001_250 tokoe:invalid" result="pass"/><test-case name="26891base64Binary_maxLength002_251 tokoe:invalid" result="pass"/><test-case name="26892base64Binary_maxLength003_252 tokoe:valid" result="pass"/><test-case name="26893base64Binary_maxLength004_253 tokoe:invalid" result="pass"/><test-case name="26894base64Binary_maxLength005_254 tokoe:invalid" result="pass"/><test-case name="26895base64Binary_enumeration001_255 tokoe:valid" result="pass"/><test-case name="26896base64Binary_enumeration002_256 tokoe:valid" result="pass"/><test-case name="26897base64Binary_enumeration003_257 tokoe:valid" result="pass"/><test-case name="26898anyURI_length002_258 tokoe:invalid" result="pass"/><test-case name="26899anyURI_length003_259 tokoe:valid" result="pass"/><test-case name="26900anyURI_length004_260 tokoe:invalid" result="pass"/><test-case name="26901anyURI_length005_261 tokoe:invalid" result="pass"/><test-case name="26902anyURI_length006_262 tokoe:invalid" result="pass"/><test-case name="26903anyURI_length007_263 tokoe:invalid" result="pass"/><test-case name="26904anyURI_minLength001_264 tokoe:invalid" result="pass"/><test-case name="26905anyURI_minLength002_265 tokoe:invalid" result="pass"/><test-case name="26906anyURI_minLength003_266 tokoe:valid" result="pass"/><test-case name="26907anyURI_minLength004_267 tokoe:invalid" result="pass"/><test-case name="26908anyURI_minLength005_268 tokoe:invalid" result="pass"/><test-case name="26909anyURI_minLength006_269 tokoe:invalid" result="pass"/><test-case name="26910anyURI_minLength007_270 tokoe:valid" result="pass"/><test-case name="26911anyURI_maxLength001_271 tokoe:invalid" result="pass"/><test-case name="26912anyURI_maxLength002_272 tokoe:invalid" result="pass"/><test-case name="26913anyURI_maxLength003_273 tokoe:valid" result="pass"/><test-case name="26914anyURI_maxLength004_274 tokoe:invalid" result="pass"/><test-case name="26915anyURI_maxLength005_275 tokoe:invalid" result="pass"/><test-case name="26916anyURI_enumeration001_276 tokoe:valid" result="pass"/><test-case name="26917anyURI_enumeration002_277 tokoe:valid" result="pass"/><test-case name="26918QName_length001_278 tokoe:invalid" result="pass"/><test-case name="26919QName_length002_279 tokoe:invalid" result="pass"/><test-case name="26920QName_length003_280 tokoe:valid" result="pass"/><test-case name="26921QName_length004_281 tokoe:invalid" result="pass"/><test-case name="26922QName_length005_282 tokoe:invalid" result="pass"/><test-case name="26923QName_length006_283 tokoe:invalid" result="pass"/><test-case name="26924QName_length007_284 tokoe:invalid" result="pass"/><test-case name="26925QName_minLength001_285 tokoe:invalid" result="pass"/><test-case name="26926QName_minLength002_286 tokoe:invalid" result="pass"/><test-case name="26927QName_minLength003_287 tokoe:valid" result="pass"/><test-case name="26928QName_minLength004_288 tokoe:invalid" result="pass"/><test-case name="26929QName_minLength005_289 tokoe:invalid" result="pass"/><test-case name="26930QName_minLength006_290 tokoe:invalid" result="pass"/><test-case name="26931QName_minLength007_291 tokoe:valid" result="pass"/><test-case name="26932QName_maxLength001_292 tokoe:invalid" result="pass"/><test-case name="26933QName_maxLength002_293 tokoe:invalid" result="pass"/><test-case name="26934QName_maxLength003_294 tokoe:valid" result="pass"/><test-case name="26935QName_maxLength004_295 tokoe:invalid" result="pass"/><test-case name="26936QName_maxLength005_296 tokoe:invalid" result="pass"/><test-case name="26937QName_pattern001_297 tokoe:valid" result="pass"/><test-case name="26938QName_enumeration001_298 tokoe:invalid" result="pass"/><test-case name="26939QName_enumeration002_299 tokoe:valid" result="pass"/><test-case name="26940NOTATION_length001_300 tokoe:invalid" result="pass"/><test-case name="26941NOTATION_length002_301 tokoe:invalid" result="pass"/><test-case name="26942NOTATION_length003_302 tokoe:valid" result="pass"/><test-case name="26943NOTATION_length004_303 tokoe:invalid" result="pass"/><test-case name="26944NOTATION_length005_304 tokoe:invalid" result="pass"/><test-case name="26945NOTATION_length006_305 tokoe:invalid" result="pass"/><test-case name="26946NOTATION_length007_306 tokoe:invalid" result="pass"/><test-case name="26947NOTATION_minLength001_307 tokoe:invalid" result="pass"/><test-case name="26948NOTATION_minLength002_308 tokoe:invalid" result="pass"/><test-case name="26949NOTATION_minLength003_309 tokoe:valid" result="pass"/><test-case name="26950NOTATION_minLength004_310 tokoe:invalid" result="pass"/><test-case name="26951NOTATION_minLength005_311 tokoe:invalid" result="pass"/><test-case name="26952NOTATION_minLength006_312 tokoe:invalid" result="pass"/><test-case name="26953NOTATION_minLength007_313 tokoe:valid" result="pass"/><test-case name="26954NOTATION_maxLength001_314 tokoe:invalid" result="pass"/><test-case name="26955NOTATION_maxLength002_315 tokoe:invalid" result="pass"/><test-case name="26956NOTATION_maxLength003_316 tokoe:valid" result="pass"/><test-case name="26957NOTATION_maxLength004_317 tokoe:invalid" result="pass"/><test-case name="26958NOTATION_maxLength005_318 tokoe:invalid" result="pass"/><test-case name="26959NOTATION_pattern001_319 tokoe:valid" result="pass"/><test-case name="26960NOTATION_enumeration001_320 tokoe:invalid" result="pass"/><test-case name="26961NOTATION_enumeration002_321 tokoe:valid" result="pass"/><test-case name="26962normalizedString_length001_322 tokoe:invalid" result="pass"/><test-case name="26963normalizedString_length002_323 tokoe:invalid" result="pass"/><test-case name="26964normalizedString_length003_324 tokoe:valid" result="pass"/><test-case name="26965normalizedString_length004_325 tokoe:invalid" result="pass"/><test-case name="26966normalizedString_length005_326 tokoe:invalid" result="pass"/><test-case name="26967normalizedString_length006_327 tokoe:invalid" result="pass"/><test-case name="26968normalizedString_length007_328 tokoe:invalid" result="pass"/><test-case name="26969normalizedString_minLength001_329 tokoe:invalid" result="pass"/><test-case name="26970normalizedString_minLength002_330 tokoe:invalid" result="pass"/><test-case name="26971normalizedString_minLength003_331 tokoe:valid" result="pass"/><test-case name="26972normalizedString_minLength004_332 tokoe:invalid" result="pass"/><test-case name="26973normalizedString_minLength005_333 tokoe:invalid" result="pass"/><test-case name="26974normalizedString_minLength006_334 tokoe:invalid" result="pass"/><test-case name="26975normalizedString_minLength007_335 tokoe:valid" result="pass"/><test-case name="26976normalizedString_maxLength001_336 tokoe:invalid" result="pass"/><test-case name="26977normalizedString_maxLength002_337 tokoe:invalid" result="pass"/><test-case name="26978normalizedString_maxLength003_338 tokoe:valid" result="pass"/><test-case name="26979normalizedString_maxLength004_339 tokoe:invalid" result="pass"/><test-case name="26980normalizedString_maxLength005_340 tokoe:invalid" result="pass"/><test-case name="26981normalizedString_pattern001_341 tokoe:valid" result="pass"/><test-case name="26982normalizedString_enumeration001_342 tokoe:valid" result="pass"/><test-case name="26983normalizedString_enumeration002_343 tokoe:valid" result="pass"/><test-case name="26984normalizedString_whitespace001_344 tokoe:invalid" result="pass"/><test-case name="26985token_length001_345 tokoe:invalid" result="pass"/><test-case name="26986token_length002_346 tokoe:invalid" result="pass"/><test-case name="26987token_length003_347 tokoe:valid" result="pass"/><test-case name="26988token_length004_348 tokoe:invalid" result="pass"/><test-case name="26989token_length005_349 tokoe:invalid" result="pass"/><test-case name="26990token_length006_350 tokoe:invalid" result="pass"/><test-case name="26991token_length007_351 tokoe:invalid" result="pass"/><test-case name="26992token_minLength001_352 tokoe:invalid" result="pass"/><test-case name="26993token_minLength002_353 tokoe:invalid" result="pass"/><test-case name="26994token_minLength003_354 tokoe:valid" result="pass"/><test-case name="26995token_minLength004_355 tokoe:invalid" result="pass"/><test-case name="26996token_minLength005_356 tokoe:invalid" result="pass"/><test-case name="26997token_minLength006_357 tokoe:invalid" result="pass"/><test-case name="26998token_minLength007_358 tokoe:valid" result="pass"/><test-case name="26999token_maxLength001_359 tokoe:invalid" result="pass"/><test-case name="27000token_maxLength002_360 tokoe:invalid" result="pass"/><test-case name="27001token_maxLength003_361 tokoe:valid" result="pass"/><test-case name="27002token_maxLength004_362 tokoe:invalid" result="pass"/><test-case name="27003token_maxLength005_363 tokoe:invalid" result="pass"/><test-case name="27004token_pattern001_364 tokoe:valid" result="pass"/><test-case name="27005token_enumeration001_365 tokoe:valid" result="pass"/><test-case name="27006token_enumeration002_366 tokoe:valid" result="pass"/><test-case name="27007token_whitespace001_367 tokoe:invalid" result="pass"/><test-case name="27008language_length001_368 tokoe:invalid" result="pass"/><test-case name="27009language_length002_369 tokoe:invalid" result="pass"/><test-case name="27010language_length003_370 tokoe:valid" result="pass"/><test-case name="27011language_length004_371 tokoe:invalid" result="pass"/><test-case name="27012language_length005_372 tokoe:invalid" result="pass"/><test-case name="27013language_length006_373 tokoe:invalid" result="pass"/><test-case name="27014language_length007_374 tokoe:invalid" result="pass"/><test-case name="27015language_minLength001_375 tokoe:invalid" result="pass"/><test-case name="27016language_minLength002_376 tokoe:invalid" result="pass"/><test-case name="27017language_minLength003_377 tokoe:valid" result="pass"/><test-case name="27018language_minLength004_378 tokoe:invalid" result="pass"/><test-case name="27019language_minLength005_379 tokoe:invalid" result="pass"/><test-case name="27020language_minLength006_380 tokoe:invalid" result="pass"/><test-case name="27021language_minLength007_381 tokoe:valid" result="pass"/><test-case name="27022language_maxLength001_382 tokoe:invalid" result="pass"/><test-case name="27023language_maxLength002_383 tokoe:invalid" result="pass"/><test-case name="27024language_maxLength003_384 tokoe:valid" result="pass"/><test-case name="27025language_maxLength004_385 tokoe:invalid" result="pass"/><test-case name="27026language_maxLength005_386 tokoe:invalid" result="pass"/><test-case name="27027language_pattern001_387 tokoe:valid" result="pass"/><test-case name="27028language_enumeration001_388 tokoe:invalid" result="pass"/><test-case name="27029language_enumeration002_389 tokoe:valid" result="pass"/><test-case name="27030IDREFS_length001_390 tokoe:invalid" result="pass"/><test-case name="27031IDREFS_length002_391 tokoe:invalid" result="pass"/><test-case name="27032IDREFS_length003_392 tokoe:valid" result="pass"/><test-case name="27033IDREFS_length004_393 tokoe:invalid" result="pass"/><test-case name="27034IDREFS_length005_394 tokoe:invalid" result="pass"/><test-case name="27035IDREFS_length006_395 tokoe:invalid" result="fail"/><test-case name="27036IDREFS_length007_396 tokoe:invalid" result="pass"/><test-case name="27037IDREFS_minLength001_397 tokoe:invalid" result="pass"/><test-case name="27038IDREFS_minLength002_398 tokoe:invalid" result="pass"/><test-case name="27039IDREFS_minLength003_399 tokoe:valid" result="pass"/><test-case name="27040IDREFS_minLength004_400 tokoe:invalid" result="pass"/><test-case name="27041IDREFS_minLength005_401 tokoe:invalid" result="pass"/><test-case name="27042IDREFS_minLength006_402 tokoe:invalid" result="pass"/><test-case name="27043IDREFS_minLength007_403 tokoe:valid" result="pass"/><test-case name="27044IDREFS_maxLength001_404 tokoe:invalid" result="pass"/><test-case name="27045IDREFS_maxLength002_405 tokoe:invalid" result="pass"/><test-case name="27046IDREFS_maxLength003_406 tokoe:valid" result="pass"/><test-case name="27047IDREFS_maxLength004_407 tokoe:invalid" result="pass"/><test-case name="27048IDREFS_maxLength005_408 tokoe:invalid" result="pass"/><test-case name="27049IDREFS_enumeration001_409 tokoe:invalid" result="pass"/><test-case name="27050IDREFS_enumeration002_410 tokoe:valid" result="pass"/><test-case name="27051NMTOKEN_length001_411 tokoe:invalid" result="pass"/><test-case name="27052NMTOKEN_length002_412 tokoe:invalid" result="pass"/><test-case name="27053NMTOKEN_length003_413 tokoe:valid" result="pass"/><test-case name="27054NMTOKEN_length004_414 tokoe:invalid" result="pass"/><test-case name="27055NMTOKEN_length005_415 tokoe:invalid" result="pass"/><test-case name="27056NMTOKEN_length006_416 tokoe:invalid" result="pass"/><test-case name="27057NMTOKEN_length007_417 tokoe:invalid" result="pass"/><test-case name="27058NMTOKEN_minLength001_418 tokoe:invalid" result="pass"/><test-case name="27059NMTOKEN_minLength002_419 tokoe:invalid" result="pass"/><test-case name="27060NMTOKEN_minLength003_420 tokoe:valid" result="pass"/><test-case name="27061NMTOKEN_minLength004_421 tokoe:invalid" result="pass"/><test-case name="27062NMTOKEN_minLength005_422 tokoe:invalid" result="pass"/><test-case name="27063NMTOKEN_minLength006_423 tokoe:invalid" result="pass"/><test-case name="27064NMTOKEN_minLength007_424 tokoe:valid" result="pass"/><test-case name="27065NMTOKEN_maxLength001_425 tokoe:invalid" result="pass"/><test-case name="27066NMTOKEN_maxLength002_426 tokoe:invalid" result="pass"/><test-case name="27067NMTOKEN_maxLength003_427 tokoe:valid" result="pass"/><test-case name="27068NMTOKEN_maxLength004_428 tokoe:invalid" result="pass"/><test-case name="27069NMTOKEN_maxLength005_429 tokoe:invalid" result="pass"/><test-case name="27070NMTOKEN_pattern001_430 tokoe:valid" result="pass"/><test-case name="27071NMTOKEN_enumeration001_431 tokoe:invalid" result="pass"/><test-case name="27072NMTOKEN_enumeration002_432 tokoe:valid" result="pass"/><test-case name="27073NMTOKENS_length001_433 tokoe:invalid" result="pass"/><test-case name="27074NMTOKENS_length002_434 tokoe:invalid" result="pass"/><test-case name="27075NMTOKENS_length003_435 tokoe:valid" result="pass"/><test-case name="27076NMTOKENS_length004_436 tokoe:invalid" result="pass"/><test-case name="27077NMTOKENS_length005_437 tokoe:invalid" result="pass"/><test-case name="27078NMTOKENS_length006_438 tokoe:invalid" result="fail"/><test-case name="27079NMTOKENS_length007_439 tokoe:invalid" result="pass"/><test-case name="27080NMTOKENS_minLength001_440 tokoe:invalid" result="pass"/><test-case name="27081NMTOKENS_minLength002_441 tokoe:invalid" result="pass"/><test-case name="27082NMTOKENS_minLength003_442 tokoe:valid" result="pass"/><test-case name="27083NMTOKENS_minLength004_443 tokoe:invalid" result="pass"/><test-case name="27084NMTOKENS_minLength005_444 tokoe:invalid" result="pass"/><test-case name="27085NMTOKENS_minLength006_445 tokoe:invalid" result="pass"/><test-case name="27086NMTOKENS_minLength007_446 tokoe:valid" result="pass"/><test-case name="27087NMTOKENS_maxLength001_447 tokoe:invalid" result="pass"/><test-case name="27088NMTOKENS_maxLength002_448 tokoe:invalid" result="pass"/><test-case name="27089NMTOKENS_maxLength003_449 tokoe:valid" result="pass"/><test-case name="27090NMTOKENS_maxLength004_450 tokoe:invalid" result="pass"/><test-case name="27091NMTOKENS_maxLength005_451 tokoe:invalid" result="pass"/><test-case name="27092NMTOKENS_enumeration001_452 tokoe:invalid" result="pass"/><test-case name="27093NMTOKENS_enumeration002_453 tokoe:valid" result="pass"/><test-case name="27094Name_length001_454 tokoe:invalid" result="pass"/><test-case name="27095Name_length002_455 tokoe:invalid" result="pass"/><test-case name="27096Name_length003_456 tokoe:valid" result="pass"/><test-case name="27097Name_length004_457 tokoe:invalid" result="pass"/><test-case name="27098Name_length005_458 tokoe:invalid" result="pass"/><test-case name="27099Name_length006_459 tokoe:invalid" result="pass"/><test-case name="27100Name_length007_460 tokoe:invalid" result="pass"/><test-case name="27101Name_minLength001_461 tokoe:invalid" result="pass"/><test-case name="27102Name_minLength002_462 tokoe:invalid" result="pass"/><test-case name="27103Name_minLength003_463 tokoe:valid" result="pass"/><test-case name="27104Name_minLength004_464 tokoe:invalid" result="pass"/><test-case name="27105Name_minLength005_465 tokoe:invalid" result="pass"/><test-case name="27106Name_minLength006_466 tokoe:invalid" result="pass"/><test-case name="27107Name_minLength007_467 tokoe:valid" result="pass"/><test-case name="27108Name_maxLength001_468 tokoe:invalid" result="pass"/><test-case name="27109Name_maxLength002_469 tokoe:invalid" result="pass"/><test-case name="27110Name_maxLength003_470 tokoe:valid" result="pass"/><test-case name="27111Name_maxLength004_471 tokoe:invalid" result="pass"/><test-case name="27112Name_maxLength005_472 tokoe:invalid" result="pass"/><test-case name="27113Name_pattern001_473 tokoe:valid" result="pass"/><test-case name="27114Name_enumeration001_474 tokoe:invalid" result="pass"/><test-case name="27115Name_enumeration002_475 tokoe:valid" result="pass"/><test-case name="27116NCName_length001_476 tokoe:invalid" result="pass"/><test-case name="27117NCName_length002_477 tokoe:invalid" result="pass"/><test-case name="27118NCName_length003_478 tokoe:valid" result="pass"/><test-case name="27119NCName_length004_479 tokoe:invalid" result="pass"/><test-case name="27120NCName_length005_480 tokoe:invalid" result="pass"/><test-case name="27121NCName_length006_481 tokoe:invalid" result="pass"/><test-case name="27122NCName_length007_482 tokoe:invalid" result="pass"/><test-case name="27123NCName_minLength001_483 tokoe:invalid" result="pass"/><test-case name="27124NCName_minLength002_484 tokoe:invalid" result="pass"/><test-case name="27125NCName_minLength003_485 tokoe:valid" result="pass"/><test-case name="27126NCName_minLength004_486 tokoe:invalid" result="pass"/><test-case name="27127NCName_minLength005_487 tokoe:invalid" result="pass"/><test-case name="27128NCName_minLength006_488 tokoe:invalid" result="pass"/><test-case name="27129NCName_minLength007_489 tokoe:valid" result="pass"/><test-case name="27130NCName_maxLength001_490 tokoe:invalid" result="pass"/><test-case name="27131NCName_maxLength002_491 tokoe:invalid" result="pass"/><test-case name="27132NCName_maxLength003_492 tokoe:valid" result="pass"/><test-case name="27133NCName_maxLength004_493 tokoe:invalid" result="pass"/><test-case name="27134NCName_maxLength005_494 tokoe:invalid" result="pass"/><test-case name="27135NCName_pattern001_495 tokoe:valid" result="pass"/><test-case name="27136NCName_enumeration001_496 tokoe:invalid" result="pass"/><test-case name="27137NCName_enumeration002_497 tokoe:valid" result="pass"/><test-case name="27138ID_length001_498 tokoe:invalid" result="pass"/><test-case name="27139ID_length002_499 tokoe:invalid" result="pass"/><test-case name="27140ID_length003_500 tokoe:valid" result="pass"/><test-case name="27141ID_length004_501 tokoe:invalid" result="pass"/><test-case name="27142ID_length005_502 tokoe:invalid" result="pass"/><test-case name="27143ID_length006_503 tokoe:invalid" result="pass"/><test-case name="27144ID_length007_504 tokoe:invalid" result="pass"/><test-case name="27145ID_minLength001_505 tokoe:invalid" result="pass"/><test-case name="27146ID_minLength002_506 tokoe:invalid" result="pass"/><test-case name="27147ID_minLength003_507 tokoe:valid" result="pass"/><test-case name="27148ID_minLength004_508 tokoe:invalid" result="pass"/><test-case name="27149ID_minLength005_509 tokoe:invalid" result="pass"/><test-case name="27150ID_minLength006_510 tokoe:invalid" result="pass"/><test-case name="27151ID_minLength007_511 tokoe:valid" result="pass"/><test-case name="27152ID_maxLength001_512 tokoe:invalid" result="pass"/><test-case name="27153ID_maxLength002_513 tokoe:invalid" result="pass"/><test-case name="27154ID_maxLength003_514 tokoe:valid" result="pass"/><test-case name="27155ID_maxLength004_515 tokoe:invalid" result="pass"/><test-case name="27156ID_maxLength005_516 tokoe:invalid" result="pass"/><test-case name="27157ID_pattern001_517 tokoe:valid" result="pass"/><test-case name="27158ID_enumeration001_518 tokoe:invalid" result="pass"/><test-case name="27159ID_enumeration002_519 tokoe:valid" result="pass"/><test-case name="27160IDREF_length001_520 tokoe:invalid" result="pass"/><test-case name="27161IDREF_length002_521 tokoe:invalid" result="pass"/><test-case name="27162IDREF_length003_522 tokoe:valid" result="pass"/><test-case name="27163IDREF_length004_523 tokoe:invalid" result="pass"/><test-case name="27164IDREF_length005_524 tokoe:invalid" result="pass"/><test-case name="27165IDREF_length006_525 tokoe:invalid" result="pass"/><test-case name="27166IDREF_length007_526 tokoe:invalid" result="pass"/><test-case name="27167IDREF_minLength001_527 tokoe:invalid" result="pass"/><test-case name="27168IDREF_minLength002_528 tokoe:invalid" result="pass"/><test-case name="27169IDREF_minLength003_529 tokoe:valid" result="pass"/><test-case name="27170IDREF_minLength004_530 tokoe:invalid" result="pass"/><test-case name="27171IDREF_minLength005_531 tokoe:invalid" result="pass"/><test-case name="27172IDREF_minLength006_532 tokoe:invalid" result="pass"/><test-case name="27173IDREF_minLength007_533 tokoe:valid" result="pass"/><test-case name="27174IDREF_maxLength001_534 tokoe:invalid" result="pass"/><test-case name="27175IDREF_maxLength002_535 tokoe:invalid" result="pass"/><test-case name="27176IDREF_maxLength003_536 tokoe:valid" result="pass"/><test-case name="27177IDREF_maxLength004_537 tokoe:invalid" result="pass"/><test-case name="27178IDREF_maxLength005_538 tokoe:invalid" result="pass"/><test-case name="27179IDREF_pattern001_539 tokoe:valid" result="pass"/><test-case name="27180IDREF_enumeration001_540 tokoe:invalid" result="pass"/><test-case name="27181IDREF_enumeration002_541 tokoe:valid" result="pass"/><test-case name="27182integer_pattern001_542 tokoe:valid" result="pass"/><test-case name="27183integer_enumeration001_543 tokoe:invalid" result="pass"/><test-case name="27184integer_enumeration002_544 tokoe:valid" result="pass"/><test-case name="27185integer_maxInclusive001_545 tokoe:invalid" result="pass"/><test-case name="27186integer_maxInclusive002_546 tokoe:valid" result="pass"/><test-case name="27187integer_maxInclusive003_547 tokoe:invalid" result="pass"/><test-case name="27188integer_maxExclusive001_548 tokoe:invalid" result="pass"/><test-case name="27189integer_maxExclusive002_549 tokoe:valid" result="pass"/><test-case name="27190integer_minInclusive001_550 tokoe:invalid" result="pass"/><test-case name="27191integer_minInclusive002_551 tokoe:valid" result="pass"/><test-case name="27192integer_minInclusive003_552 tokoe:invalid" result="pass"/><test-case name="27193integer_minInclusive004_553 tokoe:invalid" result="pass"/><test-case name="27194integer_minExclusive001_554 tokoe:invalid" result="pass"/><test-case name="27195integer_minExclusive002_555 tokoe:valid" result="pass"/><test-case name="27196integer_minExclusive003_556 tokoe:invalid" result="pass"/><test-case name="27197integer_minExclusive004_557 tokoe:invalid" result="pass"/><test-case name="27198integer_totalDigits001_558 tokoe:invalid" result="pass"/><test-case name="27199integer_totalDigits002_559 tokoe:invalid" result="pass"/><test-case name="27200integer_totalDigits003_560 tokoe:invalid" result="pass"/><test-case name="27201integer_totalDigits004_561 tokoe:valid" result="pass"/><test-case name="27202integer_totalDigits005_562 tokoe:invalid" result="pass"/><test-case name="27203integer_totalDigits006_563 tokoe:invalid" result="pass"/><test-case name="27204integer_fractionDigits001_564 tokoe:invalid" result="pass"/><test-case name="27205integer_fractionDigits002_565 tokoe:invalid" result="pass"/><test-case name="27206integer_fractionDigits003_566 tokoe:valid" result="pass"/><test-case name="27207integer_fractionDigits004_567 tokoe:invalid" result="pass"/><test-case name="27208integer_fractionDigits005_568 tokoe:invalid" result="pass"/><test-case name="27209integer_fractionDigits006_569 tokoe:invalid" result="pass"/><test-case name="27210integer_fractionDigits007_570 tokoe:invalid" result="pass"/><test-case name="27211integer_fractionDigits008_571 tokoe:invalid" result="pass"/><test-case name="27212nonPositiveInteger_pattern001_572 tokoe:valid" result="pass"/><test-case name="27213nonPositiveInteger_enumeration001_573 tokoe:invalid" result="pass"/><test-case name="27214nonPositiveInteger_enumeration002_574 tokoe:valid" result="pass"/><test-case name="27215nonPositiveInteger_maxInclusive001_575 tokoe:invalid" result="pass"/><test-case name="27216nonPositiveInteger_maxInclusive002_576 tokoe:valid" result="pass"/><test-case name="27217nonPositiveInteger_maxInclusive003_577 tokoe:invalid" result="pass"/><test-case name="27218nonPositiveInteger_maxInclusive004_578 tokoe:invalid" result="pass"/><test-case name="27219nonPositiveInteger_maxExclusive001_579 tokoe:invalid" result="pass"/><test-case name="27220nonPositiveInteger_maxExclusive002_580 tokoe:valid" result="pass"/><test-case name="27221nonPositiveInteger_maxExclusive003_581 tokoe:invalid" result="pass"/><test-case name="27222nonPositiveInteger_minInclusive001_582 tokoe:invalid" result="pass"/><test-case name="27223nonPositiveInteger_minInclusive002_583 tokoe:valid" result="pass"/><test-case name="27224nonPositiveInteger_minInclusive003_584 tokoe:invalid" result="pass"/><test-case name="27225nonPositiveInteger_minInclusive004_585 tokoe:invalid" result="pass"/><test-case name="27226nonPositiveInteger_minExclusive001_586 tokoe:invalid" result="pass"/><test-case name="27227nonPositiveInteger_minExclusive002_587 tokoe:valid" result="pass"/><test-case name="27228nonPositiveInteger_minExclusive003_588 tokoe:invalid" result="pass"/><test-case name="27229nonPositiveInteger_minExclusive004_589 tokoe:invalid" result="pass"/><test-case name="27230nonPositiveInteger_totalDigits001_590 tokoe:invalid" result="pass"/><test-case name="27231nonPositiveInteger_totalDigits002_591 tokoe:invalid" result="pass"/><test-case name="27232nonPositiveInteger_totalDigits003_592 tokoe:invalid" result="pass"/><test-case name="27233nonPositiveInteger_totalDigits004_593 tokoe:valid" result="pass"/><test-case name="27234nonPositiveInteger_totalDigits005_594 tokoe:invalid" result="pass"/><test-case name="27235nonPositiveInteger_totalDigits006_595 tokoe:invalid" result="pass"/><test-case name="27236nonPositiveInteger_fractionDigits001_596 tokoe:invalid" result="pass"/><test-case name="27237nonPositiveInteger_fractionDigits002_597 tokoe:invalid" result="pass"/><test-case name="27238nonPositiveInteger_fractionDigits003_598 tokoe:valid" result="pass"/><test-case name="27239nonPositiveInteger_fractionDigits004_599 tokoe:invalid" result="pass"/><test-case name="27240nonPositiveInteger_fractionDigits005_600 tokoe:invalid" result="pass"/><test-case name="27241nonPositiveInteger_fractionDigits006_601 tokoe:invalid" result="pass"/><test-case name="27242nonPositiveInteger_fractionDigits007_602 tokoe:invalid" result="pass"/><test-case name="27243nonPositiveInteger_fractionDigits008_603 tokoe:invalid" result="pass"/><test-case name="27244negativeInteger_pattern001_604 tokoe:valid" result="pass"/><test-case name="27245negativeInteger_enumeration001_605 tokoe:invalid" result="pass"/><test-case name="27246negativeInteger_enumeration002_606 tokoe:valid" result="pass"/><test-case name="27247negativeInteger_maxInclusive001_607 tokoe:invalid" result="pass"/><test-case name="27248negativeInteger_maxInclusive002_608 tokoe:valid" result="pass"/><test-case name="27249negativeInteger_maxInclusive003_609 tokoe:invalid" result="pass"/><test-case name="27250negativeInteger_maxInclusive004_610 tokoe:invalid" result="pass"/><test-case name="27251negativeInteger_maxExclusive001_611 tokoe:invalid" result="pass"/><test-case name="27252negativeInteger_maxExclusive002_612 tokoe:valid" result="pass"/><test-case name="27253negativeInteger_maxExclusive003_613 tokoe:invalid" result="pass"/><test-case name="27254negativeInteger_minInclusive001_614 tokoe:invalid" result="pass"/><test-case name="27255negativeInteger_minInclusive002_615 tokoe:valid" result="pass"/><test-case name="27256negativeInteger_minInclusive003_616 tokoe:invalid" result="pass"/><test-case name="27257negativeInteger_minInclusive004_617 tokoe:invalid" result="pass"/><test-case name="27258negativeInteger_minExclusive001_618 tokoe:invalid" result="pass"/><test-case name="27259negativeInteger_minExclusive002_619 tokoe:valid" result="pass"/><test-case name="27260negativeInteger_minExclusive003_620 tokoe:invalid" result="pass"/><test-case name="27261negativeInteger_minExclusive004_621 tokoe:invalid" result="pass"/><test-case name="27262negativeInteger_totalDigits001_622 tokoe:invalid" result="pass"/><test-case name="27263negativeInteger_totalDigits002_623 tokoe:invalid" result="pass"/><test-case name="27264negativeInteger_totalDigits003_624 tokoe:invalid" result="pass"/><test-case name="27265negativeInteger_totalDigits004_625 tokoe:valid" result="pass"/><test-case name="27266negativeInteger_totalDigits005_626 tokoe:invalid" result="pass"/><test-case name="27267negativeInteger_totalDigits006_627 tokoe:invalid" result="pass"/><test-case name="27268negativeInteger_fractionDigits001_628 tokoe:invalid" result="pass"/><test-case name="27269negativeInteger_fractionDigits002_629 tokoe:invalid" result="pass"/><test-case name="27270negativeInteger_fractionDigits003_630 tokoe:valid" result="pass"/><test-case name="27271negativeInteger_fractionDigits004_631 tokoe:invalid" result="pass"/><test-case name="27272negativeInteger_fractionDigits005_632 tokoe:invalid" result="pass"/><test-case name="27273negativeInteger_fractionDigits006_633 tokoe:invalid" result="pass"/><test-case name="27274negativeInteger_fractionDigits007_634 tokoe:invalid" result="pass"/><test-case name="27275negativeInteger_fractionDigits008_635 tokoe:invalid" result="pass"/><test-case name="27276long_pattern001_636 tokoe:valid" result="pass"/><test-case name="27277long_enumeration001_637 tokoe:invalid" result="pass"/><test-case name="27278long_enumeration002_638 tokoe:valid" result="pass"/><test-case name="27279long_maxInclusive001_639 tokoe:invalid" result="pass"/><test-case name="27280long_maxInclusive002_640 tokoe:valid" result="pass"/><test-case name="27281long_maxInclusive003_641 tokoe:invalid" result="pass"/><test-case name="27282long_maxInclusive004_642 tokoe:invalid" result="pass"/><test-case name="27283long_maxInclusive005_643 tokoe:invalid" result="pass"/><test-case name="27284long_maxExclusive001_644 tokoe:invalid" result="pass"/><test-case name="27285long_maxExclusive002_645 tokoe:valid" result="pass"/><test-case name="27286long_maxExclusive003_646 tokoe:invalid" result="pass"/><test-case name="27287long_maxExclusive004_647 tokoe:invalid" result="pass"/><test-case name="27288long_minInclusive001_648 tokoe:invalid" result="pass"/><test-case name="27289long_minInclusive002_649 tokoe:valid" result="pass"/><test-case name="27290long_minInclusive003_650 tokoe:invalid" result="pass"/><test-case name="27291long_minInclusive004_651 tokoe:invalid" result="pass"/><test-case name="27292long_minInclusive005_652 tokoe:invalid" result="pass"/><test-case name="27293long_minExclusive001_653 tokoe:invalid" result="pass"/><test-case name="27294long_minExclusive002_654 tokoe:valid" result="pass"/><test-case name="27295long_minExclusive003_655 tokoe:invalid" result="pass"/><test-case name="27296long_minExclusive004_656 tokoe:invalid" result="pass"/><test-case name="27297long_minExclusive005_657 tokoe:invalid" result="pass"/><test-case name="27298long_totalDigits001_658 tokoe:invalid" result="pass"/><test-case name="27299long_totalDigits002_659 tokoe:invalid" result="pass"/><test-case name="27300long_totalDigits003_660 tokoe:invalid" result="pass"/><test-case name="27301long_totalDigits004_661 tokoe:valid" result="pass"/><test-case name="27302long_totalDigits005_662 tokoe:invalid" result="pass"/><test-case name="27303long_totalDigits006_663 tokoe:invalid" result="pass"/><test-case name="27304long_fractionDigits001_664 tokoe:invalid" result="pass"/><test-case name="27305long_fractionDigits002_665 tokoe:invalid" result="pass"/><test-case name="27306long_fractionDigits003_666 tokoe:valid" result="pass"/><test-case name="27307long_fractionDigits004_667 tokoe:invalid" result="pass"/><test-case name="27308long_fractionDigits005_668 tokoe:invalid" result="pass"/><test-case name="27309long_fractionDigits006_669 tokoe:invalid" result="pass"/><test-case name="27310long_fractionDigits007_670 tokoe:invalid" result="pass"/><test-case name="27311long_fractionDigits008_671 tokoe:invalid" result="pass"/><test-case name="27312int_pattern001_672 tokoe:valid" result="pass"/><test-case name="27313int_enumeration001_673 tokoe:invalid" result="pass"/><test-case name="27314int_enumeration002_674 tokoe:valid" result="pass"/><test-case name="27315int_maxInclusive001_675 tokoe:invalid" result="pass"/><test-case name="27316int_maxInclusive002_676 tokoe:valid" result="pass"/><test-case name="27317int_maxInclusive003_677 tokoe:invalid" result="pass"/><test-case name="27318int_maxInclusive004_678 tokoe:invalid" result="pass"/><test-case name="27319int_maxInclusive004a_679 tokoe:valid" result="pass"/><test-case name="27320int_maxInclusive004b_680 tokoe:invalid" result="pass"/><test-case name="27321int_maxInclusive004c_681 tokoe:invalid" result="pass"/><test-case name="27322int_maxInclusive004d_682 tokoe:invalid" result="pass"/><test-case name="27323int_maxInclusive004e_683 tokoe:valid" result="pass"/><test-case name="27324int_maxInclusive004f_684 tokoe:invalid" result="fail"/><test-case name="27325int_maxInclusive004g_685 tokoe:valid" result="pass"/><test-case name="27326int_maxInclusive004h_686 tokoe:valid" result="pass"/><test-case name="27327int_maxInclusive004i_687 tokoe:valid" result="pass"/><test-case name="27328int_maxInclusive005_688 tokoe:invalid" result="pass"/><test-case name="27329int_maxExclusive001_689 tokoe:invalid" result="pass"/><test-case name="27330int_maxExclusive002_690 tokoe:valid" result="pass"/><test-case name="27331int_maxExclusive003_691 tokoe:invalid" result="pass"/><test-case name="27332int_maxExclusive004b_692 tokoe:invalid" result="pass"/><test-case name="27333int_maxExclusive004c_693 tokoe:invalid" result="pass"/><test-case name="27334int_maxExclusive004d_694 tokoe:valid" result="pass"/><test-case name="27335int_maxExclusive004e_695 tokoe:valid" result="pass"/><test-case name="27336int_maxExclusive004f_696 tokoe:invalid" result="pass"/><test-case name="27337int_maxExclusive004h_697 tokoe:valid" result="pass"/><test-case name="27338int_maxExclusive004i_698 tokoe:invalid" result="pass"/><test-case name="27339int_minInclusive001_699 tokoe:invalid" result="pass"/><test-case name="27340int_minInclusive002_700 tokoe:valid" result="pass"/><test-case name="27341int_minInclusive003_701 tokoe:invalid" result="pass"/><test-case name="27342int_minInclusive004_702 tokoe:invalid" result="pass"/><test-case name="27343int_minInclusive005_703 tokoe:invalid" result="pass"/><test-case name="27344int_minInclusive006a_704 tokoe:valid" result="pass"/><test-case name="27345int_minInclusive006b_705 tokoe:invalid" result="pass"/><test-case name="27346int_minInclusive006c_706 tokoe:valid" result="pass"/><test-case name="27347int_minInclusive006d_707 tokoe:invalid" result="pass"/><test-case name="27348int_minInclusive006f_708 tokoe:invalid" result="pass"/><test-case name="27349int_minInclusive006g_709 tokoe:valid" result="pass"/><test-case name="27350int_minInclusive006h_710 tokoe:invalid" result="pass"/><test-case name="27351int_minInclusive006i_711 tokoe:invalid" result="pass"/><test-case name="27352int_minExclusive001_712 tokoe:invalid" result="pass"/><test-case name="27353int_minExclusive002_713 tokoe:valid" result="pass"/><test-case name="27354int_minExclusive003_714 tokoe:invalid" result="pass"/><test-case name="27355int_minExclusive004_715 tokoe:invalid" result="pass"/><test-case name="27356int_minExclusive005_716 tokoe:invalid" result="pass"/><test-case name="27357int_minExclusive006a_717 tokoe:invalid" result="fail"/><test-case name="27358int_minExclusive006c_718 tokoe:valid" result="pass"/><test-case name="27359int_minExclusive006e_719 tokoe:valid" result="pass"/><test-case name="27360int_minExclusive006f_720 tokoe:valid" result="pass"/><test-case name="27361int_minExclusive006g_721 tokoe:valid" result="pass"/><test-case name="27362int_minExclusive006h_722 tokoe:invalid" result="pass"/><test-case name="27363int_minExclusive006i_723 tokoe:invalid" result="pass"/><test-case name="27364int_minExclusive006j_724 tokoe:valid" result="pass"/><test-case name="27365int_totalDigits001_725 tokoe:invalid" result="pass"/><test-case name="27366int_totalDigits002_726 tokoe:invalid" result="pass"/><test-case name="27367int_totalDigits003_727 tokoe:invalid" result="pass"/><test-case name="27368int_totalDigits004_728 tokoe:valid" result="pass"/><test-case name="27369int_totalDigits005_729 tokoe:invalid" result="pass"/><test-case name="27370int_totalDigits006_730 tokoe:invalid" result="pass"/><test-case name="27371int_fractionDigits001_731 tokoe:invalid" result="pass"/><test-case name="27372int_fractionDigits002_732 tokoe:invalid" result="pass"/><test-case name="27373int_fractionDigits003_733 tokoe:valid" result="pass"/><test-case name="27374int_fractionDigits004_734 tokoe:invalid" result="pass"/><test-case name="27375int_fractionDigits005_735 tokoe:invalid" result="pass"/><test-case name="27376int_fractionDigits006_736 tokoe:invalid" result="pass"/><test-case name="27377int_fractionDigits007_737 tokoe:invalid" result="pass"/><test-case name="27378int_fractionDigits008_738 tokoe:invalid" result="pass"/><test-case name="27379short_pattern001_739 tokoe:valid" result="pass"/><test-case name="27380short_enumeration001_740 tokoe:invalid" result="pass"/><test-case name="27381short_enumeration002_741 tokoe:valid" result="pass"/><test-case name="27382short_maxInclusive001_742 tokoe:invalid" result="pass"/><test-case name="27383short_maxInclusive002_743 tokoe:valid" result="pass"/><test-case name="27384short_maxInclusive003_744 tokoe:invalid" result="pass"/><test-case name="27385short_maxInclusive004_745 tokoe:invalid" result="pass"/><test-case name="27386short_maxInclusive005_746 tokoe:invalid" result="pass"/><test-case name="27387short_maxExclusive001_747 tokoe:invalid" result="pass"/><test-case name="27388short_maxExclusive002_748 tokoe:valid" result="pass"/><test-case name="27389short_maxExclusive003_749 tokoe:invalid" result="pass"/><test-case name="27390short_maxExclusive004_750 tokoe:invalid" result="pass"/><test-case name="27391short_minInclusive001_751 tokoe:invalid" result="pass"/><test-case name="27392short_minInclusive002_752 tokoe:valid" result="pass"/><test-case name="27393short_minInclusive003_753 tokoe:invalid" result="pass"/><test-case name="27394short_minInclusive004_754 tokoe:invalid" result="pass"/><test-case name="27395short_minInclusive005_755 tokoe:invalid" result="pass"/><test-case name="27396short_minExclusive001_756 tokoe:invalid" result="pass"/><test-case name="27397short_minExclusive002_757 tokoe:valid" result="pass"/><test-case name="27398short_minExclusive003_758 tokoe:invalid" result="pass"/><test-case name="27399short_minExclusive004_759 tokoe:invalid" result="pass"/><test-case name="27400short_minExclusive005_760 tokoe:invalid" result="pass"/><test-case name="27401short_totalDigits001_761 tokoe:invalid" result="pass"/><test-case name="27402short_totalDigits002_762 tokoe:invalid" result="pass"/><test-case name="27403short_totalDigits003_763 tokoe:invalid" result="pass"/><test-case name="27404short_totalDigits004_764 tokoe:valid" result="pass"/><test-case name="27405short_totalDigits005_765 tokoe:invalid" result="pass"/><test-case name="27406short_totalDigits006_766 tokoe:invalid" result="pass"/><test-case name="27407short_fractionDigits001_767 tokoe:invalid" result="pass"/><test-case name="27408short_fractionDigits002_768 tokoe:invalid" result="pass"/><test-case name="27409short_fractionDigits003_769 tokoe:valid" result="pass"/><test-case name="27410short_fractionDigits004_770 tokoe:invalid" result="pass"/><test-case name="27411short_fractionDigits005_771 tokoe:invalid" result="pass"/><test-case name="27412short_fractionDigits006_772 tokoe:invalid" result="pass"/><test-case name="27413short_fractionDigits007_773 tokoe:invalid" result="pass"/><test-case name="27414short_fractionDigits008_774 tokoe:invalid" result="pass"/><test-case name="27415byte_pattern001_775 tokoe:valid" result="pass"/><test-case name="27416byte_enumeration001_776 tokoe:invalid" result="pass"/><test-case name="27417byte_enumeration002_777 tokoe:valid" result="pass"/><test-case name="27418byte_maxInclusive001_778 tokoe:invalid" result="pass"/><test-case name="27419byte_maxInclusive002_779 tokoe:valid" result="pass"/><test-case name="27420byte_maxInclusive003_780 tokoe:invalid" result="pass"/><test-case name="27421byte_maxInclusive004_781 tokoe:invalid" result="pass"/><test-case name="27422byte_maxInclusive005_782 tokoe:invalid" result="pass"/><test-case name="27423byte_maxExclusive001_783 tokoe:invalid" result="pass"/><test-case name="27424byte_maxExclusive002_784 tokoe:valid" result="pass"/><test-case name="27425byte_maxExclusive003_785 tokoe:invalid" result="pass"/><test-case name="27426byte_maxExclusive004_786 tokoe:invalid" result="pass"/><test-case name="27427byte_minInclusive001_787 tokoe:invalid" result="pass"/><test-case name="27428byte_minInclusive002_788 tokoe:valid" result="pass"/><test-case name="27429byte_minInclusive003_789 tokoe:invalid" result="pass"/><test-case name="27430byte_minInclusive004_790 tokoe:invalid" result="pass"/><test-case name="27431byte_minInclusive005_791 tokoe:invalid" result="pass"/><test-case name="27432byte_minExclusive001_792 tokoe:invalid" result="pass"/><test-case name="27433byte_minExclusive002_793 tokoe:valid" result="pass"/><test-case name="27434byte_minExclusive003_794 tokoe:invalid" result="pass"/><test-case name="27435byte_minExclusive004_795 tokoe:invalid" result="pass"/><test-case name="27436byte_minExclusive005_796 tokoe:invalid" result="pass"/><test-case name="27437byte_totalDigits001_797 tokoe:invalid" result="pass"/><test-case name="27438byte_totalDigits002_798 tokoe:invalid" result="pass"/><test-case name="27439byte_totalDigits003_799 tokoe:invalid" result="pass"/><test-case name="27440byte_totalDigits004_800 tokoe:valid" result="pass"/><test-case name="27441byte_totalDigits005_801 tokoe:invalid" result="pass"/><test-case name="27442byte_totalDigits006_802 tokoe:invalid" result="pass"/><test-case name="27443byte_fractionDigits001_803 tokoe:invalid" result="pass"/><test-case name="27444byte_fractionDigits002_804 tokoe:invalid" result="pass"/><test-case name="27445byte_fractionDigits003_805 tokoe:valid" result="pass"/><test-case name="27446byte_fractionDigits004_806 tokoe:invalid" result="pass"/><test-case name="27447byte_fractionDigits005_807 tokoe:invalid" result="pass"/><test-case name="27448byte_fractionDigits006_808 tokoe:invalid" result="pass"/><test-case name="27449byte_fractionDigits007_809 tokoe:invalid" result="pass"/><test-case name="27450byte_fractionDigits008_810 tokoe:invalid" result="pass"/><test-case name="27451nonNegativeInteger_pattern001_811 tokoe:valid" result="pass"/><test-case name="27452nonNegativeInteger_enumeration001_812 tokoe:invalid" result="pass"/><test-case name="27453nonNegativeInteger_enumeration002_813 tokoe:valid" result="pass"/><test-case name="27454nonNegativeInteger_maxInclusive001_814 tokoe:invalid" result="pass"/><test-case name="27455nonNegativeInteger_maxInclusive002_815 tokoe:valid" result="pass"/><test-case name="27456nonNegativeInteger_maxInclusive003_816 tokoe:invalid" result="pass"/><test-case name="27457nonNegativeInteger_maxInclusive004_817 tokoe:invalid" result="pass"/><test-case name="27458nonNegativeInteger_maxExclusive001_818 tokoe:invalid" result="pass"/><test-case name="27459nonNegativeInteger_maxExclusive002_819 tokoe:valid" result="pass"/><test-case name="27460nonNegativeInteger_maxExclusive003_820 tokoe:invalid" result="pass"/><test-case name="27461nonNegativeInteger_minInclusive001_821 tokoe:invalid" result="pass"/><test-case name="27462nonNegativeInteger_minInclusive002_822 tokoe:valid" result="pass"/><test-case name="27463nonNegativeInteger_minInclusive003_823 tokoe:invalid" result="pass"/><test-case name="27464nonNegativeInteger_minInclusive004_824 tokoe:invalid" result="pass"/><test-case name="27465nonNegativeInteger_minExclusive001_825 tokoe:invalid" result="pass"/><test-case name="27466nonNegativeInteger_minExclusive002_826 tokoe:valid" result="pass"/><test-case name="27467nonNegativeInteger_minExclusive003_827 tokoe:invalid" result="pass"/><test-case name="27468nonNegativeInteger_minExclusive004_828 tokoe:invalid" result="pass"/><test-case name="27469nonNegativeInteger_totalDigits001_829 tokoe:invalid" result="pass"/><test-case name="27470nonNegativeInteger_totalDigits002_830 tokoe:invalid" result="pass"/><test-case name="27471nonNegativeInteger_totalDigits003_831 tokoe:invalid" result="pass"/><test-case name="27472nonNegativeInteger_totalDigits004_832 tokoe:valid" result="pass"/><test-case name="27473nonNegativeInteger_totalDigits005_833 tokoe:invalid" result="pass"/><test-case name="27474nonNegativeInteger_totalDigits006_834 tokoe:invalid" result="pass"/><test-case name="27475nonNegativeInteger_fractionDigits001_835 tokoe:invalid" result="pass"/><test-case name="27476nonNegativeInteger_fractionDigits002_836 tokoe:invalid" result="pass"/><test-case name="27477nonNegativeInteger_fractionDigits003_837 tokoe:valid" result="pass"/><test-case name="27478nonNegativeInteger_fractionDigits004_838 tokoe:invalid" result="pass"/><test-case name="27479nonNegativeInteger_fractionDigits005_839 tokoe:invalid" result="pass"/><test-case name="27480nonNegativeInteger_fractionDigits006_840 tokoe:invalid" result="pass"/><test-case name="27481nonNegativeInteger_fractionDigits007_841 tokoe:invalid" result="pass"/><test-case name="27482nonNegativeInteger_fractionDigits008_842 tokoe:invalid" result="pass"/><test-case name="27483unsignedLong_pattern001_843 tokoe:valid" result="pass"/><test-case name="27484unsignedLong_enumeration001_844 tokoe:invalid" result="pass"/><test-case name="27485unsignedLong_enumeration002_845 tokoe:valid" result="pass"/><test-case name="27486unsignedLong_maxInclusive001_846 tokoe:invalid" result="pass"/><test-case name="27487unsignedLong_maxInclusive002_847 tokoe:valid" result="pass"/><test-case name="27488unsignedLong_maxInclusive003_848 tokoe:invalid" result="pass"/><test-case name="27489unsignedLong_maxInclusive004_849 tokoe:invalid" result="pass"/><test-case name="27490unsignedLong_maxInclusive005_850 tokoe:invalid" result="pass"/><test-case name="27491unsignedLong_maxExclusive001_851 tokoe:invalid" result="pass"/><test-case name="27492unsignedLong_maxExclusive002_852 tokoe:valid" result="pass"/><test-case name="27493unsignedLong_maxExclusive003_853 tokoe:invalid" result="pass"/><test-case name="27494unsignedLong_maxExclusive004_854 tokoe:invalid" result="pass"/><test-case name="27495unsignedLong_minInclusive001_855 tokoe:invalid" result="pass"/><test-case name="27496unsignedLong_minInclusive002_856 tokoe:valid" result="pass"/><test-case name="27497unsignedLong_minInclusive003_857 tokoe:invalid" result="pass"/><test-case name="27498unsignedLong_minInclusive004_858 tokoe:invalid" result="pass"/><test-case name="27499unsignedLong_minInclusive005_859 tokoe:invalid" result="pass"/><test-case name="27500unsignedLong_minExclusive001_860 tokoe:invalid" result="pass"/><test-case name="27501unsignedLong_minExclusive002_861 tokoe:valid" result="pass"/><test-case name="27502unsignedLong_minExclusive003_862 tokoe:invalid" result="pass"/><test-case name="27503unsignedLong_minExclusive004_863 tokoe:invalid" result="pass"/><test-case name="27504unsignedLong_minExclusive005_864 tokoe:invalid" result="pass"/><test-case name="27505unsignedLong_totalDigits001_865 tokoe:invalid" result="pass"/><test-case name="27506unsignedLong_totalDigits002_866 tokoe:invalid" result="pass"/><test-case name="27507unsignedLong_totalDigits003_867 tokoe:invalid" result="pass"/><test-case name="27508unsignedLong_totalDigits004_868 tokoe:valid" result="pass"/><test-case name="27509unsignedLong_totalDigits005_869 tokoe:invalid" result="pass"/><test-case name="27510unsignedLong_totalDigits006_870 tokoe:invalid" result="pass"/><test-case name="27511unsignedLong_fractionDigits001_871 tokoe:invalid" result="pass"/><test-case name="27512unsignedLong_fractionDigits002_872 tokoe:invalid" result="pass"/><test-case name="27513unsignedLong_fractionDigits003_873 tokoe:valid" result="pass"/><test-case name="27514unsignedLong_fractionDigits004_874 tokoe:invalid" result="pass"/><test-case name="27515unsignedLong_fractionDigits005_875 tokoe:invalid" result="pass"/><test-case name="27516unsignedLong_fractionDigits006_876 tokoe:invalid" result="pass"/><test-case name="27517unsignedLong_fractionDigits007_877 tokoe:invalid" result="pass"/><test-case name="27518unsignedLong_fractionDigits008_878 tokoe:invalid" result="pass"/><test-case name="27519unsignedInt_pattern001_879 tokoe:valid" result="pass"/><test-case name="27520unsignedInt_enumeration001_880 tokoe:invalid" result="pass"/><test-case name="27521unsignedInt_enumeration002_881 tokoe:valid" result="pass"/><test-case name="27522unsignedInt_maxInclusive001_882 tokoe:invalid" result="pass"/><test-case name="27523unsignedInt_maxInclusive002_883 tokoe:valid" result="pass"/><test-case name="27524unsignedInt_maxInclusive003_884 tokoe:invalid" result="pass"/><test-case name="27525unsignedInt_maxInclusive004_885 tokoe:invalid" result="pass"/><test-case name="27526unsignedInt_maxInclusive005_886 tokoe:invalid" result="pass"/><test-case name="27527unsignedInt_maxExclusive001_887 tokoe:invalid" result="pass"/><test-case name="27528unsignedInt_maxExclusive002_888 tokoe:valid" result="pass"/><test-case name="27529unsignedInt_maxExclusive003_889 tokoe:invalid" result="pass"/><test-case name="27530unsignedInt_maxExclusive004_890 tokoe:invalid" result="pass"/><test-case name="27531unsignedInt_minInclusive001_891 tokoe:invalid" result="pass"/><test-case name="27532unsignedInt_minInclusive002_892 tokoe:valid" result="pass"/><test-case name="27533unsignedInt_minInclusive003_893 tokoe:invalid" result="pass"/><test-case name="27534unsignedInt_minInclusive004_894 tokoe:invalid" result="pass"/><test-case name="27535unsignedInt_minInclusive005_895 tokoe:invalid" result="pass"/><test-case name="27536unsignedInt_minExclusive001_896 tokoe:invalid" result="pass"/><test-case name="27537unsignedInt_minExclusive002_897 tokoe:valid" result="pass"/><test-case name="27538unsignedInt_minExclusive003_898 tokoe:invalid" result="pass"/><test-case name="27539unsignedInt_minExclusive004_899 tokoe:invalid" result="pass"/><test-case name="27540unsignedInt_minExclusive005_900 tokoe:invalid" result="pass"/><test-case name="27541unsignedInt_totalDigits001_901 tokoe:invalid" result="pass"/><test-case name="27542unsignedInt_totalDigits002_902 tokoe:invalid" result="pass"/><test-case name="27543unsignedInt_totalDigits003_903 tokoe:invalid" result="pass"/><test-case name="27544unsignedInt_totalDigits004_904 tokoe:valid" result="pass"/><test-case name="27545unsignedInt_totalDigits005_905 tokoe:invalid" result="pass"/><test-case name="27546unsignedInt_totalDigits006_906 tokoe:invalid" result="pass"/><test-case name="27547unsignedInt_fractionDigits001_907 tokoe:invalid" result="pass"/><test-case name="27548unsignedInt_fractionDigits002_908 tokoe:invalid" result="pass"/><test-case name="27549unsignedInt_fractionDigits003_909 tokoe:valid" result="pass"/><test-case name="27550unsignedInt_fractionDigits004_910 tokoe:invalid" result="pass"/><test-case name="27551unsignedInt_fractionDigits005_911 tokoe:invalid" result="pass"/><test-case name="27552unsignedInt_fractionDigits006_912 tokoe:invalid" result="pass"/><test-case name="27553unsignedInt_fractionDigits007_913 tokoe:invalid" result="pass"/><test-case name="27554unsignedInt_fractionDigits008_914 tokoe:invalid" result="pass"/><test-case name="27555unsignedShort_pattern001_915 tokoe:valid" result="pass"/><test-case name="27556unsignedShort_enumeration001_916 tokoe:invalid" result="pass"/><test-case name="27557unsignedShort_enumeration002_917 tokoe:valid" result="pass"/><test-case name="27558unsignedShort_maxInclusive001_918 tokoe:invalid" result="pass"/><test-case name="27559unsignedShort_maxInclusive002_919 tokoe:valid" result="pass"/><test-case name="27560unsignedShort_maxInclusive003_920 tokoe:invalid" result="pass"/><test-case name="27561unsignedShort_maxInclusive004_921 tokoe:invalid" result="pass"/><test-case name="27562unsignedShort_maxInclusive005_922 tokoe:invalid" result="pass"/><test-case name="27563unsignedShort_maxExclusive001_923 tokoe:invalid" result="pass"/><test-case name="27564unsignedShort_maxExclusive002_924 tokoe:valid" result="pass"/><test-case name="27565unsignedShort_maxExclusive003_925 tokoe:invalid" result="pass"/><test-case name="27566unsignedShort_maxExclusive004_926 tokoe:invalid" result="pass"/><test-case name="27567unsignedShort_minInclusive001_927 tokoe:invalid" result="pass"/><test-case name="27568unsignedShort_minInclusive002_928 tokoe:valid" result="pass"/><test-case name="27569unsignedShort_minInclusive003_929 tokoe:invalid" result="pass"/><test-case name="27570unsignedShort_minInclusive004_930 tokoe:invalid" result="pass"/><test-case name="27571unsignedShort_minInclusive005_931 tokoe:invalid" result="pass"/><test-case name="27572unsignedShort_minExclusive001_932 tokoe:invalid" result="pass"/><test-case name="27573unsignedShort_minExclusive002_933 tokoe:valid" result="pass"/><test-case name="27574unsignedShort_minExclusive003_934 tokoe:invalid" result="pass"/><test-case name="27575unsignedShort_minExclusive004_935 tokoe:invalid" result="pass"/><test-case name="27576unsignedShort_minExclusive005_936 tokoe:invalid" result="pass"/><test-case name="27577unsignedShort_totalDigits001_937 tokoe:invalid" result="pass"/><test-case name="27578unsignedShort_totalDigits002_938 tokoe:invalid" result="pass"/><test-case name="27579unsignedShort_totalDigits003_939 tokoe:invalid" result="pass"/><test-case name="27580unsignedShort_totalDigits004_940 tokoe:valid" result="pass"/><test-case name="27581unsignedShort_totalDigits005_941 tokoe:invalid" result="pass"/><test-case name="27582unsignedShort_totalDigits006_942 tokoe:invalid" result="pass"/><test-case name="27583unsignedShort_fractionDigits001_943 tokoe:invalid" result="pass"/><test-case name="27584unsignedShort_fractionDigits002_944 tokoe:invalid" result="pass"/><test-case name="27585unsignedShort_fractionDigits003_945 tokoe:valid" result="pass"/><test-case name="27586unsignedShort_fractionDigits004_946 tokoe:invalid" result="pass"/><test-case name="27587unsignedShort_fractionDigits005_947 tokoe:invalid" result="pass"/><test-case name="27588unsignedShort_fractionDigits006_948 tokoe:invalid" result="pass"/><test-case name="27589unsignedShort_fractionDigits007_949 tokoe:invalid" result="pass"/><test-case name="27590unsignedShort_fractionDigits008_950 tokoe:invalid" result="pass"/><test-case name="27591unsignedByte_pattern001_951 tokoe:valid" result="pass"/><test-case name="27592unsignedByte_enumeration001_952 tokoe:invalid" result="pass"/><test-case name="27593unsignedByte_enumeration002_953 tokoe:valid" result="pass"/><test-case name="27594unsignedByte_maxInclusive001_954 tokoe:invalid" result="pass"/><test-case name="27595unsignedByte_maxInclusive002_955 tokoe:valid" result="pass"/><test-case name="27596unsignedByte_maxInclusive003_956 tokoe:invalid" result="pass"/><test-case name="27597unsignedByte_maxInclusive004_957 tokoe:invalid" result="pass"/><test-case name="27598unsignedByte_maxInclusive005_958 tokoe:invalid" result="pass"/><test-case name="27599unsignedByte_maxExclusive001_959 tokoe:invalid" result="pass"/><test-case name="27600unsignedByte_maxExclusive002_960 tokoe:valid" result="pass"/><test-case name="27601unsignedByte_maxExclusive003_961 tokoe:invalid" result="pass"/><test-case name="27602unsignedByte_maxExclusive004_962 tokoe:invalid" result="pass"/><test-case name="27603unsignedByte_minInclusive001_963 tokoe:invalid" result="pass"/><test-case name="27604unsignedByte_minInclusive002_964 tokoe:valid" result="pass"/><test-case name="27605unsignedByte_minInclusive003_965 tokoe:invalid" result="pass"/><test-case name="27606unsignedByte_minInclusive004_966 tokoe:invalid" result="pass"/><test-case name="27607unsignedByte_minInclusive005_967 tokoe:invalid" result="pass"/><test-case name="27608unsignedByte_minExclusive001_968 tokoe:invalid" result="pass"/><test-case name="27609unsignedByte_minExclusive002_969 tokoe:valid" result="pass"/><test-case name="27610unsignedByte_minExclusive003_970 tokoe:invalid" result="pass"/><test-case name="27611unsignedByte_minExclusive004_971 tokoe:invalid" result="pass"/><test-case name="27612unsignedByte_minExclusive005_972 tokoe:invalid" result="pass"/><test-case name="27613unsignedByte_totalDigits001_973 tokoe:invalid" result="pass"/><test-case name="27614unsignedByte_totalDigits002_974 tokoe:invalid" result="pass"/><test-case name="27615unsignedByte_totalDigits003_975 tokoe:invalid" result="pass"/><test-case name="27616unsignedByte_totalDigits004_976 tokoe:valid" result="pass"/><test-case name="27617unsignedByte_totalDigits005_977 tokoe:invalid" result="pass"/><test-case name="27618unsignedByte_totalDigits006_978 tokoe:invalid" result="pass"/><test-case name="27619unsignedByte_fractionDigits001_979 tokoe:invalid" result="pass"/><test-case name="27620unsignedByte_fractionDigits002_980 tokoe:invalid" result="pass"/><test-case name="27621unsignedByte_fractionDigits003_981 tokoe:valid" result="pass"/><test-case name="27622unsignedByte_fractionDigits004_982 tokoe:invalid" result="pass"/><test-case name="27623unsignedByte_fractionDigits005_983 tokoe:invalid" result="pass"/><test-case name="27624unsignedByte_fractionDigits006_984 tokoe:invalid" result="pass"/><test-case name="27625unsignedByte_fractionDigits007_985 tokoe:invalid" result="pass"/><test-case name="27626unsignedByte_fractionDigits008_986 tokoe:invalid" result="pass"/><test-case name="27627positiveInteger_pattern001_987 tokoe:valid" result="pass"/><test-case name="27628positiveInteger_enumeration001_988 tokoe:invalid" result="pass"/><test-case name="27629positiveInteger_enumeration002_989 tokoe:valid" result="pass"/><test-case name="27630positiveInteger_maxInclusive001_990 tokoe:invalid" result="pass"/><test-case name="27631positiveInteger_maxInclusive002_991 tokoe:valid" result="pass"/><test-case name="27632positiveInteger_maxInclusive003_992 tokoe:invalid" result="pass"/><test-case name="27633positiveInteger_maxInclusive004_993 tokoe:invalid" result="pass"/><test-case name="27634positiveInteger_maxExclusive001_994 tokoe:invalid" result="pass"/><test-case name="27635positiveInteger_maxExclusive002_995 tokoe:valid" result="pass"/><test-case name="27636positiveInteger_maxExclusive003_996 tokoe:invalid" result="pass"/><test-case name="27637positiveInteger_minInclusive001_997 tokoe:invalid" result="pass"/><test-case name="27638positiveInteger_minInclusive002_998 tokoe:valid" result="pass"/><test-case name="27639positiveInteger_minInclusive003_999 tokoe:invalid" result="pass"/><test-case name="27640positiveInteger_minInclusive004_1000 tokoe:invalid" result="pass"/><test-case name="27641positiveInteger_minExclusive001_1001 tokoe:invalid" result="pass"/><test-case name="27642positiveInteger_minExclusive002_1002 tokoe:valid" result="pass"/><test-case name="27643positiveInteger_minExclusive003_1003 tokoe:invalid" result="pass"/><test-case name="27644positiveInteger_minExclusive004_1004 tokoe:invalid" result="pass"/><test-case name="27645positiveInteger_totalDigits001_1005 tokoe:invalid" result="pass"/><test-case name="27646positiveInteger_totalDigits002_1006 tokoe:invalid" result="pass"/><test-case name="27647positiveInteger_totalDigits003_1007 tokoe:invalid" result="pass"/><test-case name="27648positiveInteger_totalDigits004_1008 tokoe:valid" result="pass"/><test-case name="27649positiveInteger_totalDigits005_1009 tokoe:invalid" result="pass"/><test-case name="27650positiveInteger_totalDigits006_1010 tokoe:invalid" result="pass"/><test-case name="27651positiveInteger_fractionDigits001_1011 tokoe:invalid" result="pass"/><test-case name="27652positiveInteger_fractionDigits002_1012 tokoe:invalid" result="pass"/><test-case name="27653positiveInteger_fractionDigits003_1013 tokoe:valid" result="pass"/><test-case name="27654positiveInteger_fractionDigits004_1014 tokoe:invalid" result="pass"/><test-case name="27655positiveInteger_fractionDigits005_1015 tokoe:invalid" result="pass"/><test-case name="27656positiveInteger_fractionDigits006_1016 tokoe:invalid" result="pass"/><test-case name="27657positiveInteger_fractionDigits007_1017 tokoe:invalid" result="pass"/><test-case name="27658positiveInteger_fractionDigits008_1018 tokoe:invalid" result="pass"/><test-case name="27659union_minInclisive_1019 tokoe:invalid" result="pass"/><test-case name="27660string_length001_1020 tokoe:valid" result="pass"/><test-case name="27661string_length001_1020.i tokoe:invalid" result="pass"/><test-case name="27662string_length002_1021 tokoe:valid" result="pass"/><test-case name="27663string_length002_1021.v tokoe:valid" result="pass"/><test-case name="27664string_length003_1022 tokoe:valid" result="pass"/><test-case name="27665string_length003_1022.i tokoe:invalid" result="pass"/><test-case name="27666string_minLength001_1023 tokoe:valid" result="pass"/><test-case name="27667string_minLength001_1023.v tokoe:valid" result="pass"/><test-case name="27668string_minLength002_1024 tokoe:valid" result="pass"/><test-case name="27669string_minLength002_1024.v tokoe:valid" result="pass"/><test-case name="27670string_minLength003_1025 tokoe:valid" result="pass"/><test-case name="27671string_minLength003_1025.i tokoe:invalid" result="pass"/><test-case name="27672string_minLength004_1026 tokoe:valid" result="pass"/><test-case name="27673string_minLength004_1026.v tokoe:valid" result="pass"/><test-case name="27674string_maxLength001_1027 tokoe:valid" result="pass"/><test-case name="27675string_maxLength001_1027.i tokoe:invalid" result="pass"/><test-case name="27676string_maxLength002_1028 tokoe:valid" result="pass"/><test-case name="27677string_maxLength002_1028.v tokoe:valid" result="pass"/><test-case name="27678string_maxLength003_1029 tokoe:valid" result="pass"/><test-case name="27679string_maxLength003_1029.v tokoe:valid" result="pass"/><test-case name="27680string_pattern001_1030 tokoe:valid" result="pass"/><test-case name="27681string_pattern001_1030.v tokoe:valid" result="pass"/><test-case name="27682string_pattern002_1031 tokoe:valid" result="pass"/><test-case name="27683string_pattern002_1031.i tokoe:invalid" result="pass"/><test-case name="27684string_enumeration001_1032 tokoe:valid" result="pass"/><test-case name="27685string_enumeration001_1032.i tokoe:invalid" result="pass"/><test-case name="27686string_enumeration002_1033 tokoe:valid" result="pass"/><test-case name="27687string_enumeration002_1033.v tokoe:valid" result="pass"/><test-case name="27688string_enumeration003_1034 tokoe:valid" result="pass"/><test-case name="27689string_enumeration003_1034.i tokoe:invalid" result="pass"/><test-case name="27690string_enumeration004_1035 tokoe:valid" result="pass"/><test-case name="27691string_enumeration004_1035.v tokoe:valid" result="pass"/><test-case name="27692decimal_pattern001_1036 tokoe:valid" result="pass"/><test-case name="27693decimal_pattern001_1036.v tokoe:valid" result="pass"/><test-case name="27694decimal_enumeration001_1037 tokoe:valid" result="pass"/><test-case name="27695decimal_enumeration001_1037.i tokoe:invalid" result="pass"/><test-case name="27696decimal_enumeration002_1038 tokoe:valid" result="pass"/><test-case name="27697decimal_enumeration002_1038.v tokoe:valid" result="pass"/><test-case name="27698decimal_enumeration003_1039 tokoe:valid" result="pass"/><test-case name="27699decimal_enumeration003_1039.i tokoe:invalid" result="pass"/><test-case name="27700decimal_enumeration004_1040 tokoe:valid" result="pass"/><test-case name="27701decimal_enumeration004_1040.v tokoe:valid" result="pass"/><test-case name="27702decimal_maxInclusive001_1041 tokoe:valid" result="pass"/><test-case name="27703decimal_maxInclusive001_1041.v tokoe:valid" result="pass"/><test-case name="27704decimal_maxInclusive002_1042 tokoe:valid" result="pass"/><test-case name="27705decimal_maxInclusive002_1042.i tokoe:invalid" result="pass"/><test-case name="27706decimal_maxInclusive003_1043 tokoe:valid" result="pass"/><test-case name="27707decimal_maxInclusive003_1043.v tokoe:valid" result="pass"/><test-case name="27708decimal_maxExclusive001_1044 tokoe:valid" result="pass"/><test-case name="27709decimal_maxExclusive001_1044.i tokoe:invalid" result="pass"/><test-case name="27710decimal_maxExclusive002_1045 tokoe:valid" result="pass"/><test-case name="27711decimal_maxExclusive002_1045.i tokoe:invalid" result="pass"/><test-case name="27712decimal_maxExclusive003_1046 tokoe:valid" result="pass"/><test-case name="27713decimal_maxExclusive003_1046.v tokoe:valid" result="pass"/><test-case name="27714decimal_minInclusive001_1047 tokoe:valid" result="pass"/><test-case name="27715decimal_minInclusive001_1047.v tokoe:valid" result="pass"/><test-case name="27716decimal_minInclusive002_1048 tokoe:valid" result="pass"/><test-case name="27717decimal_minInclusive002_1048.i tokoe:invalid" result="pass"/><test-case name="27718decimal_minInclusive003_1049 tokoe:valid" result="pass"/><test-case name="27719decimal_minInclusive003_1049.v tokoe:valid" result="pass"/><test-case name="27720decimal_minInclusive004_1050 tokoe:valid" result="pass"/><test-case name="27721decimal_minInclusive004_1050.v tokoe:valid" result="pass"/><test-case name="27722decimal_minInclusive005_1051 tokoe:valid" result="pass"/><test-case name="27723decimal_minInclusive005_1051.v tokoe:valid" result="pass"/><test-case name="27724decimal_minExclusive001_1052 tokoe:valid" result="pass"/><test-case name="27725decimal_minExclusive001_1052.i tokoe:invalid" result="pass"/><test-case name="27726decimal_minExclusive002_1053 tokoe:valid" result="pass"/><test-case name="27727decimal_minExclusive002_1053.i tokoe:invalid" result="pass"/><test-case name="27728decimal_minExclusive003_1054 tokoe:valid" result="pass"/><test-case name="27729decimal_minExclusive003_1054.v tokoe:valid" result="pass"/><test-case name="27730decimal_minExclusive004_1055 tokoe:valid" result="pass"/><test-case name="27731decimal_minExclusive004_1055.v tokoe:valid" result="pass"/><test-case name="27732decimal_minExclusive005_1056 tokoe:valid" result="pass"/><test-case name="27733decimal_minExclusive005_1056.v tokoe:valid" result="pass"/><test-case name="27734decimal_totalDigits001_1057 tokoe:valid" result="pass"/><test-case name="27735decimal_totalDigits001_1057.i tokoe:invalid" result="pass"/><test-case name="27736decimal_totalDigits002_1058 tokoe:valid" result="pass"/><test-case name="27737decimal_totalDigits002_1058.v tokoe:valid" result="pass"/><test-case name="27738decimal_totalDigits003_1059 tokoe:valid" result="pass"/><test-case name="27739decimal_totalDigits003_1059.v tokoe:valid" result="pass"/><test-case name="27740decimal_totalDigits004_1060 tokoe:valid" result="pass"/><test-case name="27741decimal_totalDigits004_1060.v tokoe:valid" result="pass"/><test-case name="27742float_pattern001_1061 tokoe:valid" result="pass"/><test-case name="27743float_pattern001_1061.v tokoe:valid" result="pass"/><test-case name="27744float_enumeration001_1062 tokoe:valid" result="pass"/><test-case name="27745float_enumeration001_1062.i tokoe:invalid" result="pass"/><test-case name="27746float_enumeration002_1063 tokoe:valid" result="pass"/><test-case name="27747float_enumeration002_1063.v tokoe:valid" result="pass"/><test-case name="27748float_enumeration003_1064 tokoe:valid" result="pass"/><test-case name="27749float_enumeration003_1064.i tokoe:invalid" result="pass"/><test-case name="27750float_enumeration004_1065 tokoe:valid" result="pass"/><test-case name="27751float_enumeration004_1065.v tokoe:valid" result="pass"/><test-case name="27752float_maxInclusive001_1066 tokoe:valid" result="pass"/><test-case name="27753float_maxInclusive001_1066.v tokoe:valid" result="pass"/><test-case name="27754float_maxInclusive002_1067 tokoe:valid" result="pass"/><test-case name="27755float_maxInclusive002_1067.i tokoe:invalid" result="pass"/><test-case name="27756float_maxInclusive003_1068 tokoe:valid" result="pass"/><test-case name="27757float_maxInclusive003_1068.v tokoe:valid" result="pass"/><test-case name="27758float_maxExclusive001_1069 tokoe:valid" result="pass"/><test-case name="27759float_maxExclusive001_1069.i tokoe:invalid" result="pass"/><test-case name="27760float_maxExclusive002_1070 tokoe:valid" result="pass"/><test-case name="27761float_maxExclusive002_1070.i tokoe:invalid" result="pass"/><test-case name="27762float_maxExclusive003_1071 tokoe:valid" result="pass"/><test-case name="27763float_maxExclusive003_1071.v tokoe:valid" result="pass"/><test-case name="27764float_minInclusive001_1072 tokoe:valid" result="pass"/><test-case name="27765float_minInclusive001_1072.v tokoe:valid" result="pass"/><test-case name="27766float_minInclusive002_1073 tokoe:valid" result="pass"/><test-case name="27767float_minInclusive002_1073.i tokoe:invalid" result="pass"/><test-case name="27768float_minInclusive003_1074 tokoe:valid" result="pass"/><test-case name="27769float_minInclusive003_1074.v tokoe:valid" result="pass"/><test-case name="27770float_minInclusive004_1075 tokoe:valid" result="pass"/><test-case name="27771float_minInclusive004_1075.v tokoe:valid" result="pass"/><test-case name="27772float_minInclusive005_1076 tokoe:valid" result="pass"/><test-case name="27773float_minInclusive005_1076.v tokoe:valid" result="pass"/><test-case name="27774float_minExclusive001_1077 tokoe:valid" result="pass"/><test-case name="27775float_minExclusive001_1077.i tokoe:invalid" result="pass"/><test-case name="27776float_minExclusive002_1078 tokoe:valid" result="pass"/><test-case name="27777float_minExclusive002_1078.i tokoe:invalid" result="pass"/><test-case name="27778float_minExclusive003_1079 tokoe:valid" result="pass"/><test-case name="27779float_minExclusive003_1079.v tokoe:valid" result="pass"/><test-case name="27780float_minExclusive004_1080 tokoe:valid" result="pass"/><test-case name="27781float_minExclusive004_1080.v tokoe:valid" result="pass"/><test-case name="27782float_minExclusive005_1081 tokoe:valid" result="pass"/><test-case name="27783float_minExclusive005_1081.v tokoe:valid" result="pass"/><test-case name="27784double_pattern001_1082 tokoe:valid" result="pass"/><test-case name="27785double_pattern001_1082.v tokoe:valid" result="pass"/><test-case name="27786double_enumeration001_1083 tokoe:valid" result="pass"/><test-case name="27787double_enumeration001_1083.i tokoe:invalid" result="pass"/><test-case name="27788double_enumeration002_1084 tokoe:valid" result="pass"/><test-case name="27789double_enumeration002_1084.v tokoe:valid" result="pass"/><test-case name="27790double_enumeration003_1085 tokoe:valid" result="pass"/><test-case name="27791double_enumeration003_1085.i tokoe:invalid" result="pass"/><test-case name="27792double_enumeration004_1086 tokoe:valid" result="pass"/><test-case name="27793double_enumeration004_1086.v tokoe:valid" result="pass"/><test-case name="27794double_maxInclusive001_1087 tokoe:valid" result="pass"/><test-case name="27795double_maxInclusive001_1087.v tokoe:valid" result="pass"/><test-case name="27796double_maxInclusive002_1088 tokoe:valid" result="pass"/><test-case name="27797double_maxInclusive002_1088.i tokoe:invalid" result="pass"/><test-case name="27798double_maxInclusive003_1089 tokoe:valid" result="pass"/><test-case name="27799double_maxInclusive003_1089.v tokoe:valid" result="pass"/><test-case name="27800double_maxExclusive001_1090 tokoe:valid" result="pass"/><test-case name="27801double_maxExclusive001_1090.i tokoe:invalid" result="pass"/><test-case name="27802double_maxExclusive002_1091 tokoe:valid" result="pass"/><test-case name="27803double_maxExclusive002_1091.i tokoe:invalid" result="pass"/><test-case name="27804double_maxExclusive003_1092 tokoe:valid" result="pass"/><test-case name="27805double_maxExclusive003_1092.v tokoe:valid" result="pass"/><test-case name="27806double_minInclusive001_1093 tokoe:valid" result="pass"/><test-case name="27807double_minInclusive001_1093.v tokoe:valid" result="pass"/><test-case name="27808double_minInclusive002_1094 tokoe:valid" result="pass"/><test-case name="27809double_minInclusive002_1094.i tokoe:invalid" result="pass"/><test-case name="27810double_minInclusive003_1095 tokoe:valid" result="pass"/><test-case name="27811double_minInclusive003_1095.v tokoe:valid" result="pass"/><test-case name="27812double_minInclusive004_1096 tokoe:valid" result="pass"/><test-case name="27813double_minInclusive004_1096.v tokoe:valid" result="pass"/><test-case name="27814double_minInclusive005_1097 tokoe:valid" result="pass"/><test-case name="27815double_minInclusive005_1097.v tokoe:valid" result="pass"/><test-case name="27816double_minExclusive001_1098 tokoe:valid" result="pass"/><test-case name="27817double_minExclusive001_1098.i tokoe:invalid" result="pass"/><test-case name="27818double_minExclusive002_1099 tokoe:valid" result="pass"/><test-case name="27819double_minExclusive002_1099.i tokoe:invalid" result="pass"/><test-case name="27820double_minExclusive003_1100 tokoe:valid" result="pass"/><test-case name="27821double_minExclusive003_1100.v tokoe:valid" result="pass"/><test-case name="27822double_minExclusive004_1101 tokoe:valid" result="pass"/><test-case name="27823double_minExclusive004_1101.v tokoe:valid" result="pass"/><test-case name="27824double_minExclusive005_1102 tokoe:valid" result="pass"/><test-case name="27825double_minExclusive005_1102.v tokoe:valid" result="pass"/><test-case name="27826duration_pattern001_1103 tokoe:valid" result="pass"/><test-case name="27827duration_pattern001_1103.v tokoe:valid" result="pass"/><test-case name="27828duration_enumeration001_1104 tokoe:valid" result="pass"/><test-case name="27829duration_enumeration001_1104.i tokoe:invalid" result="pass"/><test-case name="27830duration_enumeration002_1105 tokoe:valid" result="pass"/><test-case name="27831duration_enumeration002_1105.v tokoe:valid" result="pass"/><test-case name="27832duration_enumeration003_1106 tokoe:valid" result="pass"/><test-case name="27833duration_enumeration003_1106.i tokoe:invalid" result="pass"/><test-case name="27834duration_enumeration004_1107 tokoe:valid" result="pass"/><test-case name="27835duration_enumeration004_1107.v tokoe:valid" result="pass"/><test-case name="27836duration_maxInclusive001_1108 tokoe:valid" result="pass"/><test-case name="27837duration_maxInclusive001_1108.v tokoe:valid" result="pass"/><test-case name="27838duration_maxInclusive002_1109 tokoe:valid" result="pass"/><test-case name="27839duration_maxInclusive002_1109.i tokoe:invalid" result="pass"/><test-case name="27840duration_maxInclusive003_1110 tokoe:valid" result="pass"/><test-case name="27841duration_maxInclusive003_1110.v tokoe:valid" result="pass"/><test-case name="27842duration_maxExclusive001_1111 tokoe:valid" result="pass"/><test-case name="27843duration_maxExclusive001_1111.i tokoe:invalid" result="pass"/><test-case name="27844duration_maxExclusive002_1112 tokoe:valid" result="pass"/><test-case name="27845duration_maxExclusive002_1112.i tokoe:invalid" result="pass"/><test-case name="27846duration_maxExclusive003_1113 tokoe:valid" result="pass"/><test-case name="27847duration_maxExclusive003_1113.v tokoe:valid" result="pass"/><test-case name="27848duration_minInclusive001_1114 tokoe:valid" result="pass"/><test-case name="27849duration_minInclusive001_1114.v tokoe:valid" result="pass"/><test-case name="27850duration_minInclusive002_1115 tokoe:valid" result="pass"/><test-case name="27851duration_minInclusive002_1115.i tokoe:invalid" result="pass"/><test-case name="27852duration_minInclusive003_1116 tokoe:valid" result="pass"/><test-case name="27853duration_minInclusive003_1116.v tokoe:valid" result="pass"/><test-case name="27854duration_minInclusive004_1117 tokoe:valid" result="pass"/><test-case name="27855duration_minInclusive004_1117.v tokoe:valid" result="pass"/><test-case name="27856duration_minInclusive005_1118 tokoe:valid" result="pass"/><test-case name="27857duration_minInclusive005_1118.v tokoe:valid" result="pass"/><test-case name="27858duration_minExclusive001_1119 tokoe:valid" result="pass"/><test-case name="27859duration_minExclusive001_1119.i tokoe:invalid" result="pass"/><test-case name="27860duration_minExclusive002_1120 tokoe:valid" result="pass"/><test-case name="27861duration_minExclusive002_1120.i tokoe:invalid" result="pass"/><test-case name="27862duration_minExclusive003_1121 tokoe:valid" result="pass"/><test-case name="27863duration_minExclusive003_1121.v tokoe:valid" result="pass"/><test-case name="27864duration_minExclusive004_1122 tokoe:valid" result="pass"/><test-case name="27865duration_minExclusive004_1122.v tokoe:valid" result="pass"/><test-case name="27866duration_minExclusive005_1123 tokoe:valid" result="pass"/><test-case name="27867duration_minExclusive005_1123.v tokoe:valid" result="pass"/><test-case name="27868dateTime_pattern001_1124 tokoe:valid" result="pass"/><test-case name="27869dateTime_pattern001_1124.v tokoe:valid" result="pass"/><test-case name="27870dateTime_enumeration001_1125 tokoe:valid" result="pass"/><test-case name="27871dateTime_enumeration001_1125.i tokoe:invalid" result="pass"/><test-case name="27872dateTime_enumeration002_1126 tokoe:valid" result="pass"/><test-case name="27873dateTime_enumeration002_1126.v tokoe:valid" result="pass"/><test-case name="27874dateTime_enumeration003_1127 tokoe:valid" result="pass"/><test-case name="27875dateTime_enumeration003_1127.i tokoe:invalid" result="pass"/><test-case name="27876dateTime_enumeration004_1128 tokoe:valid" result="pass"/><test-case name="27877dateTime_enumeration004_1128.v tokoe:valid" result="pass"/><test-case name="27878dateTime_enumeration005a_1129 tokoe:valid" result="pass"/><test-case name="27879dateTime_enumeration005a_1129.v tokoe:valid" result="pass"/><test-case name="27880dateTime_enumeration005b_1130 tokoe:valid" result="pass"/><test-case name="27881dateTime_enumeration005b_1130.v tokoe:valid" result="pass"/><test-case name="27882dateTime_maxInclusive001_1131 tokoe:valid" result="pass"/><test-case name="27883dateTime_maxInclusive001_1131.v tokoe:valid" result="pass"/><test-case name="27884dateTime_maxInclusive002_1132 tokoe:valid" result="pass"/><test-case name="27885dateTime_maxInclusive002_1132.i tokoe:invalid" result="pass"/><test-case name="27886dateTime_maxInclusive003_1133 tokoe:valid" result="pass"/><test-case name="27887dateTime_maxInclusive003_1133.v tokoe:valid" result="pass"/><test-case name="27888dateTime_maxExclusive001_1134 tokoe:valid" result="pass"/><test-case name="27889dateTime_maxExclusive001_1134.i tokoe:invalid" result="pass"/><test-case name="27890dateTime_maxExclusive002_1135 tokoe:valid" result="pass"/><test-case name="27891dateTime_maxExclusive002_1135.i tokoe:invalid" result="pass"/><test-case name="27892dateTime_maxExclusive003_1136 tokoe:valid" result="pass"/><test-case name="27893dateTime_maxExclusive003_1136.v tokoe:valid" result="pass"/><test-case name="27894dateTime_minInclusive001_1137 tokoe:valid" result="pass"/><test-case name="27895dateTime_minInclusive001_1137.v tokoe:valid" result="pass"/><test-case name="27896dateTime_minInclusive002_1138 tokoe:valid" result="pass"/><test-case name="27897dateTime_minInclusive002_1138.i tokoe:invalid" result="pass"/><test-case name="27898dateTime_minInclusive003_1139 tokoe:valid" result="pass"/><test-case name="27899dateTime_minInclusive003_1139.v tokoe:valid" result="pass"/><test-case name="27900dateTime_minInclusive004_1140 tokoe:valid" result="pass"/><test-case name="27901dateTime_minInclusive004_1140.v tokoe:valid" result="pass"/><test-case name="27902dateTime_minInclusive005_1141 tokoe:valid" result="pass"/><test-case name="27903dateTime_minInclusive005_1141.v tokoe:valid" result="pass"/><test-case name="27904dateTime_minExclusive001_1142 tokoe:valid" result="pass"/><test-case name="27905dateTime_minExclusive001_1142.i tokoe:invalid" result="pass"/><test-case name="27906dateTime_minExclusive002_1143 tokoe:valid" result="pass"/><test-case name="27907dateTime_minExclusive002_1143.i tokoe:invalid" result="pass"/><test-case name="27908dateTime_minExclusive003_1144 tokoe:valid" result="pass"/><test-case name="27909dateTime_minExclusive003_1144.v tokoe:valid" result="pass"/><test-case name="27910dateTime_minExclusive004_1145 tokoe:valid" result="pass"/><test-case name="27911dateTime_minExclusive004_1145.v tokoe:valid" result="pass"/><test-case name="27912dateTime_minExclusive005_1146 tokoe:valid" result="pass"/><test-case name="27913dateTime_minExclusive005_1146.v tokoe:valid" result="pass"/><test-case name="27914time_pattern001_1147 tokoe:valid" result="pass"/><test-case name="27915time_pattern001_1147.v tokoe:valid" result="pass"/><test-case name="27916time_enumeration001_1148 tokoe:valid" result="pass"/><test-case name="27917time_enumeration001_1148.i tokoe:invalid" result="pass"/><test-case name="27918time_enumeration002_1149 tokoe:valid" result="pass"/><test-case name="27919time_enumeration002_1149.v tokoe:valid" result="pass"/><test-case name="27920time_enumeration003_1150 tokoe:valid" result="pass"/><test-case name="27921time_enumeration003_1150.i tokoe:invalid" result="pass"/><test-case name="27922time_enumeration004_1151 tokoe:valid" result="pass"/><test-case name="27923time_enumeration004_1151.v tokoe:valid" result="pass"/><test-case name="27924time_maxInclusive001_1152 tokoe:valid" result="pass"/><test-case name="27925time_maxInclusive001_1152.v tokoe:valid" result="pass"/><test-case name="27926time_maxInclusive002_1153 tokoe:valid" result="pass"/><test-case name="27927time_maxInclusive002_1153.i tokoe:invalid" result="pass"/><test-case name="27928time_maxInclusive003_1154 tokoe:valid" result="pass"/><test-case name="27929time_maxInclusive003_1154.v tokoe:valid" result="pass"/><test-case name="27930time_maxExclusive001_1155 tokoe:valid" result="pass"/><test-case name="27931time_maxExclusive001_1155.i tokoe:invalid" result="pass"/><test-case name="27932time_maxExclusive002_1156 tokoe:valid" result="pass"/><test-case name="27933time_maxExclusive002_1156.i tokoe:invalid" result="pass"/><test-case name="27934time_maxExclusive003_1157 tokoe:valid" result="pass"/><test-case name="27935time_maxExclusive003_1157.v tokoe:valid" result="pass"/><test-case name="27936time_minInclusive001_1158 tokoe:valid" result="pass"/><test-case name="27937time_minInclusive001_1158.v tokoe:valid" result="pass"/><test-case name="27938time_minInclusive002_1159 tokoe:valid" result="pass"/><test-case name="27939time_minInclusive002_1159.i tokoe:invalid" result="pass"/><test-case name="27940time_minInclusive003_1160 tokoe:valid" result="pass"/><test-case name="27941time_minInclusive003_1160.v tokoe:valid" result="pass"/><test-case name="27942time_minInclusive004_1161 tokoe:valid" result="pass"/><test-case name="27943time_minInclusive004_1161.v tokoe:valid" result="pass"/><test-case name="27944time_minInclusive005_1162 tokoe:valid" result="pass"/><test-case name="27945time_minInclusive005_1162.v tokoe:valid" result="pass"/><test-case name="27946time_minInclusive006_1163 tokoe:valid" result="pass"/><test-case name="27947time_minInclusive006_1163.i tokoe:invalid" result="pass"/><test-case name="27948time_minExclusive001_1164 tokoe:valid" result="pass"/><test-case name="27949time_minExclusive001_1164.i tokoe:invalid" result="pass"/><test-case name="27950time_minExclusive002_1165 tokoe:valid" result="pass"/><test-case name="27951time_minExclusive002_1165.i tokoe:invalid" result="pass"/><test-case name="27952time_minExclusive003_1166 tokoe:valid" result="pass"/><test-case name="27953time_minExclusive003_1166.v tokoe:valid" result="pass"/><test-case name="27954time_minExclusive004_1167 tokoe:valid" result="pass"/><test-case name="27955time_minExclusive004_1167.v tokoe:valid" result="pass"/><test-case name="27956time_minExclusive005_1168 tokoe:valid" result="pass"/><test-case name="27957time_minExclusive005_1168.v tokoe:valid" result="pass"/><test-case name="27958date_pattern001_1169 tokoe:valid" result="pass"/><test-case name="27959date_pattern001_1169.v tokoe:valid" result="pass"/><test-case name="27960date_enumeration001_1170 tokoe:valid" result="pass"/><test-case name="27961date_enumeration001_1170.i tokoe:invalid" result="pass"/><test-case name="27962date_enumeration002_1171 tokoe:valid" result="pass"/><test-case name="27963date_enumeration002_1171.v tokoe:valid" result="pass"/><test-case name="27964date_enumeration003_1172 tokoe:valid" result="pass"/><test-case name="27965date_enumeration003_1172.i tokoe:invalid" result="pass"/><test-case name="27966date_enumeration004_1173 tokoe:valid" result="pass"/><test-case name="27967date_enumeration004_1173.v tokoe:valid" result="pass"/><test-case name="27968date_maxInclusive001_1174 tokoe:valid" result="pass"/><test-case name="27969date_maxInclusive001_1174.v tokoe:valid" result="pass"/><test-case name="27970date_maxInclusive002_1175 tokoe:valid" result="pass"/><test-case name="27971date_maxInclusive002_1175.i tokoe:invalid" result="pass"/><test-case name="27972date_maxInclusive003_1176 tokoe:valid" result="pass"/><test-case name="27973date_maxInclusive003_1176.v tokoe:valid" result="pass"/><test-case name="27974date_maxExclusive001_1177 tokoe:valid" result="pass"/><test-case name="27975date_maxExclusive001_1177.i tokoe:invalid" result="pass"/><test-case name="27976date_maxExclusive002_1178 tokoe:valid" result="pass"/><test-case name="27977date_maxExclusive002_1178.i tokoe:invalid" result="pass"/><test-case name="27978date_maxExclusive003_1179 tokoe:valid" result="pass"/><test-case name="27979date_maxExclusive003_1179.v tokoe:valid" result="pass"/><test-case name="27980date_minInclusive001_1180 tokoe:valid" result="pass"/><test-case name="27981date_minInclusive001_1180.v tokoe:valid" result="pass"/><test-case name="27982date_minInclusive002_1181 tokoe:valid" result="pass"/><test-case name="27983date_minInclusive002_1181.i tokoe:invalid" result="pass"/><test-case name="27984date_minInclusive003_1182 tokoe:valid" result="pass"/><test-case name="27985date_minInclusive003_1182.v tokoe:valid" result="pass"/><test-case name="27986date_minInclusive004_1183 tokoe:valid" result="pass"/><test-case name="27987date_minInclusive004_1183.v tokoe:valid" result="pass"/><test-case name="27988date_minInclusive005_1184 tokoe:valid" result="pass"/><test-case name="27989date_minInclusive005_1184.v tokoe:valid" result="pass"/><test-case name="27990date_minExclusive001_1185 tokoe:valid" result="pass"/><test-case name="27991date_minExclusive001_1185.i tokoe:invalid" result="pass"/><test-case name="27992date_minExclusive002_1186 tokoe:valid" result="pass"/><test-case name="27993date_minExclusive002_1186.i tokoe:invalid" result="pass"/><test-case name="27994date_minExclusive003_1187 tokoe:valid" result="pass"/><test-case name="27995date_minExclusive003_1187.v tokoe:valid" result="pass"/><test-case name="27996date_minExclusive004_1188 tokoe:valid" result="pass"/><test-case name="27997date_minExclusive004_1188.v tokoe:valid" result="pass"/><test-case name="27998date_minExclusive005_1189 tokoe:valid" result="pass"/><test-case name="27999date_minExclusive005_1189.v tokoe:valid" result="pass"/><test-case name="28000gYearMonth_pattern001_1190 tokoe:valid" result="pass"/><test-case name="28001gYearMonth_pattern001_1190.v tokoe:valid" result="pass"/><test-case name="28002gYearMonth_enumeration001_1191 tokoe:valid" result="pass"/><test-case name="28003gYearMonth_enumeration001_1191.i tokoe:invalid" result="pass"/><test-case name="28004gYearMonth_enumeration002_1192 tokoe:valid" result="pass"/><test-case name="28005gYearMonth_enumeration002_1192.v tokoe:valid" result="pass"/><test-case name="28006gYearMonth_enumeration003_1193 tokoe:valid" result="pass"/><test-case name="28007gYearMonth_enumeration003_1193.i tokoe:invalid" result="pass"/><test-case name="28008gYearMonth_enumeration004_1194 tokoe:valid" result="pass"/><test-case name="28009gYearMonth_enumeration004_1194.v tokoe:valid" result="pass"/><test-case name="28010gYearMonth_maxInclusive001_1195 tokoe:valid" result="pass"/><test-case name="28011gYearMonth_maxInclusive001_1195.v tokoe:valid" result="pass"/><test-case name="28012gYearMonth_maxInclusive002_1196 tokoe:valid" result="pass"/><test-case name="28013gYearMonth_maxInclusive002_1196.i tokoe:invalid" result="pass"/><test-case name="28014gYearMonth_maxInclusive003_1197 tokoe:valid" result="pass"/><test-case name="28015gYearMonth_maxInclusive003_1197.v tokoe:valid" result="pass"/><test-case name="28016gYearMonth_maxExclusive001_1198 tokoe:valid" result="pass"/><test-case name="28017gYearMonth_maxExclusive001_1198.i tokoe:invalid" result="pass"/><test-case name="28018gYearMonth_maxExclusive002_1199 tokoe:valid" result="pass"/><test-case name="28019gYearMonth_maxExclusive002_1199.i tokoe:invalid" result="pass"/><test-case name="28020gYearMonth_maxExclusive003_1200 tokoe:valid" result="pass"/><test-case name="28021gYearMonth_maxExclusive003_1200.v tokoe:valid" result="pass"/><test-case name="28022gYearMonth_minInclusive001_1201 tokoe:valid" result="pass"/><test-case name="28023gYearMonth_minInclusive001_1201.v tokoe:valid" result="pass"/><test-case name="28024gYearMonth_minInclusive002_1202 tokoe:valid" result="pass"/><test-case name="28025gYearMonth_minInclusive002_1202.i tokoe:invalid" result="pass"/><test-case name="28026gYearMonth_minInclusive003_1203 tokoe:valid" result="pass"/><test-case name="28027gYearMonth_minInclusive003_1203.v tokoe:valid" result="pass"/><test-case name="28028gYearMonth_minInclusive004_1204 tokoe:valid" result="pass"/><test-case name="28029gYearMonth_minInclusive004_1204.v tokoe:valid" result="pass"/><test-case name="28030gYearMonth_minInclusive005_1205 tokoe:valid" result="pass"/><test-case name="28031gYearMonth_minInclusive005_1205.v tokoe:valid" result="pass"/><test-case name="28032gYearMonth_minExclusive001_1206 tokoe:valid" result="pass"/><test-case name="28033gYearMonth_minExclusive001_1206.i tokoe:invalid" result="pass"/><test-case name="28034gYearMonth_minExclusive002_1207 tokoe:valid" result="pass"/><test-case name="28035gYearMonth_minExclusive002_1207.i tokoe:invalid" result="pass"/><test-case name="28036gYearMonth_minExclusive003_1208 tokoe:valid" result="pass"/><test-case name="28037gYearMonth_minExclusive003_1208.v tokoe:valid" result="pass"/><test-case name="28038gYearMonth_minExclusive004_1209 tokoe:valid" result="pass"/><test-case name="28039gYearMonth_minExclusive004_1209.v tokoe:valid" result="pass"/><test-case name="28040gYearMonth_minExclusive005_1210 tokoe:valid" result="pass"/><test-case name="28041gYearMonth_minExclusive005_1210.v tokoe:valid" result="pass"/><test-case name="28042gYear_pattern001_1211 tokoe:valid" result="pass"/><test-case name="28043gYear_pattern001_1211.v tokoe:valid" result="pass"/><test-case name="28044gYear_enumeration001_1212 tokoe:valid" result="pass"/><test-case name="28045gYear_enumeration001_1212.i tokoe:invalid" result="pass"/><test-case name="28046gYear_enumeration002_1213 tokoe:valid" result="pass"/><test-case name="28047gYear_enumeration002_1213.v tokoe:valid" result="pass"/><test-case name="28048gYear_enumeration003_1214 tokoe:valid" result="pass"/><test-case name="28049gYear_enumeration003_1214.i tokoe:invalid" result="pass"/><test-case name="28050gYear_enumeration004_1215 tokoe:valid" result="pass"/><test-case name="28051gYear_enumeration004_1215.v tokoe:valid" result="pass"/><test-case name="28052gYear_maxInclusive001_1216 tokoe:valid" result="pass"/><test-case name="28053gYear_maxInclusive001_1216.v tokoe:valid" result="pass"/><test-case name="28054gYear_maxInclusive002_1217 tokoe:valid" result="pass"/><test-case name="28055gYear_maxInclusive002_1217.i tokoe:invalid" result="pass"/><test-case name="28056gYear_maxInclusive003_1218 tokoe:valid" result="pass"/><test-case name="28057gYear_maxInclusive003_1218.v tokoe:valid" result="pass"/><test-case name="28058gYear_maxExclusive001_1219 tokoe:valid" result="pass"/><test-case name="28059gYear_maxExclusive001_1219.i tokoe:invalid" result="pass"/><test-case name="28060gYear_maxExclusive002_1220 tokoe:valid" result="pass"/><test-case name="28061gYear_maxExclusive002_1220.i tokoe:invalid" result="pass"/><test-case name="28062gYear_maxExclusive003_1221 tokoe:valid" result="pass"/><test-case name="28063gYear_maxExclusive003_1221.v tokoe:valid" result="pass"/><test-case name="28064gYear_minInclusive001_1222 tokoe:valid" result="pass"/><test-case name="28065gYear_minInclusive001_1222.v tokoe:valid" result="pass"/><test-case name="28066gYear_minInclusive002_1223 tokoe:valid" result="pass"/><test-case name="28067gYear_minInclusive002_1223.i tokoe:invalid" result="pass"/><test-case name="28068gYear_minInclusive003_1224 tokoe:valid" result="pass"/><test-case name="28069gYear_minInclusive003_1224.v tokoe:valid" result="pass"/><test-case name="28070gYear_minInclusive004_1225 tokoe:valid" result="pass"/><test-case name="28071gYear_minInclusive004_1225.v tokoe:valid" result="pass"/><test-case name="28072gYear_minInclusive005_1226 tokoe:valid" result="pass"/><test-case name="28073gYear_minInclusive005_1226.v tokoe:valid" result="pass"/><test-case name="28074gYear_minExclusive001_1227 tokoe:valid" result="pass"/><test-case name="28075gYear_minExclusive001_1227.i tokoe:invalid" result="pass"/><test-case name="28076gYear_minExclusive002_1228 tokoe:valid" result="pass"/><test-case name="28077gYear_minExclusive002_1228.i tokoe:invalid" result="pass"/><test-case name="28078gYear_minExclusive003_1229 tokoe:valid" result="pass"/><test-case name="28079gYear_minExclusive003_1229.v tokoe:valid" result="pass"/><test-case name="28080gYear_minExclusive004_1230 tokoe:valid" result="pass"/><test-case name="28081gYear_minExclusive004_1230.v tokoe:valid" result="pass"/><test-case name="28082gYear_minExclusive005_1231 tokoe:valid" result="pass"/><test-case name="28083gYear_minExclusive005_1231.v tokoe:valid" result="pass"/><test-case name="28084gMonthDay_pattern001_1232 tokoe:valid" result="pass"/><test-case name="28085gMonthDay_pattern001_1232.v tokoe:valid" result="pass"/><test-case name="28086gMonthDay_enumeration001_1233 tokoe:valid" result="pass"/><test-case name="28087gMonthDay_enumeration001_1233.i tokoe:invalid" result="pass"/><test-case name="28088gMonthDay_enumeration002_1234 tokoe:valid" result="pass"/><test-case name="28089gMonthDay_enumeration002_1234.v tokoe:valid" result="pass"/><test-case name="28090gMonthDay_enumeration003_1235 tokoe:valid" result="pass"/><test-case name="28091gMonthDay_enumeration003_1235.i tokoe:invalid" result="pass"/><test-case name="28092gMonthDay_enumeration004_1236 tokoe:valid" result="pass"/><test-case name="28093gMonthDay_enumeration004_1236.v tokoe:valid" result="pass"/><test-case name="28094gMonthDay_maxInclusive001_1237 tokoe:valid" result="pass"/><test-case name="28095gMonthDay_maxInclusive001_1237.v tokoe:valid" result="pass"/><test-case name="28096gMonthDay_maxInclusive002_1238 tokoe:valid" result="pass"/><test-case name="28097gMonthDay_maxInclusive002_1238.i tokoe:invalid" result="pass"/><test-case name="28098gMonthDay_maxInclusive003_1239 tokoe:valid" result="pass"/><test-case name="28099gMonthDay_maxInclusive003_1239.v tokoe:valid" result="pass"/><test-case name="28100gMonthDay_maxExclusive001_1240 tokoe:valid" result="pass"/><test-case name="28101gMonthDay_maxExclusive001_1240.i tokoe:invalid" result="pass"/><test-case name="28102gMonthDay_maxExclusive002_1241 tokoe:valid" result="pass"/><test-case name="28103gMonthDay_maxExclusive002_1241.i tokoe:invalid" result="pass"/><test-case name="28104gMonthDay_maxExclusive003_1242 tokoe:valid" result="pass"/><test-case name="28105gMonthDay_maxExclusive003_1242.v tokoe:valid" result="pass"/><test-case name="28106gMonthDay_minInclusive001_1243 tokoe:valid" result="pass"/><test-case name="28107gMonthDay_minInclusive001_1243.v tokoe:valid" result="pass"/><test-case name="28108gMonthDay_minInclusive002_1244 tokoe:valid" result="pass"/><test-case name="28109gMonthDay_minInclusive002_1244.i tokoe:invalid" result="pass"/><test-case name="28110gMonthDay_minInclusive003_1245 tokoe:valid" result="pass"/><test-case name="28111gMonthDay_minInclusive003_1245.v tokoe:valid" result="pass"/><test-case name="28112gMonthDay_minInclusive004_1246 tokoe:valid" result="pass"/><test-case name="28113gMonthDay_minInclusive004_1246.v tokoe:valid" result="pass"/><test-case name="28114gMonthDay_minInclusive005_1247 tokoe:valid" result="pass"/><test-case name="28115gMonthDay_minInclusive005_1247.v tokoe:valid" result="pass"/><test-case name="28116gMonthDay_minExclusive001_1248 tokoe:valid" result="pass"/><test-case name="28117gMonthDay_minExclusive001_1248.i tokoe:invalid" result="pass"/><test-case name="28118gMonthDay_minExclusive002_1249 tokoe:valid" result="pass"/><test-case name="28119gMonthDay_minExclusive002_1249.i tokoe:invalid" result="pass"/><test-case name="28120gMonthDay_minExclusive003_1250 tokoe:valid" result="pass"/><test-case name="28121gMonthDay_minExclusive003_1250.v tokoe:valid" result="pass"/><test-case name="28122gMonthDay_minExclusive004_1251 tokoe:valid" result="pass"/><test-case name="28123gMonthDay_minExclusive004_1251.v tokoe:valid" result="pass"/><test-case name="28124gMonthDay_minExclusive005_1252 tokoe:valid" result="pass"/><test-case name="28125gMonthDay_minExclusive005_1252.v tokoe:valid" result="pass"/><test-case name="28126gDay_pattern001_1253 tokoe:valid" result="pass"/><test-case name="28127gDay_pattern001_1253.v tokoe:valid" result="pass"/><test-case name="28128gDay_enumeration001_1254 tokoe:valid" result="pass"/><test-case name="28129gDay_enumeration001_1254.i tokoe:invalid" result="pass"/><test-case name="28130gDay_enumeration002_1255 tokoe:valid" result="pass"/><test-case name="28131gDay_enumeration002_1255.v tokoe:valid" result="pass"/><test-case name="28132gDay_enumeration003_1256 tokoe:valid" result="pass"/><test-case name="28133gDay_enumeration003_1256.i tokoe:invalid" result="pass"/><test-case name="28134gDay_enumeration004_1257 tokoe:valid" result="pass"/><test-case name="28135gDay_enumeration004_1257.v tokoe:valid" result="pass"/><test-case name="28136gDay_maxInclusive001_1258 tokoe:valid" result="pass"/><test-case name="28137gDay_maxInclusive001_1258.v tokoe:valid" result="pass"/><test-case name="28138gDay_maxInclusive002_1259 tokoe:valid" result="pass"/><test-case name="28139gDay_maxInclusive002_1259.i tokoe:invalid" result="pass"/><test-case name="28140gDay_maxInclusive003_1260 tokoe:valid" result="pass"/><test-case name="28141gDay_maxInclusive003_1260.v tokoe:valid" result="pass"/><test-case name="28142gDay_maxExclusive001_1261 tokoe:valid" result="pass"/><test-case name="28143gDay_maxExclusive001_1261.i tokoe:invalid" result="pass"/><test-case name="28144gDay_maxExclusive002_1262 tokoe:valid" result="pass"/><test-case name="28145gDay_maxExclusive002_1262.i tokoe:invalid" result="pass"/><test-case name="28146gDay_maxExclusive003_1263 tokoe:valid" result="pass"/><test-case name="28147gDay_maxExclusive003_1263.v tokoe:valid" result="pass"/><test-case name="28148gDay_minInclusive001_1264 tokoe:valid" result="pass"/><test-case name="28149gDay_minInclusive001_1264.v tokoe:valid" result="pass"/><test-case name="28150gDay_minInclusive002_1265 tokoe:valid" result="pass"/><test-case name="28151gDay_minInclusive002_1265.i tokoe:invalid" result="pass"/><test-case name="28152gDay_minInclusive003_1266 tokoe:valid" result="pass"/><test-case name="28153gDay_minInclusive003_1266.v tokoe:valid" result="pass"/><test-case name="28154gDay_minInclusive004_1267 tokoe:valid" result="pass"/><test-case name="28155gDay_minInclusive004_1267.v tokoe:valid" result="pass"/><test-case name="28156gDay_minInclusive005_1268 tokoe:valid" result="pass"/><test-case name="28157gDay_minInclusive005_1268.v tokoe:valid" result="pass"/><test-case name="28158gDay_minExclusive001_1269 tokoe:valid" result="pass"/><test-case name="28159gDay_minExclusive001_1269.i tokoe:invalid" result="pass"/><test-case name="28160gDay_minExclusive002_1270 tokoe:valid" result="pass"/><test-case name="28161gDay_minExclusive002_1270.i tokoe:invalid" result="pass"/><test-case name="28162gDay_minExclusive003_1271 tokoe:valid" result="pass"/><test-case name="28163gDay_minExclusive003_1271.v tokoe:valid" result="pass"/><test-case name="28164gDay_minExclusive004_1272 tokoe:valid" result="pass"/><test-case name="28165gDay_minExclusive004_1272.v tokoe:valid" result="pass"/><test-case name="28166gDay_minExclusive005_1273 tokoe:valid" result="pass"/><test-case name="28167gDay_minExclusive005_1273.v tokoe:valid" result="pass"/><test-case name="28168gMonth_pattern001_1274 tokoe:valid" result="pass"/><test-case name="28169gMonth_pattern001_1274.v tokoe:valid" result="fail"/><test-case name="28170gMonth_enumeration001_1275 tokoe:valid" result="fail"/><test-case name="28171gMonth_enumeration001_1275.i tokoe:invalid" result="pass"/><test-case name="28172gMonth_enumeration002_1276 tokoe:valid" result="fail"/><test-case name="28173gMonth_enumeration002_1276.v tokoe:valid" result="fail"/><test-case name="28174gMonth_enumeration003_1277 tokoe:valid" result="fail"/><test-case name="28175gMonth_enumeration003_1277.i tokoe:invalid" result="pass"/><test-case name="28176gMonth_enumeration004_1278 tokoe:valid" result="fail"/><test-case name="28177gMonth_enumeration004_1278.v tokoe:valid" result="fail"/><test-case name="28178gMonth_maxInclusive001_1279 tokoe:valid" result="fail"/><test-case name="28179gMonth_maxInclusive001_1279.v tokoe:valid" result="fail"/><test-case name="28180gMonth_maxInclusive002_1280 tokoe:valid" result="fail"/><test-case name="28181gMonth_maxInclusive002_1280.i tokoe:invalid" result="pass"/><test-case name="28182gMonth_maxInclusive003_1281 tokoe:valid" result="fail"/><test-case name="28183gMonth_maxInclusive003_1281.v tokoe:valid" result="fail"/><test-case name="28184gMonth_maxExclusive001_1282 tokoe:valid" result="fail"/><test-case name="28185gMonth_maxExclusive001_1282.i tokoe:invalid" result="pass"/><test-case name="28186gMonth_maxExclusive002_1283 tokoe:valid" result="fail"/><test-case name="28187gMonth_maxExclusive002_1283.i tokoe:invalid" result="pass"/><test-case name="28188gMonth_maxExclusive003_1284 tokoe:valid" result="fail"/><test-case name="28189gMonth_maxExclusive003_1284.v tokoe:valid" result="fail"/><test-case name="28190gMonth_minInclusive001_1285 tokoe:valid" result="fail"/><test-case name="28191gMonth_minInclusive001_1285.v tokoe:valid" result="fail"/><test-case name="28192gMonth_minInclusive002_1286 tokoe:valid" result="fail"/><test-case name="28193gMonth_minInclusive002_1286.i tokoe:invalid" result="pass"/><test-case name="28194gMonth_minInclusive003_1287 tokoe:valid" result="fail"/><test-case name="28195gMonth_minInclusive003_1287.v tokoe:valid" result="fail"/><test-case name="28196gMonth_minInclusive004_1288 tokoe:valid" result="fail"/><test-case name="28197gMonth_minInclusive004_1288.v tokoe:valid" result="fail"/><test-case name="28198gMonth_minInclusive005_1289 tokoe:valid" result="fail"/><test-case name="28199gMonth_minInclusive005_1289.v tokoe:valid" result="fail"/><test-case name="28200gMonth_minExclusive001_1290 tokoe:valid" result="fail"/><test-case name="28201gMonth_minExclusive001_1290.i tokoe:invalid" result="pass"/><test-case name="28202gMonth_minExclusive002_1291 tokoe:valid" result="fail"/><test-case name="28203gMonth_minExclusive002_1291.i tokoe:invalid" result="pass"/><test-case name="28204gMonth_minExclusive003_1292 tokoe:valid" result="fail"/><test-case name="28205gMonth_minExclusive003_1292.v tokoe:valid" result="fail"/><test-case name="28206gMonth_minExclusive004_1293 tokoe:valid" result="fail"/><test-case name="28207gMonth_minExclusive004_1293.v tokoe:valid" result="fail"/><test-case name="28208gMonth_minExclusive005_1294 tokoe:valid" result="fail"/><test-case name="28209gMonth_minExclusive005_1294.v tokoe:valid" result="fail"/><test-case name="28210hexBinary_length001_1295 tokoe:valid" result="pass"/><test-case name="28211hexBinary_length001_1295.i tokoe:invalid" result="pass"/><test-case name="28212hexBinary_length002_1296 tokoe:valid" result="pass"/><test-case name="28213hexBinary_length002_1296.v tokoe:valid" result="pass"/><test-case name="28214hexBinary_length003_1297 tokoe:valid" result="pass"/><test-case name="28215hexBinary_length003_1297.i tokoe:invalid" result="pass"/><test-case name="28216hexBinary_minLength001_1298 tokoe:valid" result="pass"/><test-case name="28217hexBinary_minLength001_1298.v tokoe:valid" result="pass"/><test-case name="28218hexBinary_minLength002_1299 tokoe:valid" result="pass"/><test-case name="28219hexBinary_minLength002_1299.v tokoe:valid" result="pass"/><test-case name="28220hexBinary_minLength003_1300 tokoe:valid" result="pass"/><test-case name="28221hexBinary_minLength003_1300.i tokoe:invalid" result="pass"/><test-case name="28222hexBinary_minLength004_1301 tokoe:valid" result="pass"/><test-case name="28223hexBinary_minLength004_1301.v tokoe:valid" result="pass"/><test-case name="28224hexBinary_maxLength001_1302 tokoe:valid" result="pass"/><test-case name="28225hexBinary_maxLength001_1302.v tokoe:valid" result="pass"/><test-case name="28226hexBinary_maxLength002_1303 tokoe:valid" result="pass"/><test-case name="28227hexBinary_maxLength002_1303.v tokoe:valid" result="pass"/><test-case name="28228hexBinary_maxLength003_1304 tokoe:valid" result="pass"/><test-case name="28229hexBinary_maxLength003_1304.v tokoe:valid" result="pass"/><test-case name="28230hexBinary_enumeration001_1305 tokoe:valid" result="pass"/><test-case name="28231hexBinary_enumeration001_1305.i tokoe:invalid" result="pass"/><test-case name="28232hexBinary_enumeration002_1306 tokoe:valid" result="pass"/><test-case name="28233hexBinary_enumeration002_1306.v tokoe:valid" result="pass"/><test-case name="28234hexBinary_enumeration003_1307 tokoe:valid" result="pass"/><test-case name="28235hexBinary_enumeration003_1307.i tokoe:invalid" result="pass"/><test-case name="28236hexBinary_enumeration004_1308 tokoe:valid" result="pass"/><test-case name="28237hexBinary_enumeration004_1308.v tokoe:valid" result="pass"/><test-case name="28238base64Binary_length001_1309 tokoe:valid" result="pass"/><test-case name="28239base64Binary_length001_1309.i tokoe:invalid" result="pass"/><test-case name="28240base64Binary_length002_1310 tokoe:valid" result="pass"/><test-case name="28241base64Binary_length002_1310.v tokoe:valid" result="pass"/><test-case name="28242base64Binary_length003_1311 tokoe:valid" result="pass"/><test-case name="28243base64Binary_length003_1311.i tokoe:invalid" result="pass"/><test-case name="28244base64Binary_minLength001_1312 tokoe:valid" result="pass"/><test-case name="28245base64Binary_minLength001_1312.v tokoe:valid" result="pass"/><test-case name="28246base64Binary_minLength002_1313 tokoe:valid" result="pass"/><test-case name="28247base64Binary_minLength002_1313.v tokoe:valid" result="pass"/><test-case name="28248base64Binary_minLength003_1314 tokoe:valid" result="pass"/><test-case name="28249base64Binary_minLength003_1314.i tokoe:invalid" result="pass"/><test-case name="28250base64Binary_minLength004_1315 tokoe:valid" result="pass"/><test-case name="28251base64Binary_minLength004_1315.v tokoe:valid" result="pass"/><test-case name="28252base64Binary_maxLength001_1316 tokoe:valid" result="pass"/><test-case name="28253base64Binary_maxLength001_1316.i tokoe:invalid" result="pass"/><test-case name="28254base64Binary_maxLength002_1317 tokoe:valid" result="pass"/><test-case name="28255base64Binary_maxLength002_1317.i tokoe:invalid" result="pass"/><test-case name="28256base64Binary_maxLength003_1318 tokoe:valid" result="pass"/><test-case name="28257base64Binary_maxLength003_1318.i tokoe:invalid" result="pass"/><test-case name="28258base64Binary_enumeration001_1319 tokoe:valid" result="pass"/><test-case name="28259base64Binary_enumeration001_1319.i tokoe:invalid" result="pass"/><test-case name="28260base64Binary_enumeration002_1320 tokoe:valid" result="pass"/><test-case name="28261base64Binary_enumeration002_1320.v tokoe:valid" result="pass"/><test-case name="28262anyURI_length001_1322 tokoe:valid" result="pass"/><test-case name="28263anyURI_length001_1322.i tokoe:invalid" result="pass"/><test-case name="28264anyURI_length002_1323 tokoe:valid" result="pass"/><test-case name="28265anyURI_length002_1323.v tokoe:valid" result="pass"/><test-case name="28266anyURI_length003_1324 tokoe:valid" result="pass"/><test-case name="28267anyURI_length003_1324.i tokoe:invalid" result="pass"/><test-case name="28268anyURI_minLength001_1325 tokoe:valid" result="pass"/><test-case name="28269anyURI_minLength001_1325.v tokoe:valid" result="pass"/><test-case name="28270anyURI_minLength002_1326 tokoe:valid" result="pass"/><test-case name="28271anyURI_minLength002_1326.v tokoe:valid" result="pass"/><test-case name="28272anyURI_minLength003_1327 tokoe:valid" result="pass"/><test-case name="28273anyURI_minLength003_1327.i tokoe:invalid" result="pass"/><test-case name="28274anyURI_minLength004_1328 tokoe:valid" result="pass"/><test-case name="28275anyURI_minLength004_1328.v tokoe:valid" result="pass"/><test-case name="28276anyURI_maxLength001_1329 tokoe:valid" result="pass"/><test-case name="28277anyURI_maxLength001_1329.i tokoe:invalid" result="pass"/><test-case name="28278anyURI_maxLength002_1330 tokoe:valid" result="pass"/><test-case name="28279anyURI_maxLength002_1330.v tokoe:valid" result="pass"/><test-case name="28280anyURI_maxLength003_1331 tokoe:valid" result="pass"/><test-case name="28281anyURI_maxLength003_1331.v tokoe:valid" result="pass"/><test-case name="28282anyURI_enumeration001_1332 tokoe:valid" result="pass"/><test-case name="28283anyURI_enumeration001_1332.i tokoe:invalid" result="pass"/><test-case name="28284anyURI_enumeration002_1333 tokoe:valid" result="pass"/><test-case name="28285anyURI_enumeration002_1333.v tokoe:valid" result="pass"/><test-case name="28286anyURI_enumeration003_1334 tokoe:valid" result="pass"/><test-case name="28287anyURI_enumeration003_1334.i tokoe:invalid" result="pass"/><test-case name="28288anyURI_enumeration004_1335 tokoe:valid" result="pass"/><test-case name="28289anyURI_enumeration004_1335.v tokoe:valid" result="pass"/><test-case name="28290anyURI_a002_1337 tokoe:valid" result="pass"/><test-case name="28291anyURI_a002_1337.v tokoe:valid" result="pass"/><test-case name="28292anyURI_a005_1340 tokoe:valid" result="pass"/><test-case name="28293anyURI_a006_1341 tokoe:valid" result="pass"/><test-case name="28294anyURI_a007_1342 tokoe:valid" result="pass"/><test-case name="28295anyURI_a008_1343 tokoe:valid" result="pass"/><test-case name="28296anyURI_a009_1344 tokoe:valid" result="pass"/><test-case name="28297anyURI_a010_1345 tokoe:valid" result="pass"/><test-case name="28298anyURI_a011_1346 tokoe:valid" result="pass"/><test-case name="28299anyURI_a012_1347 tokoe:valid" result="pass"/><test-case name="28300anyURI_a013_1348 tokoe:valid" result="pass"/><test-case name="28301anyURI_a014_1349 tokoe:valid" result="pass"/><test-case name="28302anyURI_a015_1350 tokoe:valid" result="pass"/><test-case name="28303anyURI_a016_1351 tokoe:valid" result="pass"/><test-case name="28304anyURI_b001_1352 tokoe:valid" result="pass"/><test-case name="28305anyURI_b001_1352.i tokoe:invalid" result="pass"/><test-case name="28306anyURI_b002_1353 tokoe:valid" result="pass"/><test-case name="28307anyURI_b002_1353.v tokoe:valid" result="pass"/><test-case name="28308anyURI_b005_1355 tokoe:valid" result="pass"/><test-case name="28309anyURI_b005_1355.i tokoe:invalid" result="pass"/><test-case name="28310QName_length002_1358 tokoe:valid" result="pass"/><test-case name="28311QName_length002_1358.v tokoe:valid" result="pass"/><test-case name="28312QName_minLength001_1360 tokoe:valid" result="pass"/><test-case name="28313QName_minLength001_1360.v tokoe:valid" result="pass"/><test-case name="28314QName_minLength002_1361 tokoe:valid" result="pass"/><test-case name="28315QName_minLength002_1361.v tokoe:valid" result="pass"/><test-case name="28316QName_minLength004_1363 tokoe:valid" result="pass"/><test-case name="28317QName_minLength004_1363.v tokoe:valid" result="pass"/><test-case name="28318QName_maxLength002_1365 tokoe:valid" result="pass"/><test-case name="28319QName_maxLength002_1365.v tokoe:valid" result="pass"/><test-case name="28320QName_maxLength003_1366 tokoe:valid" result="pass"/><test-case name="28321QName_maxLength003_1366.v tokoe:valid" result="pass"/><test-case name="28322QName_pattern001_1367 tokoe:valid" result="pass"/><test-case name="28323QName_pattern001_1367.v tokoe:valid" result="pass"/><test-case name="28324QName_enumeration001_1368 tokoe:valid" result="pass"/><test-case name="28325QName_enumeration001_1368.i tokoe:invalid" result="pass"/><test-case name="28326QName_enumeration002_1369 tokoe:valid" result="pass"/><test-case name="28327QName_enumeration002_1369.v tokoe:valid" result="pass"/><test-case name="28328QName_enumeration003_1370 tokoe:valid" result="pass"/><test-case name="28329QName_enumeration003_1370.i tokoe:invalid" result="pass"/><test-case name="28330QName_enumeration004_1371 tokoe:valid" result="pass"/><test-case name="28331QName_enumeration004_1371.v tokoe:valid" result="pass"/><test-case name="28332NOTATION_length002_1373 tokoe:valid" result="pass"/><test-case name="28333NOTATION_length002_1373.v tokoe:valid" result="pass"/><test-case name="28334NOTATION_minLength001_1375 tokoe:valid" result="pass"/><test-case name="28335NOTATION_minLength001_1375.v tokoe:valid" result="pass"/><test-case name="28336NOTATION_minLength002_1376 tokoe:valid" result="pass"/><test-case name="28337NOTATION_minLength002_1376.v tokoe:valid" result="pass"/><test-case name="28338NOTATION_minLength004_1378 tokoe:valid" result="pass"/><test-case name="28339NOTATION_minLength004_1378.v tokoe:valid" result="pass"/><test-case name="28340NOTATION_maxLength002_1380 tokoe:valid" result="pass"/><test-case name="28341NOTATION_maxLength002_1380.v tokoe:valid" result="pass"/><test-case name="28342NOTATION_maxLength003_1381 tokoe:valid" result="pass"/><test-case name="28343NOTATION_maxLength003_1381.v tokoe:valid" result="pass"/><test-case name="28344NOTATION_pattern001_1382 tokoe:valid" result="pass"/><test-case name="28345NOTATION_pattern001_1382.v tokoe:valid" result="pass"/><test-case name="28346NOTATION_enumeration001_1383 tokoe:valid" result="pass"/><test-case name="28347NOTATION_enumeration001_1383.i tokoe:invalid" result="pass"/><test-case name="28348NOTATION_enumeration002_1384 tokoe:valid" result="pass"/><test-case name="28349NOTATION_enumeration002_1384.v tokoe:valid" result="pass"/><test-case name="28350NOTATION_enumeration003_1385 tokoe:valid" result="pass"/><test-case name="28351NOTATION_enumeration003_1385.i tokoe:invalid" result="pass"/><test-case name="28352NOTATION_enumeration004_1386 tokoe:valid" result="pass"/><test-case name="28353NOTATION_enumeration004_1386.v tokoe:valid" result="pass"/><test-case name="28354normalizedString_length001_1387 tokoe:valid" result="pass"/><test-case name="28355normalizedString_length001_1387.i tokoe:invalid" result="pass"/><test-case name="28356normalizedString_length002_1388 tokoe:valid" result="pass"/><test-case name="28357normalizedString_length002_1388.v tokoe:valid" result="pass"/><test-case name="28358normalizedString_length003_1389 tokoe:valid" result="pass"/><test-case name="28359normalizedString_length003_1389.i tokoe:invalid" result="pass"/><test-case name="28360normalizedString_minLength001_1390 tokoe:valid" result="pass"/><test-case name="28361normalizedString_minLength001_1390.v tokoe:valid" result="pass"/><test-case name="28362normalizedString_minLength002_1391 tokoe:valid" result="pass"/><test-case name="28363normalizedString_minLength002_1391.v tokoe:valid" result="pass"/><test-case name="28364normalizedString_minLength003_1392 tokoe:valid" result="pass"/><test-case name="28365normalizedString_minLength003_1392.i tokoe:invalid" result="pass"/><test-case name="28366normalizedString_minLength004_1393 tokoe:valid" result="pass"/><test-case name="28367normalizedString_minLength004_1393.v tokoe:valid" result="pass"/><test-case name="28368normalizedString_maxLength001_1394 tokoe:valid" result="pass"/><test-case name="28369normalizedString_maxLength001_1394.i tokoe:invalid" result="pass"/><test-case name="28370normalizedString_maxLength002_1395 tokoe:valid" result="pass"/><test-case name="28371normalizedString_maxLength002_1395.v tokoe:valid" result="pass"/><test-case name="28372normalizedString_maxLength003_1396 tokoe:valid" result="pass"/><test-case name="28373normalizedString_maxLength003_1396.v tokoe:valid" result="pass"/><test-case name="28374normalizedString_pattern001_1397 tokoe:valid" result="pass"/><test-case name="28375normalizedString_pattern001_1397.v tokoe:valid" result="pass"/><test-case name="28376normalizedString_enumeration001_1398 tokoe:valid" result="pass"/><test-case name="28377normalizedString_enumeration001_1398.i tokoe:invalid" result="pass"/><test-case name="28378normalizedString_enumeration002_1399 tokoe:valid" result="pass"/><test-case name="28379normalizedString_enumeration002_1399.v tokoe:valid" result="pass"/><test-case name="28380normalizedString_enumeration003_1400 tokoe:valid" result="pass"/><test-case name="28381normalizedString_enumeration003_1400.i tokoe:invalid" result="pass"/><test-case name="28382normalizedString_enumeration004_1401 tokoe:valid" result="pass"/><test-case name="28383normalizedString_enumeration004_1401.v tokoe:valid" result="pass"/><test-case name="28384token_length001_1402 tokoe:valid" result="pass"/><test-case name="28385token_length001_1402.i tokoe:invalid" result="pass"/><test-case name="28386token_length002_1403 tokoe:valid" result="pass"/><test-case name="28387token_length002_1403.v tokoe:valid" result="pass"/><test-case name="28388token_length003_1404 tokoe:valid" result="pass"/><test-case name="28389token_length003_1404.i tokoe:invalid" result="pass"/><test-case name="28390token_minLength001_1405 tokoe:valid" result="pass"/><test-case name="28391token_minLength001_1405.v tokoe:valid" result="pass"/><test-case name="28392token_minLength002_1406 tokoe:valid" result="pass"/><test-case name="28393token_minLength002_1406.v tokoe:valid" result="pass"/><test-case name="28394token_minLength003_1407 tokoe:valid" result="pass"/><test-case name="28395token_minLength003_1407.i tokoe:invalid" result="pass"/><test-case name="28396token_minLength004_1408 tokoe:valid" result="pass"/><test-case name="28397token_minLength004_1408.v tokoe:valid" result="pass"/><test-case name="28398token_maxLength001_1409 tokoe:valid" result="pass"/><test-case name="28399token_maxLength001_1409.i tokoe:invalid" result="pass"/><test-case name="28400token_maxLength002_1410 tokoe:valid" result="pass"/><test-case name="28401token_maxLength002_1410.v tokoe:valid" result="pass"/><test-case name="28402token_maxLength003_1411 tokoe:valid" result="pass"/><test-case name="28403token_maxLength003_1411.v tokoe:valid" result="pass"/><test-case name="28404token_pattern001_1412 tokoe:valid" result="pass"/><test-case name="28405token_pattern001_1412.v tokoe:valid" result="pass"/><test-case name="28406token_enumeration001_1413 tokoe:valid" result="pass"/><test-case name="28407token_enumeration001_1413.i tokoe:invalid" result="pass"/><test-case name="28408token_enumeration002_1414 tokoe:valid" result="pass"/><test-case name="28409token_enumeration002_1414.v tokoe:valid" result="pass"/><test-case name="28410token_enumeration003_1415 tokoe:valid" result="pass"/><test-case name="28411token_enumeration003_1415.i tokoe:invalid" result="pass"/><test-case name="28412token_enumeration004_1416 tokoe:valid" result="pass"/><test-case name="28413token_enumeration004_1416.v tokoe:valid" result="pass"/><test-case name="28414language_length001_1417 tokoe:valid" result="pass"/><test-case name="28415language_length001_1417.i tokoe:invalid" result="pass"/><test-case name="28416language_length002_1418 tokoe:valid" result="pass"/><test-case name="28417language_length002_1418.v tokoe:valid" result="pass"/><test-case name="28418language_length003_1419 tokoe:valid" result="pass"/><test-case name="28419language_length003_1419.i tokoe:invalid" result="pass"/><test-case name="28420language_minLength001_1420 tokoe:valid" result="pass"/><test-case name="28421language_minLength001_1420.v tokoe:valid" result="pass"/><test-case name="28422language_minLength002_1421 tokoe:valid" result="pass"/><test-case name="28423language_minLength002_1421.v tokoe:valid" result="pass"/><test-case name="28424language_minLength003_1422 tokoe:valid" result="pass"/><test-case name="28425language_minLength003_1422.i tokoe:invalid" result="pass"/><test-case name="28426language_minLength004_1423 tokoe:valid" result="pass"/><test-case name="28427language_minLength004_1423.v tokoe:valid" result="pass"/><test-case name="28428language_maxLength001_1424 tokoe:valid" result="pass"/><test-case name="28429language_maxLength001_1424.i tokoe:invalid" result="pass"/><test-case name="28430language_maxLength002_1425 tokoe:valid" result="pass"/><test-case name="28431language_maxLength002_1425.v tokoe:valid" result="pass"/><test-case name="28432language_maxLength003_1426 tokoe:valid" result="pass"/><test-case name="28433language_maxLength003_1426.v tokoe:valid" result="pass"/><test-case name="28434language_pattern001_1427 tokoe:valid" result="pass"/><test-case name="28435language_pattern001_1427.v tokoe:valid" result="pass"/><test-case name="28436language_enumeration001_1428 tokoe:valid" result="pass"/><test-case name="28437language_enumeration001_1428.i tokoe:invalid" result="pass"/><test-case name="28438language_enumeration002_1429 tokoe:valid" result="pass"/><test-case name="28439language_enumeration002_1429.v tokoe:valid" result="pass"/><test-case name="28440language_enumeration003_1430 tokoe:valid" result="pass"/><test-case name="28441language_enumeration003_1430.i tokoe:invalid" result="pass"/><test-case name="28442language_enumeration004_1431 tokoe:valid" result="pass"/><test-case name="28443language_enumeration004_1431.v tokoe:valid" result="pass"/><test-case name="28444IDREFS_length001_1432 tokoe:valid" result="pass"/><test-case name="28445IDREFS_length001_1432.i tokoe:invalid" result="pass"/><test-case name="28446IDREFS_length002_1433 tokoe:valid" result="pass"/><test-case name="28447IDREFS_length002_1433.v tokoe:valid" result="pass"/><test-case name="28448IDREFS_length003_1434 tokoe:valid" result="pass"/><test-case name="28449IDREFS_length003_1434.i tokoe:invalid" result="pass"/><test-case name="28450IDREFS_minLength001_1435 tokoe:valid" result="pass"/><test-case name="28451IDREFS_minLength001_1435.v tokoe:valid" result="pass"/><test-case name="28452IDREFS_minLength002_1436 tokoe:valid" result="pass"/><test-case name="28453IDREFS_minLength002_1436.v tokoe:valid" result="pass"/><test-case name="28454IDREFS_minLength003_1437 tokoe:valid" result="pass"/><test-case name="28455IDREFS_minLength003_1437.i tokoe:invalid" result="pass"/><test-case name="28456IDREFS_minLength004_1438 tokoe:valid" result="pass"/><test-case name="28457IDREFS_minLength004_1438.v tokoe:valid" result="pass"/><test-case name="28458IDREFS_maxLength001_1439 tokoe:valid" result="pass"/><test-case name="28459IDREFS_maxLength001_1439.i tokoe:invalid" result="pass"/><test-case name="28460IDREFS_maxLength002_1440 tokoe:valid" result="pass"/><test-case name="28461IDREFS_maxLength002_1440.v tokoe:valid" result="pass"/><test-case name="28462IDREFS_maxLength003_1441 tokoe:valid" result="pass"/><test-case name="28463IDREFS_maxLength003_1441.v tokoe:valid" result="pass"/><test-case name="28464IDREFS_enumeration001_1442 tokoe:valid" result="pass"/><test-case name="28465IDREFS_enumeration001_1442.i tokoe:invalid" result="pass"/><test-case name="28466IDREFS_enumeration002_1443 tokoe:valid" result="pass"/><test-case name="28467IDREFS_enumeration002_1443.v tokoe:valid" result="pass"/><test-case name="28468IDREFS_enumeration003_1444 tokoe:valid" result="pass"/><test-case name="28469IDREFS_enumeration003_1444.i tokoe:invalid" result="pass"/><test-case name="28470IDREFS_enumeration004_1445 tokoe:valid" result="pass"/><test-case name="28471IDREFS_enumeration004_1445.v tokoe:valid" result="pass"/><test-case name="28472NMTOKEN_length001_1446 tokoe:valid" result="pass"/><test-case name="28473NMTOKEN_length001_1446.i tokoe:invalid" result="pass"/><test-case name="28474NMTOKEN_length002_1447 tokoe:valid" result="pass"/><test-case name="28475NMTOKEN_length002_1447.v tokoe:valid" result="pass"/><test-case name="28476NMTOKEN_length003_1448 tokoe:valid" result="pass"/><test-case name="28477NMTOKEN_length003_1448.i tokoe:invalid" result="pass"/><test-case name="28478NMTOKEN_minLength001_1449 tokoe:valid" result="pass"/><test-case name="28479NMTOKEN_minLength001_1449.v tokoe:valid" result="pass"/><test-case name="28480NMTOKEN_minLength002_1450 tokoe:valid" result="pass"/><test-case name="28481NMTOKEN_minLength002_1450.v tokoe:valid" result="pass"/><test-case name="28482NMTOKEN_minLength003_1451 tokoe:valid" result="pass"/><test-case name="28483NMTOKEN_minLength003_1451.i tokoe:invalid" result="pass"/><test-case name="28484NMTOKEN_minLength004_1452 tokoe:valid" result="pass"/><test-case name="28485NMTOKEN_minLength004_1452.v tokoe:valid" result="pass"/><test-case name="28486NMTOKEN_maxLength001_1453 tokoe:valid" result="pass"/><test-case name="28487NMTOKEN_maxLength001_1453.i tokoe:invalid" result="pass"/><test-case name="28488NMTOKEN_maxLength002_1454 tokoe:valid" result="pass"/><test-case name="28489NMTOKEN_maxLength002_1454.v tokoe:valid" result="pass"/><test-case name="28490NMTOKEN_maxLength003_1455 tokoe:valid" result="pass"/><test-case name="28491NMTOKEN_maxLength003_1455.v tokoe:valid" result="pass"/><test-case name="28492NMTOKEN_pattern001_1456 tokoe:valid" result="pass"/><test-case name="28493NMTOKEN_pattern001_1456.v tokoe:valid" result="pass"/><test-case name="28494NMTOKEN_enumeration001_1457 tokoe:valid" result="pass"/><test-case name="28495NMTOKEN_enumeration001_1457.i tokoe:invalid" result="pass"/><test-case name="28496NMTOKEN_enumeration002_1458 tokoe:valid" result="pass"/><test-case name="28497NMTOKEN_enumeration002_1458.v tokoe:valid" result="pass"/><test-case name="28498NMTOKEN_enumeration003_1459 tokoe:valid" result="pass"/><test-case name="28499NMTOKEN_enumeration003_1459.i tokoe:invalid" result="pass"/><test-case name="28500NMTOKEN_enumeration004_1460 tokoe:valid" result="pass"/><test-case name="28501NMTOKEN_enumeration004_1460.v tokoe:valid" result="pass"/><test-case name="28502NMTOKENS_length001_1461 tokoe:valid" result="pass"/><test-case name="28503NMTOKENS_length001_1461.i tokoe:invalid" result="pass"/><test-case name="28504NMTOKENS_length002_1462 tokoe:valid" result="pass"/><test-case name="28505NMTOKENS_length002_1462.v tokoe:valid" result="pass"/><test-case name="28506NMTOKENS_length003_1463 tokoe:valid" result="pass"/><test-case name="28507NMTOKENS_length003_1463.i tokoe:invalid" result="pass"/><test-case name="28508NMTOKENS_minLength001_1464 tokoe:valid" result="fail"/><test-case name="28509NMTOKENS_minLength001_1464.v tokoe:valid" result="fail"/><test-case name="28510NMTOKENS_minLength002_1465 tokoe:valid" result="pass"/><test-case name="28511NMTOKENS_minLength002_1465.v tokoe:valid" result="pass"/><test-case name="28512NMTOKENS_minLength003_1466 tokoe:valid" result="pass"/><test-case name="28513NMTOKENS_minLength003_1466.i tokoe:invalid" result="pass"/><test-case name="28514NMTOKENS_minLength004_1467 tokoe:valid" result="fail"/><test-case name="28515NMTOKENS_minLength004_1467.v tokoe:valid" result="fail"/><test-case name="28516NMTOKENS_maxLength001_1468 tokoe:valid" result="pass"/><test-case name="28517NMTOKENS_maxLength001_1468.i tokoe:invalid" result="pass"/><test-case name="28518NMTOKENS_maxLength002_1469 tokoe:valid" result="pass"/><test-case name="28519NMTOKENS_maxLength002_1469.v tokoe:valid" result="pass"/><test-case name="28520NMTOKENS_maxLength003_1470 tokoe:valid" result="pass"/><test-case name="28521NMTOKENS_maxLength003_1470.v tokoe:valid" result="pass"/><test-case name="28522NMTOKENS_enumeration001_1471 tokoe:valid" result="pass"/><test-case name="28523NMTOKENS_enumeration001_1471.i tokoe:invalid" result="pass"/><test-case name="28524NMTOKENS_enumeration002_1472 tokoe:valid" result="pass"/><test-case name="28525NMTOKENS_enumeration002_1472.v tokoe:valid" result="pass"/><test-case name="28526NMTOKENS_enumeration003_1473 tokoe:valid" result="pass"/><test-case name="28527NMTOKENS_enumeration003_1473.i tokoe:invalid" result="pass"/><test-case name="28528NMTOKENS_enumeration004_1474 tokoe:valid" result="pass"/><test-case name="28529NMTOKENS_enumeration004_1474.v tokoe:valid" result="pass"/><test-case name="28530NMTOKENS_pattern001_1475 tokoe:valid" result="pass"/><test-case name="28531NMTOKENS_pattern001_1475.v tokoe:valid" result="pass"/><test-case name="28532NMTOKENS_pattern002_1476 tokoe:valid" result="pass"/><test-case name="28533NMTOKENS_pattern002_1476.i tokoe:invalid" result="pass"/><test-case name="28534Name_length001_1477 tokoe:valid" result="pass"/><test-case name="28535Name_length001_1477.i tokoe:invalid" result="pass"/><test-case name="28536Name_length002_1478 tokoe:valid" result="pass"/><test-case name="28537Name_length002_1478.v tokoe:valid" result="pass"/><test-case name="28538Name_length003_1479 tokoe:valid" result="pass"/><test-case name="28539Name_length003_1479.i tokoe:invalid" result="pass"/><test-case name="28540Name_minLength001_1480 tokoe:valid" result="pass"/><test-case name="28541Name_minLength001_1480.v tokoe:valid" result="pass"/><test-case name="28542Name_minLength002_1481 tokoe:valid" result="pass"/><test-case name="28543Name_minLength002_1481.v tokoe:valid" result="pass"/><test-case name="28544Name_minLength003_1482 tokoe:valid" result="pass"/><test-case name="28545Name_minLength003_1482.i tokoe:invalid" result="pass"/><test-case name="28546Name_minLength004_1483 tokoe:valid" result="pass"/><test-case name="28547Name_minLength004_1483.v tokoe:valid" result="pass"/><test-case name="28548Name_maxLength001_1484 tokoe:valid" result="pass"/><test-case name="28549Name_maxLength001_1484.i tokoe:invalid" result="pass"/><test-case name="28550Name_maxLength002_1485 tokoe:valid" result="pass"/><test-case name="28551Name_maxLength002_1485.v tokoe:valid" result="pass"/><test-case name="28552Name_maxLength003_1486 tokoe:valid" result="pass"/><test-case name="28553Name_maxLength003_1486.v tokoe:valid" result="pass"/><test-case name="28554Name_pattern001_1487 tokoe:valid" result="pass"/><test-case name="28555Name_pattern001_1487.v tokoe:valid" result="pass"/><test-case name="28556Name_enumeration001_1488 tokoe:valid" result="pass"/><test-case name="28557Name_enumeration001_1488.i tokoe:invalid" result="pass"/><test-case name="28558Name_enumeration002_1489 tokoe:valid" result="pass"/><test-case name="28559Name_enumeration002_1489.v tokoe:valid" result="pass"/><test-case name="28560Name_enumeration003_1490 tokoe:valid" result="pass"/><test-case name="28561Name_enumeration003_1490.i tokoe:invalid" result="pass"/><test-case name="28562Name_enumeration004_1491 tokoe:valid" result="pass"/><test-case name="28563Name_enumeration004_1491.v tokoe:valid" result="pass"/><test-case name="28564NCName_length001_1492 tokoe:valid" result="pass"/><test-case name="28565NCName_length001_1492.i tokoe:invalid" result="pass"/><test-case name="28566NCName_length002_1493 tokoe:valid" result="pass"/><test-case name="28567NCName_length002_1493.v tokoe:valid" result="pass"/><test-case name="28568NCName_length003_1494 tokoe:valid" result="pass"/><test-case name="28569NCName_length003_1494.i tokoe:invalid" result="pass"/><test-case name="28570NCName_minLength001_1495 tokoe:valid" result="pass"/><test-case name="28571NCName_minLength001_1495.v tokoe:valid" result="pass"/><test-case name="28572NCName_minLength002_1496 tokoe:valid" result="pass"/><test-case name="28573NCName_minLength002_1496.v tokoe:valid" result="pass"/><test-case name="28574NCName_minLength003_1497 tokoe:valid" result="pass"/><test-case name="28575NCName_minLength003_1497.i tokoe:invalid" result="pass"/><test-case name="28576NCName_minLength004_1498 tokoe:valid" result="pass"/><test-case name="28577NCName_minLength004_1498.v tokoe:valid" result="pass"/><test-case name="28578NCName_maxLength001_1499 tokoe:valid" result="pass"/><test-case name="28579NCName_maxLength001_1499.i tokoe:invalid" result="pass"/><test-case name="28580NCName_maxLength002_1500 tokoe:valid" result="pass"/><test-case name="28581NCName_maxLength002_1500.v tokoe:valid" result="pass"/><test-case name="28582NCName_maxLength003_1501 tokoe:valid" result="pass"/><test-case name="28583NCName_maxLength003_1501.v tokoe:valid" result="pass"/><test-case name="28584NCName_pattern001_1502 tokoe:valid" result="pass"/><test-case name="28585NCName_pattern001_1502.v tokoe:valid" result="pass"/><test-case name="28586NCName_enumeration001_1503 tokoe:valid" result="pass"/><test-case name="28587NCName_enumeration001_1503.i tokoe:invalid" result="pass"/><test-case name="28588NCName_enumeration002_1504 tokoe:valid" result="pass"/><test-case name="28589NCName_enumeration002_1504.v tokoe:valid" result="pass"/><test-case name="28590NCName_enumeration003_1505 tokoe:valid" result="pass"/><test-case name="28591NCName_enumeration003_1505.i tokoe:invalid" result="pass"/><test-case name="28592NCName_enumeration004_1506 tokoe:valid" result="pass"/><test-case name="28593NCName_enumeration004_1506.v tokoe:valid" result="pass"/><test-case name="28594ID_length001_1507 tokoe:valid" result="pass"/><test-case name="28595ID_length001_1507.i tokoe:invalid" result="pass"/><test-case name="28596ID_length002_1508 tokoe:valid" result="pass"/><test-case name="28597ID_length002_1508.v tokoe:valid" result="pass"/><test-case name="28598ID_length003_1509 tokoe:valid" result="pass"/><test-case name="28599ID_length003_1509.i tokoe:invalid" result="pass"/><test-case name="28600ID_minLength001_1510 tokoe:valid" result="pass"/><test-case name="28601ID_minLength001_1510.v tokoe:valid" result="pass"/><test-case name="28602ID_minLength002_1511 tokoe:valid" result="pass"/><test-case name="28603ID_minLength002_1511.v tokoe:valid" result="pass"/><test-case name="28604ID_minLength003_1512 tokoe:valid" result="pass"/><test-case name="28605ID_minLength003_1512.i tokoe:invalid" result="pass"/><test-case name="28606ID_minLength004_1513 tokoe:valid" result="pass"/><test-case name="28607ID_minLength004_1513.v tokoe:valid" result="pass"/><test-case name="28608ID_maxLength001_1514 tokoe:valid" result="pass"/><test-case name="28609ID_maxLength001_1514.i tokoe:invalid" result="pass"/><test-case name="28610ID_maxLength002_1515 tokoe:valid" result="pass"/><test-case name="28611ID_maxLength002_1515.v tokoe:valid" result="pass"/><test-case name="28612ID_maxLength003_1516 tokoe:valid" result="pass"/><test-case name="28613ID_maxLength003_1516.v tokoe:valid" result="pass"/><test-case name="28614ID_pattern001_1517 tokoe:valid" result="pass"/><test-case name="28615ID_pattern001_1517.v tokoe:valid" result="pass"/><test-case name="28616ID_enumeration001_1518 tokoe:valid" result="pass"/><test-case name="28617ID_enumeration001_1518.i tokoe:invalid" result="pass"/><test-case name="28618ID_enumeration002_1519 tokoe:valid" result="pass"/><test-case name="28619ID_enumeration002_1519.v tokoe:valid" result="pass"/><test-case name="28620ID_enumeration003_1520 tokoe:valid" result="pass"/><test-case name="28621ID_enumeration003_1520.i tokoe:invalid" result="pass"/><test-case name="28622ID_enumeration004_1521 tokoe:valid" result="pass"/><test-case name="28623ID_enumeration004_1521.v tokoe:valid" result="pass"/><test-case name="28624IDREF_length001_1522 tokoe:valid" result="pass"/><test-case name="28625IDREF_length001_1522.i tokoe:invalid" result="pass"/><test-case name="28626IDREF_length002_1523 tokoe:valid" result="pass"/><test-case name="28627IDREF_length002_1523.v tokoe:valid" result="pass"/><test-case name="28628IDREF_length003_1524 tokoe:valid" result="pass"/><test-case name="28629IDREF_length003_1524.i tokoe:invalid" result="pass"/><test-case name="28630IDREF_minLength001_1525 tokoe:valid" result="pass"/><test-case name="28631IDREF_minLength001_1525.v tokoe:valid" result="pass"/><test-case name="28632IDREF_minLength002_1526 tokoe:valid" result="pass"/><test-case name="28633IDREF_minLength002_1526.v tokoe:valid" result="pass"/><test-case name="28634IDREF_minLength003_1527 tokoe:valid" result="pass"/><test-case name="28635IDREF_minLength003_1527.i tokoe:invalid" result="pass"/><test-case name="28636IDREF_minLength004_1528 tokoe:valid" result="pass"/><test-case name="28637IDREF_minLength004_1528.v tokoe:valid" result="pass"/><test-case name="28638IDREF_maxLength001_1529 tokoe:valid" result="pass"/><test-case name="28639IDREF_maxLength001_1529.i tokoe:invalid" result="pass"/><test-case name="28640IDREF_maxLength002_1530 tokoe:valid" result="pass"/><test-case name="28641IDREF_maxLength002_1530.v tokoe:valid" result="pass"/><test-case name="28642IDREF_maxLength003_1531 tokoe:valid" result="pass"/><test-case name="28643IDREF_maxLength003_1531.v tokoe:valid" result="pass"/><test-case name="28644IDREF_pattern001_1532 tokoe:valid" result="pass"/><test-case name="28645IDREF_pattern001_1532.v tokoe:valid" result="pass"/><test-case name="28646IDREF_enumeration001_1533 tokoe:valid" result="pass"/><test-case name="28647IDREF_enumeration001_1533.i tokoe:invalid" result="pass"/><test-case name="28648IDREF_enumeration002_1534 tokoe:valid" result="pass"/><test-case name="28649IDREF_enumeration002_1534.v tokoe:valid" result="pass"/><test-case name="28650IDREF_enumeration003_1535 tokoe:valid" result="pass"/><test-case name="28651IDREF_enumeration003_1535.i tokoe:invalid" result="pass"/><test-case name="28652IDREF_enumeration004_1536 tokoe:valid" result="pass"/><test-case name="28653IDREF_enumeration004_1536.v tokoe:valid" result="pass"/><test-case name="28654integer_pattern001_1537 tokoe:valid" result="pass"/><test-case name="28655integer_pattern001_1537.v tokoe:valid" result="pass"/><test-case name="28656integer_enumeration001_1538 tokoe:valid" result="pass"/><test-case name="28657integer_enumeration001_1538.i tokoe:invalid" result="pass"/><test-case name="28658integer_enumeration002_1539 tokoe:valid" result="pass"/><test-case name="28659integer_enumeration002_1539.v tokoe:valid" result="pass"/><test-case name="28660integer_enumeration003_1540 tokoe:valid" result="pass"/><test-case name="28661integer_enumeration003_1540.i tokoe:invalid" result="pass"/><test-case name="28662integer_enumeration004_1541 tokoe:valid" result="pass"/><test-case name="28663integer_enumeration004_1541.v tokoe:valid" result="pass"/><test-case name="28664integer_maxInclusive001_1542 tokoe:valid" result="pass"/><test-case name="28665integer_maxInclusive001_1542.v tokoe:valid" result="pass"/><test-case name="28666integer_maxInclusive002_1543 tokoe:valid" result="pass"/><test-case name="28667integer_maxInclusive002_1543.i tokoe:invalid" result="pass"/><test-case name="28668integer_maxInclusive003_1544 tokoe:valid" result="pass"/><test-case name="28669integer_maxInclusive003_1544.v tokoe:valid" result="pass"/><test-case name="28670integer_maxExclusive001_1545 tokoe:valid" result="pass"/><test-case name="28671integer_maxExclusive001_1545.i tokoe:invalid" result="pass"/><test-case name="28672integer_maxExclusive002_1546 tokoe:valid" result="pass"/><test-case name="28673integer_maxExclusive002_1546.i tokoe:invalid" result="pass"/><test-case name="28674integer_maxExclusive003_1547 tokoe:valid" result="pass"/><test-case name="28675integer_maxExclusive003_1547.v tokoe:valid" result="pass"/><test-case name="28676integer_minInclusive001_1548 tokoe:valid" result="pass"/><test-case name="28677integer_minInclusive001_1548.v tokoe:valid" result="pass"/><test-case name="28678integer_minInclusive002_1549 tokoe:valid" result="pass"/><test-case name="28679integer_minInclusive002_1549.i tokoe:invalid" result="pass"/><test-case name="28680integer_minInclusive003_1550 tokoe:valid" result="pass"/><test-case name="28681integer_minInclusive003_1550.v tokoe:valid" result="pass"/><test-case name="28682integer_minInclusive004_1551 tokoe:valid" result="pass"/><test-case name="28683integer_minInclusive004_1551.v tokoe:valid" result="pass"/><test-case name="28684integer_minInclusive005_1552 tokoe:valid" result="pass"/><test-case name="28685integer_minInclusive005_1552.v tokoe:valid" result="pass"/><test-case name="28686integer_minExclusive001_1553 tokoe:valid" result="pass"/><test-case name="28687integer_minExclusive001_1553.i tokoe:invalid" result="pass"/><test-case name="28688integer_minExclusive002_1554 tokoe:valid" result="pass"/><test-case name="28689integer_minExclusive002_1554.i tokoe:invalid" result="pass"/><test-case name="28690integer_minExclusive003_1555 tokoe:valid" result="pass"/><test-case name="28691integer_minExclusive003_1555.v tokoe:valid" result="pass"/><test-case name="28692integer_minExclusive004_1556 tokoe:valid" result="pass"/><test-case name="28693integer_minExclusive004_1556.v tokoe:valid" result="pass"/><test-case name="28694integer_minExclusive005_1557 tokoe:valid" result="pass"/><test-case name="28695integer_minExclusive005_1557.v tokoe:valid" result="pass"/><test-case name="28696integer_totalDigits001_1558 tokoe:valid" result="pass"/><test-case name="28697integer_totalDigits001_1558.i tokoe:invalid" result="pass"/><test-case name="28698integer_totalDigits002_1559 tokoe:valid" result="pass"/><test-case name="28699integer_totalDigits002_1559.v tokoe:valid" result="pass"/><test-case name="28700integer_totalDigits003_1560 tokoe:valid" result="pass"/><test-case name="28701integer_totalDigits003_1560.v tokoe:valid" result="pass"/><test-case name="28702nonPositiveInteger_pattern001_1561 tokoe:valid" result="pass"/><test-case name="28703nonPositiveInteger_pattern001_1561.v tokoe:valid" result="pass"/><test-case name="28704nonPositiveInteger_enumeration001_1562 tokoe:valid" result="pass"/><test-case name="28705nonPositiveInteger_enumeration001_1562.i tokoe:invalid" result="pass"/><test-case name="28706nonPositiveInteger_enumeration002_1563 tokoe:valid" result="pass"/><test-case name="28707nonPositiveInteger_enumeration002_1563.v tokoe:valid" result="pass"/><test-case name="28708nonPositiveInteger_enumeration003_1564 tokoe:valid" result="pass"/><test-case name="28709nonPositiveInteger_enumeration003_1564.i tokoe:invalid" result="pass"/><test-case name="28710nonPositiveInteger_enumeration004_1565 tokoe:valid" result="pass"/><test-case name="28711nonPositiveInteger_enumeration004_1565.v tokoe:valid" result="pass"/><test-case name="28712nonPositiveInteger_maxInclusive001_1566 tokoe:valid" result="pass"/><test-case name="28713nonPositiveInteger_maxInclusive001_1566.v tokoe:valid" result="pass"/><test-case name="28714nonPositiveInteger_maxInclusive002_1567 tokoe:valid" result="pass"/><test-case name="28715nonPositiveInteger_maxInclusive002_1567.i tokoe:invalid" result="pass"/><test-case name="28716nonPositiveInteger_maxInclusive003_1568 tokoe:valid" result="pass"/><test-case name="28717nonPositiveInteger_maxInclusive003_1568.v tokoe:valid" result="pass"/><test-case name="28718nonPositiveInteger_maxExclusive001_1569 tokoe:valid" result="pass"/><test-case name="28719nonPositiveInteger_maxExclusive001_1569.i tokoe:invalid" result="pass"/><test-case name="28720nonPositiveInteger_maxExclusive002_1570 tokoe:valid" result="pass"/><test-case name="28721nonPositiveInteger_maxExclusive002_1570.i tokoe:invalid" result="pass"/><test-case name="28722nonPositiveInteger_maxExclusive003_1571 tokoe:valid" result="pass"/><test-case name="28723nonPositiveInteger_maxExclusive003_1571.v tokoe:valid" result="pass"/><test-case name="28724nonPositiveInteger_minInclusive001_1572 tokoe:valid" result="pass"/><test-case name="28725nonPositiveInteger_minInclusive001_1572.v tokoe:valid" result="pass"/><test-case name="28726nonPositiveInteger_minInclusive002_1573 tokoe:valid" result="pass"/><test-case name="28727nonPositiveInteger_minInclusive002_1573.i tokoe:invalid" result="pass"/><test-case name="28728nonPositiveInteger_minInclusive003_1574 tokoe:valid" result="pass"/><test-case name="28729nonPositiveInteger_minInclusive003_1574.v tokoe:valid" result="pass"/><test-case name="28730nonPositiveInteger_minInclusive004_1575 tokoe:valid" result="pass"/><test-case name="28731nonPositiveInteger_minInclusive004_1575.v tokoe:valid" result="pass"/><test-case name="28732nonPositiveInteger_minInclusive005_1576 tokoe:valid" result="pass"/><test-case name="28733nonPositiveInteger_minInclusive005_1576.v tokoe:valid" result="pass"/><test-case name="28734nonPositiveInteger_minExclusive001_1577 tokoe:valid" result="pass"/><test-case name="28735nonPositiveInteger_minExclusive001_1577.i tokoe:invalid" result="pass"/><test-case name="28736nonPositiveInteger_minExclusive002_1578 tokoe:valid" result="pass"/><test-case name="28737nonPositiveInteger_minExclusive002_1578.i tokoe:invalid" result="pass"/><test-case name="28738nonPositiveInteger_minExclusive003_1579 tokoe:valid" result="pass"/><test-case name="28739nonPositiveInteger_minExclusive003_1579.v tokoe:valid" result="pass"/><test-case name="28740nonPositiveInteger_minExclusive004_1580 tokoe:valid" result="pass"/><test-case name="28741nonPositiveInteger_minExclusive004_1580.v tokoe:valid" result="pass"/><test-case name="28742nonPositiveInteger_minExclusive005_1581 tokoe:valid" result="pass"/><test-case name="28743nonPositiveInteger_minExclusive005_1581.v tokoe:valid" result="pass"/><test-case name="28744nonPositiveInteger_totalDigits001_1582 tokoe:valid" result="pass"/><test-case name="28745nonPositiveInteger_totalDigits001_1582.i tokoe:invalid" result="pass"/><test-case name="28746nonPositiveInteger_totalDigits002_1583 tokoe:valid" result="pass"/><test-case name="28747nonPositiveInteger_totalDigits002_1583.v tokoe:valid" result="pass"/><test-case name="28748nonPositiveInteger_totalDigits003_1584 tokoe:valid" result="pass"/><test-case name="28749nonPositiveInteger_totalDigits003_1584.v tokoe:valid" result="pass"/><test-case name="28750negativeInteger_pattern001_1585 tokoe:valid" result="pass"/><test-case name="28751negativeInteger_pattern001_1585.v tokoe:valid" result="pass"/><test-case name="28752negativeInteger_enumeration001_1586 tokoe:valid" result="pass"/><test-case name="28753negativeInteger_enumeration001_1586.i tokoe:invalid" result="pass"/><test-case name="28754negativeInteger_enumeration002_1587 tokoe:valid" result="pass"/><test-case name="28755negativeInteger_enumeration002_1587.v tokoe:valid" result="pass"/><test-case name="28756negativeInteger_enumeration003_1588 tokoe:valid" result="pass"/><test-case name="28757negativeInteger_enumeration003_1588.i tokoe:invalid" result="pass"/><test-case name="28758negativeInteger_enumeration004_1589 tokoe:valid" result="pass"/><test-case name="28759negativeInteger_enumeration004_1589.v tokoe:valid" result="pass"/><test-case name="28760negativeInteger_maxInclusive001_1590 tokoe:valid" result="pass"/><test-case name="28761negativeInteger_maxInclusive001_1590.v tokoe:valid" result="pass"/><test-case name="28762negativeInteger_maxInclusive002_1591 tokoe:valid" result="pass"/><test-case name="28763negativeInteger_maxInclusive002_1591.i tokoe:invalid" result="pass"/><test-case name="28764negativeInteger_maxInclusive003_1592 tokoe:valid" result="pass"/><test-case name="28765negativeInteger_maxInclusive003_1592.v tokoe:valid" result="pass"/><test-case name="28766negativeInteger_maxExclusive001_1593 tokoe:valid" result="pass"/><test-case name="28767negativeInteger_maxExclusive001_1593.i tokoe:invalid" result="pass"/><test-case name="28768negativeInteger_maxExclusive002_1594 tokoe:valid" result="pass"/><test-case name="28769negativeInteger_maxExclusive002_1594.i tokoe:invalid" result="pass"/><test-case name="28770negativeInteger_maxExclusive003_1595 tokoe:valid" result="pass"/><test-case name="28771negativeInteger_maxExclusive003_1595.v tokoe:valid" result="pass"/><test-case name="28772negativeInteger_minInclusive001_1596 tokoe:valid" result="pass"/><test-case name="28773negativeInteger_minInclusive001_1596.v tokoe:valid" result="pass"/><test-case name="28774negativeInteger_minInclusive002_1597 tokoe:valid" result="pass"/><test-case name="28775negativeInteger_minInclusive002_1597.i tokoe:invalid" result="pass"/><test-case name="28776negativeInteger_minInclusive003_1598 tokoe:valid" result="pass"/><test-case name="28777negativeInteger_minInclusive003_1598.v tokoe:valid" result="pass"/><test-case name="28778negativeInteger_minInclusive004_1599 tokoe:valid" result="pass"/><test-case name="28779negativeInteger_minInclusive004_1599.v tokoe:valid" result="pass"/><test-case name="28780negativeInteger_minInclusive005_1600 tokoe:valid" result="pass"/><test-case name="28781negativeInteger_minInclusive005_1600.v tokoe:valid" result="pass"/><test-case name="28782negativeInteger_minExclusive001_1601 tokoe:valid" result="pass"/><test-case name="28783negativeInteger_minExclusive001_1601.i tokoe:invalid" result="pass"/><test-case name="28784negativeInteger_minExclusive002_1602 tokoe:valid" result="pass"/><test-case name="28785negativeInteger_minExclusive002_1602.i tokoe:invalid" result="pass"/><test-case name="28786negativeInteger_minExclusive003_1603 tokoe:valid" result="pass"/><test-case name="28787negativeInteger_minExclusive003_1603.v tokoe:valid" result="pass"/><test-case name="28788negativeInteger_minExclusive004_1604 tokoe:valid" result="pass"/><test-case name="28789negativeInteger_minExclusive004_1604.v tokoe:valid" result="pass"/><test-case name="28790negativeInteger_minExclusive005_1605 tokoe:valid" result="pass"/><test-case name="28791negativeInteger_minExclusive005_1605.v tokoe:valid" result="pass"/><test-case name="28792negativeInteger_totalDigits001_1606 tokoe:valid" result="pass"/><test-case name="28793negativeInteger_totalDigits001_1606.i tokoe:invalid" result="pass"/><test-case name="28794negativeInteger_totalDigits002_1607 tokoe:valid" result="pass"/><test-case name="28795negativeInteger_totalDigits002_1607.v tokoe:valid" result="pass"/><test-case name="28796negativeInteger_totalDigits003_1608 tokoe:valid" result="pass"/><test-case name="28797negativeInteger_totalDigits003_1608.v tokoe:valid" result="pass"/><test-case name="28798long_pattern001_1609 tokoe:valid" result="pass"/><test-case name="28799long_pattern001_1609.v tokoe:valid" result="pass"/><test-case name="28800long_enumeration001_1610 tokoe:valid" result="pass"/><test-case name="28801long_enumeration001_1610.i tokoe:invalid" result="pass"/><test-case name="28802long_enumeration002_1611 tokoe:valid" result="pass"/><test-case name="28803long_enumeration002_1611.v tokoe:valid" result="pass"/><test-case name="28804long_enumeration003_1612 tokoe:valid" result="pass"/><test-case name="28805long_enumeration003_1612.i tokoe:invalid" result="pass"/><test-case name="28806long_enumeration004_1613 tokoe:valid" result="pass"/><test-case name="28807long_enumeration004_1613.v tokoe:valid" result="pass"/><test-case name="28808long_maxInclusive001_1614 tokoe:valid" result="pass"/><test-case name="28809long_maxInclusive001_1614.v tokoe:valid" result="pass"/><test-case name="28810long_maxInclusive002_1615 tokoe:valid" result="pass"/><test-case name="28811long_maxInclusive002_1615.i tokoe:invalid" result="pass"/><test-case name="28812long_maxInclusive003_1616 tokoe:valid" result="pass"/><test-case name="28813long_maxInclusive003_1616.v tokoe:valid" result="pass"/><test-case name="28814long_maxExclusive001_1617 tokoe:valid" result="pass"/><test-case name="28815long_maxExclusive001_1617.i tokoe:invalid" result="pass"/><test-case name="28816long_maxExclusive002_1618 tokoe:valid" result="pass"/><test-case name="28817long_maxExclusive002_1618.i tokoe:invalid" result="pass"/><test-case name="28818long_maxExclusive003_1619 tokoe:valid" result="pass"/><test-case name="28819long_maxExclusive003_1619.v tokoe:valid" result="pass"/><test-case name="28820long_minInclusive001_1620 tokoe:valid" result="pass"/><test-case name="28821long_minInclusive001_1620.v tokoe:valid" result="pass"/><test-case name="28822long_minInclusive002_1621 tokoe:valid" result="pass"/><test-case name="28823long_minInclusive002_1621.i tokoe:invalid" result="pass"/><test-case name="28824long_minInclusive003_1622 tokoe:valid" result="pass"/><test-case name="28825long_minInclusive003_1622.v tokoe:valid" result="pass"/><test-case name="28826long_minInclusive004_1623 tokoe:valid" result="pass"/><test-case name="28827long_minInclusive004_1623.v tokoe:valid" result="pass"/><test-case name="28828long_minInclusive005_1624 tokoe:valid" result="pass"/><test-case name="28829long_minInclusive005_1624.v tokoe:valid" result="pass"/><test-case name="28830long_minExclusive001_1625 tokoe:valid" result="pass"/><test-case name="28831long_minExclusive001_1625.i tokoe:invalid" result="pass"/><test-case name="28832long_minExclusive002_1626 tokoe:valid" result="pass"/><test-case name="28833long_minExclusive002_1626.i tokoe:invalid" result="pass"/><test-case name="28834long_minExclusive003_1627 tokoe:valid" result="pass"/><test-case name="28835long_minExclusive003_1627.v tokoe:valid" result="pass"/><test-case name="28836long_minExclusive004_1628 tokoe:valid" result="pass"/><test-case name="28837long_minExclusive004_1628.v tokoe:valid" result="pass"/><test-case name="28838long_minExclusive005_1629 tokoe:valid" result="pass"/><test-case name="28839long_minExclusive005_1629.v tokoe:valid" result="pass"/><test-case name="28840long_totalDigits001_1630 tokoe:valid" result="pass"/><test-case name="28841long_totalDigits001_1630.i tokoe:invalid" result="pass"/><test-case name="28842long_totalDigits002_1631 tokoe:valid" result="pass"/><test-case name="28843long_totalDigits002_1631.v tokoe:valid" result="pass"/><test-case name="28844long_totalDigits003_1632 tokoe:valid" result="pass"/><test-case name="28845long_totalDigits003_1632.v tokoe:valid" result="pass"/><test-case name="28846int_pattern001_1633 tokoe:valid" result="pass"/><test-case name="28847int_pattern001_1633.v tokoe:valid" result="pass"/><test-case name="28848int_enumeration001_1634 tokoe:valid" result="pass"/><test-case name="28849int_enumeration001_1634.i tokoe:invalid" result="pass"/><test-case name="28850int_enumeration002_1635 tokoe:valid" result="pass"/><test-case name="28851int_enumeration002_1635.v tokoe:valid" result="pass"/><test-case name="28852int_enumeration003_1636 tokoe:valid" result="pass"/><test-case name="28853int_enumeration003_1636.i tokoe:invalid" result="pass"/><test-case name="28854int_enumeration004_1637 tokoe:valid" result="pass"/><test-case name="28855int_enumeration004_1637.v tokoe:valid" result="pass"/><test-case name="28856int_maxInclusive001_1638 tokoe:valid" result="pass"/><test-case name="28857int_maxInclusive001_1638.v tokoe:valid" result="pass"/><test-case name="28858int_maxInclusive002_1639 tokoe:valid" result="pass"/><test-case name="28859int_maxInclusive002_1639.i tokoe:invalid" result="pass"/><test-case name="28860int_maxInclusive003_1640 tokoe:valid" result="pass"/><test-case name="28861int_maxInclusive003_1640.v tokoe:valid" result="pass"/><test-case name="28862int_maxExclusive001_1641 tokoe:valid" result="pass"/><test-case name="28863int_maxExclusive001_1641.i tokoe:invalid" result="pass"/><test-case name="28864int_maxExclusive002_1642 tokoe:valid" result="pass"/><test-case name="28865int_maxExclusive002_1642.i tokoe:invalid" result="pass"/><test-case name="28866int_maxExclusive003_1643 tokoe:valid" result="pass"/><test-case name="28867int_maxExclusive003_1643.v tokoe:valid" result="pass"/><test-case name="28868int_minInclusive001_1644 tokoe:valid" result="pass"/><test-case name="28869int_minInclusive001_1644.v tokoe:valid" result="pass"/><test-case name="28870int_minInclusive002_1645 tokoe:valid" result="pass"/><test-case name="28871int_minInclusive002_1645.i tokoe:invalid" result="pass"/><test-case name="28872int_minInclusive003_1646 tokoe:valid" result="pass"/><test-case name="28873int_minInclusive003_1646.v tokoe:valid" result="pass"/><test-case name="28874int_minInclusive004_1647 tokoe:valid" result="pass"/><test-case name="28875int_minInclusive004_1647.v tokoe:valid" result="pass"/><test-case name="28876int_minInclusive005_1648 tokoe:valid" result="pass"/><test-case name="28877int_minInclusive005_1648.v tokoe:valid" result="pass"/><test-case name="28878int_minExclusive001_1649 tokoe:valid" result="pass"/><test-case name="28879int_minExclusive001_1649.i tokoe:invalid" result="pass"/><test-case name="28880int_minExclusive002_1650 tokoe:valid" result="pass"/><test-case name="28881int_minExclusive002_1650.i tokoe:invalid" result="pass"/><test-case name="28882int_minExclusive003_1651 tokoe:valid" result="pass"/><test-case name="28883int_minExclusive003_1651.v tokoe:valid" result="pass"/><test-case name="28884int_minExclusive004_1652 tokoe:valid" result="pass"/><test-case name="28885int_minExclusive004_1652.v tokoe:valid" result="pass"/><test-case name="28886int_minExclusive005_1653 tokoe:valid" result="pass"/><test-case name="28887int_minExclusive005_1653.v tokoe:valid" result="pass"/><test-case name="28888int_totalDigits001_1654 tokoe:valid" result="pass"/><test-case name="28889int_totalDigits001_1654.i tokoe:invalid" result="pass"/><test-case name="28890int_totalDigits002_1655 tokoe:valid" result="pass"/><test-case name="28891int_totalDigits002_1655.v tokoe:valid" result="pass"/><test-case name="28892int_totalDigits003_1656 tokoe:valid" result="pass"/><test-case name="28893int_totalDigits003_1656.v tokoe:valid" result="pass"/><test-case name="28894test111092_1657 tokoe:valid" result="pass"/><test-case name="28895test111092_1657.i tokoe:invalid" result="pass"/><test-case name="28896short_pattern001_1658 tokoe:valid" result="pass"/><test-case name="28897short_pattern001_1658.v tokoe:valid" result="pass"/><test-case name="28898short_enumeration001_1659 tokoe:valid" result="pass"/><test-case name="28899short_enumeration001_1659.i tokoe:invalid" result="pass"/><test-case name="28900short_enumeration002_1660 tokoe:valid" result="pass"/><test-case name="28901short_enumeration002_1660.v tokoe:valid" result="pass"/><test-case name="28902short_enumeration003_1661 tokoe:valid" result="pass"/><test-case name="28903short_enumeration003_1661.i tokoe:invalid" result="pass"/><test-case name="28904short_enumeration004_1662 tokoe:valid" result="pass"/><test-case name="28905short_enumeration004_1662.v tokoe:valid" result="pass"/><test-case name="28906short_maxInclusive001_1663 tokoe:valid" result="pass"/><test-case name="28907short_maxInclusive001_1663.v tokoe:valid" result="pass"/><test-case name="28908short_maxInclusive002_1664 tokoe:valid" result="pass"/><test-case name="28909short_maxInclusive002_1664.i tokoe:invalid" result="pass"/><test-case name="28910short_maxInclusive003_1665 tokoe:valid" result="pass"/><test-case name="28911short_maxInclusive003_1665.v tokoe:valid" result="pass"/><test-case name="28912short_maxExclusive001_1666 tokoe:valid" result="pass"/><test-case name="28913short_maxExclusive001_1666.i tokoe:invalid" result="pass"/><test-case name="28914short_maxExclusive002_1667 tokoe:valid" result="pass"/><test-case name="28915short_maxExclusive002_1667.i tokoe:invalid" result="pass"/><test-case name="28916short_maxExclusive003_1668 tokoe:valid" result="pass"/><test-case name="28917short_maxExclusive003_1668.v tokoe:valid" result="pass"/><test-case name="28918short_minInclusive001_1669 tokoe:valid" result="pass"/><test-case name="28919short_minInclusive001_1669.v tokoe:valid" result="pass"/><test-case name="28920short_minInclusive002_1670 tokoe:valid" result="pass"/><test-case name="28921short_minInclusive002_1670.i tokoe:invalid" result="pass"/><test-case name="28922short_minInclusive003_1671 tokoe:valid" result="pass"/><test-case name="28923short_minInclusive003_1671.v tokoe:valid" result="pass"/><test-case name="28924short_minInclusive004_1672 tokoe:valid" result="pass"/><test-case name="28925short_minInclusive004_1672.v tokoe:valid" result="pass"/><test-case name="28926short_minInclusive005_1673 tokoe:valid" result="pass"/><test-case name="28927short_minInclusive005_1673.v tokoe:valid" result="pass"/><test-case name="28928short_minExclusive001_1674 tokoe:valid" result="pass"/><test-case name="28929short_minExclusive001_1674.i tokoe:invalid" result="pass"/><test-case name="28930short_minExclusive002_1675 tokoe:valid" result="pass"/><test-case name="28931short_minExclusive002_1675.i tokoe:invalid" result="pass"/><test-case name="28932short_minExclusive003_1676 tokoe:valid" result="pass"/><test-case name="28933short_minExclusive003_1676.v tokoe:valid" result="pass"/><test-case name="28934short_minExclusive004_1677 tokoe:valid" result="pass"/><test-case name="28935short_minExclusive004_1677.v tokoe:valid" result="pass"/><test-case name="28936short_minExclusive005_1678 tokoe:valid" result="pass"/><test-case name="28937short_minExclusive005_1678.v tokoe:valid" result="pass"/><test-case name="28938short_totalDigits001_1679 tokoe:valid" result="pass"/><test-case name="28939short_totalDigits001_1679.i tokoe:invalid" result="pass"/><test-case name="28940short_totalDigits002_1680 tokoe:valid" result="pass"/><test-case name="28941short_totalDigits002_1680.v tokoe:valid" result="pass"/><test-case name="28942short_totalDigits003_1681 tokoe:valid" result="pass"/><test-case name="28943short_totalDigits003_1681.v tokoe:valid" result="pass"/><test-case name="28944byte_pattern001_1682 tokoe:valid" result="pass"/><test-case name="28945byte_pattern001_1682.v tokoe:valid" result="pass"/><test-case name="28946byte_enumeration001_1683 tokoe:valid" result="pass"/><test-case name="28947byte_enumeration001_1683.i tokoe:invalid" result="pass"/><test-case name="28948byte_enumeration002_1684 tokoe:valid" result="pass"/><test-case name="28949byte_enumeration002_1684.v tokoe:valid" result="pass"/><test-case name="28950byte_enumeration003_1685 tokoe:valid" result="pass"/><test-case name="28951byte_enumeration003_1685.i tokoe:invalid" result="pass"/><test-case name="28952byte_enumeration004_1686 tokoe:valid" result="pass"/><test-case name="28953byte_enumeration004_1686.v tokoe:valid" result="pass"/><test-case name="28954byte_maxInclusive001_1687 tokoe:valid" result="pass"/><test-case name="28955byte_maxInclusive001_1687.v tokoe:valid" result="pass"/><test-case name="28956byte_maxInclusive002_1688 tokoe:valid" result="pass"/><test-case name="28957byte_maxInclusive002_1688.i tokoe:invalid" result="pass"/><test-case name="28958byte_maxInclusive003_1689 tokoe:valid" result="pass"/><test-case name="28959byte_maxInclusive003_1689.v tokoe:valid" result="pass"/><test-case name="28960byte_maxExclusive001_1690 tokoe:valid" result="pass"/><test-case name="28961byte_maxExclusive001_1690.i tokoe:invalid" result="pass"/><test-case name="28962byte_maxExclusive002_1691 tokoe:valid" result="pass"/><test-case name="28963byte_maxExclusive002_1691.i tokoe:invalid" result="pass"/><test-case name="28964byte_maxExclusive003_1692 tokoe:valid" result="pass"/><test-case name="28965byte_maxExclusive003_1692.v tokoe:valid" result="pass"/><test-case name="28966byte_minInclusive001_1693 tokoe:valid" result="pass"/><test-case name="28967byte_minInclusive001_1693.v tokoe:valid" result="pass"/><test-case name="28968byte_minInclusive002_1694 tokoe:valid" result="pass"/><test-case name="28969byte_minInclusive002_1694.i tokoe:invalid" result="pass"/><test-case name="28970byte_minInclusive003_1695 tokoe:valid" result="pass"/><test-case name="28971byte_minInclusive003_1695.v tokoe:valid" result="pass"/><test-case name="28972byte_minInclusive004_1696 tokoe:valid" result="pass"/><test-case name="28973byte_minInclusive004_1696.v tokoe:valid" result="pass"/><test-case name="28974byte_minInclusive005_1697 tokoe:valid" result="pass"/><test-case name="28975byte_minInclusive005_1697.v tokoe:valid" result="pass"/><test-case name="28976byte_minExclusive001_1698 tokoe:valid" result="pass"/><test-case name="28977byte_minExclusive001_1698.i tokoe:invalid" result="pass"/><test-case name="28978byte_minExclusive002_1699 tokoe:valid" result="pass"/><test-case name="28979byte_minExclusive002_1699.i tokoe:invalid" result="pass"/><test-case name="28980byte_minExclusive003_1700 tokoe:valid" result="pass"/><test-case name="28981byte_minExclusive003_1700.v tokoe:valid" result="pass"/><test-case name="28982byte_minExclusive004_1701 tokoe:valid" result="pass"/><test-case name="28983byte_minExclusive004_1701.v tokoe:valid" result="pass"/><test-case name="28984byte_minExclusive005_1702 tokoe:valid" result="pass"/><test-case name="28985byte_minExclusive005_1702.v tokoe:valid" result="pass"/><test-case name="28986byte_totalDigits001_1703 tokoe:valid" result="pass"/><test-case name="28987byte_totalDigits001_1703.i tokoe:invalid" result="pass"/><test-case name="28988byte_totalDigits002_1704 tokoe:valid" result="pass"/><test-case name="28989byte_totalDigits002_1704.v tokoe:valid" result="pass"/><test-case name="28990byte_totalDigits003_1705 tokoe:valid" result="pass"/><test-case name="28991byte_totalDigits003_1705.v tokoe:valid" result="pass"/><test-case name="28992nonNegativeInteger_pattern001_1706 tokoe:valid" result="pass"/><test-case name="28993nonNegativeInteger_pattern001_1706.v tokoe:valid" result="pass"/><test-case name="28994nonNegativeInteger_enumeration001_1707 tokoe:valid" result="pass"/><test-case name="28995nonNegativeInteger_enumeration001_1707.i tokoe:invalid" result="pass"/><test-case name="28996nonNegativeInteger_enumeration002_1708 tokoe:valid" result="pass"/><test-case name="28997nonNegativeInteger_enumeration002_1708.v tokoe:valid" result="pass"/><test-case name="28998nonNegativeInteger_enumeration003_1709 tokoe:valid" result="pass"/><test-case name="28999nonNegativeInteger_enumeration003_1709.i tokoe:invalid" result="pass"/><test-case name="29000nonNegativeInteger_enumeration004_1710 tokoe:valid" result="pass"/><test-case name="29001nonNegativeInteger_enumeration004_1710.v tokoe:valid" result="pass"/><test-case name="29002nonNegativeInteger_maxInclusive001_1711 tokoe:valid" result="pass"/><test-case name="29003nonNegativeInteger_maxInclusive001_1711.v tokoe:valid" result="pass"/><test-case name="29004nonNegativeInteger_maxInclusive002_1712 tokoe:valid" result="pass"/><test-case name="29005nonNegativeInteger_maxInclusive002_1712.i tokoe:invalid" result="pass"/><test-case name="29006nonNegativeInteger_maxInclusive003_1713 tokoe:valid" result="pass"/><test-case name="29007nonNegativeInteger_maxInclusive003_1713.v tokoe:valid" result="pass"/><test-case name="29008nonNegativeInteger_maxExclusive001_1714 tokoe:valid" result="pass"/><test-case name="29009nonNegativeInteger_maxExclusive001_1714.i tokoe:invalid" result="pass"/><test-case name="29010nonNegativeInteger_maxExclusive002_1715 tokoe:valid" result="pass"/><test-case name="29011nonNegativeInteger_maxExclusive002_1715.i tokoe:invalid" result="pass"/><test-case name="29012nonNegativeInteger_maxExclusive003_1716 tokoe:valid" result="pass"/><test-case name="29013nonNegativeInteger_maxExclusive003_1716.v tokoe:valid" result="pass"/><test-case name="29014nonNegativeInteger_minInclusive001_1717 tokoe:valid" result="pass"/><test-case name="29015nonNegativeInteger_minInclusive001_1717.v tokoe:valid" result="pass"/><test-case name="29016nonNegativeInteger_minInclusive002_1718 tokoe:valid" result="pass"/><test-case name="29017nonNegativeInteger_minInclusive002_1718.i tokoe:invalid" result="pass"/><test-case name="29018nonNegativeInteger_minInclusive003_1719 tokoe:valid" result="pass"/><test-case name="29019nonNegativeInteger_minInclusive003_1719.v tokoe:valid" result="pass"/><test-case name="29020nonNegativeInteger_minInclusive004_1720 tokoe:valid" result="pass"/><test-case name="29021nonNegativeInteger_minInclusive004_1720.v tokoe:valid" result="pass"/><test-case name="29022nonNegativeInteger_minInclusive005_1721 tokoe:valid" result="pass"/><test-case name="29023nonNegativeInteger_minInclusive005_1721.v tokoe:valid" result="pass"/><test-case name="29024nonNegativeInteger_minExclusive001_1722 tokoe:valid" result="pass"/><test-case name="29025nonNegativeInteger_minExclusive001_1722.i tokoe:invalid" result="pass"/><test-case name="29026nonNegativeInteger_minExclusive002_1723 tokoe:valid" result="pass"/><test-case name="29027nonNegativeInteger_minExclusive002_1723.i tokoe:invalid" result="pass"/><test-case name="29028nonNegativeInteger_minExclusive003_1724 tokoe:valid" result="pass"/><test-case name="29029nonNegativeInteger_minExclusive003_1724.v tokoe:valid" result="pass"/><test-case name="29030nonNegativeInteger_minExclusive004_1725 tokoe:valid" result="pass"/><test-case name="29031nonNegativeInteger_minExclusive004_1725.v tokoe:valid" result="pass"/><test-case name="29032nonNegativeInteger_minExclusive005_1726 tokoe:valid" result="pass"/><test-case name="29033nonNegativeInteger_minExclusive005_1726.v tokoe:valid" result="pass"/><test-case name="29034nonNegativeInteger_totalDigits001_1727 tokoe:valid" result="pass"/><test-case name="29035nonNegativeInteger_totalDigits001_1727.i tokoe:invalid" result="pass"/><test-case name="29036nonNegativeInteger_totalDigits002_1728 tokoe:valid" result="pass"/><test-case name="29037nonNegativeInteger_totalDigits002_1728.v tokoe:valid" result="pass"/><test-case name="29038nonNegativeInteger_totalDigits003_1729 tokoe:valid" result="pass"/><test-case name="29039nonNegativeInteger_totalDigits003_1729.v tokoe:valid" result="pass"/><test-case name="29040unsignedLong_pattern001_1730 tokoe:valid" result="pass"/><test-case name="29041unsignedLong_pattern001_1730.v tokoe:valid" result="pass"/><test-case name="29042unsignedLong_enumeration001_1731 tokoe:valid" result="pass"/><test-case name="29043unsignedLong_enumeration001_1731.i tokoe:invalid" result="pass"/><test-case name="29044unsignedLong_enumeration002_1732 tokoe:valid" result="pass"/><test-case name="29045unsignedLong_enumeration002_1732.v tokoe:valid" result="pass"/><test-case name="29046unsignedLong_enumeration003_1733 tokoe:valid" result="pass"/><test-case name="29047unsignedLong_enumeration003_1733.i tokoe:invalid" result="pass"/><test-case name="29048unsignedLong_enumeration004_1734 tokoe:valid" result="pass"/><test-case name="29049unsignedLong_enumeration004_1734.v tokoe:valid" result="pass"/><test-case name="29050unsignedLong_maxInclusive001_1735 tokoe:valid" result="pass"/><test-case name="29051unsignedLong_maxInclusive001_1735.v tokoe:valid" result="pass"/><test-case name="29052unsignedLong_maxInclusive002_1736 tokoe:valid" result="pass"/><test-case name="29053unsignedLong_maxInclusive002_1736.i tokoe:invalid" result="pass"/><test-case name="29054unsignedLong_maxInclusive003_1737 tokoe:valid" result="pass"/><test-case name="29055unsignedLong_maxInclusive003_1737.v tokoe:valid" result="pass"/><test-case name="29056unsignedLong_maxExclusive001_1738 tokoe:valid" result="pass"/><test-case name="29057unsignedLong_maxExclusive001_1738.i tokoe:invalid" result="pass"/><test-case name="29058unsignedLong_maxExclusive002_1739 tokoe:valid" result="pass"/><test-case name="29059unsignedLong_maxExclusive002_1739.i tokoe:invalid" result="pass"/><test-case name="29060unsignedLong_maxExclusive003_1740 tokoe:valid" result="pass"/><test-case name="29061unsignedLong_maxExclusive003_1740.v tokoe:valid" result="pass"/><test-case name="29062unsignedLong_minInclusive001_1741 tokoe:valid" result="pass"/><test-case name="29063unsignedLong_minInclusive001_1741.v tokoe:valid" result="pass"/><test-case name="29064unsignedLong_minInclusive002_1742 tokoe:valid" result="pass"/><test-case name="29065unsignedLong_minInclusive002_1742.i tokoe:invalid" result="pass"/><test-case name="29066unsignedLong_minInclusive003_1743 tokoe:valid" result="pass"/><test-case name="29067unsignedLong_minInclusive003_1743.v tokoe:valid" result="pass"/><test-case name="29068unsignedLong_minInclusive004_1744 tokoe:valid" result="pass"/><test-case name="29069unsignedLong_minInclusive004_1744.v tokoe:valid" result="pass"/><test-case name="29070unsignedLong_minInclusive005_1745 tokoe:valid" result="pass"/><test-case name="29071unsignedLong_minInclusive005_1745.v tokoe:valid" result="pass"/><test-case name="29072unsignedLong_minExclusive001_1746 tokoe:valid" result="pass"/><test-case name="29073unsignedLong_minExclusive001_1746.i tokoe:invalid" result="pass"/><test-case name="29074unsignedLong_minExclusive002_1747 tokoe:valid" result="pass"/><test-case name="29075unsignedLong_minExclusive002_1747.i tokoe:invalid" result="pass"/><test-case name="29076unsignedLong_minExclusive003_1748 tokoe:valid" result="pass"/><test-case name="29077unsignedLong_minExclusive003_1748.v tokoe:valid" result="pass"/><test-case name="29078unsignedLong_minExclusive004_1749 tokoe:valid" result="pass"/><test-case name="29079unsignedLong_minExclusive004_1749.v tokoe:valid" result="pass"/><test-case name="29080unsignedLong_minExclusive005_1750 tokoe:valid" result="pass"/><test-case name="29081unsignedLong_minExclusive005_1750.v tokoe:valid" result="pass"/><test-case name="29082unsignedLong_totalDigits001_1751 tokoe:valid" result="pass"/><test-case name="29083unsignedLong_totalDigits001_1751.i tokoe:invalid" result="pass"/><test-case name="29084unsignedLong_totalDigits002_1752 tokoe:valid" result="pass"/><test-case name="29085unsignedLong_totalDigits002_1752.v tokoe:valid" result="pass"/><test-case name="29086unsignedLong_totalDigits003_1753 tokoe:valid" result="pass"/><test-case name="29087unsignedLong_totalDigits003_1753.v tokoe:valid" result="pass"/><test-case name="29088unsignedInt_pattern001_1754 tokoe:valid" result="pass"/><test-case name="29089unsignedInt_pattern001_1754.v tokoe:valid" result="pass"/><test-case name="29090unsignedInt_enumeration001_1755 tokoe:valid" result="pass"/><test-case name="29091unsignedInt_enumeration001_1755.i tokoe:invalid" result="pass"/><test-case name="29092unsignedInt_enumeration002_1756 tokoe:valid" result="pass"/><test-case name="29093unsignedInt_enumeration002_1756.v tokoe:valid" result="pass"/><test-case name="29094unsignedInt_enumeration003_1757 tokoe:valid" result="pass"/><test-case name="29095unsignedInt_enumeration003_1757.i tokoe:invalid" result="pass"/><test-case name="29096unsignedInt_enumeration004_1758 tokoe:valid" result="pass"/><test-case name="29097unsignedInt_enumeration004_1758.v tokoe:valid" result="pass"/><test-case name="29098unsignedInt_maxInclusive001_1759 tokoe:valid" result="pass"/><test-case name="29099unsignedInt_maxInclusive001_1759.v tokoe:valid" result="pass"/><test-case name="29100unsignedInt_maxInclusive002_1760 tokoe:valid" result="pass"/><test-case name="29101unsignedInt_maxInclusive002_1760.i tokoe:invalid" result="pass"/><test-case name="29102unsignedInt_maxInclusive003_1761 tokoe:valid" result="pass"/><test-case name="29103unsignedInt_maxInclusive003_1761.v tokoe:valid" result="pass"/><test-case name="29104unsignedInt_maxExclusive001_1762 tokoe:valid" result="pass"/><test-case name="29105unsignedInt_maxExclusive001_1762.i tokoe:invalid" result="pass"/><test-case name="29106unsignedInt_maxExclusive002_1763 tokoe:valid" result="pass"/><test-case name="29107unsignedInt_maxExclusive002_1763.i tokoe:invalid" result="pass"/><test-case name="29108unsignedInt_maxExclusive003_1764 tokoe:valid" result="pass"/><test-case name="29109unsignedInt_maxExclusive003_1764.v tokoe:valid" result="pass"/><test-case name="29110unsignedInt_minInclusive001_1765 tokoe:valid" result="pass"/><test-case name="29111unsignedInt_minInclusive001_1765.v tokoe:valid" result="pass"/><test-case name="29112unsignedInt_minInclusive002_1766 tokoe:valid" result="pass"/><test-case name="29113unsignedInt_minInclusive002_1766.i tokoe:invalid" result="pass"/><test-case name="29114unsignedInt_minInclusive003_1767 tokoe:valid" result="pass"/><test-case name="29115unsignedInt_minInclusive003_1767.v tokoe:valid" result="pass"/><test-case name="29116unsignedInt_minInclusive004_1768 tokoe:valid" result="pass"/><test-case name="29117unsignedInt_minInclusive004_1768.v tokoe:valid" result="pass"/><test-case name="29118unsignedInt_minInclusive005_1769 tokoe:valid" result="pass"/><test-case name="29119unsignedInt_minInclusive005_1769.v tokoe:valid" result="pass"/><test-case name="29120unsignedInt_minExclusive001_1770 tokoe:valid" result="pass"/><test-case name="29121unsignedInt_minExclusive001_1770.i tokoe:invalid" result="pass"/><test-case name="29122unsignedInt_minExclusive002_1771 tokoe:valid" result="pass"/><test-case name="29123unsignedInt_minExclusive002_1771.i tokoe:invalid" result="pass"/><test-case name="29124unsignedInt_minExclusive003_1772 tokoe:valid" result="pass"/><test-case name="29125unsignedInt_minExclusive003_1772.v tokoe:valid" result="pass"/><test-case name="29126unsignedInt_minExclusive004_1773 tokoe:valid" result="pass"/><test-case name="29127unsignedInt_minExclusive004_1773.v tokoe:valid" result="pass"/><test-case name="29128unsignedInt_minExclusive005_1774 tokoe:valid" result="pass"/><test-case name="29129unsignedInt_minExclusive005_1774.v tokoe:valid" result="pass"/><test-case name="29130unsignedInt_totalDigits001_1775 tokoe:valid" result="pass"/><test-case name="29131unsignedInt_totalDigits001_1775.i tokoe:invalid" result="pass"/><test-case name="29132unsignedInt_totalDigits002_1776 tokoe:valid" result="pass"/><test-case name="29133unsignedInt_totalDigits002_1776.v tokoe:valid" result="pass"/><test-case name="29134unsignedInt_totalDigits003_1777 tokoe:valid" result="pass"/><test-case name="29135unsignedInt_totalDigits003_1777.v tokoe:valid" result="pass"/><test-case name="29136unsignedShort_pattern001_1778 tokoe:valid" result="pass"/><test-case name="29137unsignedShort_pattern001_1778.v tokoe:valid" result="pass"/><test-case name="29138unsignedShort_enumeration001_1779 tokoe:valid" result="pass"/><test-case name="29139unsignedShort_enumeration001_1779.i tokoe:invalid" result="pass"/><test-case name="29140unsignedShort_enumeration002_1780 tokoe:valid" result="pass"/><test-case name="29141unsignedShort_enumeration002_1780.v tokoe:valid" result="pass"/><test-case name="29142unsignedShort_enumeration003_1781 tokoe:valid" result="pass"/><test-case name="29143unsignedShort_enumeration003_1781.i tokoe:invalid" result="pass"/><test-case name="29144unsignedShort_enumeration004_1782 tokoe:valid" result="pass"/><test-case name="29145unsignedShort_enumeration004_1782.v tokoe:valid" result="pass"/><test-case name="29146unsignedShort_maxInclusive001_1783 tokoe:valid" result="pass"/><test-case name="29147unsignedShort_maxInclusive001_1783.v tokoe:valid" result="pass"/><test-case name="29148unsignedShort_maxInclusive002_1784 tokoe:valid" result="pass"/><test-case name="29149unsignedShort_maxInclusive002_1784.i tokoe:invalid" result="pass"/><test-case name="29150unsignedShort_maxInclusive003_1785 tokoe:valid" result="pass"/><test-case name="29151unsignedShort_maxInclusive003_1785.v tokoe:valid" result="pass"/><test-case name="29152unsignedShort_maxExclusive001_1786 tokoe:valid" result="pass"/><test-case name="29153unsignedShort_maxExclusive001_1786.i tokoe:invalid" result="pass"/><test-case name="29154unsignedShort_maxExclusive002_1787 tokoe:valid" result="pass"/><test-case name="29155unsignedShort_maxExclusive002_1787.i tokoe:invalid" result="pass"/><test-case name="29156unsignedShort_maxExclusive003_1788 tokoe:valid" result="pass"/><test-case name="29157unsignedShort_maxExclusive003_1788.v tokoe:valid" result="pass"/><test-case name="29158unsignedShort_minInclusive001_1789 tokoe:valid" result="pass"/><test-case name="29159unsignedShort_minInclusive001_1789.v tokoe:valid" result="pass"/><test-case name="29160unsignedShort_minInclusive002_1790 tokoe:valid" result="pass"/><test-case name="29161unsignedShort_minInclusive002_1790.i tokoe:invalid" result="pass"/><test-case name="29162unsignedShort_minInclusive003_1791 tokoe:valid" result="pass"/><test-case name="29163unsignedShort_minInclusive003_1791.v tokoe:valid" result="pass"/><test-case name="29164unsignedShort_minInclusive004_1792 tokoe:valid" result="pass"/><test-case name="29165unsignedShort_minInclusive004_1792.v tokoe:valid" result="pass"/><test-case name="29166unsignedShort_minInclusive005_1793 tokoe:valid" result="pass"/><test-case name="29167unsignedShort_minInclusive005_1793.v tokoe:valid" result="pass"/><test-case name="29168unsignedShort_minExclusive001_1794 tokoe:valid" result="pass"/><test-case name="29169unsignedShort_minExclusive001_1794.i tokoe:invalid" result="pass"/><test-case name="29170unsignedShort_minExclusive002_1795 tokoe:valid" result="pass"/><test-case name="29171unsignedShort_minExclusive002_1795.i tokoe:invalid" result="pass"/><test-case name="29172unsignedShort_minExclusive003_1796 tokoe:valid" result="pass"/><test-case name="29173unsignedShort_minExclusive003_1796.v tokoe:valid" result="pass"/><test-case name="29174unsignedShort_minExclusive004_1797 tokoe:valid" result="pass"/><test-case name="29175unsignedShort_minExclusive004_1797.v tokoe:valid" result="pass"/><test-case name="29176unsignedShort_minExclusive005_1798 tokoe:valid" result="pass"/><test-case name="29177unsignedShort_minExclusive005_1798.v tokoe:valid" result="pass"/><test-case name="29178unsignedShort_totalDigits001_1799 tokoe:valid" result="pass"/><test-case name="29179unsignedShort_totalDigits001_1799.i tokoe:invalid" result="pass"/><test-case name="29180unsignedShort_totalDigits002_1800 tokoe:valid" result="pass"/><test-case name="29181unsignedShort_totalDigits002_1800.v tokoe:valid" result="pass"/><test-case name="29182unsignedShort_totalDigits003_1801 tokoe:valid" result="pass"/><test-case name="29183unsignedShort_totalDigits003_1801.v tokoe:valid" result="pass"/><test-case name="29184unsignedByte_pattern001_1802 tokoe:valid" result="pass"/><test-case name="29185unsignedByte_pattern001_1802.v tokoe:valid" result="pass"/><test-case name="29186unsignedByte_enumeration001_1803 tokoe:valid" result="pass"/><test-case name="29187unsignedByte_enumeration001_1803.i tokoe:invalid" result="pass"/><test-case name="29188unsignedByte_enumeration002_1804 tokoe:valid" result="pass"/><test-case name="29189unsignedByte_enumeration002_1804.v tokoe:valid" result="pass"/><test-case name="29190unsignedByte_enumeration003_1805 tokoe:valid" result="pass"/><test-case name="29191unsignedByte_enumeration003_1805.i tokoe:invalid" result="pass"/><test-case name="29192unsignedByte_enumeration004_1806 tokoe:valid" result="pass"/><test-case name="29193unsignedByte_enumeration004_1806.v tokoe:valid" result="pass"/><test-case name="29194unsignedByte_maxInclusive001_1807 tokoe:valid" result="pass"/><test-case name="29195unsignedByte_maxInclusive001_1807.v tokoe:valid" result="pass"/><test-case name="29196unsignedByte_maxInclusive002_1808 tokoe:valid" result="pass"/><test-case name="29197unsignedByte_maxInclusive002_1808.i tokoe:invalid" result="pass"/><test-case name="29198unsignedByte_maxInclusive003_1809 tokoe:valid" result="pass"/><test-case name="29199unsignedByte_maxInclusive003_1809.v tokoe:valid" result="pass"/><test-case name="29200unsignedByte_maxExclusive001_1810 tokoe:valid" result="pass"/><test-case name="29201unsignedByte_maxExclusive001_1810.i tokoe:invalid" result="pass"/><test-case name="29202unsignedByte_maxExclusive002_1811 tokoe:valid" result="pass"/><test-case name="29203unsignedByte_maxExclusive002_1811.i tokoe:invalid" result="pass"/><test-case name="29204unsignedByte_maxExclusive003_1812 tokoe:valid" result="pass"/><test-case name="29205unsignedByte_maxExclusive003_1812.v tokoe:valid" result="pass"/><test-case name="29206unsignedByte_minInclusive001_1813 tokoe:valid" result="pass"/><test-case name="29207unsignedByte_minInclusive001_1813.v tokoe:valid" result="pass"/><test-case name="29208unsignedByte_minInclusive002_1814 tokoe:valid" result="pass"/><test-case name="29209unsignedByte_minInclusive002_1814.i tokoe:invalid" result="pass"/><test-case name="29210unsignedByte_minInclusive003_1815 tokoe:valid" result="pass"/><test-case name="29211unsignedByte_minInclusive003_1815.v tokoe:valid" result="pass"/><test-case name="29212unsignedByte_minInclusive004_1816 tokoe:valid" result="pass"/><test-case name="29213unsignedByte_minInclusive004_1816.v tokoe:valid" result="pass"/><test-case name="29214unsignedByte_minInclusive005_1817 tokoe:valid" result="pass"/><test-case name="29215unsignedByte_minInclusive005_1817.v tokoe:valid" result="pass"/><test-case name="29216unsignedByte_minExclusive001_1818 tokoe:valid" result="pass"/><test-case name="29217unsignedByte_minExclusive001_1818.i tokoe:invalid" result="pass"/><test-case name="29218unsignedByte_minExclusive002_1819 tokoe:valid" result="pass"/><test-case name="29219unsignedByte_minExclusive002_1819.i tokoe:invalid" result="pass"/><test-case name="29220unsignedByte_minExclusive003_1820 tokoe:valid" result="pass"/><test-case name="29221unsignedByte_minExclusive003_1820.v tokoe:valid" result="pass"/><test-case name="29222unsignedByte_minExclusive004_1821 tokoe:valid" result="pass"/><test-case name="29223unsignedByte_minExclusive004_1821.v tokoe:valid" result="pass"/><test-case name="29224unsignedByte_minExclusive005_1822 tokoe:valid" result="pass"/><test-case name="29225unsignedByte_minExclusive005_1822.v tokoe:valid" result="pass"/><test-case name="29226unsignedByte_totalDigits001_1823 tokoe:valid" result="pass"/><test-case name="29227unsignedByte_totalDigits001_1823.i tokoe:invalid" result="pass"/><test-case name="29228unsignedByte_totalDigits002_1824 tokoe:valid" result="pass"/><test-case name="29229unsignedByte_totalDigits002_1824.v tokoe:valid" result="pass"/><test-case name="29230unsignedByte_totalDigits003_1825 tokoe:valid" result="pass"/><test-case name="29231unsignedByte_totalDigits003_1825.v tokoe:valid" result="pass"/><test-case name="29232positiveInteger_pattern001_1826 tokoe:valid" result="pass"/><test-case name="29233positiveInteger_pattern001_1826.v tokoe:valid" result="pass"/><test-case name="29234positiveInteger_enumeration001_1827 tokoe:valid" result="pass"/><test-case name="29235positiveInteger_enumeration001_1827.i tokoe:invalid" result="pass"/><test-case name="29236positiveInteger_enumeration002_1828 tokoe:valid" result="pass"/><test-case name="29237positiveInteger_enumeration002_1828.v tokoe:valid" result="pass"/><test-case name="29238positiveInteger_enumeration003_1829 tokoe:valid" result="pass"/><test-case name="29239positiveInteger_enumeration003_1829.i tokoe:invalid" result="pass"/><test-case name="29240positiveInteger_enumeration004_1830 tokoe:valid" result="pass"/><test-case name="29241positiveInteger_enumeration004_1830.v tokoe:valid" result="pass"/><test-case name="29242positiveInteger_maxInclusive001_1831 tokoe:valid" result="pass"/><test-case name="29243positiveInteger_maxInclusive001_1831.v tokoe:valid" result="pass"/><test-case name="29244positiveInteger_maxInclusive002_1832 tokoe:valid" result="pass"/><test-case name="29245positiveInteger_maxInclusive002_1832.i tokoe:invalid" result="pass"/><test-case name="29246positiveInteger_maxInclusive003_1833 tokoe:valid" result="pass"/><test-case name="29247positiveInteger_maxInclusive003_1833.v tokoe:valid" result="pass"/><test-case name="29248positiveInteger_maxExclusive001_1834 tokoe:valid" result="fail"/><test-case name="29249positiveInteger_maxExclusive001_1834.i tokoe:invalid" result="pass"/><test-case name="29250positiveInteger_maxExclusive002_1835 tokoe:valid" result="fail"/><test-case name="29251positiveInteger_maxExclusive002_1835.i tokoe:invalid" result="pass"/><test-case name="29252positiveInteger_maxExclusive003_1836 tokoe:valid" result="pass"/><test-case name="29253positiveInteger_maxExclusive003_1836.v tokoe:valid" result="pass"/><test-case name="29254positiveInteger_minInclusive001_1837 tokoe:valid" result="pass"/><test-case name="29255positiveInteger_minInclusive001_1837.v tokoe:valid" result="pass"/><test-case name="29256positiveInteger_minInclusive002_1838 tokoe:valid" result="pass"/><test-case name="29257positiveInteger_minInclusive002_1838.i tokoe:invalid" result="pass"/><test-case name="29258positiveInteger_minInclusive003_1839 tokoe:valid" result="pass"/><test-case name="29259positiveInteger_minInclusive003_1839.v tokoe:valid" result="pass"/><test-case name="29260positiveInteger_minInclusive004_1840 tokoe:valid" result="pass"/><test-case name="29261positiveInteger_minInclusive004_1840.v tokoe:valid" result="pass"/><test-case name="29262positiveInteger_minInclusive005_1841 tokoe:valid" result="pass"/><test-case name="29263positiveInteger_minInclusive005_1841.v tokoe:valid" result="pass"/><test-case name="29264positiveInteger_minExclusive001_1842 tokoe:valid" result="pass"/><test-case name="29265positiveInteger_minExclusive001_1842.i tokoe:invalid" result="pass"/><test-case name="29266positiveInteger_minExclusive002_1843 tokoe:valid" result="pass"/><test-case name="29267positiveInteger_minExclusive002_1843.i tokoe:invalid" result="pass"/><test-case name="29268positiveInteger_minExclusive003_1844 tokoe:valid" result="pass"/><test-case name="29269positiveInteger_minExclusive003_1844.v tokoe:valid" result="pass"/><test-case name="29270positiveInteger_minExclusive004_1845 tokoe:valid" result="pass"/><test-case name="29271positiveInteger_minExclusive004_1845.v tokoe:valid" result="pass"/><test-case name="29272positiveInteger_minExclusive005_1846 tokoe:valid" result="pass"/><test-case name="29273positiveInteger_minExclusive005_1846.v tokoe:valid" result="pass"/><test-case name="29274positiveInteger_totalDigits001_1847 tokoe:valid" result="pass"/><test-case name="29275positiveInteger_totalDigits001_1847.i tokoe:invalid" result="pass"/><test-case name="29276positiveInteger_totalDigits002_1848 tokoe:valid" result="pass"/><test-case name="29277positiveInteger_totalDigits002_1848.v tokoe:valid" result="pass"/><test-case name="29278positiveInteger_totalDigits003_1849 tokoe:valid" result="pass"/><test-case name="29279positiveInteger_totalDigits003_1849.v tokoe:valid" result="pass"/><test-case name="29280list_minInclusive_1850 tokoe:invalid" result="pass"/><test-case name="29281string001_1851 tokoe:valid" result="pass"/><test-case name="29282string001_1851.v tokoe:valid" result="pass"/><test-case name="29283string002_1852 tokoe:valid" result="pass"/><test-case name="29284string002_1852.v tokoe:valid" result="pass"/><test-case name="29285string003_1853 tokoe:valid" result="pass"/><test-case name="29286string003_1853.v tokoe:valid" result="pass"/><test-case name="29287string004_1854 tokoe:valid" result="pass"/><test-case name="29288string004_1854.v tokoe:valid" result="pass"/><test-case name="29289string005_1855 tokoe:valid" result="pass"/><test-case name="29290string005_1855.v tokoe:valid" result="pass"/><test-case name="29291string006_1856 tokoe:valid" result="pass"/><test-case name="29292string006_1856.v tokoe:valid" result="pass"/><test-case name="29293boolean001_1857 tokoe:valid" result="pass"/><test-case name="29294boolean001_1857.i tokoe:invalid" result="pass"/><test-case name="29295boolean002_1858 tokoe:valid" result="pass"/><test-case name="29296boolean002_1858.v tokoe:valid" result="pass"/><test-case name="29297boolean003_1859 tokoe:valid" result="pass"/><test-case name="29298boolean003_1859.v tokoe:valid" result="pass"/><test-case name="29299boolean004_1860 tokoe:valid" result="pass"/><test-case name="29300boolean004_1860.v tokoe:valid" result="pass"/><test-case name="29301boolean005_1861 tokoe:valid" result="pass"/><test-case name="29302boolean005_1861.v tokoe:valid" result="pass"/><test-case name="29303boolean006_1862 tokoe:valid" result="pass"/><test-case name="29304boolean006_1862.i tokoe:invalid" result="pass"/><test-case name="29305boolean007_1863 tokoe:valid" result="pass"/><test-case name="29306boolean007_1863.i tokoe:invalid" result="pass"/><test-case name="29307boolean008_1864 tokoe:valid" result="pass"/><test-case name="29308boolean008_1864.i tokoe:invalid" result="pass"/><test-case name="29309boolean009_1865 tokoe:valid" result="pass"/><test-case name="29310boolean009_1865.i tokoe:invalid" result="pass"/><test-case name="29311boolean010_1866 tokoe:valid" result="pass"/><test-case name="29312boolean010_1866.i tokoe:invalid" result="pass"/><test-case name="29313boolean011_1867 tokoe:valid" result="pass"/><test-case name="29314boolean011_1867.i tokoe:invalid" result="pass"/><test-case name="29315boolean012_1868 tokoe:valid" result="pass"/><test-case name="29316boolean012_1868.i tokoe:invalid" result="pass"/><test-case name="29317boolean013_1869 tokoe:valid" result="pass"/><test-case name="29318boolean013_1869.i tokoe:invalid" result="pass"/><test-case name="29319boolean014_1870 tokoe:valid" result="pass"/><test-case name="29320boolean014_1870.i tokoe:invalid" result="pass"/><test-case name="29321boolean015_1871 tokoe:valid" result="pass"/><test-case name="29322boolean015_1871.i tokoe:invalid" result="pass"/><test-case name="29323boolean016_1872 tokoe:valid" result="pass"/><test-case name="29324boolean016_1872.i tokoe:invalid" result="pass"/><test-case name="29325boolean017_1873 tokoe:valid" result="pass"/><test-case name="29326boolean017_1873.i tokoe:invalid" result="pass"/><test-case name="29327boolean018_1874 tokoe:valid" result="pass"/><test-case name="29328boolean018_1874.v tokoe:valid" result="pass"/><test-case name="29329decimal001_1875 tokoe:valid" result="pass"/><test-case name="29330decimal001_1875.i tokoe:invalid" result="pass"/><test-case name="29331decimal002_1876 tokoe:valid" result="pass"/><test-case name="29332decimal002_1876.v tokoe:valid" result="pass"/><test-case name="29333decimal003_1877 tokoe:valid" result="pass"/><test-case name="29334decimal003_1877.v tokoe:valid" result="pass"/><test-case name="29335decimal004_1878 tokoe:valid" result="pass"/><test-case name="29336decimal004_1878.v tokoe:valid" result="pass"/><test-case name="29337decimal005_1879 tokoe:valid" result="pass"/><test-case name="29338decimal005_1879.v tokoe:valid" result="pass"/><test-case name="29339decimal006_1880 tokoe:valid" result="pass"/><test-case name="29340decimal006_1880.v tokoe:valid" result="pass"/><test-case name="29341decimal007_1881 tokoe:valid" result="pass"/><test-case name="29342decimal007_1881.v tokoe:valid" result="pass"/><test-case name="29343decimal008_1882 tokoe:valid" result="pass"/><test-case name="29344decimal008_1882.v tokoe:valid" result="pass"/><test-case name="29345decimal009_1883 tokoe:valid" result="pass"/><test-case name="29346decimal009_1883.v tokoe:valid" result="pass"/><test-case name="29347decimal010_1884 tokoe:valid" result="pass"/><test-case name="29348decimal010_1884.v tokoe:valid" result="pass"/><test-case name="29349decimal011_1885 tokoe:valid" result="pass"/><test-case name="29350decimal011_1885.v tokoe:valid" result="pass"/><test-case name="29351decimal012_1886 tokoe:valid" result="pass"/><test-case name="29352decimal012_1886.v tokoe:valid" result="pass"/><test-case name="29353decimal013_1887 tokoe:valid" result="pass"/><test-case name="29354decimal013_1887.v tokoe:valid" result="pass"/><test-case name="29355decimal014_1888 tokoe:valid" result="pass"/><test-case name="29356decimal014_1888.v tokoe:valid" result="pass"/><test-case name="29357decimal015_1889 tokoe:valid" result="pass"/><test-case name="29358decimal015_1889.v tokoe:valid" result="pass"/><test-case name="29359decimal016_1890 tokoe:valid" result="pass"/><test-case name="29360decimal016_1890.v tokoe:valid" result="pass"/><test-case name="29361decimal017_1891 tokoe:valid" result="pass"/><test-case name="29362decimal017_1891.i tokoe:invalid" result="pass"/><test-case name="29363decimal018_1892 tokoe:valid" result="pass"/><test-case name="29364decimal018_1892.i tokoe:invalid" result="pass"/><test-case name="29365decimal019_1893 tokoe:valid" result="pass"/><test-case name="29366decimal019_1893.i tokoe:invalid" result="pass"/><test-case name="29367decimal020_1894 tokoe:valid" result="pass"/><test-case name="29368decimal020_1894.i tokoe:invalid" result="pass"/><test-case name="29369decimal021_1895 tokoe:valid" result="pass"/><test-case name="29370decimal021_1895.i tokoe:invalid" result="pass"/><test-case name="29371decimal022_1896 tokoe:valid" result="pass"/><test-case name="29372decimal022_1896.i tokoe:invalid" result="pass"/><test-case name="29373decimal023_1897 tokoe:valid" result="pass"/><test-case name="29374decimal023_1897.i tokoe:invalid" result="pass"/><test-case name="29375decimal024_1898 tokoe:valid" result="pass"/><test-case name="29376decimal024_1898.i tokoe:invalid" result="pass"/><test-case name="29377decimal025_1899 tokoe:valid" result="pass"/><test-case name="29378decimal025_1899.i tokoe:invalid" result="pass"/><test-case name="29379float001_1900 tokoe:valid" result="pass"/><test-case name="29380float001_1900.i tokoe:invalid" result="pass"/><test-case name="29381float002_1901 tokoe:valid" result="pass"/><test-case name="29382float002_1901.v tokoe:valid" result="pass"/><test-case name="29383float003_1902 tokoe:valid" result="pass"/><test-case name="29384float003_1902.v tokoe:valid" result="pass"/><test-case name="29385float004_1903 tokoe:valid" result="pass"/><test-case name="29386float004_1903.v tokoe:valid" result="pass"/><test-case name="29387float005_1904 tokoe:valid" result="pass"/><test-case name="29388float005_1904.v tokoe:valid" result="pass"/><test-case name="29389float006_1905 tokoe:valid" result="pass"/><test-case name="29390float006_1905.v tokoe:valid" result="pass"/><test-case name="29391float007_1906 tokoe:valid" result="pass"/><test-case name="29392float007_1906.v tokoe:valid" result="pass"/><test-case name="29393float008_1907 tokoe:valid" result="pass"/><test-case name="29394float008_1907.v tokoe:valid" result="pass"/><test-case name="29395float009_1908 tokoe:valid" result="pass"/><test-case name="29396float009_1908.v tokoe:valid" result="pass"/><test-case name="29397float010_1909 tokoe:valid" result="pass"/><test-case name="29398float010_1909.v tokoe:valid" result="pass"/><test-case name="29399float011_1910 tokoe:valid" result="pass"/><test-case name="29400float011_1910.v tokoe:valid" result="pass"/><test-case name="29401float012_1911 tokoe:valid" result="pass"/><test-case name="29402float012_1911.v tokoe:valid" result="pass"/><test-case name="29403float013_1912 tokoe:valid" result="pass"/><test-case name="29404float013_1912.v tokoe:valid" result="pass"/><test-case name="29405float014_1913 tokoe:valid" result="pass"/><test-case name="29406float014_1913.v tokoe:valid" result="pass"/><test-case name="29407float015_1914 tokoe:valid" result="pass"/><test-case name="29408float015_1914.i tokoe:invalid" result="pass"/><test-case name="29409float016_1915 tokoe:valid" result="pass"/><test-case name="29410float016_1915.i tokoe:invalid" result="pass"/><test-case name="29411float017_1916 tokoe:valid" result="pass"/><test-case name="29412float017_1916.v tokoe:valid" result="pass"/><test-case name="29413float018_1917 tokoe:valid" result="pass"/><test-case name="29414float018_1917.i tokoe:invalid" result="pass"/><test-case name="29415float019_1918 tokoe:valid" result="pass"/><test-case name="29416float019_1918.v tokoe:valid" result="pass"/><test-case name="29417float020_1919 tokoe:valid" result="pass"/><test-case name="29418float020_1919.v tokoe:valid" result="pass"/><test-case name="29419float021_1920 tokoe:valid" result="pass"/><test-case name="29420float021_1920.v tokoe:valid" result="pass"/><test-case name="29421float022_1921 tokoe:valid" result="pass"/><test-case name="29422float022_1921.i tokoe:invalid" result="pass"/><test-case name="29423float023_1922 tokoe:valid" result="pass"/><test-case name="29424float023_1922.i tokoe:invalid" result="pass"/><test-case name="29425float024_1923 tokoe:valid" result="pass"/><test-case name="29426float024_1923.i tokoe:invalid" result="pass"/><test-case name="29427float025_1924 tokoe:valid" result="pass"/><test-case name="29428float025_1924.i tokoe:invalid" result="pass"/><test-case name="29429float026_1925 tokoe:valid" result="pass"/><test-case name="29430float026_1925.i tokoe:invalid" result="pass"/><test-case name="29431float027_1926 tokoe:valid" result="pass"/><test-case name="29432float027_1926.i tokoe:invalid" result="pass"/><test-case name="29433float028_1927 tokoe:valid" result="pass"/><test-case name="29434float028_1927.v tokoe:valid" result="pass"/><test-case name="29435float029_1928 tokoe:valid" result="pass"/><test-case name="29436float029_1928.v tokoe:valid" result="pass"/><test-case name="29437float030_1929 tokoe:valid" result="pass"/><test-case name="29438float030_1929.v tokoe:valid" result="pass"/><test-case name="29439float031_1930 tokoe:valid" result="pass"/><test-case name="29440float031_1930.v tokoe:valid" result="pass"/><test-case name="29441float032_1931 tokoe:valid" result="pass"/><test-case name="29442float032_1931.v tokoe:valid" result="pass"/><test-case name="29443float033_1932 tokoe:valid" result="pass"/><test-case name="29444float033_1932.v tokoe:valid" result="pass"/><test-case name="29445float034_1933 tokoe:valid" result="pass"/><test-case name="29446float034_1933.v tokoe:valid" result="pass"/><test-case name="29447float035_1934 tokoe:valid" result="pass"/><test-case name="29448float035_1934.i tokoe:invalid" result="pass"/><test-case name="29449float036_1935 tokoe:valid" result="pass"/><test-case name="29450float036_1935.i tokoe:invalid" result="pass"/><test-case name="29451float037_1936 tokoe:valid" result="pass"/><test-case name="29452float037_1936.i tokoe:invalid" result="pass"/><test-case name="29453float038_1937 tokoe:valid" result="pass"/><test-case name="29454float038_1937.v tokoe:valid" result="pass"/><test-case name="29455float039_1938 tokoe:valid" result="pass"/><test-case name="29456float039_1938.v tokoe:valid" result="pass"/><test-case name="29457double001_1939 tokoe:valid" result="pass"/><test-case name="29458double001_1939.i tokoe:invalid" result="pass"/><test-case name="29459double002_1940 tokoe:valid" result="pass"/><test-case name="29460double002_1940.v tokoe:valid" result="pass"/><test-case name="29461double003_1941 tokoe:valid" result="pass"/><test-case name="29462double003_1941.v tokoe:valid" result="pass"/><test-case name="29463double004_1942 tokoe:valid" result="pass"/><test-case name="29464double004_1942.v tokoe:valid" result="pass"/><test-case name="29465double005_1943 tokoe:valid" result="pass"/><test-case name="29466double005_1943.v tokoe:valid" result="pass"/><test-case name="29467double006_1944 tokoe:valid" result="pass"/><test-case name="29468double006_1944.v tokoe:valid" result="pass"/><test-case name="29469double007_1945 tokoe:valid" result="pass"/><test-case name="29470double007_1945.v tokoe:valid" result="pass"/><test-case name="29471double008_1946 tokoe:valid" result="pass"/><test-case name="29472double008_1946.v tokoe:valid" result="pass"/><test-case name="29473double009_1947 tokoe:valid" result="pass"/><test-case name="29474double009_1947.v tokoe:valid" result="pass"/><test-case name="29475double010_1948 tokoe:valid" result="pass"/><test-case name="29476double010_1948.v tokoe:valid" result="pass"/><test-case name="29477double011_1949 tokoe:valid" result="pass"/><test-case name="29478double011_1949.v tokoe:valid" result="pass"/><test-case name="29479double012_1950 tokoe:valid" result="pass"/><test-case name="29480double012_1950.v tokoe:valid" result="pass"/><test-case name="29481double013_1951 tokoe:valid" result="pass"/><test-case name="29482double013_1951.v tokoe:valid" result="pass"/><test-case name="29483double014_1952 tokoe:valid" result="pass"/><test-case name="29484double014_1952.v tokoe:valid" result="pass"/><test-case name="29485double015_1953 tokoe:valid" result="pass"/><test-case name="29486double015_1953.i tokoe:invalid" result="pass"/><test-case name="29487double016_1954 tokoe:valid" result="pass"/><test-case name="29488double016_1954.i tokoe:invalid" result="pass"/><test-case name="29489double017_1955 tokoe:valid" result="pass"/><test-case name="29490double017_1955.v tokoe:valid" result="pass"/><test-case name="29491double018_1956 tokoe:valid" result="pass"/><test-case name="29492double018_1956.i tokoe:invalid" result="pass"/><test-case name="29493double019_1957 tokoe:valid" result="pass"/><test-case name="29494double019_1957.v tokoe:valid" result="pass"/><test-case name="29495double020_1958 tokoe:valid" result="pass"/><test-case name="29496double020_1958.v tokoe:valid" result="pass"/><test-case name="29497double021_1959 tokoe:valid" result="pass"/><test-case name="29498double021_1959.v tokoe:valid" result="pass"/><test-case name="29499double022_1960 tokoe:valid" result="pass"/><test-case name="29500double022_1960.i tokoe:invalid" result="pass"/><test-case name="29501double023_1961 tokoe:valid" result="pass"/><test-case name="29502double023_1961.i tokoe:invalid" result="pass"/><test-case name="29503double024_1962 tokoe:valid" result="pass"/><test-case name="29504double024_1962.i tokoe:invalid" result="pass"/><test-case name="29505double025_1963 tokoe:valid" result="pass"/><test-case name="29506double025_1963.i tokoe:invalid" result="pass"/><test-case name="29507double026_1964 tokoe:valid" result="pass"/><test-case name="29508double026_1964.i tokoe:invalid" result="pass"/><test-case name="29509double027_1965 tokoe:valid" result="pass"/><test-case name="29510double027_1965.v tokoe:valid" result="pass"/><test-case name="29511double028_1966 tokoe:valid" result="pass"/><test-case name="29512double028_1966.v tokoe:valid" result="pass"/><test-case name="29513double029_1967 tokoe:valid" result="pass"/><test-case name="29514double029_1967.i tokoe:invalid" result="pass"/><test-case name="29515double030_1968 tokoe:valid" result="pass"/><test-case name="29516double030_1968.v tokoe:valid" result="pass"/><test-case name="29517duration001_1969 tokoe:valid" result="pass"/><test-case name="29518duration001_1969.i tokoe:invalid" result="pass"/><test-case name="29519duration002_1970 tokoe:valid" result="pass"/><test-case name="29520duration002_1970.v tokoe:valid" result="pass"/><test-case name="29521duration003_1971 tokoe:valid" result="pass"/><test-case name="29522duration003_1971.v tokoe:valid" result="pass"/><test-case name="29523duration004_1972 tokoe:valid" result="pass"/><test-case name="29524duration004_1972.v tokoe:valid" result="pass"/><test-case name="29525duration005_1973 tokoe:valid" result="pass"/><test-case name="29526duration005_1973.v tokoe:valid" result="pass"/><test-case name="29527duration006_1974 tokoe:valid" result="pass"/><test-case name="29528duration006_1974.v tokoe:valid" result="pass"/><test-case name="29529duration007_1975 tokoe:valid" result="pass"/><test-case name="29530duration007_1975.v tokoe:valid" result="pass"/><test-case name="29531duration008_1976 tokoe:valid" result="pass"/><test-case name="29532duration008_1976.i tokoe:invalid" result="pass"/><test-case name="29533duration009_1977 tokoe:valid" result="pass"/><test-case name="29534duration009_1977.v tokoe:valid" result="pass"/><test-case name="29535duration010_1978 tokoe:valid" result="pass"/><test-case name="29536duration010_1978.i tokoe:invalid" result="pass"/><test-case name="29537duration011_1979 tokoe:valid" result="pass"/><test-case name="29538duration011_1979.i tokoe:invalid" result="pass"/><test-case name="29539duration012_1980 tokoe:valid" result="pass"/><test-case name="29540duration012_1980.v tokoe:valid" result="pass"/><test-case name="29541duration013_1981 tokoe:valid" result="pass"/><test-case name="29542duration013_1981.i tokoe:invalid" result="pass"/><test-case name="29543duration014_1982 tokoe:valid" result="pass"/><test-case name="29544duration014_1982.v tokoe:valid" result="pass"/><test-case name="29545duration015_1983 tokoe:valid" result="pass"/><test-case name="29546duration015_1983.i tokoe:invalid" result="pass"/><test-case name="29547duration016_1984 tokoe:valid" result="pass"/><test-case name="29548duration016_1984.v tokoe:valid" result="pass"/><test-case name="29549duration017_1985 tokoe:valid" result="pass"/><test-case name="29550duration017_1985.v tokoe:valid" result="pass"/><test-case name="29551duration018_1986 tokoe:valid" result="pass"/><test-case name="29552duration018_1986.v tokoe:valid" result="pass"/><test-case name="29553duration019_1987 tokoe:valid" result="pass"/><test-case name="29554duration019_1987.v tokoe:valid" result="pass"/><test-case name="29555duration020_1988 tokoe:valid" result="pass"/><test-case name="29556duration020_1988.v tokoe:valid" result="pass"/><test-case name="29557duration021_1989 tokoe:valid" result="pass"/><test-case name="29558duration021_1989.i tokoe:invalid" result="pass"/><test-case name="29559duration022_1990 tokoe:valid" result="pass"/><test-case name="29560duration022_1990.v tokoe:valid" result="pass"/><test-case name="29561duration023_1991 tokoe:valid" result="pass"/><test-case name="29562duration023_1991.v tokoe:valid" result="pass"/><test-case name="29563duration024_1992 tokoe:valid" result="pass"/><test-case name="29564duration024_1992.v tokoe:valid" result="pass"/><test-case name="29565duration025_1993 tokoe:valid" result="pass"/><test-case name="29566duration025_1993.v tokoe:valid" result="pass"/><test-case name="29567duration026_1994 tokoe:valid" result="pass"/><test-case name="29568duration026_1994.v tokoe:valid" result="pass"/><test-case name="29569duration027_1995 tokoe:valid" result="pass"/><test-case name="29570duration027_1995.v tokoe:valid" result="pass"/><test-case name="29571duration028_1996 tokoe:valid" result="pass"/><test-case name="29572duration028_1996.i tokoe:invalid" result="pass"/><test-case name="29573duration029_1997 tokoe:valid" result="pass"/><test-case name="29574duration029_1997.i tokoe:invalid" result="pass"/><test-case name="29575duration030_1998 tokoe:valid" result="pass"/><test-case name="29576duration030_1998.i tokoe:invalid" result="pass"/><test-case name="29577dateTime001_1999 tokoe:valid" result="pass"/><test-case name="29578dateTime001_1999.i tokoe:invalid" result="pass"/><test-case name="29579dateTime002_2000 tokoe:valid" result="pass"/><test-case name="29580dateTime002_2000.v tokoe:valid" result="pass"/><test-case name="29581dateTime003_2001 tokoe:valid" result="pass"/><test-case name="29582dateTime003_2001.v tokoe:valid" result="pass"/><test-case name="29583dateTime004_2002 tokoe:valid" result="pass"/><test-case name="29584dateTime004_2002.i tokoe:invalid" result="pass"/><test-case name="29585dateTime005_2003 tokoe:valid" result="pass"/><test-case name="29586dateTime005_2003.v tokoe:valid" result="pass"/><test-case name="29587dateTime006_2004 tokoe:valid" result="pass"/><test-case name="29588dateTime006_2004.v tokoe:valid" result="pass"/><test-case name="29589dateTime007_2005 tokoe:valid" result="pass"/><test-case name="29590dateTime007_2005.v tokoe:valid" result="pass"/><test-case name="29591dateTime008_2006 tokoe:valid" result="pass"/><test-case name="29592dateTime008_2006.v tokoe:valid" result="pass"/><test-case name="29593dateTime010_2007 tokoe:valid" result="pass"/><test-case name="29594dateTime010_2007.v tokoe:valid" result="pass"/><test-case name="29595dateTime011_2008 tokoe:valid" result="pass"/><test-case name="29596dateTime011_2008.i tokoe:invalid" result="pass"/><test-case name="29597dateTime013_2009 tokoe:valid" result="pass"/><test-case name="29598dateTime013_2009.i tokoe:invalid" result="pass"/><test-case name="29599time001_2010 tokoe:valid" result="pass"/><test-case name="29600time001_2010.i tokoe:invalid" result="pass"/><test-case name="29601time002_2011 tokoe:valid" result="pass"/><test-case name="29602time002_2011.i tokoe:invalid" result="pass"/><test-case name="29603time003_2012 tokoe:valid" result="pass"/><test-case name="29604time003_2012.i tokoe:invalid" result="pass"/><test-case name="29605time004_2013 tokoe:valid" result="pass"/><test-case name="29606time004_2013.v tokoe:valid" result="pass"/><test-case name="29607time005_2014 tokoe:valid" result="pass"/><test-case name="29608time005_2014.v tokoe:valid" result="pass"/><test-case name="29609time006_2015 tokoe:valid" result="pass"/><test-case name="29610time006_2015.v tokoe:valid" result="pass"/><test-case name="29611time007_2016 tokoe:valid" result="pass"/><test-case name="29612time007_2016.v tokoe:valid" result="pass"/><test-case name="29613time008_2017 tokoe:valid" result="pass"/><test-case name="29614time008_2017.v tokoe:valid" result="pass"/><test-case name="29615time009_2018 tokoe:valid" result="pass"/><test-case name="29616time009_2018.v tokoe:valid" result="pass"/><test-case name="29617time011_2019 tokoe:valid" result="pass"/><test-case name="29618time011_2019.v tokoe:valid" result="pass"/><test-case name="29619time012_2020 tokoe:valid" result="pass"/><test-case name="29620time012_2020.v tokoe:valid" result="pass"/><test-case name="29621time013_2021 tokoe:valid" result="pass"/><test-case name="29622time013_2021.v tokoe:valid" result="pass"/><test-case name="29623time014_2022 tokoe:valid" result="pass"/><test-case name="29624time014_2022.i tokoe:invalid" result="pass"/><test-case name="29625time015_2023 tokoe:valid" result="pass"/><test-case name="29626time015_2023.i tokoe:invalid" result="pass"/><test-case name="29627time016_2024 tokoe:valid" result="pass"/><test-case name="29628time016_2024.i tokoe:invalid" result="pass"/><test-case name="29629time017_2025 tokoe:valid" result="pass"/><test-case name="29630time017_2025.i tokoe:invalid" result="pass"/><test-case name="29631time018_2026 tokoe:valid" result="pass"/><test-case name="29632time018_2026.i tokoe:invalid" result="pass"/><test-case name="29633time019_2027 tokoe:valid" result="pass"/><test-case name="29634time019_2027.i tokoe:invalid" result="pass"/><test-case name="29635time020_2028 tokoe:valid" result="pass"/><test-case name="29636time020_2028.i tokoe:invalid" result="pass"/><test-case name="29637time021_2029 tokoe:valid" result="pass"/><test-case name="29638time021_2029.i tokoe:invalid" result="pass"/><test-case name="29639time022_2030 tokoe:valid" result="pass"/><test-case name="29640time022_2030.i tokoe:invalid" result="pass"/><test-case name="29641date001_2031 tokoe:valid" result="pass"/><test-case name="29642date001_2031.i tokoe:invalid" result="pass"/><test-case name="29643date002_2032 tokoe:valid" result="pass"/><test-case name="29644date002_2032.v tokoe:valid" result="pass"/><test-case name="29645date003_2033 tokoe:valid" result="pass"/><test-case name="29646date003_2033.i tokoe:invalid" result="pass"/><test-case name="29647date004_2034 tokoe:valid" result="pass"/><test-case name="29648date004_2034.i tokoe:invalid" result="pass"/><test-case name="29649date005_2035 tokoe:valid" result="pass"/><test-case name="29650date005_2035.v tokoe:valid" result="pass"/><test-case name="29651date006_2036 tokoe:valid" result="pass"/><test-case name="29652date006_2036.i tokoe:invalid" result="pass"/><test-case name="29653date009_2037 tokoe:valid" result="pass"/><test-case name="29654date009_2037.i tokoe:invalid" result="pass"/><test-case name="29655date010_2038 tokoe:valid" result="pass"/><test-case name="29656date010_2038.v tokoe:valid" result="pass"/><test-case name="29657date011_2039 tokoe:valid" result="pass"/><test-case name="29658date011_2039.i tokoe:invalid" result="pass"/><test-case name="29659gYearMonth001_2040 tokoe:valid" result="pass"/><test-case name="29660gYearMonth001_2040.i tokoe:invalid" result="pass"/><test-case name="29661gYearMonth002_2041 tokoe:valid" result="pass"/><test-case name="29662gYearMonth002_2041.v tokoe:valid" result="pass"/><test-case name="29663gYearMonth003_2042 tokoe:valid" result="pass"/><test-case name="29664gYearMonth003_2042.v tokoe:valid" result="pass"/><test-case name="29665gYearMonth004_2043 tokoe:valid" result="pass"/><test-case name="29666gYearMonth004_2043.i tokoe:invalid" result="pass"/><test-case name="29667gYearMonth006_2044 tokoe:valid" result="pass"/><test-case name="29668gYearMonth006_2044.i tokoe:invalid" result="pass"/><test-case name="29669gYear001_2045 tokoe:valid" result="pass"/><test-case name="29670gYear001_2045.i tokoe:invalid" result="pass"/><test-case name="29671gYear002_2046 tokoe:valid" result="pass"/><test-case name="29672gYear002_2046.v tokoe:valid" result="pass"/><test-case name="29673gYear005_2047 tokoe:valid" result="pass"/><test-case name="29674gYear005_2047.i tokoe:invalid" result="pass"/><test-case name="29675gYear006_2048 tokoe:valid" result="pass"/><test-case name="29676gYear006_2048.v tokoe:valid" result="pass"/><test-case name="29677gMonthDay001_2049 tokoe:valid" result="pass"/><test-case name="29678gMonthDay001_2049.i tokoe:invalid" result="pass"/><test-case name="29679gMonthDay002_2050 tokoe:valid" result="pass"/><test-case name="29680gMonthDay002_2050.v tokoe:valid" result="pass"/><test-case name="29681gMonthDay003_2051 tokoe:valid" result="pass"/><test-case name="29682gMonthDay003_2051.v tokoe:valid" result="pass"/><test-case name="29683gMonthDay004_2052 tokoe:valid" result="pass"/><test-case name="29684gMonthDay004_2052.v tokoe:valid" result="pass"/><test-case name="29685gMonthDay005_2053 tokoe:valid" result="pass"/><test-case name="29686gMonthDay005_2053.i tokoe:invalid" result="pass"/><test-case name="29687gMonthDay006_2054 tokoe:valid" result="pass"/><test-case name="29688gMonthDay006_2054.i tokoe:invalid" result="pass"/><test-case name="29689gDay001_2055 tokoe:valid" result="pass"/><test-case name="29690gDay001_2055.v tokoe:valid" result="pass"/><test-case name="29691gDay002_2056 tokoe:valid" result="pass"/><test-case name="29692gDay002_2056.v tokoe:valid" result="pass"/><test-case name="29693gDay003_2057 tokoe:valid" result="pass"/><test-case name="29694gDay003_2057.v tokoe:valid" result="pass"/><test-case name="29695gDay004_2058 tokoe:valid" result="pass"/><test-case name="29696gDay004_2058.i tokoe:invalid" result="pass"/><test-case name="29697gDay005_2059 tokoe:valid" result="pass"/><test-case name="29698gDay005_2059.i tokoe:invalid" result="pass"/><test-case name="29699gMonth001_2060 tokoe:valid" result="pass"/><test-case name="29700gMonth001_2060.i tokoe:invalid" result="pass"/><test-case name="29701gMonth002_2061 tokoe:valid" result="pass"/><test-case name="29702gMonth002_2061.v tokoe:valid" result="fail"/><test-case name="29703gMonth003_2062 tokoe:valid" result="pass"/><test-case name="29704gMonth003_2062.i tokoe:invalid" result="pass"/><test-case name="29705gMonth004_2063 tokoe:valid" result="pass"/><test-case name="29706gMonth004_2063.v tokoe:valid" result="fail"/><test-case name="29707gMonth005_2064 tokoe:valid" result="pass"/><test-case name="29708gMonth005_2064.i tokoe:invalid" result="pass"/><test-case name="29709gMonth006_2065 tokoe:valid" result="pass"/><test-case name="29710gMonth006_2065.i tokoe:invalid" result="pass"/><test-case name="29711gMonth007_2066 tokoe:valid" result="pass"/><test-case name="29712gMonth007_2066.i tokoe:invalid" result="pass"/><test-case name="29713hexBinary001_2067 tokoe:valid" result="pass"/><test-case name="29714hexBinary001_2067.v tokoe:valid" result="pass"/><test-case name="29715hexBinary002_2068 tokoe:valid" result="pass"/><test-case name="29716hexBinary002_2068.v tokoe:valid" result="pass"/><test-case name="29717hexBinary004_2070 tokoe:valid" result="pass"/><test-case name="29718hexBinary004_2070.i tokoe:invalid" result="pass"/><test-case name="29719base64Binary001_2071 tokoe:valid" result="pass"/><test-case name="29720base64Binary001_2071.v tokoe:valid" result="pass"/><test-case name="29721base64Binary002_2072 tokoe:valid" result="pass"/><test-case name="29722base64Binary002_2072.v tokoe:valid" result="pass"/><test-case name="29723anyURI001_2073 tokoe:valid" result="pass"/><test-case name="29724anyURI001_2073.v tokoe:valid" result="pass"/><test-case name="29725anyURI002_2074 tokoe:valid" result="pass"/><test-case name="29726anyURI002_2074.v tokoe:valid" result="pass"/><test-case name="29727anyURI003_2075 tokoe:valid" result="pass"/><test-case name="29728anyURI003_2075.v tokoe:valid" result="pass"/><test-case name="29729anyURI004_2076 tokoe:valid" result="pass"/><test-case name="29730anyURI004_2076.v tokoe:valid" result="pass"/><test-case name="29731anyURI005_2077 tokoe:valid" result="pass"/><test-case name="29732anyURI005_2077.v tokoe:valid" result="pass"/><test-case name="29733anyURI006_2078 tokoe:valid" result="pass"/><test-case name="29734anyURI006_2078.v tokoe:valid" result="pass"/><test-case name="29735anyURI007_2079 tokoe:valid" result="pass"/><test-case name="29736anyURI007_2079.v tokoe:valid" result="pass"/><test-case name="29737anyURI008_2080 tokoe:valid" result="pass"/><test-case name="29738anyURI008_2080.v tokoe:valid" result="pass"/><test-case name="29739anyURI009_2081 tokoe:valid" result="pass"/><test-case name="29740anyURI009_2081.v tokoe:valid" result="pass"/><test-case name="29741anyURI010_2082 tokoe:valid" result="pass"/><test-case name="29742anyURI010_2082.v tokoe:valid" result="pass"/><test-case name="29743anyURI011_2083 tokoe:valid" result="pass"/><test-case name="29744anyURI011_2083.v tokoe:valid" result="pass"/><test-case name="29745QName001_2084 tokoe:valid" result="pass"/><test-case name="29746QName001_2084.i tokoe:invalid" result="pass"/><test-case name="29747QName002_2085 tokoe:valid" result="pass"/><test-case name="29748QName002_2085.v tokoe:valid" result="pass"/><test-case name="29749QName003_2086 tokoe:valid" result="pass"/><test-case name="29750QName003_2086.v tokoe:valid" result="pass"/><test-case name="29751QName004_2087 tokoe:valid" result="pass"/><test-case name="29752QName004_2087.i tokoe:invalid" result="pass"/><test-case name="29753QName005_2088 tokoe:valid" result="pass"/><test-case name="29754QName005_2088.i tokoe:invalid" result="pass"/><test-case name="29755QName006_2089 tokoe:valid" result="pass"/><test-case name="29756QName006_2089.v tokoe:valid" result="pass"/><test-case name="29757QName007_2090 tokoe:valid" result="pass"/><test-case name="29758QName007_2090.i tokoe:invalid" result="pass"/><test-case name="29759QName008_2091 tokoe:valid" result="pass"/><test-case name="29760QName008_2091.i tokoe:invalid" result="pass"/><test-case name="29761QName010_2093 tokoe:valid" result="pass"/><test-case name="29762QName010_2093.i tokoe:invalid" result="pass"/><test-case name="29763QName011_2094 tokoe:valid" result="pass"/><test-case name="29764QName011_2094.i tokoe:invalid" result="pass"/><test-case name="29765normalizedString001_2095 tokoe:valid" result="pass"/><test-case name="29766normalizedString001_2095.v tokoe:valid" result="pass"/><test-case name="29767normalizedString002_2096 tokoe:valid" result="pass"/><test-case name="29768normalizedString002_2096.v tokoe:valid" result="pass"/><test-case name="29769normalizedString003_2097 tokoe:valid" result="pass"/><test-case name="29770normalizedString003_2097.v tokoe:valid" result="pass"/><test-case name="29771token001_2098 tokoe:valid" result="pass"/><test-case name="29772token001_2098.v tokoe:valid" result="pass"/><test-case name="29773token002_2099 tokoe:valid" result="pass"/><test-case name="29774token002_2099.v tokoe:valid" result="pass"/><test-case name="29775token003_2100 tokoe:valid" result="pass"/><test-case name="29776token003_2100.v tokoe:valid" result="pass"/><test-case name="29777token004_2101 tokoe:valid" result="pass"/><test-case name="29778token004_2101.v tokoe:valid" result="pass"/><test-case name="29779language001_2102 tokoe:valid" result="pass"/><test-case name="29780language001_2102.i tokoe:invalid" result="pass"/><test-case name="29781language002_2103 tokoe:valid" result="pass"/><test-case name="29782language002_2103.v tokoe:valid" result="pass"/><test-case name="29783language003_2104 tokoe:valid" result="pass"/><test-case name="29784language003_2104.v tokoe:valid" result="pass"/><test-case name="29785language004_2105 tokoe:valid" result="pass"/><test-case name="29786language004_2105.v tokoe:valid" result="pass"/><test-case name="29787language005_2106 tokoe:valid" result="pass"/><test-case name="29788language005_2106.v tokoe:valid" result="pass"/><test-case name="29789language006_2107 tokoe:valid" result="pass"/><test-case name="29790language006_2107.v tokoe:valid" result="pass"/><test-case name="29791language007_2108 tokoe:valid" result="pass"/><test-case name="29792language007_2108.v tokoe:valid" result="pass"/><test-case name="29793language008_2109 tokoe:valid" result="pass"/><test-case name="29794language008_2109.i tokoe:invalid" result="pass"/><test-case name="29795language009_2110 tokoe:valid" result="pass"/><test-case name="29796language009_2110.v tokoe:valid" result="pass"/><test-case name="29797language010_2111 tokoe:valid" result="pass"/><test-case name="29798language010_2111.i tokoe:invalid" result="pass"/><test-case name="29799Name001_2112 tokoe:valid" result="pass"/><test-case name="29800Name001_2112.i tokoe:invalid" result="pass"/><test-case name="29801Name002_2113 tokoe:valid" result="pass"/><test-case name="29802Name002_2113.v tokoe:valid" result="pass"/><test-case name="29803Name003_2114 tokoe:valid" result="pass"/><test-case name="29804Name003_2114.v tokoe:valid" result="pass"/><test-case name="29805Name004_2115 tokoe:valid" result="pass"/><test-case name="29806Name004_2115.i tokoe:invalid" result="pass"/><test-case name="29807Name005_2116 tokoe:valid" result="pass"/><test-case name="29808Name005_2116.i tokoe:invalid" result="pass"/><test-case name="29809Name006_2117 tokoe:valid" result="pass"/><test-case name="29810Name006_2117.i tokoe:invalid" result="pass"/><test-case name="29811Name007_2118 tokoe:valid" result="pass"/><test-case name="29812Name007_2118.v tokoe:valid" result="pass"/><test-case name="29813Name008_2119 tokoe:valid" result="pass"/><test-case name="29814Name008_2119.v tokoe:valid" result="pass"/><test-case name="29815Name009_2120 tokoe:valid" result="pass"/><test-case name="29816Name009_2120.v tokoe:valid" result="pass"/><test-case name="29817Name010_2121 tokoe:valid" result="pass"/><test-case name="29818Name010_2121.v tokoe:valid" result="pass"/><test-case name="29819Name011_2122 tokoe:valid" result="pass"/><test-case name="29820Name011_2122.v tokoe:valid" result="pass"/><test-case name="29821Name012_2123 tokoe:valid" result="pass"/><test-case name="29822Name012_2123.v tokoe:valid" result="pass"/><test-case name="29823Name013_2124 tokoe:valid" result="pass"/><test-case name="29824Name013_2124.v tokoe:valid" result="pass"/><test-case name="29825Name014_2125 tokoe:valid" result="pass"/><test-case name="29826Name014_2125.i tokoe:invalid" result="pass"/><test-case name="29827Name015_2126 tokoe:valid" result="pass"/><test-case name="29828Name015_2126.v tokoe:valid" result="pass"/><test-case name="29829Name016_2127 tokoe:valid" result="pass"/><test-case name="29830Name016_2127.v tokoe:valid" result="pass"/><test-case name="29831Name017_2128 tokoe:valid" result="pass"/><test-case name="29832Name017_2128.i tokoe:invalid" result="pass"/><test-case name="29833Name018_2129 tokoe:valid" result="pass"/><test-case name="29834Name018_2129.i tokoe:invalid" result="pass"/><test-case name="29835NCName001_2130 tokoe:valid" result="pass"/><test-case name="29836NCName001_2130.i tokoe:invalid" result="pass"/><test-case name="29837NCName002_2131 tokoe:valid" result="pass"/><test-case name="29838NCName002_2131.v tokoe:valid" result="pass"/><test-case name="29839NCName003_2132 tokoe:valid" result="pass"/><test-case name="29840NCName003_2132.v tokoe:valid" result="pass"/><test-case name="29841NCName004_2133 tokoe:valid" result="pass"/><test-case name="29842NCName004_2133.i tokoe:invalid" result="pass"/><test-case name="29843NCName005_2134 tokoe:valid" result="pass"/><test-case name="29844NCName005_2134.i tokoe:invalid" result="pass"/><test-case name="29845NCName006_2135 tokoe:valid" result="pass"/><test-case name="29846NCName006_2135.i tokoe:invalid" result="pass"/><test-case name="29847NCName007_2136 tokoe:valid" result="pass"/><test-case name="29848NCName007_2136.v tokoe:valid" result="pass"/><test-case name="29849NCName008_2137 tokoe:valid" result="pass"/><test-case name="29850NCName008_2137.i tokoe:invalid" result="pass"/><test-case name="29851NCName009_2138 tokoe:valid" result="pass"/><test-case name="29852NCName009_2138.i tokoe:invalid" result="pass"/><test-case name="29853NCName010_2139 tokoe:valid" result="pass"/><test-case name="29854NCName010_2139.i tokoe:invalid" result="pass"/><test-case name="29855NCName011_2140 tokoe:valid" result="pass"/><test-case name="29856NCName011_2140.i tokoe:invalid" result="pass"/><test-case name="29857integer001_2141 tokoe:valid" result="pass"/><test-case name="29858integer001_2141.i tokoe:invalid" result="pass"/><test-case name="29859integer002_2142 tokoe:valid" result="pass"/><test-case name="29860integer002_2142.i tokoe:invalid" result="pass"/><test-case name="29861integer003_2143 tokoe:valid" result="pass"/><test-case name="29862integer003_2143.i tokoe:invalid" result="pass"/><test-case name="29863integer004_2144 tokoe:valid" result="pass"/><test-case name="29864integer004_2144.v tokoe:valid" result="pass"/><test-case name="29865integer005_2145 tokoe:valid" result="pass"/><test-case name="29866integer005_2145.v tokoe:valid" result="pass"/><test-case name="29867integer006_2146 tokoe:valid" result="pass"/><test-case name="29868integer006_2146.i tokoe:invalid" result="pass"/><test-case name="29869integer007_2147 tokoe:valid" result="pass"/><test-case name="29870integer007_2147.v tokoe:valid" result="pass"/><test-case name="29871integer008_2148 tokoe:valid" result="pass"/><test-case name="29872integer008_2148.v tokoe:valid" result="pass"/><test-case name="29873integer009_2149 tokoe:valid" result="pass"/><test-case name="29874integer009_2149.v tokoe:valid" result="pass"/><test-case name="29875integer010_2150 tokoe:valid" result="pass"/><test-case name="29876integer010_2150.v tokoe:valid" result="pass"/><test-case name="29877integer011_2151 tokoe:valid" result="pass"/><test-case name="29878integer011_2151.v tokoe:valid" result="fail"/><test-case name="29879integer012_2152 tokoe:valid" result="pass"/><test-case name="29880integer012_2152.i tokoe:invalid" result="pass"/><test-case name="29881integer013_2153 tokoe:valid" result="pass"/><test-case name="29882integer013_2153.i tokoe:invalid" result="pass"/><test-case name="29883integer014_2154 tokoe:valid" result="pass"/><test-case name="29884integer014_2154.i tokoe:invalid" result="pass"/><test-case name="29885integer015_2155 tokoe:valid" result="pass"/><test-case name="29886integer015_2155.i tokoe:invalid" result="pass"/><test-case name="29887integer016_2156 tokoe:valid" result="pass"/><test-case name="29888integer016_2156.i tokoe:invalid" result="pass"/><test-case name="29889nonPositiveInteger001_2157 tokoe:valid" result="pass"/><test-case name="29890nonPositiveInteger001_2157.i tokoe:invalid" result="pass"/><test-case name="29891nonPositiveInteger002_2158 tokoe:valid" result="pass"/><test-case name="29892nonPositiveInteger002_2158.v tokoe:valid" result="pass"/><test-case name="29893nonPositiveInteger003_2159 tokoe:valid" result="pass"/><test-case name="29894nonPositiveInteger003_2159.v tokoe:valid" result="pass"/><test-case name="29895nonPositiveInteger004_2160 tokoe:valid" result="pass"/><test-case name="29896nonPositiveInteger004_2160.i tokoe:invalid" result="pass"/><test-case name="29897nonPositiveInteger005_2161 tokoe:valid" result="pass"/><test-case name="29898nonPositiveInteger005_2161.v tokoe:valid" result="fail"/><test-case name="29899negativeInteger001_2162 tokoe:valid" result="pass"/><test-case name="29900negativeInteger001_2162.i tokoe:invalid" result="pass"/><test-case name="29901negativeInteger002_2163 tokoe:valid" result="pass"/><test-case name="29902negativeInteger002_2163.v tokoe:valid" result="pass"/><test-case name="29903negativeInteger003_2164 tokoe:valid" result="pass"/><test-case name="29904negativeInteger003_2164.i tokoe:invalid" result="pass"/><test-case name="29905negativeInteger004_2165 tokoe:valid" result="pass"/><test-case name="29906negativeInteger004_2165.i tokoe:invalid" result="pass"/><test-case name="29907negativeInteger005_2166 tokoe:valid" result="pass"/><test-case name="29908negativeInteger005_2166.v tokoe:valid" result="fail"/><test-case name="29909long001_2167 tokoe:valid" result="pass"/><test-case name="29910long001_2167.i tokoe:invalid" result="pass"/><test-case name="29911long002_2168 tokoe:valid" result="pass"/><test-case name="29912long002_2168.v tokoe:valid" result="pass"/><test-case name="29913long003_2169 tokoe:valid" result="pass"/><test-case name="29914long003_2169.v tokoe:valid" result="pass"/><test-case name="29915long004_2170 tokoe:valid" result="pass"/><test-case name="29916long004_2170.v tokoe:valid" result="pass"/><test-case name="29917long005_2171 tokoe:valid" result="pass"/><test-case name="29918long005_2171.v tokoe:valid" result="pass"/><test-case name="29919long006_2172 tokoe:valid" result="pass"/><test-case name="29920long006_2172.i tokoe:invalid" result="pass"/><test-case name="29921long007_2173 tokoe:valid" result="pass"/><test-case name="29922long007_2173.v tokoe:valid" result="pass"/><test-case name="29923long008_2174 tokoe:valid" result="pass"/><test-case name="29924long008_2174.i tokoe:invalid" result="pass"/><test-case name="29925long009_2175 tokoe:valid" result="pass"/><test-case name="29926long009_2175.v tokoe:valid" result="pass"/><test-case name="29927int001_2176 tokoe:valid" result="pass"/><test-case name="29928int001_2176.i tokoe:invalid" result="pass"/><test-case name="29929int002_2177 tokoe:valid" result="pass"/><test-case name="29930int002_2177.v tokoe:valid" result="pass"/><test-case name="29931int003_2178 tokoe:valid" result="pass"/><test-case name="29932int003_2178.v tokoe:valid" result="pass"/><test-case name="29933int004_2179 tokoe:valid" result="pass"/><test-case name="29934int004_2179.v tokoe:valid" result="pass"/><test-case name="29935int005_2180 tokoe:valid" result="pass"/><test-case name="29936int005_2180.v tokoe:valid" result="pass"/><test-case name="29937int006_2181 tokoe:valid" result="pass"/><test-case name="29938int006_2181.i tokoe:invalid" result="pass"/><test-case name="29939int007_2182 tokoe:valid" result="pass"/><test-case name="29940int007_2182.v tokoe:valid" result="pass"/><test-case name="29941int008_2183 tokoe:valid" result="pass"/><test-case name="29942int008_2183.i tokoe:invalid" result="pass"/><test-case name="29943short001_2184 tokoe:valid" result="pass"/><test-case name="29944short001_2184.i tokoe:invalid" result="pass"/><test-case name="29945short002_2185 tokoe:valid" result="pass"/><test-case name="29946short002_2185.v tokoe:valid" result="pass"/><test-case name="29947short003_2186 tokoe:valid" result="pass"/><test-case name="29948short003_2186.v tokoe:valid" result="pass"/><test-case name="29949short004_2187 tokoe:valid" result="pass"/><test-case name="29950short004_2187.v tokoe:valid" result="pass"/><test-case name="29951short005_2188 tokoe:valid" result="pass"/><test-case name="29952short005_2188.v tokoe:valid" result="pass"/><test-case name="29953short006_2189 tokoe:valid" result="pass"/><test-case name="29954short006_2189.i tokoe:invalid" result="pass"/><test-case name="29955short007_2190 tokoe:valid" result="pass"/><test-case name="29956short007_2190.v tokoe:valid" result="pass"/><test-case name="29957short008_2191 tokoe:valid" result="pass"/><test-case name="29958short008_2191.i tokoe:invalid" result="pass"/><test-case name="29959short009_2192 tokoe:valid" result="pass"/><test-case name="29960short009_2192.v tokoe:valid" result="pass"/><test-case name="29961byte001_2193 tokoe:valid" result="pass"/><test-case name="29962byte001_2193.i tokoe:invalid" result="pass"/><test-case name="29963byte002_2194 tokoe:valid" result="pass"/><test-case name="29964byte002_2194.v tokoe:valid" result="pass"/><test-case name="29965byte003_2195 tokoe:valid" result="pass"/><test-case name="29966byte003_2195.v tokoe:valid" result="pass"/><test-case name="29967byte004_2196 tokoe:valid" result="pass"/><test-case name="29968byte004_2196.v tokoe:valid" result="pass"/><test-case name="29969byte005_2197 tokoe:valid" result="pass"/><test-case name="29970byte005_2197.v tokoe:valid" result="pass"/><test-case name="29971byte006_2198 tokoe:valid" result="pass"/><test-case name="29972byte006_2198.i tokoe:invalid" result="pass"/><test-case name="29973byte007_2199 tokoe:valid" result="pass"/><test-case name="29974byte007_2199.v tokoe:valid" result="pass"/><test-case name="29975byte008_2200 tokoe:valid" result="pass"/><test-case name="29976byte008_2200.i tokoe:invalid" result="pass"/><test-case name="29977byte009_2201 tokoe:valid" result="pass"/><test-case name="29978byte009_2201.v tokoe:valid" result="pass"/><test-case name="29979nonNegativeInteger001_2202 tokoe:valid" result="pass"/><test-case name="29980nonNegativeInteger001_2202.i tokoe:invalid" result="pass"/><test-case name="29981nonNegativeInteger002_2203 tokoe:valid" result="pass"/><test-case name="29982nonNegativeInteger002_2203.i tokoe:invalid" result="pass"/><test-case name="29983nonNegativeInteger003_2204 tokoe:valid" result="pass"/><test-case name="29984nonNegativeInteger003_2204.v tokoe:valid" result="pass"/><test-case name="29985nonNegativeInteger004_2205 tokoe:valid" result="pass"/><test-case name="29986nonNegativeInteger004_2205.v tokoe:valid" result="pass"/><test-case name="29987nonNegativeInteger005_2206 tokoe:valid" result="pass"/><test-case name="29988nonNegativeInteger005_2206.v tokoe:valid" result="fail"/><test-case name="29989unsignedLong001_2207 tokoe:valid" result="pass"/><test-case name="29990unsignedLong001_2207.i tokoe:invalid" result="pass"/><test-case name="29991unsignedLong002_2208 tokoe:valid" result="pass"/><test-case name="29992unsignedLong002_2208.i tokoe:invalid" result="pass"/><test-case name="29993unsignedLong003_2209 tokoe:valid" result="pass"/><test-case name="29994unsignedLong003_2209.v tokoe:valid" result="pass"/><test-case name="29995unsignedLong004_2210 tokoe:valid" result="pass"/><test-case name="29996unsignedLong004_2210.v tokoe:valid" result="pass"/><test-case name="29997unsignedLong005_2211 tokoe:valid" result="pass"/><test-case name="29998unsignedLong005_2211.v tokoe:valid" result="pass"/><test-case name="29999unsignedLong006_2212 tokoe:valid" result="pass"/><test-case name="30000unsignedLong006_2212.i tokoe:invalid" result="pass"/><test-case name="30001unsignedLong007_2213 tokoe:valid" result="pass"/><test-case name="30002unsignedLong007_2213.v tokoe:valid" result="pass"/><test-case name="30003unsignedInt001_2214 tokoe:valid" result="pass"/><test-case name="30004unsignedInt001_2214.i tokoe:invalid" result="pass"/><test-case name="30005unsignedInt002_2215 tokoe:valid" result="pass"/><test-case name="30006unsignedInt002_2215.i tokoe:invalid" result="pass"/><test-case name="30007unsignedInt003_2216 tokoe:valid" result="pass"/><test-case name="30008unsignedInt003_2216.v tokoe:valid" result="pass"/><test-case name="30009unsignedInt004_2217 tokoe:valid" result="pass"/><test-case name="30010unsignedInt004_2217.v tokoe:valid" result="pass"/><test-case name="30011unsignedInt005_2218 tokoe:valid" result="pass"/><test-case name="30012unsignedInt005_2218.v tokoe:valid" result="pass"/><test-case name="30013unsignedInt006_2219 tokoe:valid" result="pass"/><test-case name="30014unsignedInt006_2219.i tokoe:invalid" result="pass"/><test-case name="30015unsignedInt007_2220 tokoe:valid" result="pass"/><test-case name="30016unsignedInt007_2220.v tokoe:valid" result="pass"/><test-case name="30017unsignedShort001_2221 tokoe:valid" result="pass"/><test-case name="30018unsignedShort001_2221.i tokoe:invalid" result="pass"/><test-case name="30019unsignedShort002_2222 tokoe:valid" result="pass"/><test-case name="30020unsignedShort002_2222.i tokoe:invalid" result="pass"/><test-case name="30021unsignedShort003_2223 tokoe:valid" result="pass"/><test-case name="30022unsignedShort003_2223.v tokoe:valid" result="pass"/><test-case name="30023unsignedShort004_2224 tokoe:valid" result="pass"/><test-case name="30024unsignedShort004_2224.v tokoe:valid" result="pass"/><test-case name="30025unsignedShort005_2225 tokoe:valid" result="pass"/><test-case name="30026unsignedShort005_2225.v tokoe:valid" result="pass"/><test-case name="30027unsignedShort006_2226 tokoe:valid" result="pass"/><test-case name="30028unsignedShort006_2226.i tokoe:invalid" result="pass"/><test-case name="30029unsignedShort007_2227 tokoe:valid" result="pass"/><test-case name="30030unsignedShort007_2227.v tokoe:valid" result="pass"/><test-case name="30031unsignedByte001_2228 tokoe:valid" result="pass"/><test-case name="30032unsignedByte001_2228.i tokoe:invalid" result="pass"/><test-case name="30033unsignedByte002_2229 tokoe:valid" result="pass"/><test-case name="30034unsignedByte002_2229.i tokoe:invalid" result="pass"/><test-case name="30035unsignedByte003_2230 tokoe:valid" result="pass"/><test-case name="30036unsignedByte003_2230.v tokoe:valid" result="pass"/><test-case name="30037unsignedByte004_2231 tokoe:valid" result="pass"/><test-case name="30038unsignedByte004_2231.v tokoe:valid" result="pass"/><test-case name="30039unsignedByte005_2232 tokoe:valid" result="pass"/><test-case name="30040unsignedByte005_2232.v tokoe:valid" result="pass"/><test-case name="30041unsignedByte006_2233 tokoe:valid" result="pass"/><test-case name="30042unsignedByte006_2233.i tokoe:invalid" result="pass"/><test-case name="30043unsignedByte007_2234 tokoe:valid" result="pass"/><test-case name="30044unsignedByte007_2234.v tokoe:valid" result="pass"/><test-case name="30045positiveInteger001_2235 tokoe:valid" result="pass"/><test-case name="30046positiveInteger001_2235.i tokoe:invalid" result="pass"/><test-case name="30047positiveInteger002_2236 tokoe:valid" result="pass"/><test-case name="30048positiveInteger002_2236.i tokoe:invalid" result="pass"/><test-case name="30049positiveInteger003_2237 tokoe:valid" result="pass"/><test-case name="30050positiveInteger003_2237.i tokoe:invalid" result="pass"/><test-case name="30051positiveInteger004_2238 tokoe:valid" result="pass"/><test-case name="30052positiveInteger004_2238.v tokoe:valid" result="pass"/><test-case name="30053positiveInteger005_2239 tokoe:valid" result="pass"/><test-case name="30054positiveInteger005_2239.v tokoe:valid" result="fail"/><test-case name="30055ID_test64335_2240 tokoe:valid" result="pass"/><test-case name="30056ID_test64335_2240.v tokoe:valid" result="pass"/><test-case name="30057ID_test70681_2241 tokoe:valid" result="pass"/><test-case name="30058ID_test70681_2241.v tokoe:valid" result="pass"/><test-case name="30059dtZ100507_2242 tokoe:valid" result="pass"/><test-case name="30060dtZ100507_2242.i tokoe:invalid" result="pass"/><test-case name="30061dtZ107447_2243 tokoe:valid" result="pass"/><test-case name="30062dtZ107447_2243.v tokoe:valid" result="pass"/><test-case name="30063dtZ107447_1_2244 tokoe:valid" result="pass"/><test-case name="30064dtZ107447_1_2244.v tokoe:valid" result="pass"/><test-case name="30065dtZ86723_2246 tokoe:valid" result="pass"/><test-case name="30066dtZ86723_2246.i tokoe:invalid" result="pass"/><test-case name="30067elemA001 tokoe:invalid" result="pass"/><test-case name="30068elemA002 tokoe:valid" result="pass"/><test-case name="30069elemA003 tokoe:valid" result="pass"/><test-case name="30070elemA004 tokoe:valid" result="pass"/><test-case name="30071elemA005 tokoe:valid" result="pass"/><test-case name="30072elemA006 tokoe:invalid" result="pass"/><test-case name="30073elemA007 tokoe:valid" result="pass"/><test-case name="30074elemA009 tokoe:invalid" result="pass"/><test-case name="30075elemA010 tokoe:invalid" result="pass"/><test-case name="30076elemA011 tokoe:invalid" result="pass"/><test-case name="30077elemA012 tokoe:invalid" result="pass"/><test-case name="30078elemA013 tokoe:invalid" result="pass"/><test-case name="30079elemA014 tokoe:invalid" result="pass"/><test-case name="30080elemA015 tokoe:valid" result="pass"/><test-case name="30081elemA016 tokoe:valid" result="pass"/><test-case name="30082elemA017 tokoe:valid" result="pass"/><test-case name="30083elemB001 tokoe:valid" result="pass"/><test-case name="30084elemB002 tokoe:valid" result="pass"/><test-case name="30085elemB003 tokoe:invalid" result="pass"/><test-case name="30086elemB004 tokoe:invalid" result="pass"/><test-case name="30087elemB005 tokoe:invalid" result="pass"/><test-case name="30088elemB006 tokoe:invalid" result="pass"/><test-case name="30089elemB007 tokoe:valid" result="pass"/><test-case name="30090elemB008 tokoe:valid" result="pass"/><test-case name="30091elemB009 tokoe:invalid" result="pass"/><test-case name="30092elemB010 tokoe:invalid" result="pass"/><test-case name="30093elemC001 tokoe:valid" result="pass"/><test-case name="30094elemC002 tokoe:valid" result="pass"/><test-case name="30095elemC003 tokoe:valid" result="pass"/><test-case name="30096elemC004 tokoe:valid" result="pass"/><test-case name="30097elemC005 tokoe:valid" result="pass"/><test-case name="30098elemC006 tokoe:valid" result="pass"/><test-case name="30099elemC007 tokoe:valid" result="pass"/><test-case name="30100elemC008 tokoe:valid" result="pass"/><test-case name="30101elemC009 tokoe:invalid" result="pass"/><test-case name="30102elemC010 tokoe:invalid" result="pass"/><test-case name="30103elemC011 tokoe:invalid" result="pass"/><test-case name="30104elemC012 tokoe:invalid" result="pass"/><test-case name="30105elemC013 tokoe:invalid" result="pass"/><test-case name="30106elemC014 tokoe:invalid" result="pass"/><test-case name="30107elemC015 tokoe:invalid" result="pass"/><test-case name="30108elemC016 tokoe:invalid" result="pass"/><test-case name="30109elemC017 tokoe:invalid" result="pass"/><test-case name="30110elemC018 tokoe:valid" result="pass"/><test-case name="30111elemC020 tokoe:valid" result="pass"/><test-case name="30112elemD001 tokoe:valid" result="pass"/><test-case name="30113elemD002 tokoe:valid" result="pass"/><test-case name="30114elemD003 tokoe:invalid" result="pass"/><test-case name="30115elemD004 tokoe:invalid" result="pass"/><test-case name="30116elemD005 tokoe:invalid" result="pass"/><test-case name="30117elemD006 tokoe:valid" result="pass"/><test-case name="30118elemE006 tokoe:invalid" result="pass"/><test-case name="30119elemE007 tokoe:invalid" result="pass"/><test-case name="30120elemE008 tokoe:invalid" result="pass"/><test-case name="30121elemE009 tokoe:invalid" result="pass"/><test-case name="30122elemF001 tokoe:valid" result="pass"/><test-case name="30123elemF002 tokoe:valid" result="pass"/><test-case name="30124elemF003 tokoe:valid" result="pass"/><test-case name="30125elemF004 tokoe:invalid" result="pass"/><test-case name="30126elemF005 tokoe:valid" result="pass"/><test-case name="30127elemF006 tokoe:invalid" result="pass"/><test-case name="30128elemF007 tokoe:invalid" result="pass"/><test-case name="30129elemF008 tokoe:invalid" result="pass"/><test-case name="30130elemF009 tokoe:invalid" result="pass"/><test-case name="30131elemF010 tokoe:invalid" result="pass"/><test-case name="30132elemF011 tokoe:invalid" result="pass"/><test-case name="30133elemF012 tokoe:invalid" result="pass"/><test-case name="30134elemF013 tokoe:invalid" result="pass"/><test-case name="30135elemF014 tokoe:invalid" result="pass"/><test-case name="30136elemF015 tokoe:invalid" result="pass"/><test-case name="30137elemF016 tokoe:invalid" result="pass"/><test-case name="30138elemF017 tokoe:invalid" result="pass"/><test-case name="30139elemF018 tokoe:valid" result="pass"/><test-case name="30140elemG001 tokoe:valid" result="pass"/><test-case name="30141elemG002 tokoe:valid" result="pass"/><test-case name="30142elemG003 tokoe:invalid" result="pass"/><test-case name="30143elemG004 tokoe:invalid" result="pass"/><test-case name="30144elemG005 tokoe:valid" result="pass"/><test-case name="30145elemH001 tokoe:valid" result="pass"/><test-case name="30146elemH002 tokoe:valid" result="pass"/><test-case name="30147elemH003 tokoe:invalid" result="pass"/><test-case name="30148elemH004 tokoe:invalid" result="pass"/><test-case name="30149elemH005 tokoe:invalid" result="pass"/><test-case name="30150elemH006 tokoe:invalid" result="pass"/><test-case name="30151elemI001 tokoe:valid" result="pass"/><test-case name="30152elemI002 tokoe:valid" result="pass"/><test-case name="30153elemI003 tokoe:invalid" result="pass"/><test-case name="30154elemI004 tokoe:invalid" result="pass"/><test-case name="30155elemI005 tokoe:invalid" result="pass"/><test-case name="30156elemJ002 tokoe:valid" result="pass"/><test-case name="30157elemJ004 tokoe:valid" result="pass"/><test-case name="30158elemJ005 tokoe:valid" result="pass"/><test-case name="30159elemJ006 tokoe:invalid" result="pass"/><test-case name="30160elemJ007 tokoe:invalid" result="pass"/><test-case name="30161elemJ008 tokoe:invalid" result="pass"/><test-case name="30162elemJ009 tokoe:valid" result="pass"/><test-case name="30163elemJ010 tokoe:valid" result="pass"/><test-case name="30164elemJ012 tokoe:invalid" result="pass"/><test-case name="30165elemJ013 tokoe:valid" result="pass"/><test-case name="30166elemJ014 tokoe:invalid" result="pass"/><test-case name="30167elemJ015 tokoe:invalid" result="pass"/><test-case name="30168elemJ016 tokoe:invalid" result="pass"/><test-case name="30169elemJ017 tokoe:valid" result="pass"/><test-case name="30170elemJ018 tokoe:valid" result="pass"/><test-case name="30171elemJ019 tokoe:invalid" result="pass"/><test-case name="30172elemJ020 tokoe:invalid" result="pass"/><test-case name="30173elemJ021 tokoe:valid" result="pass"/><test-case name="30174elemK001 tokoe:valid" result="pass"/><test-case name="30175elemK002 tokoe:valid" result="pass"/><test-case name="30176elemK003 tokoe:invalid" result="pass"/><test-case name="30177elemK004 tokoe:invalid" result="pass"/><test-case name="30178elemK005 tokoe:invalid" result="pass"/><test-case name="30179elemK006 tokoe:invalid" result="pass"/><test-case name="30180elemK007 tokoe:invalid" result="pass"/><test-case name="30181elemL001 tokoe:valid" result="pass"/><test-case name="30182elemL002 tokoe:invalid" result="pass"/><test-case name="30183elemL003 tokoe:invalid" result="pass"/><test-case name="30184elemL004 tokoe:valid" result="pass"/><test-case name="30185elemL005 tokoe:valid" result="pass"/><test-case name="30186elemM001 tokoe:valid" result="pass"/><test-case name="30187elemM002 tokoe:invalid" result="pass"/><test-case name="30188elemM003 tokoe:invalid" result="pass"/><test-case name="30189elemM004 tokoe:valid" result="pass"/><test-case name="30190elemM005 tokoe:invalid" result="pass"/><test-case name="30191elemN001 tokoe:valid" result="pass"/><test-case name="30192elemN002 tokoe:valid" result="pass"/><test-case name="30193elemN003 tokoe:valid" result="pass"/><test-case name="30194elemN004 tokoe:valid" result="pass"/><test-case name="30195elemN005 tokoe:valid" result="pass"/><test-case name="30196elemN006 tokoe:invalid" result="pass"/><test-case name="30197elemO001 tokoe:valid" result="pass"/><test-case name="30198elemO001.i tokoe:invalid" result="pass"/><test-case name="30199elemO002 tokoe:valid" result="pass"/><test-case name="30200elemO002.v tokoe:valid" result="pass"/><test-case name="30201elemO003 tokoe:valid" result="pass"/><test-case name="30202elemO003.v tokoe:valid" result="pass"/><test-case name="30203elemO004 tokoe:valid" result="pass"/><test-case name="30204elemO004.v tokoe:valid" result="pass"/><test-case name="30205elemO005 tokoe:valid" result="pass"/><test-case name="30206elemO005.v tokoe:valid" result="pass"/><test-case name="30207elemO006 tokoe:valid" result="pass"/><test-case name="30208elemO006.v tokoe:valid" result="pass"/><test-case name="30209elemO007 tokoe:valid" result="pass"/><test-case name="30210elemO007.i tokoe:invalid" result="pass"/><test-case name="30211elemO008 tokoe:valid" result="pass"/><test-case name="30212elemO008.v tokoe:valid" result="pass"/><test-case name="30213elemO009 tokoe:valid" result="pass"/><test-case name="30214elemO009.v tokoe:valid" result="pass"/><test-case name="30215elemO010 tokoe:valid" result="pass"/><test-case name="30216elemO010.i tokoe:invalid" result="pass"/><test-case name="30217elemO011 tokoe:valid" result="pass"/><test-case name="30218elemO011.i tokoe:invalid" result="pass"/><test-case name="30219elemO012 tokoe:valid" result="pass"/><test-case name="30220elemO012.v tokoe:valid" result="pass"/><test-case name="30221elemP001 tokoe:invalid" result="pass"/><test-case name="30222elemP002 tokoe:invalid" result="pass"/><test-case name="30223elemP003 tokoe:valid" result="pass"/><test-case name="30224elemP004 tokoe:valid" result="pass"/><test-case name="30225elemP005 tokoe:invalid" result="pass"/><test-case name="30226elemP006 tokoe:invalid" result="pass"/><test-case name="30227elemP007 tokoe:invalid" result="pass"/><test-case name="30228elemP008 tokoe:invalid" result="pass"/><test-case name="30229elemP009 tokoe:invalid" result="pass"/><test-case name="30230elemQ001 tokoe:valid" result="pass"/><test-case name="30231elemQ002 tokoe:valid" result="pass"/><test-case name="30232elemQ003 tokoe:valid" result="pass"/><test-case name="30233elemQ004 tokoe:invalid" result="pass"/><test-case name="30234elemQ005 tokoe:valid" result="pass"/><test-case name="30235elemQ006 tokoe:invalid" result="pass"/><test-case name="30236elemQ007 tokoe:valid" result="pass"/><test-case name="30237elemQ007.i tokoe:invalid" result="pass"/><test-case name="30238elemQ008 tokoe:valid" result="pass"/><test-case name="30239elemQ008.v tokoe:valid" result="pass"/><test-case name="30240elemQ009 tokoe:valid" result="pass"/><test-case name="30241elemQ009.i tokoe:invalid" result="pass"/><test-case name="30242elemQ010 tokoe:valid" result="pass"/><test-case name="30243elemQ010.i tokoe:invalid" result="pass"/><test-case name="30244elemQ011 tokoe:valid" result="pass"/><test-case name="30245elemQ011.v tokoe:valid" result="pass"/><test-case name="30246elemQ012 tokoe:valid" result="pass"/><test-case name="30247elemQ012.i tokoe:invalid" result="pass"/><test-case name="30248elemQ013 tokoe:valid" result="pass"/><test-case name="30249elemQ013.v tokoe:valid" result="pass"/><test-case name="30250elemQ014 tokoe:valid" result="pass"/><test-case name="30251elemQ014.i tokoe:invalid" result="pass"/><test-case name="30252elemQ015 tokoe:valid" result="pass"/><test-case name="30253elemQ015.v tokoe:valid" result="pass"/><test-case name="30254elemQ016 tokoe:valid" result="pass"/><test-case name="30255elemQ017 tokoe:valid" result="pass"/><test-case name="30256elemQ017.v tokoe:valid" result="pass"/><test-case name="30257elemQ018 tokoe:valid" result="pass"/><test-case name="30258elemQ018.i tokoe:invalid" result="pass"/><test-case name="30259elemQ019 tokoe:valid" result="pass"/><test-case name="30260elemQ019.v tokoe:valid" result="pass"/><test-case name="30261elemQ020 tokoe:valid" result="pass"/><test-case name="30262elemQ020.v tokoe:valid" result="pass"/><test-case name="30263elemQ021 tokoe:valid" result="pass"/><test-case name="30264elemQ021.v tokoe:valid" result="pass"/><test-case name="30265elemQ022 tokoe:valid" result="pass"/><test-case name="30266elemQ022.v tokoe:valid" result="pass"/><test-case name="30267elemR001 tokoe:valid" result="pass"/><test-case name="30268elemR001.v tokoe:valid" result="pass"/><test-case name="30269elemR002 tokoe:valid" result="pass"/><test-case name="30270elemR002.v tokoe:valid" result="pass"/><test-case name="30271elemR003 tokoe:invalid" result="pass"/><test-case name="30272elemR004 tokoe:valid" result="pass"/><test-case name="30273elemR004.v tokoe:valid" result="pass"/><test-case name="30274elemR005 tokoe:valid" result="pass"/><test-case name="30275elemR005.v tokoe:valid" result="pass"/><test-case name="30276elemR006 tokoe:invalid" result="pass"/><test-case name="30277elemS001 tokoe:invalid" result="pass"/><test-case name="30278elemS002 tokoe:valid" result="pass"/><test-case name="30279elemS002.v tokoe:valid" result="pass"/><test-case name="30280elemS003 tokoe:valid" result="pass"/><test-case name="30281elemS003.v tokoe:valid" result="pass"/><test-case name="30282elemS004 tokoe:invalid" result="pass"/><test-case name="30283elemS005 tokoe:invalid" result="pass"/><test-case name="30284elemS006 tokoe:invalid" result="pass"/><test-case name="30285elemS007 tokoe:valid" result="pass"/><test-case name="30286elemS007.v tokoe:valid" result="pass"/><test-case name="30287elemS008 tokoe:valid" result="pass"/><test-case name="30288elemS008.v tokoe:valid" result="pass"/><test-case name="30289elemT001 tokoe:valid" result="pass"/><test-case name="30290elemT001.i tokoe:invalid" result="pass"/><test-case name="30291elemT002 tokoe:valid" result="pass"/><test-case name="30292elemT002.v tokoe:valid" result="pass"/><test-case name="30293elemT003 tokoe:valid" result="pass"/><test-case name="30294elemT003.v tokoe:valid" result="pass"/><test-case name="30295elemT004 tokoe:valid" result="pass"/><test-case name="30296elemT004.i tokoe:invalid" result="pass"/><test-case name="30297elemT005 tokoe:valid" result="pass"/><test-case name="30298elemT005.i tokoe:invalid" result="pass"/><test-case name="30299elemT006 tokoe:valid" result="pass"/><test-case name="30300elemT006.i tokoe:invalid" result="pass"/><test-case name="30301elemT007 tokoe:valid" result="pass"/><test-case name="30302elemT007.v tokoe:valid" result="pass"/><test-case name="30303elemT008 tokoe:valid" result="pass"/><test-case name="30304elemT008.v tokoe:valid" result="pass"/><test-case name="30305elemT009 tokoe:invalid" result="pass"/><test-case name="30306elemT010 tokoe:invalid" result="pass"/><test-case name="30307elemT011 tokoe:valid" result="pass"/><test-case name="30308elemT011.i tokoe:invalid" result="pass"/><test-case name="30309elemT012 tokoe:valid" result="pass"/><test-case name="30310elemT012.i tokoe:invalid" result="pass"/><test-case name="30311elemT013 tokoe:valid" result="pass"/><test-case name="30312elemT013.i tokoe:invalid" result="pass"/><test-case name="30313elemT014 tokoe:valid" result="pass"/><test-case name="30314elemT014.v tokoe:valid" result="pass"/><test-case name="30315elemT015 tokoe:valid" result="pass"/><test-case name="30316elemT015.v tokoe:valid" result="pass"/><test-case name="30317elemT016 tokoe:valid" result="pass"/><test-case name="30318elemT016.v tokoe:valid" result="pass"/><test-case name="30319elemT017 tokoe:valid" result="pass"/><test-case name="30320elemT017.i tokoe:invalid" result="pass"/><test-case name="30321elemT018 tokoe:valid" result="pass"/><test-case name="30322elemT018.i tokoe:invalid" result="pass"/><test-case name="30323elemT019 tokoe:valid" result="pass"/><test-case name="30324elemT019.i tokoe:invalid" result="pass"/><test-case name="30325elemT020 tokoe:valid" result="pass"/><test-case name="30326elemT020.i tokoe:invalid" result="pass"/><test-case name="30327elemT021 tokoe:valid" result="pass"/><test-case name="30328elemT021.i tokoe:invalid" result="pass"/><test-case name="30329elemT022 tokoe:valid" result="pass"/><test-case name="30330elemT022.i tokoe:invalid" result="pass"/><test-case name="30331elemT023 tokoe:valid" result="pass"/><test-case name="30332elemT023.i tokoe:invalid" result="pass"/><test-case name="30333elemT024 tokoe:valid" result="pass"/><test-case name="30334elemT024.i tokoe:invalid" result="pass"/><test-case name="30335elemT025 tokoe:valid" result="pass"/><test-case name="30336elemT025.v tokoe:valid" result="pass"/><test-case name="30337elemT030 tokoe:valid" result="pass"/><test-case name="30338elemT030.v tokoe:valid" result="pass"/><test-case name="30339elemT031 tokoe:valid" result="pass"/><test-case name="30340elemT031.i tokoe:invalid" result="pass"/><test-case name="30341elemT032 tokoe:valid" result="pass"/><test-case name="30342elemT032.v tokoe:valid" result="pass"/><test-case name="30343elemT033 tokoe:valid" result="pass"/><test-case name="30344elemT033.i tokoe:invalid" result="pass"/><test-case name="30345elemT034 tokoe:valid" result="pass"/><test-case name="30346elemT034.i tokoe:invalid" result="pass"/><test-case name="30347elemT035 tokoe:valid" result="pass"/><test-case name="30348elemT035.i tokoe:invalid" result="pass"/><test-case name="30349elemT036 tokoe:valid" result="pass"/><test-case name="30350elemT036.i tokoe:invalid" result="pass"/><test-case name="30351elemT037 tokoe:valid" result="pass"/><test-case name="30352elemT037.i tokoe:invalid" result="pass"/><test-case name="30353elemT038 tokoe:valid" result="pass"/><test-case name="30354elemT038.v tokoe:valid" result="pass"/><test-case name="30355elemT039 tokoe:valid" result="pass"/><test-case name="30356elemT039.i tokoe:invalid" result="pass"/><test-case name="30357elemT040 tokoe:valid" result="pass"/><test-case name="30358elemT040.v tokoe:valid" result="pass"/><test-case name="30359elemT041 tokoe:valid" result="pass"/><test-case name="30360elemT041.v tokoe:valid" result="pass"/><test-case name="30361elemT042 tokoe:valid" result="pass"/><test-case name="30362elemT042.v tokoe:valid" result="pass"/><test-case name="30363elemT043 tokoe:valid" result="pass"/><test-case name="30364elemT043.v tokoe:valid" result="pass"/><test-case name="30365elemT044 tokoe:valid" result="pass"/><test-case name="30366elemT044.v tokoe:valid" result="pass"/><test-case name="30367elemT045 tokoe:valid" result="pass"/><test-case name="30368elemT045.i tokoe:invalid" result="pass"/><test-case name="30369elemT046 tokoe:valid" result="pass"/><test-case name="30370elemT046.i tokoe:invalid" result="pass"/><test-case name="30371elemT047 tokoe:valid" result="pass"/><test-case name="30372elemT047.i tokoe:invalid" result="pass"/><test-case name="30373elemT048 tokoe:valid" result="pass"/><test-case name="30374elemT048.i tokoe:invalid" result="pass"/><test-case name="30375elemT049 tokoe:valid" result="pass"/><test-case name="30376elemT049.i tokoe:invalid" result="pass"/><test-case name="30377elemT050 tokoe:valid" result="pass"/><test-case name="30378elemT050.i tokoe:invalid" result="pass"/><test-case name="30379elemT051 tokoe:valid" result="pass"/><test-case name="30380elemT051.i tokoe:invalid" result="pass"/><test-case name="30381elemT052 tokoe:valid" result="pass"/><test-case name="30382elemT052.i tokoe:invalid" result="pass"/><test-case name="30383elemT053 tokoe:valid" result="pass"/><test-case name="30384elemT053.i tokoe:invalid" result="pass"/><test-case name="30385elemT058 tokoe:valid" result="pass"/><test-case name="30386elemT058.v tokoe:valid" result="pass"/><test-case name="30387elemT059 tokoe:valid" result="pass"/><test-case name="30388elemT059.i tokoe:invalid" result="pass"/><test-case name="30389elemT060 tokoe:valid" result="pass"/><test-case name="30390elemT060.i tokoe:invalid" result="pass"/><test-case name="30391elemT061 tokoe:valid" result="pass"/><test-case name="30392elemT061.i tokoe:invalid" result="pass"/><test-case name="30393elemT062 tokoe:valid" result="pass"/><test-case name="30394elemT062.v tokoe:valid" result="pass"/><test-case name="30395elemT063 tokoe:valid" result="pass"/><test-case name="30396elemT063.i tokoe:invalid" result="pass"/><test-case name="30397elemT064 tokoe:valid" result="pass"/><test-case name="30398elemT064.v tokoe:valid" result="pass"/><test-case name="30399elemT065 tokoe:valid" result="pass"/><test-case name="30400elemT065.i tokoe:invalid" result="pass"/><test-case name="30401elemT066 tokoe:valid" result="pass"/><test-case name="30402elemT066.v tokoe:valid" result="pass"/><test-case name="30403elemT067 tokoe:valid" result="pass"/><test-case name="30404elemT067.v tokoe:valid" result="pass"/><test-case name="30405elemT068 tokoe:valid" result="pass"/><test-case name="30406elemT068.i tokoe:invalid" result="pass"/><test-case name="30407elemT069 tokoe:valid" result="pass"/><test-case name="30408elemT069.i tokoe:invalid" result="pass"/><test-case name="30409elemT070 tokoe:valid" result="pass"/><test-case name="30410elemT070.i tokoe:invalid" result="pass"/><test-case name="30411elemT071 tokoe:valid" result="pass"/><test-case name="30412elemT071.v tokoe:valid" result="pass"/><test-case name="30413elemT072 tokoe:valid" result="pass"/><test-case name="30414elemT072.v tokoe:valid" result="pass"/><test-case name="30415elemT073 tokoe:valid" result="pass"/><test-case name="30416elemT073.v tokoe:valid" result="pass"/><test-case name="30417elemT074 tokoe:valid" result="pass"/><test-case name="30418elemT074.i tokoe:invalid" result="pass"/><test-case name="30419elemU001 tokoe:valid" result="pass"/><test-case name="30420elemU001.v tokoe:valid" result="pass"/><test-case name="30421elemU002 tokoe:valid" result="pass"/><test-case name="30422elemU002.v tokoe:valid" result="pass"/><test-case name="30423elemU003 tokoe:valid" result="pass"/><test-case name="30424elemU003.v tokoe:valid" result="pass"/><test-case name="30425elemU004 tokoe:valid" result="pass"/><test-case name="30426elemU004.v tokoe:valid" result="pass"/><test-case name="30427elemU005 tokoe:valid" result="pass"/><test-case name="30428elemU005.v tokoe:valid" result="pass"/><test-case name="30429elemU006 tokoe:valid" result="pass"/><test-case name="30430elemU006.v tokoe:valid" result="pass"/><test-case name="30431elemU007 tokoe:valid" result="pass"/><test-case name="30432elemU007.v tokoe:valid" result="pass"/><test-case name="30433elemU008 tokoe:valid" result="pass"/><test-case name="30434elemU008.v tokoe:valid" result="pass"/><test-case name="30435elemU009 tokoe:valid" result="pass"/><test-case name="30436elemU009.v tokoe:valid" result="pass"/><test-case name="30437elemU010 tokoe:valid" result="pass"/><test-case name="30438elemU010.v tokoe:valid" result="pass"/><test-case name="30439elemU011 tokoe:valid" result="pass"/><test-case name="30440elemU011.v tokoe:valid" result="pass"/><test-case name="30441elemU012 tokoe:valid" result="pass"/><test-case name="30442elemU012.v tokoe:valid" result="pass"/><test-case name="30443elemU013 tokoe:valid" result="pass"/><test-case name="30444elemU013.v tokoe:valid" result="pass"/><test-case name="30445elemU014 tokoe:valid" result="pass"/><test-case name="30446elemU014.v tokoe:valid" result="pass"/><test-case name="30447elemU015 tokoe:valid" result="pass"/><test-case name="30448elemU015.v tokoe:valid" result="pass"/><test-case name="30449elemU017 tokoe:valid" result="pass"/><test-case name="30450elemU017.v tokoe:valid" result="pass"/><test-case name="30451elemU018 tokoe:valid" result="pass"/><test-case name="30452elemU018.v tokoe:valid" result="pass"/><test-case name="30453elemU019 tokoe:valid" result="pass"/><test-case name="30454elemU019.v tokoe:valid" result="pass"/><test-case name="30455elemU020 tokoe:valid" result="pass"/><test-case name="30456elemU020.v tokoe:valid" result="pass"/><test-case name="30457elemU021 tokoe:valid" result="pass"/><test-case name="30458elemU021.v tokoe:valid" result="pass"/><test-case name="30459elemU022 tokoe:valid" result="pass"/><test-case name="30460elemU022.v tokoe:valid" result="pass"/><test-case name="30461elemU023 tokoe:valid" result="pass"/><test-case name="30462elemU023.v tokoe:valid" result="pass"/><test-case name="30463elemU024 tokoe:valid" result="pass"/><test-case name="30464elemU024.v tokoe:valid" result="pass"/><test-case name="30465elemU025 tokoe:valid" result="pass"/><test-case name="30466elemU025.i tokoe:invalid" result="pass"/><test-case name="30467elemZ001 tokoe:valid" result="pass"/><test-case name="30468elemZ001.v tokoe:valid" result="pass"/><test-case name="30469elemZ002 tokoe:valid" result="pass"/><test-case name="30470elemZ002.v tokoe:valid" result="pass"/><test-case name="30471elemZ003 tokoe:valid" result="pass"/><test-case name="30472elemZ003.v tokoe:valid" result="pass"/><test-case name="30473elemZ005 tokoe:valid" result="pass"/><test-case name="30474elemZ008 tokoe:valid" result="pass"/><test-case name="30475elemZ009 tokoe:valid" result="pass"/><test-case name="30476elemZ009.v tokoe:valid" result="pass"/><test-case name="30477elemZ010 tokoe:valid" result="pass"/><test-case name="30478elemZ010.v tokoe:valid" result="pass"/><test-case name="30479elemZ011 tokoe:valid" result="pass"/><test-case name="30480elemZ012 tokoe:invalid" result="pass"/><test-case name="30481elemZ014 tokoe:valid" result="pass"/><test-case name="30482elemZ014.v tokoe:valid" result="pass"/><test-case name="30483elemZ015 tokoe:valid" result="pass"/><test-case name="30484elemZ015.i tokoe:invalid" result="pass"/><test-case name="30485elemZ016 tokoe:valid" result="pass"/><test-case name="30486elemZ016.i tokoe:invalid" result="pass"/><test-case name="30487elemZ017.v tokoe:valid" result="pass"/><test-case name="30488elemZ018 tokoe:valid" result="pass"/><test-case name="30489elemZ018.v tokoe:valid" result="pass"/><test-case name="30490elemZ019 tokoe:valid" result="pass"/><test-case name="30491elemZ019.v tokoe:valid" result="pass"/><test-case name="30492elemZ021a tokoe:valid" result="pass"/><test-case name="30493elemZ021a.v tokoe:valid" result="pass"/><test-case name="30494elemZ021b tokoe:valid" result="pass"/><test-case name="30495elemZ021b.i tokoe:invalid" result="pass"/><test-case name="30496elemZ021c tokoe:valid" result="pass"/><test-case name="30497elemZ021c.v tokoe:valid" result="pass"/><test-case name="30498elemZ021d tokoe:valid" result="pass"/><test-case name="30499elemZ021d.v tokoe:valid" result="pass"/><test-case name="30500elemZ021e tokoe:valid" result="pass"/><test-case name="30501elemZ021e.v tokoe:valid" result="pass"/><test-case name="30502elemZ021f tokoe:valid" result="pass"/><test-case name="30503elemZ021f.i tokoe:invalid" result="pass"/><test-case name="30504elemZ021g tokoe:valid" result="pass"/><test-case name="30505elemZ021g.i tokoe:invalid" result="pass"/><test-case name="30506elemZ022a tokoe:valid" result="pass"/><test-case name="30507elemZ022a.i tokoe:invalid" result="pass"/><test-case name="30508elemZ022b tokoe:valid" result="pass"/><test-case name="30509elemZ022b.v tokoe:valid" result="pass"/><test-case name="30510elemZ023 tokoe:valid" result="pass"/><test-case name="30511elemZ023.i tokoe:invalid" result="pass"/><test-case name="30512QFE1700a1 tokoe:valid" result="pass"/><test-case name="30513QFE1700a1.v tokoe:valid" result="pass"/><test-case name="30514QFE1700a2 tokoe:valid" result="pass"/><test-case name="30515QFE1700a2.v tokoe:valid" result="pass"/><test-case name="30516QFE1700a3 tokoe:valid" result="pass"/><test-case name="30517QFE1700a3.v tokoe:valid" result="pass"/><test-case name="30518QFE1700b1 tokoe:valid" result="pass"/><test-case name="30519QFE1700b1.v tokoe:valid" result="pass"/><test-case name="30520QFE1700b2 tokoe:valid" result="pass"/><test-case name="30521QFE1700b2.v tokoe:valid" result="pass"/><test-case name="30522QFE1700c1 tokoe:valid" result="pass"/><test-case name="30523QFE1700c1.i tokoe:invalid" result="pass"/><test-case name="30524QFE1700c2 tokoe:valid" result="pass"/><test-case name="30525QFE1700c2.v tokoe:valid" result="pass"/><test-case name="30526QFE1700d1 tokoe:valid" result="pass"/><test-case name="30527QFE1700d1.i tokoe:invalid" result="pass"/><test-case name="30528QFE1700e1 tokoe:valid" result="pass"/><test-case name="30529QFE1700e1.v tokoe:valid" result="pass"/><test-case name="30530QFE1700e2 tokoe:valid" result="pass"/><test-case name="30531QFE1700e2.v tokoe:valid" result="pass"/><test-case name="30532QFE1700e3 tokoe:valid" result="pass"/><test-case name="30533QFE1700e3.i tokoe:invalid" result="pass"/><test-case name="30534QFE1700f1 tokoe:valid" result="pass"/><test-case name="30535QFE1700f1.v tokoe:valid" result="pass"/><test-case name="30536QFE1700f2 tokoe:valid" result="pass"/><test-case name="30537QFE1700f2.v tokoe:valid" result="pass"/><test-case name="30538QFE1700f3 tokoe:valid" result="pass"/><test-case name="30539QFE1700f3.i tokoe:invalid" result="pass"/><test-case name="30540QFE1700g1 tokoe:valid" result="pass"/><test-case name="30541QFE1700g1.i tokoe:invalid" result="pass"/><test-case name="30542QFE1700g2 tokoe:valid" result="pass"/><test-case name="30543QFE1700g2.v tokoe:valid" result="pass"/><test-case name="30544elemZ025 tokoe:valid" result="pass"/><test-case name="30545elemZ027_a tokoe:valid" result="pass"/><test-case name="30546elemZ027_b tokoe:valid" result="pass"/><test-case name="30547elemZ027_e tokoe:valid" result="pass"/><test-case name="30548elemZ027_f tokoe:valid" result="pass"/><test-case name="30549elemZ028a tokoe:valid" result="pass"/><test-case name="30550elemZ028b tokoe:invalid" result="pass"/><test-case name="30551elemZ028e tokoe:invalid" result="pass"/><test-case name="30552elemZ029 tokoe:valid" result="pass"/><test-case name="30553elemZ029.v tokoe:valid" result="pass"/><test-case name="30554elemZ030 tokoe:invalid" result="pass"/><test-case name="30555elemZ032a tokoe:invalid" result="pass"/><test-case name="30556elemZ032b tokoe:invalid" result="pass"/><test-case name="30557elemZ033b.v tokoe:valid" result="pass"/><test-case name="30558errA001 tokoe:valid" result="pass"/><test-case name="30559errA001.v tokoe:valid" result="pass"/><test-case name="30560errA002 tokoe:valid" result="pass"/><test-case name="30561errA002.i tokoe:invalid" result="pass"/><test-case name="30562errA003 tokoe:valid" result="pass"/><test-case name="30563errA003.v tokoe:valid" result="pass"/><test-case name="30564errC001 tokoe:valid" result="pass"/><test-case name="30565errC001.v tokoe:valid" result="pass"/><test-case name="30566errC002 tokoe:valid" result="pass"/><test-case name="30567errC003 tokoe:valid" result="pass"/><test-case name="30568errC004 tokoe:valid" result="pass"/><test-case name="30569errC005 tokoe:invalid" result="pass"/><test-case name="30570errC006 tokoe:invalid" result="pass"/><test-case name="30571errC007 tokoe:valid" result="pass"/><test-case name="30572errC007.v tokoe:valid" result="pass"/><test-case name="30573errC008 tokoe:invalid" result="pass"/><test-case name="30574errC009 tokoe:invalid" result="pass"/><test-case name="30575errE001 tokoe:valid" result="pass"/><test-case name="30576errE001.v tokoe:valid" result="pass"/><test-case name="30577errE002 tokoe:valid" result="pass"/><test-case name="30578errE002.v tokoe:valid" result="pass"/><test-case name="30579errE003 tokoe:valid" result="pass"/><test-case name="30580errE003.v tokoe:valid" result="pass"/><test-case name="30581errE004 tokoe:valid" result="pass"/><test-case name="30582errE004.i tokoe:invalid" result="pass"/><test-case name="30583errE006 tokoe:valid" result="pass"/><test-case name="30584errE006.v tokoe:valid" result="fail"/><test-case name="30585errE008 tokoe:valid" result="pass"/><test-case name="30586errE008.v tokoe:valid" result="pass"/><test-case name="30587groupA001 tokoe:valid" result="pass"/><test-case name="30588groupA002 tokoe:valid" result="pass"/><test-case name="30589groupA003 tokoe:invalid" result="pass"/><test-case name="30590groupA004 tokoe:invalid" result="pass"/><test-case name="30591groupA005 tokoe:invalid" result="pass"/><test-case name="30592groupA006 tokoe:valid" result="pass"/><test-case name="30593groupA007 tokoe:valid" result="pass"/><test-case name="30594groupA008 tokoe:invalid" result="pass"/><test-case name="30595groupA009 tokoe:invalid" result="pass"/><test-case name="30596groupA010 tokoe:invalid" result="pass"/><test-case name="30597groupA011 tokoe:valid" result="pass"/><test-case name="30598groupA012 tokoe:invalid" result="pass"/><test-case name="30599groupB001 tokoe:invalid" result="pass"/><test-case name="30600groupB002v tokoe:valid" result="pass"/><test-case name="30601groupB002v.v tokoe:valid" result="pass"/><test-case name="30602groupB003v tokoe:valid" result="pass"/><test-case name="30603groupB003v.v tokoe:valid" result="pass"/><test-case name="30604groupB004v tokoe:valid" result="pass"/><test-case name="30605groupB004v.v tokoe:valid" result="pass"/><test-case name="30606groupB005v tokoe:valid" result="pass"/><test-case name="30607groupB005v.v tokoe:valid" result="pass"/><test-case name="30608groupB006v tokoe:valid" result="pass"/><test-case name="30609groupB006v.v tokoe:valid" result="pass"/><test-case name="30610groupB007 tokoe:invalid" result="pass"/><test-case name="30611groupB008 tokoe:invalid" result="pass"/><test-case name="30612groupB009v tokoe:valid" result="pass"/><test-case name="30613groupB009v.v tokoe:valid" result="pass"/><test-case name="30614groupB010v tokoe:valid" result="pass"/><test-case name="30615groupB010v.v tokoe:valid" result="pass"/><test-case name="30616groupB011 tokoe:invalid" result="pass"/><test-case name="30617groupB012 tokoe:invalid" result="pass"/><test-case name="30618groupB013 tokoe:invalid" result="pass"/><test-case name="30619groupB014 tokoe:invalid" result="pass"/><test-case name="30620groupB015 tokoe:invalid" result="pass"/><test-case name="30621groupB016 tokoe:invalid" result="pass"/><test-case name="30622groupB017 tokoe:valid" result="pass"/><test-case name="30623groupB018 tokoe:valid" result="pass"/><test-case name="30624groupC001 tokoe:invalid" result="pass"/><test-case name="30625groupC002 tokoe:invalid" result="pass"/><test-case name="30626groupC003 tokoe:invalid" result="pass"/><test-case name="30627groupC004 tokoe:invalid" result="pass"/><test-case name="30628groupC005 tokoe:invalid" result="pass"/><test-case name="30629groupC006 tokoe:invalid" result="pass"/><test-case name="30630groupC007 tokoe:invalid" result="pass"/><test-case name="30631groupC008 tokoe:invalid" result="pass"/><test-case name="30632groupC009 tokoe:invalid" result="pass"/><test-case name="30633groupC010 tokoe:invalid" result="pass"/><test-case name="30634groupC011 tokoe:valid" result="pass"/><test-case name="30635groupC012 tokoe:invalid" result="pass"/><test-case name="30636groupD001 tokoe:invalid" result="pass"/><test-case name="30637groupD002 tokoe:invalid" result="pass"/><test-case name="30638groupD003 tokoe:invalid" result="pass"/><test-case name="30639groupD004 tokoe:invalid" result="pass"/><test-case name="30640groupE002 tokoe:invalid" result="pass"/><test-case name="30641groupE003v tokoe:valid" result="pass"/><test-case name="30642groupE003v.i tokoe:invalid" result="pass"/><test-case name="30643groupE004v tokoe:valid" result="pass"/><test-case name="30644groupE004v.v tokoe:valid" result="pass"/><test-case name="30645groupE005v tokoe:valid" result="pass"/><test-case name="30646groupE005v.i tokoe:invalid" result="pass"/><test-case name="30647groupF001v tokoe:valid" result="pass"/><test-case name="30648groupF001v.v tokoe:valid" result="pass"/><test-case name="30649groupF002v tokoe:valid" result="pass"/><test-case name="30650groupF002v.v tokoe:valid" result="pass"/><test-case name="30651groupF003v tokoe:valid" result="pass"/><test-case name="30652groupF003v.i tokoe:invalid" result="pass"/><test-case name="30653groupF004v tokoe:valid" result="pass"/><test-case name="30654groupF004v.v tokoe:valid" result="pass"/><test-case name="30655groupF005v tokoe:valid" result="pass"/><test-case name="30656groupF005v.v tokoe:valid" result="pass"/><test-case name="30657groupF006v tokoe:valid" result="pass"/><test-case name="30658groupF006v.i tokoe:invalid" result="pass"/><test-case name="30659groupF007v tokoe:valid" result="pass"/><test-case name="30660groupF007v.v tokoe:valid" result="pass"/><test-case name="30661groupF008v tokoe:valid" result="pass"/><test-case name="30662groupF008v.i tokoe:invalid" result="pass"/><test-case name="30663groupF009v tokoe:valid" result="pass"/><test-case name="30664groupF009v.v tokoe:valid" result="fail"/><test-case name="30665groupF010v tokoe:valid" result="pass"/><test-case name="30666groupF010v.i tokoe:invalid" result="pass"/><test-case name="30667groupF011v tokoe:valid" result="pass"/><test-case name="30668groupF011v.v tokoe:valid" result="pass"/><test-case name="30669groupF012v tokoe:valid" result="pass"/><test-case name="30670groupF012v.i tokoe:invalid" result="pass"/><test-case name="30671groupF013v tokoe:valid" result="pass"/><test-case name="30672groupF013v.i tokoe:invalid" result="pass"/><test-case name="30673groupF014v tokoe:valid" result="pass"/><test-case name="30674groupF014v.v tokoe:valid" result="pass"/><test-case name="30675groupF015v tokoe:valid" result="pass"/><test-case name="30676groupF015v.i tokoe:invalid" result="pass"/><test-case name="30677groupF016v tokoe:valid" result="pass"/><test-case name="30678groupF016v.i tokoe:invalid" result="pass"/><test-case name="30679groupF017v tokoe:valid" result="pass"/><test-case name="30680groupF017v.v tokoe:valid" result="pass"/><test-case name="30681groupF018v tokoe:valid" result="pass"/><test-case name="30682groupF018v.v tokoe:valid" result="pass"/><test-case name="30683groupF019v tokoe:valid" result="pass"/><test-case name="30684groupF019v.i tokoe:invalid" result="pass"/><test-case name="30685groupF020 tokoe:invalid" result="pass"/><test-case name="30686groupF021v tokoe:valid" result="pass"/><test-case name="30687groupF021v.v tokoe:valid" result="pass"/><test-case name="30688groupF022 tokoe:invalid" result="pass"/><test-case name="30689groupF023 tokoe:invalid" result="pass"/><test-case name="30690groupF024 tokoe:invalid" result="pass"/><test-case name="30691groupF025 tokoe:invalid" result="pass"/><test-case name="30692groupG002 tokoe:invalid" result="pass"/><test-case name="30693groupG003v tokoe:valid" result="pass"/><test-case name="30694groupG003v.i tokoe:invalid" result="pass"/><test-case name="30695groupG004v tokoe:valid" result="pass"/><test-case name="30696groupG004v.v tokoe:valid" result="pass"/><test-case name="30697groupG005v tokoe:valid" result="pass"/><test-case name="30698groupG005v.i tokoe:invalid" result="pass"/><test-case name="30699groupH001v tokoe:valid" result="pass"/><test-case name="30700groupH001v.v tokoe:valid" result="pass"/><test-case name="30701groupH002v tokoe:valid" result="pass"/><test-case name="30702groupH002v.v tokoe:valid" result="pass"/><test-case name="30703groupH003v tokoe:valid" result="pass"/><test-case name="30704groupH003v.i tokoe:invalid" result="pass"/><test-case name="30705groupH004v tokoe:valid" result="pass"/><test-case name="30706groupH004v.v tokoe:valid" result="pass"/><test-case name="30707groupH005v tokoe:valid" result="pass"/><test-case name="30708groupH005v.v tokoe:valid" result="pass"/><test-case name="30709groupH006v tokoe:valid" result="pass"/><test-case name="30710groupH006v.i tokoe:invalid" result="pass"/><test-case name="30711groupH007v tokoe:invalid" result="pass"/><test-case name="30712groupH008v tokoe:valid" result="pass"/><test-case name="30713groupH008v.i tokoe:invalid" result="pass"/><test-case name="30714groupH009v tokoe:valid" result="pass"/><test-case name="30715groupH009v.v tokoe:valid" result="pass"/><test-case name="30716groupH010v tokoe:valid" result="pass"/><test-case name="30717groupH010v.i tokoe:invalid" result="pass"/><test-case name="30718groupH011v tokoe:valid" result="pass"/><test-case name="30719groupH011v.v tokoe:valid" result="pass"/><test-case name="30720groupH012v tokoe:valid" result="pass"/><test-case name="30721groupH012v.i tokoe:invalid" result="pass"/><test-case name="30722groupH013v tokoe:valid" result="pass"/><test-case name="30723groupH013v.i tokoe:invalid" result="pass"/><test-case name="30724groupH014v tokoe:valid" result="pass"/><test-case name="30725groupH014v.v tokoe:valid" result="pass"/><test-case name="30726groupH015v tokoe:valid" result="pass"/><test-case name="30727groupH015v.i tokoe:invalid" result="pass"/><test-case name="30728groupH016v tokoe:valid" result="pass"/><test-case name="30729groupH016v.i tokoe:invalid" result="pass"/><test-case name="30730groupH017v tokoe:valid" result="pass"/><test-case name="30731groupH017v.v tokoe:valid" result="pass"/><test-case name="30732groupH018v tokoe:valid" result="pass"/><test-case name="30733groupH018v.v tokoe:valid" result="pass"/><test-case name="30734groupH019v tokoe:valid" result="pass"/><test-case name="30735groupH019v.i tokoe:invalid" result="pass"/><test-case name="30736groupH020 tokoe:invalid" result="pass"/><test-case name="30737groupH022 tokoe:invalid" result="pass"/><test-case name="30738groupH023 tokoe:invalid" result="pass"/><test-case name="30739groupH024 tokoe:invalid" result="pass"/><test-case name="30740groupH025 tokoe:invalid" result="pass"/><test-case name="30741groupI002 tokoe:invalid" result="pass"/><test-case name="30742groupI003v tokoe:valid" result="pass"/><test-case name="30743groupI003v.i tokoe:invalid" result="pass"/><test-case name="30744groupI004v tokoe:valid" result="pass"/><test-case name="30745groupI004v.v tokoe:valid" result="pass"/><test-case name="30746groupI005v tokoe:valid" result="pass"/><test-case name="30747groupI005v.i tokoe:invalid" result="pass"/><test-case name="30748groupJ001v tokoe:valid" result="pass"/><test-case name="30749groupJ001v.v tokoe:valid" result="pass"/><test-case name="30750groupJ002v tokoe:valid" result="pass"/><test-case name="30751groupJ002v.v tokoe:valid" result="pass"/><test-case name="30752groupJ003v tokoe:valid" result="pass"/><test-case name="30753groupJ003v.i tokoe:invalid" result="pass"/><test-case name="30754groupJ004v tokoe:valid" result="pass"/><test-case name="30755groupJ004v.v tokoe:valid" result="pass"/><test-case name="30756groupJ005v tokoe:valid" result="pass"/><test-case name="30757groupJ005v.v tokoe:valid" result="pass"/><test-case name="30758groupJ006v tokoe:valid" result="pass"/><test-case name="30759groupJ006v.i tokoe:invalid" result="pass"/><test-case name="30760groupJ007v tokoe:valid" result="pass"/><test-case name="30761groupJ007v.v tokoe:valid" result="pass"/><test-case name="30762groupJ008v tokoe:valid" result="pass"/><test-case name="30763groupJ008v.i tokoe:invalid" result="pass"/><test-case name="30764groupJ010v tokoe:valid" result="pass"/><test-case name="30765groupJ010v.i tokoe:invalid" result="pass"/><test-case name="30766groupJ011v tokoe:valid" result="pass"/><test-case name="30767groupJ011v.v tokoe:valid" result="pass"/><test-case name="30768groupJ012v tokoe:valid" result="pass"/><test-case name="30769groupJ012v.i tokoe:invalid" result="pass"/><test-case name="30770groupJ013v tokoe:valid" result="pass"/><test-case name="30771groupJ013v.i tokoe:invalid" result="pass"/><test-case name="30772groupJ014v tokoe:valid" result="pass"/><test-case name="30773groupJ014v.v tokoe:valid" result="pass"/><test-case name="30774groupJ015v tokoe:valid" result="pass"/><test-case name="30775groupJ015v.i tokoe:invalid" result="pass"/><test-case name="30776groupJ016v tokoe:valid" result="pass"/><test-case name="30777groupJ016v.i tokoe:invalid" result="pass"/><test-case name="30778groupJ017v tokoe:valid" result="pass"/><test-case name="30779groupJ017v.v tokoe:valid" result="pass"/><test-case name="30780groupJ018v tokoe:valid" result="pass"/><test-case name="30781groupJ018v.v tokoe:valid" result="pass"/><test-case name="30782groupJ019v tokoe:valid" result="pass"/><test-case name="30783groupJ019v.i tokoe:invalid" result="pass"/><test-case name="30784groupJ020 tokoe:invalid" result="pass"/><test-case name="30785groupJ021v tokoe:valid" result="pass"/><test-case name="30786groupJ021v.v tokoe:valid" result="pass"/><test-case name="30787groupJ022 tokoe:invalid" result="pass"/><test-case name="30788groupJ023 tokoe:invalid" result="pass"/><test-case name="30789groupJ024 tokoe:invalid" result="pass"/><test-case name="30790groupJ025 tokoe:invalid" result="pass"/><test-case name="30791groupK002 tokoe:invalid" result="pass"/><test-case name="30792groupK003v tokoe:valid" result="pass"/><test-case name="30793groupK003v.i tokoe:invalid" result="pass"/><test-case name="30794groupK004v tokoe:valid" result="pass"/><test-case name="30795groupK004v.v tokoe:valid" result="pass"/><test-case name="30796groupK005v tokoe:valid" result="pass"/><test-case name="30797groupK005v.i tokoe:invalid" result="pass"/><test-case name="30798groupL001v tokoe:valid" result="pass"/><test-case name="30799groupL001v.v tokoe:valid" result="pass"/><test-case name="30800groupL002v tokoe:valid" result="pass"/><test-case name="30801groupL002v.v tokoe:valid" result="pass"/><test-case name="30802groupL003v tokoe:valid" result="pass"/><test-case name="30803groupL003v.i tokoe:invalid" result="pass"/><test-case name="30804groupL004v tokoe:valid" result="pass"/><test-case name="30805groupL004v.v tokoe:valid" result="pass"/><test-case name="30806groupL005v tokoe:valid" result="pass"/><test-case name="30807groupL005v.v tokoe:valid" result="pass"/><test-case name="30808groupL006v tokoe:valid" result="pass"/><test-case name="30809groupL006v.i tokoe:invalid" result="pass"/><test-case name="30810groupL007 tokoe:valid" result="pass"/><test-case name="30811groupL007.v tokoe:valid" result="pass"/><test-case name="30812groupL008v tokoe:valid" result="pass"/><test-case name="30813groupL008v.i tokoe:invalid" result="pass"/><test-case name="30814groupL009v tokoe:valid" result="pass"/><test-case name="30815groupL009v.v tokoe:valid" result="pass"/><test-case name="30816groupL010v tokoe:valid" result="pass"/><test-case name="30817groupL010v.i tokoe:invalid" result="pass"/><test-case name="30818groupL011v tokoe:valid" result="pass"/><test-case name="30819groupL011v.v tokoe:valid" result="pass"/><test-case name="30820groupL012v tokoe:valid" result="pass"/><test-case name="30821groupL012v.i tokoe:invalid" result="pass"/><test-case name="30822groupL013v tokoe:valid" result="pass"/><test-case name="30823groupL013v.i tokoe:invalid" result="pass"/><test-case name="30824groupL014v tokoe:valid" result="pass"/><test-case name="30825groupL014v.v tokoe:valid" result="pass"/><test-case name="30826groupL015v tokoe:valid" result="pass"/><test-case name="30827groupL015v.i tokoe:invalid" result="pass"/><test-case name="30828groupL016v tokoe:valid" result="pass"/><test-case name="30829groupL016v.i tokoe:invalid" result="pass"/><test-case name="30830groupL017v tokoe:valid" result="pass"/><test-case name="30831groupL017v.v tokoe:valid" result="pass"/><test-case name="30832groupL018v tokoe:valid" result="pass"/><test-case name="30833groupL018v.v tokoe:valid" result="pass"/><test-case name="30834groupL019v tokoe:valid" result="pass"/><test-case name="30835groupL019v.i tokoe:invalid" result="pass"/><test-case name="30836groupL020 tokoe:invalid" result="pass"/><test-case name="30837groupL021v tokoe:valid" result="pass"/><test-case name="30838groupL021v.v tokoe:valid" result="pass"/><test-case name="30839groupL022 tokoe:invalid" result="pass"/><test-case name="30840groupL023 tokoe:invalid" result="pass"/><test-case name="30841groupL024 tokoe:invalid" result="pass"/><test-case name="30842groupL025 tokoe:invalid" result="pass"/><test-case name="30843groupM002 tokoe:invalid" result="pass"/><test-case name="30844groupM003v tokoe:valid" result="pass"/><test-case name="30845groupM003v.i tokoe:invalid" result="pass"/><test-case name="30846groupM004v tokoe:valid" result="pass"/><test-case name="30847groupM004v.v tokoe:valid" result="pass"/><test-case name="30848groupM005v tokoe:valid" result="pass"/><test-case name="30849groupM005v.i tokoe:invalid" result="pass"/><test-case name="30850groupN001v tokoe:valid" result="pass"/><test-case name="30851groupN001v.v tokoe:valid" result="pass"/><test-case name="30852groupN002v tokoe:valid" result="pass"/><test-case name="30853groupN002v.v tokoe:valid" result="pass"/><test-case name="30854groupN003v tokoe:valid" result="pass"/><test-case name="30855groupN003v.i tokoe:invalid" result="pass"/><test-case name="30856groupN004v tokoe:valid" result="pass"/><test-case name="30857groupN004v.v tokoe:valid" result="pass"/><test-case name="30858groupN005v tokoe:valid" result="pass"/><test-case name="30859groupN005v.v tokoe:valid" result="pass"/><test-case name="30860groupN006v tokoe:valid" result="pass"/><test-case name="30861groupN006v.i tokoe:invalid" result="pass"/><test-case name="30862groupN007v tokoe:valid" result="pass"/><test-case name="30863groupN007v.v tokoe:valid" result="pass"/><test-case name="30864groupN008v tokoe:valid" result="pass"/><test-case name="30865groupN008v.i tokoe:invalid" result="pass"/><test-case name="30866groupN009v tokoe:valid" result="pass"/><test-case name="30867groupN009v.v tokoe:valid" result="pass"/><test-case name="30868groupN010v tokoe:valid" result="pass"/><test-case name="30869groupN010v.i tokoe:invalid" result="pass"/><test-case name="30870groupN011v tokoe:valid" result="pass"/><test-case name="30871groupN011v.v tokoe:valid" result="pass"/><test-case name="30872groupN012v tokoe:valid" result="pass"/><test-case name="30873groupN012v.i tokoe:invalid" result="pass"/><test-case name="30874groupN013v tokoe:valid" result="pass"/><test-case name="30875groupN013v.i tokoe:invalid" result="pass"/><test-case name="30876groupN014v tokoe:valid" result="pass"/><test-case name="30877groupN014v.v tokoe:valid" result="pass"/><test-case name="30878groupN015v tokoe:valid" result="pass"/><test-case name="30879groupN015v.i tokoe:invalid" result="pass"/><test-case name="30880groupN016v tokoe:valid" result="pass"/><test-case name="30881groupN016v.i tokoe:invalid" result="pass"/><test-case name="30882groupN017v tokoe:valid" result="pass"/><test-case name="30883groupN017v.v tokoe:valid" result="pass"/><test-case name="30884groupN018v tokoe:valid" result="pass"/><test-case name="30885groupN018v.v tokoe:valid" result="pass"/><test-case name="30886groupN019v tokoe:valid" result="pass"/><test-case name="30887groupN019v.i tokoe:invalid" result="pass"/><test-case name="30888groupN020 tokoe:invalid" result="pass"/><test-case name="30889groupN021v tokoe:valid" result="pass"/><test-case name="30890groupN021v.v tokoe:valid" result="pass"/><test-case name="30891groupN022 tokoe:invalid" result="pass"/><test-case name="30892groupN023 tokoe:invalid" result="pass"/><test-case name="30893groupN024 tokoe:invalid" result="pass"/><test-case name="30894groupN025 tokoe:invalid" result="pass"/><test-case name="30895groupO001 tokoe:valid" result="pass"/><test-case name="30896groupO002 tokoe:invalid" result="pass"/><test-case name="30897groupO003 tokoe:invalid" result="pass"/><test-case name="30898groupO004v tokoe:valid" result="pass"/><test-case name="30899groupO004v.v tokoe:valid" result="pass"/><test-case name="30900groupO005v tokoe:valid" result="pass"/><test-case name="30901groupO005v.i tokoe:invalid" result="pass"/><test-case name="30902groupO006v tokoe:valid" result="pass"/><test-case name="30903groupO006v.v tokoe:valid" result="pass"/><test-case name="30904groupO007v tokoe:valid" result="pass"/><test-case name="30905groupO007v.i tokoe:invalid" result="pass"/><test-case name="30906groupO008v tokoe:valid" result="pass"/><test-case name="30907groupO008v.v tokoe:valid" result="pass"/><test-case name="30908groupO009v tokoe:valid" result="pass"/><test-case name="30909groupO009v.i tokoe:invalid" result="pass"/><test-case name="30910groupO010 tokoe:invalid" result="pass"/><test-case name="30911groupO011 tokoe:invalid" result="pass"/><test-case name="30912groupO012 tokoe:invalid" result="pass"/><test-case name="30913groupO013 tokoe:invalid" result="pass"/><test-case name="30914groupO014 tokoe:valid" result="pass"/><test-case name="30915groupO015 tokoe:invalid" result="pass"/><test-case name="30916groupO016 tokoe:invalid" result="pass"/><test-case name="30917groupO017 tokoe:invalid" result="pass"/><test-case name="30918groupO018 tokoe:invalid" result="pass"/><test-case name="30919groupO019 tokoe:invalid" result="pass"/><test-case name="30920groupO020 tokoe:invalid" result="pass"/><test-case name="30921groupO021 tokoe:invalid" result="pass"/><test-case name="30922groupO022 tokoe:invalid" result="pass"/><test-case name="30923groupO023 tokoe:invalid" result="pass"/><test-case name="30924groupO024 tokoe:invalid" result="pass"/><test-case name="30925groupO025 tokoe:invalid" result="pass"/><test-case name="30926groupO026 tokoe:invalid" result="pass"/><test-case name="30927groupO027 tokoe:invalid" result="pass"/><test-case name="30928idA001 tokoe:valid" result="pass"/><test-case name="30929idA002 tokoe:invalid" result="pass"/><test-case name="30930idA003 tokoe:valid" result="pass"/><test-case name="30931idA004 tokoe:valid" result="pass"/><test-case name="30932idA005 tokoe:valid" result="pass"/><test-case name="30933idA006 tokoe:invalid" result="pass"/><test-case name="30934idA007 tokoe:invalid" result="pass"/><test-case name="30935idA008 tokoe:valid" result="pass"/><test-case name="30936idA009 tokoe:valid" result="pass"/><test-case name="30937idA010 tokoe:valid" result="pass"/><test-case name="30938idA011 tokoe:valid" result="pass"/><test-case name="30939idA012 tokoe:valid" result="pass"/><test-case name="30940idA013 tokoe:valid" result="pass"/><test-case name="30941idA014 tokoe:valid" result="pass"/><test-case name="30942idA015 tokoe:valid" result="pass"/><test-case name="30943idA016 tokoe:invalid" result="pass"/><test-case name="30944idA017 tokoe:valid" result="pass"/><test-case name="30945idA018 tokoe:invalid" result="pass"/><test-case name="30946idA019 tokoe:invalid" result="pass"/><test-case name="30947idA020 tokoe:invalid" result="pass"/><test-case name="30948idA021 tokoe:invalid" result="pass"/><test-case name="30949idA022 tokoe:valid" result="pass"/><test-case name="30950idA023 tokoe:invalid" result="pass"/><test-case name="30951idA024 tokoe:invalid" result="pass"/><test-case name="30952idA025 tokoe:invalid" result="pass"/><test-case name="30953idA026 tokoe:invalid" result="pass"/><test-case name="30954idA027 tokoe:invalid" result="pass"/><test-case name="30955idA028 tokoe:invalid" result="pass"/><test-case name="30956idA029 tokoe:invalid" result="pass"/><test-case name="30957idA030 tokoe:invalid" result="pass"/><test-case name="30958idA031 tokoe:invalid" result="pass"/><test-case name="30959idA032 tokoe:invalid" result="pass"/><test-case name="30960idA033 tokoe:valid" result="pass"/><test-case name="30961idA034 tokoe:valid" result="pass"/><test-case name="30962idA035 tokoe:invalid" result="pass"/><test-case name="30963idA036 tokoe:valid" result="pass"/><test-case name="30964idA037 tokoe:invalid" result="pass"/><test-case name="30965idA038 tokoe:invalid" result="pass"/><test-case name="30966idA039 tokoe:invalid" result="pass"/><test-case name="30967idA040 tokoe:valid" result="pass"/><test-case name="30968idA041 tokoe:valid" result="pass"/><test-case name="30969idA042 tokoe:invalid" result="pass"/><test-case name="30970idA043 tokoe:invalid" result="pass"/><test-case name="30971idA044 tokoe:invalid" result="pass"/><test-case name="30972idA045 tokoe:valid" result="pass"/><test-case name="30973idA046 tokoe:invalid" result="pass"/><test-case name="30974idA047 tokoe:invalid" result="pass"/><test-case name="30975idA048 tokoe:invalid" result="pass"/><test-case name="30976idA049 tokoe:invalid" result="pass"/><test-case name="30977idA050 tokoe:invalid" result="pass"/><test-case name="30978idA051 tokoe:invalid" result="pass"/><test-case name="30979idA052 tokoe:invalid" result="pass"/><test-case name="30980idA053 tokoe:invalid" result="pass"/><test-case name="30981idA054 tokoe:invalid" result="pass"/><test-case name="30982idA055 tokoe:invalid" result="pass"/><test-case name="30983idA056 tokoe:invalid" result="pass"/><test-case name="30984idA057 tokoe:invalid" result="pass"/><test-case name="30985idA058 tokoe:invalid" result="pass"/><test-case name="30986idA059 tokoe:invalid" result="pass"/><test-case name="30987idA060 tokoe:invalid" result="pass"/><test-case name="30988idB001 tokoe:valid" result="pass"/><test-case name="30989idB002 tokoe:invalid" result="pass"/><test-case name="30990idB003 tokoe:valid" result="pass"/><test-case name="30991idB004 tokoe:valid" result="pass"/><test-case name="30992idB005 tokoe:invalid" result="pass"/><test-case name="30993idB006 tokoe:invalid" result="pass"/><test-case name="30994idB007 tokoe:invalid" result="pass"/><test-case name="30995idB008 tokoe:valid" result="pass"/><test-case name="30996idB009 tokoe:valid" result="pass"/><test-case name="30997idB010 tokoe:valid" result="pass"/><test-case name="30998idB011 tokoe:valid" result="pass"/><test-case name="30999idB012 tokoe:valid" result="pass"/><test-case name="31000idB013 tokoe:valid" result="pass"/><test-case name="31001idB014 tokoe:valid" result="pass"/><test-case name="31002idB015 tokoe:valid" result="pass"/><test-case name="31003idB016 tokoe:invalid" result="pass"/><test-case name="31004idB017 tokoe:invalid" result="pass"/><test-case name="31005idB018 tokoe:valid" result="pass"/><test-case name="31006idB019 tokoe:invalid" result="pass"/><test-case name="31007idB020 tokoe:invalid" result="pass"/><test-case name="31008idB021 tokoe:invalid" result="pass"/><test-case name="31009idB022 tokoe:valid" result="pass"/><test-case name="31010idB023 tokoe:invalid" result="pass"/><test-case name="31011idB024 tokoe:invalid" result="pass"/><test-case name="31012idB025 tokoe:invalid" result="pass"/><test-case name="31013idB026 tokoe:invalid" result="pass"/><test-case name="31014idB027 tokoe:invalid" result="pass"/><test-case name="31015idB028 tokoe:invalid" result="pass"/><test-case name="31016idB029 tokoe:invalid" result="pass"/><test-case name="31017idB030 tokoe:invalid" result="pass"/><test-case name="31018idB031 tokoe:invalid" result="pass"/><test-case name="31019idB032 tokoe:invalid" result="pass"/><test-case name="31020idB033 tokoe:valid" result="pass"/><test-case name="31021idB034 tokoe:valid" result="pass"/><test-case name="31022idB035 tokoe:invalid" result="pass"/><test-case name="31023idB036 tokoe:valid" result="pass"/><test-case name="31024idB037 tokoe:invalid" result="pass"/><test-case name="31025idB038 tokoe:invalid" result="pass"/><test-case name="31026idB039 tokoe:invalid" result="pass"/><test-case name="31027idB040 tokoe:valid" result="pass"/><test-case name="31028idB041 tokoe:valid" result="pass"/><test-case name="31029idB042 tokoe:invalid" result="pass"/><test-case name="31030idB043 tokoe:invalid" result="pass"/><test-case name="31031idB044 tokoe:invalid" result="pass"/><test-case name="31032idB045 tokoe:valid" result="pass"/><test-case name="31033idB046 tokoe:invalid" result="pass"/><test-case name="31034idB047 tokoe:invalid" result="pass"/><test-case name="31035idB048 tokoe:invalid" result="pass"/><test-case name="31036idB049 tokoe:invalid" result="pass"/><test-case name="31037idB050 tokoe:invalid" result="pass"/><test-case name="31038idB051 tokoe:invalid" result="pass"/><test-case name="31039idB052 tokoe:invalid" result="pass"/><test-case name="31040idB053 tokoe:invalid" result="pass"/><test-case name="31041idB054 tokoe:invalid" result="pass"/><test-case name="31042idB055 tokoe:invalid" result="pass"/><test-case name="31043idB056 tokoe:invalid" result="pass"/><test-case name="31044idB057 tokoe:invalid" result="pass"/><test-case name="31045idB058 tokoe:invalid" result="pass"/><test-case name="31046idB059 tokoe:invalid" result="pass"/><test-case name="31047idB060 tokoe:invalid" result="pass"/><test-case name="31048idC001 tokoe:valid" result="pass"/><test-case name="31049idC002 tokoe:invalid" result="pass"/><test-case name="31050idC003 tokoe:valid" result="pass"/><test-case name="31051idC004 tokoe:valid" result="pass"/><test-case name="31052idC005 tokoe:valid" result="pass"/><test-case name="31053idC006 tokoe:invalid" result="pass"/><test-case name="31054idC007 tokoe:invalid" result="pass"/><test-case name="31055idC008 tokoe:valid" result="pass"/><test-case name="31056idC009 tokoe:valid" result="pass"/><test-case name="31057idC010 tokoe:valid" result="pass"/><test-case name="31058idC011 tokoe:valid" result="pass"/><test-case name="31059idC012 tokoe:valid" result="pass"/><test-case name="31060idC013 tokoe:valid" result="pass"/><test-case name="31061idC014 tokoe:valid" result="pass"/><test-case name="31062idC015 tokoe:valid" result="pass"/><test-case name="31063idC016 tokoe:invalid" result="pass"/><test-case name="31064idC017 tokoe:invalid" result="pass"/><test-case name="31065idC018 tokoe:invalid" result="pass"/><test-case name="31066idC020 tokoe:invalid" result="pass"/><test-case name="31067idC021 tokoe:invalid" result="pass"/><test-case name="31068idC022 tokoe:valid" result="pass"/><test-case name="31069idC023 tokoe:invalid" result="pass"/><test-case name="31070idC024 tokoe:invalid" result="pass"/><test-case name="31071idC025 tokoe:invalid" result="pass"/><test-case name="31072idC026 tokoe:invalid" result="pass"/><test-case name="31073idC027 tokoe:invalid" result="pass"/><test-case name="31074idC028 tokoe:invalid" result="pass"/><test-case name="31075idC029 tokoe:invalid" result="pass"/><test-case name="31076idC030 tokoe:invalid" result="pass"/><test-case name="31077idC031 tokoe:invalid" result="pass"/><test-case name="31078idC032 tokoe:invalid" result="pass"/><test-case name="31079idC033 tokoe:valid" result="pass"/><test-case name="31080idC034 tokoe:valid" result="pass"/><test-case name="31081idC035 tokoe:valid" result="pass"/><test-case name="31082idC036 tokoe:valid" result="pass"/><test-case name="31083idC038 tokoe:invalid" result="pass"/><test-case name="31084idC039 tokoe:valid" result="pass"/><test-case name="31085idC040 tokoe:invalid" result="pass"/><test-case name="31086idC041 tokoe:invalid" result="pass"/><test-case name="31087idC042 tokoe:invalid" result="pass"/><test-case name="31088idC043 tokoe:valid" result="pass"/><test-case name="31089idC044 tokoe:valid" result="pass"/><test-case name="31090idC045 tokoe:invalid" result="pass"/><test-case name="31091idC046 tokoe:invalid" result="pass"/><test-case name="31092idC047 tokoe:invalid" result="pass"/><test-case name="31093idC048 tokoe:valid" result="pass"/><test-case name="31094idC049 tokoe:invalid" result="pass"/><test-case name="31095idC050 tokoe:invalid" result="pass"/><test-case name="31096idC051 tokoe:invalid" result="pass"/><test-case name="31097idC052 tokoe:invalid" result="pass"/><test-case name="31098idC053 tokoe:invalid" result="pass"/><test-case name="31099idC054 tokoe:invalid" result="pass"/><test-case name="31100idC055 tokoe:invalid" result="pass"/><test-case name="31101idC056 tokoe:invalid" result="pass"/><test-case name="31102idC057 tokoe:invalid" result="pass"/><test-case name="31103idC058 tokoe:invalid" result="pass"/><test-case name="31104idC059 tokoe:invalid" result="pass"/><test-case name="31105idC060 tokoe:invalid" result="pass"/><test-case name="31106idC061 tokoe:invalid" result="pass"/><test-case name="31107idC062 tokoe:invalid" result="pass"/><test-case name="31108idC063 tokoe:invalid" result="pass"/><test-case name="31109idD001 tokoe:valid" result="pass"/><test-case name="31110idD002 tokoe:invalid" result="pass"/><test-case name="31111idD003 tokoe:valid" result="pass"/><test-case name="31112idD004 tokoe:invalid" result="pass"/><test-case name="31113idD005 tokoe:invalid" result="pass"/><test-case name="31114idD006 tokoe:invalid" result="pass"/><test-case name="31115idD007 tokoe:invalid" result="pass"/><test-case name="31116idD008 tokoe:valid" result="pass"/><test-case name="31117idD009 tokoe:valid" result="pass"/><test-case name="31118idD010 tokoe:valid" result="pass"/><test-case name="31119idD011 tokoe:invalid" result="pass"/><test-case name="31120idD012 tokoe:invalid" result="pass"/><test-case name="31121idD013 tokoe:valid" result="pass"/><test-case name="31122idD014 tokoe:invalid" result="pass"/><test-case name="31123idD015 tokoe:valid" result="pass"/><test-case name="31124idD016 tokoe:valid" result="pass"/><test-case name="31125idD017 tokoe:invalid" result="pass"/><test-case name="31126idD018 tokoe:invalid" result="pass"/><test-case name="31127idD019 tokoe:invalid" result="pass"/><test-case name="31128idD020 tokoe:invalid" result="pass"/><test-case name="31129idD021 tokoe:invalid" result="pass"/><test-case name="31130idD022 tokoe:invalid" result="pass"/><test-case name="31131idD023 tokoe:invalid" result="pass"/><test-case name="31132idD024 tokoe:invalid" result="pass"/><test-case name="31133idD025 tokoe:invalid" result="pass"/><test-case name="31134idD026 tokoe:invalid" result="pass"/><test-case name="31135idD027 tokoe:invalid" result="pass"/><test-case name="31136idD028 tokoe:invalid" result="pass"/><test-case name="31137idD029 tokoe:invalid" result="pass"/><test-case name="31138idD030 tokoe:invalid" result="pass"/><test-case name="31139idD031 tokoe:invalid" result="pass"/><test-case name="31140idD032 tokoe:invalid" result="pass"/><test-case name="31141idD033 tokoe:invalid" result="pass"/><test-case name="31142idE001 tokoe:valid" result="pass"/><test-case name="31143idE002 tokoe:invalid" result="pass"/><test-case name="31144idE003 tokoe:valid" result="pass"/><test-case name="31145idE004 tokoe:invalid" result="pass"/><test-case name="31146idE005 tokoe:invalid" result="pass"/><test-case name="31147idE006 tokoe:invalid" result="pass"/><test-case name="31148idE007 tokoe:invalid" result="pass"/><test-case name="31149idE008 tokoe:valid" result="pass"/><test-case name="31150idE009 tokoe:valid" result="pass"/><test-case name="31151idE010 tokoe:valid" result="pass"/><test-case name="31152idE011 tokoe:invalid" result="pass"/><test-case name="31153idE012 tokoe:invalid" result="pass"/><test-case name="31154idE013 tokoe:valid" result="pass"/><test-case name="31155idE014 tokoe:invalid" result="pass"/><test-case name="31156idE015 tokoe:valid" result="pass"/><test-case name="31157idE016 tokoe:valid" result="pass"/><test-case name="31158idE017 tokoe:invalid" result="pass"/><test-case name="31159idE018 tokoe:invalid" result="pass"/><test-case name="31160idE019 tokoe:invalid" result="pass"/><test-case name="31161idE020 tokoe:invalid" result="pass"/><test-case name="31162idE021 tokoe:invalid" result="pass"/><test-case name="31163idE022 tokoe:invalid" result="pass"/><test-case name="31164idE023 tokoe:invalid" result="pass"/><test-case name="31165idE024 tokoe:invalid" result="pass"/><test-case name="31166idE025 tokoe:invalid" result="pass"/><test-case name="31167idE026 tokoe:invalid" result="pass"/><test-case name="31168idE027 tokoe:invalid" result="pass"/><test-case name="31169idE028 tokoe:invalid" result="pass"/><test-case name="31170idE029 tokoe:invalid" result="pass"/><test-case name="31171idE030 tokoe:invalid" result="pass"/><test-case name="31172idE031 tokoe:invalid" result="pass"/><test-case name="31173idE032 tokoe:invalid" result="pass"/><test-case name="31174idE033 tokoe:invalid" result="pass"/><test-case name="31175idF001 tokoe:valid" result="pass"/><test-case name="31176idF001.v tokoe:valid" result="pass"/><test-case name="31177idF003 tokoe:valid" result="pass"/><test-case name="31178idF003.v tokoe:valid" result="pass"/><test-case name="31179idF004 tokoe:valid" result="pass"/><test-case name="31180idF004.v tokoe:valid" result="pass"/><test-case name="31181idF005 tokoe:valid" result="pass"/><test-case name="31182idF005.i tokoe:invalid" result="pass"/><test-case name="31183idF006 tokoe:valid" result="pass"/><test-case name="31184idF006.i tokoe:invalid" result="pass"/><test-case name="31185idF007 tokoe:valid" result="pass"/><test-case name="31186idF007.v tokoe:valid" result="pass"/><test-case name="31187idF008 tokoe:valid" result="pass"/><test-case name="31188idF008.i tokoe:invalid" result="pass"/><test-case name="31189idF009 tokoe:valid" result="pass"/><test-case name="31190idF009.v tokoe:valid" result="pass"/><test-case name="31191idF010 tokoe:valid" result="pass"/><test-case name="31192idF010.i tokoe:invalid" result="pass"/><test-case name="31193idF011 tokoe:valid" result="pass"/><test-case name="31194idF011.v tokoe:valid" result="pass"/><test-case name="31195idF012 tokoe:valid" result="pass"/><test-case name="31196idF012.v tokoe:valid" result="pass"/><test-case name="31197idF013 tokoe:valid" result="pass"/><test-case name="31198idF013.v tokoe:valid" result="pass"/><test-case name="31199idF014 tokoe:valid" result="pass"/><test-case name="31200idF014.v tokoe:valid" result="pass"/><test-case name="31201idF015 tokoe:valid" result="pass"/><test-case name="31202idF015.i tokoe:invalid" result="fail"/><test-case name="31203idF016 tokoe:valid" result="pass"/><test-case name="31204idF016.i tokoe:invalid" result="fail"/><test-case name="31205idF017 tokoe:valid" result="pass"/><test-case name="31206idF017.i tokoe:invalid" result="fail"/><test-case name="31207idF018 tokoe:valid" result="pass"/><test-case name="31208idF018.i tokoe:invalid" result="pass"/><test-case name="31209idF019 tokoe:valid" result="pass"/><test-case name="31210idF019.v tokoe:valid" result="pass"/><test-case name="31211idF020 tokoe:valid" result="pass"/><test-case name="31212idF020.v tokoe:valid" result="pass"/><test-case name="31213idF021 tokoe:valid" result="pass"/><test-case name="31214idF021.v tokoe:valid" result="pass"/><test-case name="31215idF022 tokoe:valid" result="pass"/><test-case name="31216idF022.v tokoe:valid" result="pass"/><test-case name="31217idF023 tokoe:valid" result="pass"/><test-case name="31218idF023.v tokoe:valid" result="pass"/><test-case name="31219idF024 tokoe:valid" result="pass"/><test-case name="31220idF024.v tokoe:valid" result="pass"/><test-case name="31221idF025 tokoe:valid" result="pass"/><test-case name="31222idF025.v tokoe:valid" result="pass"/><test-case name="31223idF026 tokoe:valid" result="pass"/><test-case name="31224idF026.v tokoe:valid" result="pass"/><test-case name="31225idF027 tokoe:valid" result="pass"/><test-case name="31226idF027.v tokoe:valid" result="pass"/><test-case name="31227idF028 tokoe:valid" result="pass"/><test-case name="31228idF028.v tokoe:valid" result="pass"/><test-case name="31229idF029 tokoe:valid" result="pass"/><test-case name="31230idF029.v tokoe:valid" result="pass"/><test-case name="31231idF030 tokoe:valid" result="pass"/><test-case name="31232idF030.v tokoe:valid" result="pass"/><test-case name="31233idF031 tokoe:valid" result="pass"/><test-case name="31234idF031.v tokoe:valid" result="pass"/><test-case name="31235idF032 tokoe:valid" result="pass"/><test-case name="31236idF032.v tokoe:valid" result="pass"/><test-case name="31237idF033 tokoe:valid" result="pass"/><test-case name="31238idF033.v tokoe:valid" result="pass"/><test-case name="31239idF034 tokoe:valid" result="pass"/><test-case name="31240idF034.v tokoe:valid" result="pass"/><test-case name="31241idF035 tokoe:valid" result="pass"/><test-case name="31242idF035.v tokoe:valid" result="pass"/><test-case name="31243idF036 tokoe:valid" result="pass"/><test-case name="31244idF036.v tokoe:valid" result="pass"/><test-case name="31245idG001 tokoe:valid" result="pass"/><test-case name="31246idG001.v tokoe:valid" result="pass"/><test-case name="31247idG003 tokoe:valid" result="pass"/><test-case name="31248idG003.i tokoe:invalid" result="pass"/><test-case name="31249idG004 tokoe:valid" result="pass"/><test-case name="31250idG004.v tokoe:valid" result="pass"/><test-case name="31251idG005 tokoe:valid" result="pass"/><test-case name="31252idG005.i tokoe:invalid" result="pass"/><test-case name="31253idG006 tokoe:valid" result="pass"/><test-case name="31254idG006.i tokoe:invalid" result="pass"/><test-case name="31255idG007 tokoe:valid" result="pass"/><test-case name="31256idG007.v tokoe:valid" result="pass"/><test-case name="31257idG008 tokoe:valid" result="pass"/><test-case name="31258idG008.i tokoe:invalid" result="pass"/><test-case name="31259idG009 tokoe:valid" result="pass"/><test-case name="31260idG009.i tokoe:invalid" result="pass"/><test-case name="31261idG010 tokoe:valid" result="pass"/><test-case name="31262idG010.i tokoe:invalid" result="pass"/><test-case name="31263idG011 tokoe:valid" result="pass"/><test-case name="31264idG011.i tokoe:invalid" result="fail"/><test-case name="31265idG012 tokoe:valid" result="pass"/><test-case name="31266idG012.i tokoe:invalid" result="fail"/><test-case name="31267idG013 tokoe:valid" result="pass"/><test-case name="31268idG013.v tokoe:valid" result="pass"/><test-case name="31269idG014 tokoe:valid" result="pass"/><test-case name="31270idG014.v tokoe:valid" result="pass"/><test-case name="31271idG015 tokoe:valid" result="pass"/><test-case name="31272idG015.v tokoe:valid" result="pass"/><test-case name="31273idG016 tokoe:valid" result="pass"/><test-case name="31274idG016.v tokoe:valid" result="pass"/><test-case name="31275idG017 tokoe:valid" result="pass"/><test-case name="31276idG017.v tokoe:valid" result="pass"/><test-case name="31277idG018 tokoe:valid" result="pass"/><test-case name="31278idG018.v tokoe:valid" result="pass"/><test-case name="31279idG019 tokoe:valid" result="pass"/><test-case name="31280idG019.v tokoe:valid" result="pass"/><test-case name="31281idG020 tokoe:valid" result="pass"/><test-case name="31282idG020.i tokoe:invalid" result="pass"/><test-case name="31283idG021 tokoe:valid" result="pass"/><test-case name="31284idG021.v tokoe:valid" result="pass"/><test-case name="31285idG022 tokoe:valid" result="pass"/><test-case name="31286idG022.v tokoe:valid" result="pass"/><test-case name="31287idG023 tokoe:valid" result="pass"/><test-case name="31288idG023.v tokoe:valid" result="pass"/><test-case name="31289idG024 tokoe:valid" result="pass"/><test-case name="31290idG024.v tokoe:valid" result="pass"/><test-case name="31291idG025 tokoe:valid" result="pass"/><test-case name="31292idG025.i tokoe:invalid" result="pass"/><test-case name="31293idG026 tokoe:valid" result="pass"/><test-case name="31294idG026.v tokoe:valid" result="pass"/><test-case name="31295idG027 tokoe:valid" result="pass"/><test-case name="31296idG027.v tokoe:valid" result="pass"/><test-case name="31297idG028 tokoe:valid" result="pass"/><test-case name="31298idG028.v tokoe:valid" result="pass"/><test-case name="31299idG029 tokoe:valid" result="pass"/><test-case name="31300idG029.v tokoe:valid" result="pass"/><test-case name="31301idG030 tokoe:valid" result="pass"/><test-case name="31302idG030.v tokoe:valid" result="pass"/><test-case name="31303idH001 tokoe:valid" result="pass"/><test-case name="31304idH001.v tokoe:valid" result="pass"/><test-case name="31305idH003 tokoe:valid" result="pass"/><test-case name="31306idH003.v tokoe:valid" result="pass"/><test-case name="31307idH004 tokoe:valid" result="pass"/><test-case name="31308idH004.v tokoe:valid" result="pass"/><test-case name="31309idH005 tokoe:valid" result="pass"/><test-case name="31310idH005.i tokoe:invalid" result="pass"/><test-case name="31311idH006 tokoe:valid" result="pass"/><test-case name="31312idH006.i tokoe:invalid" result="pass"/><test-case name="31313idH007 tokoe:valid" result="pass"/><test-case name="31314idH007.v tokoe:valid" result="pass"/><test-case name="31315idH008 tokoe:valid" result="pass"/><test-case name="31316idH008.v tokoe:valid" result="pass"/><test-case name="31317idH009 tokoe:valid" result="pass"/><test-case name="31318idH009.v tokoe:valid" result="pass"/><test-case name="31319idH010 tokoe:valid" result="pass"/><test-case name="31320idH010.i tokoe:invalid" result="pass"/><test-case name="31321idH011 tokoe:invalid" result="pass"/><test-case name="31322idH012 tokoe:valid" result="pass"/><test-case name="31323idH012.i tokoe:invalid" result="pass"/><test-case name="31324idH013 tokoe:invalid" result="pass"/><test-case name="31325idH014 tokoe:invalid" result="pass"/><test-case name="31326idH015 tokoe:valid" result="pass"/><test-case name="31327idH015.v tokoe:valid" result="pass"/><test-case name="31328idH016 tokoe:valid" result="pass"/><test-case name="31329idH016.v tokoe:valid" result="pass"/><test-case name="31330idH017 tokoe:valid" result="pass"/><test-case name="31331idH017.v tokoe:valid" result="pass"/><test-case name="31332idH018 tokoe:valid" result="pass"/><test-case name="31333idH018.v tokoe:valid" result="pass"/><test-case name="31334idH019 tokoe:valid" result="pass"/><test-case name="31335idH019.v tokoe:valid" result="pass"/><test-case name="31336idH020 tokoe:valid" result="pass"/><test-case name="31337idH020.v tokoe:valid" result="pass"/><test-case name="31338idH021 tokoe:valid" result="pass"/><test-case name="31339idH021.v tokoe:valid" result="pass"/><test-case name="31340idH022 tokoe:valid" result="pass"/><test-case name="31341idH022.v tokoe:valid" result="pass"/><test-case name="31342idH023 tokoe:valid" result="pass"/><test-case name="31343idH023.v tokoe:valid" result="pass"/><test-case name="31344idH024 tokoe:valid" result="pass"/><test-case name="31345idH024.v tokoe:valid" result="pass"/><test-case name="31346idH025 tokoe:valid" result="pass"/><test-case name="31347idH025.v tokoe:valid" result="pass"/><test-case name="31348idH026 tokoe:valid" result="pass"/><test-case name="31349idH026.v tokoe:valid" result="pass"/><test-case name="31350idH027 tokoe:valid" result="pass"/><test-case name="31351idH027.v tokoe:valid" result="pass"/><test-case name="31352idH028 tokoe:valid" result="pass"/><test-case name="31353idH028.v tokoe:valid" result="pass"/><test-case name="31354idH029 tokoe:valid" result="pass"/><test-case name="31355idH029.v tokoe:valid" result="pass"/><test-case name="31356idH030 tokoe:valid" result="pass"/><test-case name="31357idH030.v tokoe:valid" result="pass"/><test-case name="31358idH031 tokoe:valid" result="pass"/><test-case name="31359idH031.v tokoe:valid" result="pass"/><test-case name="31360idH032 tokoe:valid" result="pass"/><test-case name="31361idH032.v tokoe:valid" result="pass"/><test-case name="31362idH034 tokoe:valid" result="pass"/><test-case name="31363idH034.v tokoe:valid" result="pass"/><test-case name="31364idH035 tokoe:invalid" result="pass"/><test-case name="31365idI001 tokoe:invalid" result="pass"/><test-case name="31366idI002 tokoe:valid" result="pass"/><test-case name="31367idI003 tokoe:invalid" result="pass"/><test-case name="31368idI004 tokoe:invalid" result="pass"/><test-case name="31369idI005 tokoe:invalid" result="pass"/><test-case name="31370idI006 tokoe:invalid" result="pass"/><test-case name="31371idI007 tokoe:invalid" result="pass"/><test-case name="31372idI008 tokoe:valid" result="pass"/><test-case name="31373idI009 tokoe:valid" result="pass"/><test-case name="31374idI010 tokoe:invalid" result="pass"/><test-case name="31375idI011 tokoe:valid" result="pass"/><test-case name="31376idI012 tokoe:valid" result="pass"/><test-case name="31377idI013 tokoe:valid" result="pass"/><test-case name="31378idI014 tokoe:invalid" result="pass"/><test-case name="31379idI015 tokoe:invalid" result="pass"/><test-case name="31380idI016 tokoe:invalid" result="pass"/><test-case name="31381idI017 tokoe:valid" result="pass"/><test-case name="31382idI018 tokoe:invalid" result="pass"/><test-case name="31383idI019 tokoe:valid" result="pass"/><test-case name="31384idI020 tokoe:valid" result="pass"/><test-case name="31385idI021 tokoe:valid" result="pass"/><test-case name="31386idI022 tokoe:invalid" result="pass"/><test-case name="31387idI023 tokoe:invalid" result="pass"/><test-case name="31388idI024 tokoe:valid" result="pass"/><test-case name="31389idI025 tokoe:valid" result="pass"/><test-case name="31390idI026 tokoe:valid" result="pass"/><test-case name="31391idI027 tokoe:valid" result="pass"/><test-case name="31392idI028 tokoe:invalid" result="fail"/><test-case name="31393idI029 tokoe:valid" result="pass"/><test-case name="31394idI030 tokoe:valid" result="pass"/><test-case name="31395idI031 tokoe:valid" result="pass"/><test-case name="31396idI032 tokoe:valid" result="pass"/><test-case name="31397idI033 tokoe:valid" result="pass"/><test-case name="31398idI034 tokoe:valid" result="pass"/><test-case name="31399idI035 tokoe:valid" result="pass"/><test-case name="31400idI036 tokoe:valid" result="pass"/><test-case name="31401idI037 tokoe:valid" result="pass"/><test-case name="31402idI038 tokoe:invalid" result="fail"/><test-case name="31403idI039 tokoe:valid" result="pass"/><test-case name="31404idI040 tokoe:valid" result="pass"/><test-case name="31405idI041 tokoe:valid" result="pass"/><test-case name="31406idI042 tokoe:valid" result="pass"/><test-case name="31407idI043 tokoe:valid" result="pass"/><test-case name="31408idI044 tokoe:valid" result="pass"/><test-case name="31409idI045 tokoe:valid" result="pass"/><test-case name="31410idI046 tokoe:valid" result="pass"/><test-case name="31411idI047 tokoe:valid" result="pass"/><test-case name="31412idI048 tokoe:valid" result="pass"/><test-case name="31413idI049 tokoe:valid" result="pass"/><test-case name="31414idI050 tokoe:valid" result="pass"/><test-case name="31415idI051 tokoe:valid" result="pass"/><test-case name="31416idI052 tokoe:valid" result="pass"/><test-case name="31417idI053 tokoe:valid" result="pass"/><test-case name="31418idI054 tokoe:valid" result="pass"/><test-case name="31419idI055 tokoe:valid" result="pass"/><test-case name="31420idI056 tokoe:valid" result="pass"/><test-case name="31421idI057 tokoe:valid" result="pass"/><test-case name="31422idI058 tokoe:valid" result="pass"/><test-case name="31423idI059 tokoe:valid" result="pass"/><test-case name="31424idI060 tokoe:valid" result="pass"/><test-case name="31425idI061 tokoe:valid" result="pass"/><test-case name="31426idI062 tokoe:valid" result="pass"/><test-case name="31427idI063 tokoe:valid" result="pass"/><test-case name="31428idI064 tokoe:valid" result="pass"/><test-case name="31429idI065 tokoe:valid" result="pass"/><test-case name="31430idI066 tokoe:valid" result="pass"/><test-case name="31431idI067 tokoe:valid" result="pass"/><test-case name="31432idI068 tokoe:valid" result="pass"/><test-case name="31433idI069 tokoe:valid" result="pass"/><test-case name="31434idI070 tokoe:valid" result="pass"/><test-case name="31435idI071 tokoe:valid" result="pass"/><test-case name="31436idI072 tokoe:valid" result="pass"/><test-case name="31437idI073 tokoe:valid" result="pass"/><test-case name="31438idI074 tokoe:valid" result="pass"/><test-case name="31439idI075 tokoe:valid" result="pass"/><test-case name="31440idI076 tokoe:valid" result="pass"/><test-case name="31441idI077 tokoe:valid" result="pass"/><test-case name="31442idI078 tokoe:valid" result="pass"/><test-case name="31443idI079 tokoe:valid" result="pass"/><test-case name="31444idI080 tokoe:valid" result="pass"/><test-case name="31445idI081 tokoe:valid" result="pass"/><test-case name="31446idI082 tokoe:valid" result="pass"/><test-case name="31447idI083 tokoe:valid" result="pass"/><test-case name="31448idI084 tokoe:valid" result="pass"/><test-case name="31449idI085 tokoe:valid" result="pass"/><test-case name="31450idI086 tokoe:valid" result="pass"/><test-case name="31451idI087 tokoe:valid" result="pass"/><test-case name="31452idI088 tokoe:valid" result="pass"/><test-case name="31453idI089 tokoe:valid" result="pass"/><test-case name="31454idI090 tokoe:valid" result="pass"/><test-case name="31455idI091 tokoe:valid" result="pass"/><test-case name="31456idI092 tokoe:valid" result="pass"/><test-case name="31457idI093 tokoe:valid" result="pass"/><test-case name="31458idI094 tokoe:valid" result="pass"/><test-case name="31459idI095 tokoe:valid" result="pass"/><test-case name="31460idI096 tokoe:valid" result="pass"/><test-case name="31461idI097 tokoe:valid" result="pass"/><test-case name="31462idI098 tokoe:valid" result="pass"/><test-case name="31463idI099 tokoe:valid" result="pass"/><test-case name="31464idI100 tokoe:valid" result="pass"/><test-case name="31465idI101 tokoe:valid" result="pass"/><test-case name="31466idI102 tokoe:valid" result="pass"/><test-case name="31467idI103 tokoe:valid" result="pass"/><test-case name="31468idI104 tokoe:valid" result="pass"/><test-case name="31469idI105 tokoe:valid" result="pass"/><test-case name="31470idI106 tokoe:valid" result="pass"/><test-case name="31471idI107 tokoe:valid" result="pass"/><test-case name="31472idI108 tokoe:valid" result="pass"/><test-case name="31473idI109 tokoe:valid" result="pass"/><test-case name="31474idI110 tokoe:valid" result="pass"/><test-case name="31475idI111 tokoe:valid" result="pass"/><test-case name="31476idI112 tokoe:valid" result="pass"/><test-case name="31477idI113 tokoe:valid" result="pass"/><test-case name="31478idI114 tokoe:valid" result="pass"/><test-case name="31479idI115 tokoe:valid" result="pass"/><test-case name="31480idI116 tokoe:valid" result="pass"/><test-case name="31481idI117 tokoe:valid" result="pass"/><test-case name="31482idI118 tokoe:valid" result="pass"/><test-case name="31483idI119 tokoe:valid" result="pass"/><test-case name="31484idI120 tokoe:valid" result="pass"/><test-case name="31485idI121 tokoe:valid" result="pass"/><test-case name="31486idI122 tokoe:valid" result="pass"/><test-case name="31487idI123 tokoe:valid" result="pass"/><test-case name="31488idI124 tokoe:valid" result="pass"/><test-case name="31489idI125 tokoe:valid" result="pass"/><test-case name="31490idI126 tokoe:valid" result="pass"/><test-case name="31491idI127 tokoe:valid" result="pass"/><test-case name="31492idI128 tokoe:valid" result="pass"/><test-case name="31493idI129 tokoe:valid" result="pass"/><test-case name="31494idI130 tokoe:valid" result="pass"/><test-case name="31495idI131 tokoe:valid" result="pass"/><test-case name="31496idI132 tokoe:valid" result="pass"/><test-case name="31497idI133 tokoe:valid" result="pass"/><test-case name="31498idI134 tokoe:valid" result="pass"/><test-case name="31499idI135 tokoe:valid" result="pass"/><test-case name="31500idI136 tokoe:valid" result="pass"/><test-case name="31501idI137 tokoe:valid" result="pass"/><test-case name="31502idI138 tokoe:valid" result="pass"/><test-case name="31503idI139 tokoe:valid" result="pass"/><test-case name="31504idI140 tokoe:valid" result="pass"/><test-case name="31505idI141 tokoe:valid" result="pass"/><test-case name="31506idI142 tokoe:valid" result="pass"/><test-case name="31507idI143 tokoe:valid" result="pass"/><test-case name="31508idI144 tokoe:valid" result="pass"/><test-case name="31509idI145 tokoe:invalid" result="pass"/><test-case name="31510idI146 tokoe:invalid" result="pass"/><test-case name="31511idI147 tokoe:invalid" result="pass"/><test-case name="31512idI148 tokoe:invalid" result="pass"/><test-case name="31513idI149 tokoe:invalid" result="pass"/><test-case name="31514idI150 tokoe:invalid" result="pass"/><test-case name="31515idI151 tokoe:invalid" result="pass"/><test-case name="31516idI152 tokoe:invalid" result="fail"/><test-case name="31517idJ001 tokoe:invalid" result="pass"/><test-case name="31518idJ002 tokoe:invalid" result="pass"/><test-case name="31519idJ003 tokoe:invalid" result="pass"/><test-case name="31520idJ004 tokoe:valid" result="pass"/><test-case name="31521idJ005 tokoe:invalid" result="pass"/><test-case name="31522idJ006 tokoe:invalid" result="pass"/><test-case name="31523idJ007 tokoe:invalid" result="pass"/><test-case name="31524idJ008 tokoe:invalid" result="pass"/><test-case name="31525idJ009 tokoe:valid" result="pass"/><test-case name="31526idJ010 tokoe:valid" result="pass"/><test-case name="31527idJ011 tokoe:invalid" result="pass"/><test-case name="31528idJ012 tokoe:valid" result="pass"/><test-case name="31529idJ013 tokoe:valid" result="pass"/><test-case name="31530idJ014 tokoe:valid" result="pass"/><test-case name="31531idJ015 tokoe:invalid" result="pass"/><test-case name="31532idJ016 tokoe:invalid" result="pass"/><test-case name="31533idJ017 tokoe:invalid" result="pass"/><test-case name="31534idJ018 tokoe:valid" result="pass"/><test-case name="31535idJ019 tokoe:valid" result="pass"/><test-case name="31536idJ020 tokoe:valid" result="pass"/><test-case name="31537idJ021 tokoe:valid" result="pass"/><test-case name="31538idJ022 tokoe:valid" result="pass"/><test-case name="31539idJ023 tokoe:valid" result="pass"/><test-case name="31540idJ024 tokoe:valid" result="pass"/><test-case name="31541idJ025 tokoe:invalid" result="pass"/><test-case name="31542idJ026 tokoe:invalid" result="pass"/><test-case name="31543idJ027 tokoe:valid" result="pass"/><test-case name="31544idJ028 tokoe:valid" result="pass"/><test-case name="31545idJ029 tokoe:valid" result="pass"/><test-case name="31546idJ030 tokoe:invalid" result="pass"/><test-case name="31547idJ031 tokoe:valid" result="pass"/><test-case name="31548idJ032 tokoe:invalid" result="pass"/><test-case name="31549idJ033 tokoe:valid" result="pass"/><test-case name="31550idJ034 tokoe:valid" result="pass"/><test-case name="31551idJ035 tokoe:valid" result="pass"/><test-case name="31552idJ036 tokoe:invalid" result="fail"/><test-case name="31553idJ037 tokoe:valid" result="pass"/><test-case name="31554idJ038 tokoe:valid" result="pass"/><test-case name="31555idJ039 tokoe:valid" result="pass"/><test-case name="31556idJ040 tokoe:valid" result="pass"/><test-case name="31557idJ041 tokoe:valid" result="pass"/><test-case name="31558idJ042 tokoe:valid" result="pass"/><test-case name="31559idJ043 tokoe:valid" result="pass"/><test-case name="31560idJ044 tokoe:valid" result="pass"/><test-case name="31561idJ045 tokoe:valid" result="pass"/><test-case name="31562idJ046 tokoe:valid" result="pass"/><test-case name="31563idJ047 tokoe:valid" result="pass"/><test-case name="31564idJ048 tokoe:valid" result="pass"/><test-case name="31565idJ049 tokoe:valid" result="pass"/><test-case name="31566idJ050 tokoe:valid" result="pass"/><test-case name="31567idJ051 tokoe:valid" result="pass"/><test-case name="31568idJ052 tokoe:invalid" result="fail"/><test-case name="31569idJ053 tokoe:valid" result="pass"/><test-case name="31570idJ054 tokoe:valid" result="pass"/><test-case name="31571idJ055 tokoe:valid" result="pass"/><test-case name="31572idJ056 tokoe:invalid" result="fail"/><test-case name="31573idJ057 tokoe:valid" result="pass"/><test-case name="31574idJ058 tokoe:valid" result="pass"/><test-case name="31575idJ059 tokoe:valid" result="pass"/><test-case name="31576idJ060 tokoe:valid" result="pass"/><test-case name="31577idJ061 tokoe:valid" result="pass"/><test-case name="31578idJ062 tokoe:valid" result="pass"/><test-case name="31579idJ063 tokoe:valid" result="pass"/><test-case name="31580idJ064 tokoe:valid" result="pass"/><test-case name="31581idJ065 tokoe:valid" result="pass"/><test-case name="31582idJ066 tokoe:valid" result="pass"/><test-case name="31583idJ067 tokoe:valid" result="pass"/><test-case name="31584idJ068 tokoe:valid" result="pass"/><test-case name="31585idJ069 tokoe:valid" result="pass"/><test-case name="31586idJ070 tokoe:valid" result="pass"/><test-case name="31587idJ071 tokoe:valid" result="pass"/><test-case name="31588idJ072 tokoe:valid" result="pass"/><test-case name="31589idJ073 tokoe:valid" result="pass"/><test-case name="31590idJ074 tokoe:valid" result="pass"/><test-case name="31591idJ075 tokoe:valid" result="pass"/><test-case name="31592idJ076 tokoe:valid" result="pass"/><test-case name="31593idJ077 tokoe:valid" result="pass"/><test-case name="31594idJ078 tokoe:valid" result="pass"/><test-case name="31595idJ079 tokoe:valid" result="pass"/><test-case name="31596idJ080 tokoe:valid" result="pass"/><test-case name="31597idJ081 tokoe:valid" result="pass"/><test-case name="31598idJ082 tokoe:valid" result="pass"/><test-case name="31599idJ083 tokoe:valid" result="pass"/><test-case name="31600idJ084 tokoe:valid" result="pass"/><test-case name="31601idJ085 tokoe:valid" result="pass"/><test-case name="31602idJ086 tokoe:valid" result="pass"/><test-case name="31603idJ087 tokoe:valid" result="pass"/><test-case name="31604idJ088 tokoe:valid" result="pass"/><test-case name="31605idJ089 tokoe:valid" result="pass"/><test-case name="31606idJ090 tokoe:valid" result="pass"/><test-case name="31607idJ091 tokoe:valid" result="pass"/><test-case name="31608idJ092 tokoe:valid" result="pass"/><test-case name="31609idJ093 tokoe:valid" result="pass"/><test-case name="31610idJ094 tokoe:valid" result="pass"/><test-case name="31611idJ095 tokoe:valid" result="pass"/><test-case name="31612idJ096 tokoe:valid" result="pass"/><test-case name="31613idJ097 tokoe:valid" result="pass"/><test-case name="31614idJ098 tokoe:valid" result="pass"/><test-case name="31615idJ099 tokoe:valid" result="pass"/><test-case name="31616idJ100 tokoe:valid" result="pass"/><test-case name="31617idJ101 tokoe:valid" result="pass"/><test-case name="31618idJ102 tokoe:valid" result="pass"/><test-case name="31619idJ103 tokoe:valid" result="pass"/><test-case name="31620idJ104 tokoe:valid" result="pass"/><test-case name="31621idJ105 tokoe:valid" result="pass"/><test-case name="31622idJ106 tokoe:valid" result="pass"/><test-case name="31623idJ107 tokoe:valid" result="pass"/><test-case name="31624idJ108 tokoe:valid" result="pass"/><test-case name="31625idJ109 tokoe:valid" result="pass"/><test-case name="31626idJ110 tokoe:valid" result="pass"/><test-case name="31627idJ111 tokoe:valid" result="pass"/><test-case name="31628idJ112 tokoe:valid" result="pass"/><test-case name="31629idJ113 tokoe:valid" result="pass"/><test-case name="31630idJ114 tokoe:valid" result="pass"/><test-case name="31631idJ115 tokoe:valid" result="pass"/><test-case name="31632idJ116 tokoe:valid" result="pass"/><test-case name="31633idJ117 tokoe:valid" result="pass"/><test-case name="31634idJ118 tokoe:valid" result="pass"/><test-case name="31635idJ119 tokoe:valid" result="pass"/><test-case name="31636idJ120 tokoe:valid" result="pass"/><test-case name="31637idJ121 tokoe:valid" result="pass"/><test-case name="31638idJ122 tokoe:valid" result="pass"/><test-case name="31639idJ123 tokoe:valid" result="pass"/><test-case name="31640idJ124 tokoe:valid" result="pass"/><test-case name="31641idJ125 tokoe:valid" result="pass"/><test-case name="31642idJ126 tokoe:valid" result="pass"/><test-case name="31643idJ127 tokoe:valid" result="pass"/><test-case name="31644idJ128 tokoe:valid" result="pass"/><test-case name="31645idJ129 tokoe:valid" result="pass"/><test-case name="31646idJ130 tokoe:valid" result="pass"/><test-case name="31647idJ131 tokoe:valid" result="pass"/><test-case name="31648idJ132 tokoe:valid" result="pass"/><test-case name="31649idJ133 tokoe:valid" result="pass"/><test-case name="31650idJ134 tokoe:valid" result="pass"/><test-case name="31651idJ135 tokoe:valid" result="pass"/><test-case name="31652idJ136 tokoe:valid" result="pass"/><test-case name="31653idJ137 tokoe:valid" result="pass"/><test-case name="31654idJ138 tokoe:valid" result="pass"/><test-case name="31655idJ139 tokoe:valid" result="pass"/><test-case name="31656idJ140 tokoe:valid" result="pass"/><test-case name="31657idJ141 tokoe:valid" result="pass"/><test-case name="31658idJ142 tokoe:valid" result="pass"/><test-case name="31659idJ143 tokoe:valid" result="pass"/><test-case name="31660idJ144 tokoe:valid" result="pass"/><test-case name="31661idJ145 tokoe:valid" result="pass"/><test-case name="31662idJ146 tokoe:valid" result="pass"/><test-case name="31663idJ147 tokoe:valid" result="pass"/><test-case name="31664idJ148 tokoe:valid" result="pass"/><test-case name="31665idJ149 tokoe:valid" result="pass"/><test-case name="31666idJ150 tokoe:valid" result="pass"/><test-case name="31667idJ151 tokoe:valid" result="pass"/><test-case name="31668idJ152 tokoe:valid" result="pass"/><test-case name="31669idJ153 tokoe:valid" result="pass"/><test-case name="31670idJ154 tokoe:valid" result="pass"/><test-case name="31671idJ155 tokoe:valid" result="pass"/><test-case name="31672idJ156 tokoe:valid" result="pass"/><test-case name="31673idJ157 tokoe:valid" result="pass"/><test-case name="31674idJ158 tokoe:valid" result="pass"/><test-case name="31675idJ159 tokoe:valid" result="pass"/><test-case name="31676idJ160 tokoe:valid" result="pass"/><test-case name="31677idJ161 tokoe:valid" result="pass"/><test-case name="31678idJ162 tokoe:valid" result="pass"/><test-case name="31679idJ163 tokoe:valid" result="pass"/><test-case name="31680idJ164 tokoe:valid" result="pass"/><test-case name="31681idJ165 tokoe:valid" result="pass"/><test-case name="31682idJ166 tokoe:valid" result="pass"/><test-case name="31683idJ167 tokoe:valid" result="pass"/><test-case name="31684idJ168 tokoe:valid" result="pass"/><test-case name="31685idJ169 tokoe:valid" result="pass"/><test-case name="31686idJ170 tokoe:valid" result="pass"/><test-case name="31687idJ171 tokoe:valid" result="pass"/><test-case name="31688idJ172 tokoe:valid" result="pass"/><test-case name="31689idJ173 tokoe:valid" result="pass"/><test-case name="31690idJ174 tokoe:valid" result="pass"/><test-case name="31691idJ175 tokoe:valid" result="pass"/><test-case name="31692idJ176 tokoe:valid" result="pass"/><test-case name="31693idJ177 tokoe:valid" result="pass"/><test-case name="31694idJ178 tokoe:valid" result="pass"/><test-case name="31695idJ179 tokoe:valid" result="pass"/><test-case name="31696idJ180 tokoe:valid" result="pass"/><test-case name="31697idJ181 tokoe:valid" result="pass"/><test-case name="31698idJ182 tokoe:valid" result="pass"/><test-case name="31699idJ183 tokoe:valid" result="pass"/><test-case name="31700idJ184 tokoe:valid" result="pass"/><test-case name="31701idJ185 tokoe:valid" result="pass"/><test-case name="31702idJ186 tokoe:valid" result="pass"/><test-case name="31703idJ187 tokoe:valid" result="pass"/><test-case name="31704idJ188 tokoe:valid" result="pass"/><test-case name="31705idJ189 tokoe:valid" result="pass"/><test-case name="31706idJ190 tokoe:valid" result="pass"/><test-case name="31707idJ191 tokoe:valid" result="pass"/><test-case name="31708idJ192 tokoe:valid" result="pass"/><test-case name="31709idJ193 tokoe:valid" result="pass"/><test-case name="31710idJ194 tokoe:valid" result="pass"/><test-case name="31711idJ195 tokoe:valid" result="pass"/><test-case name="31712idJ196 tokoe:valid" result="pass"/><test-case name="31713idJ197 tokoe:valid" result="pass"/><test-case name="31714idJ198 tokoe:valid" result="pass"/><test-case name="31715idJ199 tokoe:valid" result="pass"/><test-case name="31716idJ200 tokoe:valid" result="pass"/><test-case name="31717idJ201 tokoe:valid" result="pass"/><test-case name="31718idJ202 tokoe:valid" result="pass"/><test-case name="31719idJ203 tokoe:valid" result="pass"/><test-case name="31720idJ204 tokoe:valid" result="pass"/><test-case name="31721idJ205 tokoe:invalid" result="pass"/><test-case name="31722idJ206 tokoe:invalid" result="pass"/><test-case name="31723idJ207 tokoe:invalid" result="pass"/><test-case name="31724idJ208 tokoe:invalid" result="pass"/><test-case name="31725idJ209 tokoe:invalid" result="pass"/><test-case name="31726idJ210 tokoe:invalid" result="fail"/><test-case name="31727idK001 tokoe:valid" result="pass"/><test-case name="31728idK001.v tokoe:valid" result="pass"/><test-case name="31729idK002 tokoe:valid" result="pass"/><test-case name="31730idK002.v tokoe:valid" result="pass"/><test-case name="31731idK003 tokoe:valid" result="pass"/><test-case name="31732idK003.i tokoe:invalid" result="pass"/><test-case name="31733idK004 tokoe:valid" result="pass"/><test-case name="31734idK004.v tokoe:valid" result="pass"/><test-case name="31735idK005 tokoe:valid" result="pass"/><test-case name="31736idK005.v tokoe:valid" result="pass"/><test-case name="31737idK006 tokoe:valid" result="pass"/><test-case name="31738idK006.v tokoe:valid" result="pass"/><test-case name="31739idK007 tokoe:valid" result="pass"/><test-case name="31740idK007.v tokoe:valid" result="pass"/><test-case name="31741idK008 tokoe:valid" result="pass"/><test-case name="31742idK008.v tokoe:valid" result="pass"/><test-case name="31743idK009 tokoe:valid" result="pass"/><test-case name="31744idK009.v tokoe:valid" result="pass"/><test-case name="31745idK010 tokoe:valid" result="pass"/><test-case name="31746idK010.v tokoe:valid" result="pass"/><test-case name="31747idK011 tokoe:valid" result="pass"/><test-case name="31748idK011.v tokoe:valid" result="pass"/><test-case name="31749idK012 tokoe:valid" result="pass"/><test-case name="31750idK012.i tokoe:invalid" result="pass"/><test-case name="31751idK013 tokoe:valid" result="pass"/><test-case name="31752idK013.v tokoe:valid" result="pass"/><test-case name="31753idK014 tokoe:valid" result="pass"/><test-case name="31754idK014.v tokoe:valid" result="pass"/><test-case name="31755idK015 tokoe:valid" result="pass"/><test-case name="31756idK015.v tokoe:valid" result="pass"/><test-case name="31757idK016 tokoe:invalid" result="pass"/><test-case name="31758idK017 tokoe:valid" result="pass"/><test-case name="31759idK017.v tokoe:valid" result="pass"/><test-case name="31760idL001 tokoe:valid" result="pass"/><test-case name="31761idL001.v tokoe:valid" result="pass"/><test-case name="31762idL002 tokoe:valid" result="pass"/><test-case name="31763idL002.i tokoe:invalid" result="pass"/><test-case name="31764idL003 tokoe:valid" result="pass"/><test-case name="31765idL003.v tokoe:valid" result="pass"/><test-case name="31766idL004 tokoe:valid" result="pass"/><test-case name="31767idL004.v tokoe:valid" result="pass"/><test-case name="31768idL005 tokoe:valid" result="pass"/><test-case name="31769idL005.v tokoe:valid" result="pass"/><test-case name="31770idL006 tokoe:valid" result="pass"/><test-case name="31771idL006.i tokoe:invalid" result="pass"/><test-case name="31772idL007 tokoe:valid" result="pass"/><test-case name="31773idL007.i tokoe:invalid" result="pass"/><test-case name="31774idL008 tokoe:valid" result="pass"/><test-case name="31775idL008.v tokoe:valid" result="pass"/><test-case name="31776idL009 tokoe:valid" result="pass"/><test-case name="31777idL009.v tokoe:valid" result="pass"/><test-case name="31778idL010 tokoe:valid" result="pass"/><test-case name="31779idL010.v tokoe:valid" result="pass"/><test-case name="31780idL011 tokoe:valid" result="pass"/><test-case name="31781idL011.i tokoe:invalid" result="pass"/><test-case name="31782idL012 tokoe:valid" result="pass"/><test-case name="31783idL012.i tokoe:invalid" result="pass"/><test-case name="31784idL013 tokoe:valid" result="pass"/><test-case name="31785idL013.v tokoe:valid" result="pass"/><test-case name="31786idL014 tokoe:valid" result="pass"/><test-case name="31787idL014.v tokoe:valid" result="pass"/><test-case name="31788idL015 tokoe:valid" result="pass"/><test-case name="31789idL015.i tokoe:invalid" result="pass"/><test-case name="31790idL016 tokoe:valid" result="pass"/><test-case name="31791idL016.v tokoe:valid" result="pass"/><test-case name="31792idL017 tokoe:valid" result="pass"/><test-case name="31793idL017.v tokoe:valid" result="pass"/><test-case name="31794idL018 tokoe:valid" result="pass"/><test-case name="31795idL018.v tokoe:valid" result="pass"/><test-case name="31796idL019 tokoe:valid" result="pass"/><test-case name="31797idL019.i tokoe:invalid" result="pass"/><test-case name="31798idL020 tokoe:valid" result="pass"/><test-case name="31799idL020.v tokoe:valid" result="pass"/><test-case name="31800idL021 tokoe:valid" result="pass"/><test-case name="31801idL021.v tokoe:valid" result="pass"/><test-case name="31802idL022 tokoe:valid" result="pass"/><test-case name="31803idL022.i tokoe:invalid" result="pass"/><test-case name="31804idL023 tokoe:valid" result="pass"/><test-case name="31805idL023.v tokoe:valid" result="pass"/><test-case name="31806idL024 tokoe:valid" result="pass"/><test-case name="31807idL024.v tokoe:valid" result="pass"/><test-case name="31808idL025 tokoe:valid" result="pass"/><test-case name="31809idL025.i tokoe:invalid" result="pass"/><test-case name="31810idL026 tokoe:valid" result="pass"/><test-case name="31811idL026.v tokoe:valid" result="pass"/><test-case name="31812idL027 tokoe:valid" result="pass"/><test-case name="31813idL027.i tokoe:invalid" result="pass"/><test-case name="31814idL028 tokoe:valid" result="pass"/><test-case name="31815idL028.v tokoe:valid" result="pass"/><test-case name="31816idL029 tokoe:valid" result="pass"/><test-case name="31817idL029.v tokoe:valid" result="pass"/><test-case name="31818idL030 tokoe:valid" result="pass"/><test-case name="31819idL030.v tokoe:valid" result="pass"/><test-case name="31820idL031 tokoe:valid" result="pass"/><test-case name="31821idL031.i tokoe:invalid" result="pass"/><test-case name="31822idL032 tokoe:valid" result="pass"/><test-case name="31823idL032.i tokoe:invalid" result="pass"/><test-case name="31824idL033 tokoe:valid" result="pass"/><test-case name="31825idL033.v tokoe:valid" result="pass"/><test-case name="31826idL034 tokoe:valid" result="pass"/><test-case name="31827idL034.v tokoe:valid" result="pass"/><test-case name="31828idL035 tokoe:valid" result="pass"/><test-case name="31829idL035.v tokoe:valid" result="pass"/><test-case name="31830idL036 tokoe:valid" result="pass"/><test-case name="31831idL036.i tokoe:invalid" result="pass"/><test-case name="31832idL037 tokoe:valid" result="pass"/><test-case name="31833idL037.i tokoe:invalid" result="pass"/><test-case name="31834idL038 tokoe:valid" result="pass"/><test-case name="31835idL038.v tokoe:valid" result="pass"/><test-case name="31836idL039 tokoe:valid" result="pass"/><test-case name="31837idL039.v tokoe:valid" result="pass"/><test-case name="31838idL040 tokoe:valid" result="pass"/><test-case name="31839idL040.i tokoe:invalid" result="pass"/><test-case name="31840idL041 tokoe:valid" result="pass"/><test-case name="31841idL041.v tokoe:valid" result="pass"/><test-case name="31842idL042 tokoe:valid" result="pass"/><test-case name="31843idL042.v tokoe:valid" result="pass"/><test-case name="31844idL043 tokoe:valid" result="pass"/><test-case name="31845idL043.v tokoe:valid" result="pass"/><test-case name="31846idL044 tokoe:valid" result="pass"/><test-case name="31847idL044.i tokoe:invalid" result="pass"/><test-case name="31848idL045 tokoe:valid" result="pass"/><test-case name="31849idL045.v tokoe:valid" result="pass"/><test-case name="31850idL046 tokoe:valid" result="pass"/><test-case name="31851idL046.v tokoe:valid" result="pass"/><test-case name="31852idL047 tokoe:valid" result="pass"/><test-case name="31853idL047.i tokoe:invalid" result="pass"/><test-case name="31854idL048 tokoe:valid" result="pass"/><test-case name="31855idL048.v tokoe:valid" result="pass"/><test-case name="31856idL049 tokoe:valid" result="pass"/><test-case name="31857idL049.v tokoe:valid" result="pass"/><test-case name="31858idL050 tokoe:valid" result="pass"/><test-case name="31859idL050.i tokoe:invalid" result="pass"/><test-case name="31860idL051 tokoe:valid" result="pass"/><test-case name="31861idL051.v tokoe:valid" result="pass"/><test-case name="31862idL052 tokoe:valid" result="pass"/><test-case name="31863idL052.i tokoe:invalid" result="pass"/><test-case name="31864idL053 tokoe:valid" result="pass"/><test-case name="31865idL053.v tokoe:valid" result="pass"/><test-case name="31866idL054 tokoe:valid" result="pass"/><test-case name="31867idL054.v tokoe:valid" result="pass"/><test-case name="31868idL055 tokoe:valid" result="pass"/><test-case name="31869idL055.v tokoe:valid" result="pass"/><test-case name="31870idL056 tokoe:valid" result="pass"/><test-case name="31871idL056.i tokoe:invalid" result="pass"/><test-case name="31872idL057 tokoe:valid" result="pass"/><test-case name="31873idL057.i tokoe:invalid" result="pass"/><test-case name="31874idL058 tokoe:valid" result="pass"/><test-case name="31875idL058.v tokoe:valid" result="pass"/><test-case name="31876idL059 tokoe:valid" result="pass"/><test-case name="31877idL059.v tokoe:valid" result="pass"/><test-case name="31878idL060 tokoe:valid" result="pass"/><test-case name="31879idL060.v tokoe:valid" result="pass"/><test-case name="31880idL061 tokoe:valid" result="pass"/><test-case name="31881idL061.i tokoe:invalid" result="pass"/><test-case name="31882idL062 tokoe:valid" result="pass"/><test-case name="31883idL062.i tokoe:invalid" result="pass"/><test-case name="31884idL063 tokoe:valid" result="pass"/><test-case name="31885idL063.v tokoe:valid" result="pass"/><test-case name="31886idL064 tokoe:valid" result="pass"/><test-case name="31887idL064.v tokoe:valid" result="pass"/><test-case name="31888idL065 tokoe:valid" result="pass"/><test-case name="31889idL065.i tokoe:invalid" result="pass"/><test-case name="31890idL066 tokoe:valid" result="pass"/><test-case name="31891idL066.v tokoe:valid" result="pass"/><test-case name="31892idL067 tokoe:valid" result="pass"/><test-case name="31893idL067.v tokoe:valid" result="pass"/><test-case name="31894idL068 tokoe:valid" result="pass"/><test-case name="31895idL068.v tokoe:valid" result="pass"/><test-case name="31896idL069 tokoe:valid" result="pass"/><test-case name="31897idL069.i tokoe:invalid" result="pass"/><test-case name="31898idL070 tokoe:valid" result="pass"/><test-case name="31899idL070.v tokoe:valid" result="pass"/><test-case name="31900idL071 tokoe:valid" result="pass"/><test-case name="31901idL071.v tokoe:valid" result="pass"/><test-case name="31902idL072 tokoe:valid" result="pass"/><test-case name="31903idL072.i tokoe:invalid" result="pass"/><test-case name="31904idL073 tokoe:valid" result="pass"/><test-case name="31905idL073.v tokoe:valid" result="pass"/><test-case name="31906idL074 tokoe:valid" result="pass"/><test-case name="31907idL074.v tokoe:valid" result="pass"/><test-case name="31908idL075 tokoe:valid" result="pass"/><test-case name="31909idL075.i tokoe:invalid" result="pass"/><test-case name="31910idL076 tokoe:valid" result="pass"/><test-case name="31911idL076.v tokoe:valid" result="pass"/><test-case name="31912idL077 tokoe:valid" result="pass"/><test-case name="31913idL077.v tokoe:valid" result="pass"/><test-case name="31914idL078 tokoe:valid" result="pass"/><test-case name="31915idL078.v tokoe:valid" result="pass"/><test-case name="31916idL079 tokoe:valid" result="pass"/><test-case name="31917idL079.i tokoe:invalid" result="pass"/><test-case name="31918idL080 tokoe:valid" result="pass"/><test-case name="31919idL080.i tokoe:invalid" result="pass"/><test-case name="31920idL081 tokoe:valid" result="pass"/><test-case name="31921idL081.i tokoe:invalid" result="pass"/><test-case name="31922idL082 tokoe:valid" result="pass"/><test-case name="31923idL082.v tokoe:valid" result="pass"/><test-case name="31924idL083 tokoe:valid" result="pass"/><test-case name="31925idL083.i tokoe:invalid" result="pass"/><test-case name="31926idL084 tokoe:valid" result="pass"/><test-case name="31927idL084.v tokoe:valid" result="pass"/><test-case name="31928idL085 tokoe:valid" result="pass"/><test-case name="31929idL085.i tokoe:invalid" result="pass"/><test-case name="31930idL086 tokoe:valid" result="pass"/><test-case name="31931idL086.v tokoe:valid" result="pass"/><test-case name="31932idL087 tokoe:valid" result="pass"/><test-case name="31933idL087.i tokoe:invalid" result="pass"/><test-case name="31934idL088 tokoe:valid" result="pass"/><test-case name="31935idL088.v tokoe:valid" result="pass"/><test-case name="31936idL089 tokoe:valid" result="pass"/><test-case name="31937idL089.i tokoe:invalid" result="pass"/><test-case name="31938idL090 tokoe:valid" result="pass"/><test-case name="31939idL090.v tokoe:valid" result="pass"/><test-case name="31940idL091 tokoe:valid" result="pass"/><test-case name="31941idL091.i tokoe:invalid" result="pass"/><test-case name="31942idL092 tokoe:valid" result="pass"/><test-case name="31943idL092.v tokoe:valid" result="pass"/><test-case name="31944idL093 tokoe:valid" result="pass"/><test-case name="31945idL093.i tokoe:invalid" result="pass"/><test-case name="31946idL094 tokoe:valid" result="pass"/><test-case name="31947idL094.v tokoe:valid" result="pass"/><test-case name="31948idL095 tokoe:valid" result="pass"/><test-case name="31949idL095.i tokoe:invalid" result="pass"/><test-case name="31950idL096 tokoe:valid" result="pass"/><test-case name="31951idL096.v tokoe:valid" result="pass"/><test-case name="31952idL097 tokoe:valid" result="pass"/><test-case name="31953idL097.i tokoe:invalid" result="pass"/><test-case name="31954idL098 tokoe:valid" result="pass"/><test-case name="31955idL098.v tokoe:valid" result="pass"/><test-case name="31956idL099 tokoe:valid" result="pass"/><test-case name="31957idL099.i tokoe:invalid" result="pass"/><test-case name="31958idL101 tokoe:valid" result="pass"/><test-case name="31959idL101.i tokoe:invalid" result="pass"/><test-case name="31960idL102 tokoe:valid" result="pass"/><test-case name="31961idL102.v tokoe:valid" result="pass"/><test-case name="31962idL103 tokoe:valid" result="pass"/><test-case name="31963idL103.i tokoe:invalid" result="pass"/><test-case name="31964idZ001 tokoe:valid" result="pass"/><test-case name="31965idZ001.i tokoe:invalid" result="pass"/><test-case name="31966idZ002 tokoe:valid" result="pass"/><test-case name="31967idZ002.i tokoe:invalid" result="pass"/><test-case name="31968idZ003 tokoe:invalid" result="pass"/><test-case name="31969idZ004 tokoe:valid" result="pass"/><test-case name="31970idZ004.i tokoe:invalid" result="pass"/><test-case name="31971idZ005 tokoe:valid" result="pass"/><test-case name="31972idZ005.v tokoe:valid" result="pass"/><test-case name="31973idZ006 tokoe:valid" result="pass"/><test-case name="31974idZ006.v tokoe:valid" result="pass"/><test-case name="31975idZ007 tokoe:valid" result="pass"/><test-case name="31976idZ007.v tokoe:valid" result="pass"/><test-case name="31977idZ008 tokoe:valid" result="pass"/><test-case name="31978idZ008.i tokoe:invalid" result="pass"/><test-case name="31979idZ010 tokoe:valid" result="pass"/><test-case name="31980idZ010.i tokoe:invalid" result="pass"/><test-case name="31981idZ011_a tokoe:valid" result="pass"/><test-case name="31982idZ011_a.i tokoe:invalid" result="fail"/><test-case name="31983idZ012 tokoe:valid" result="pass"/><test-case name="31984idZ012.i tokoe:invalid" result="fail"/><test-case name="31985mgA001 tokoe:valid" result="pass"/><test-case name="31986mgA001.v tokoe:valid" result="pass"/><test-case name="31987mgA002 tokoe:invalid" result="pass"/><test-case name="31988mgA003 tokoe:invalid" result="pass"/><test-case name="31989mgA004 tokoe:invalid" result="pass"/><test-case name="31990mgA005 tokoe:invalid" result="pass"/><test-case name="31991mgA006 tokoe:invalid" result="pass"/><test-case name="31992mgA007 tokoe:invalid" result="pass"/><test-case name="31993mgA008 tokoe:invalid" result="pass"/><test-case name="31994mgA009 tokoe:invalid" result="pass"/><test-case name="31995mgA010 tokoe:invalid" result="pass"/><test-case name="31996mgA011 tokoe:invalid" result="pass"/><test-case name="31997mgA012 tokoe:invalid" result="pass"/><test-case name="31998mgA013 tokoe:invalid" result="pass"/><test-case name="31999mgA014 tokoe:valid" result="pass"/><test-case name="32000mgA014.v tokoe:valid" result="pass"/><test-case name="32001mgA015 tokoe:valid" result="pass"/><test-case name="32002mgA015.v tokoe:valid" result="pass"/><test-case name="32003mgA016 tokoe:invalid" result="pass"/><test-case name="32004mgA017 tokoe:valid" result="pass"/><test-case name="32005mgA017.v tokoe:valid" result="pass"/><test-case name="32006mgA018 tokoe:invalid" result="pass"/><test-case name="32007mgA019 tokoe:invalid" result="pass"/><test-case name="32008mgA020 tokoe:invalid" result="pass"/><test-case name="32009mgAa001 tokoe:invalid" result="pass"/><test-case name="32010mgAa002 tokoe:invalid" result="pass"/><test-case name="32011mgAa003 tokoe:valid" result="pass"/><test-case name="32012mgAa003.v tokoe:valid" result="pass"/><test-case name="32013mgAa004 tokoe:invalid" result="pass"/><test-case name="32014mgAa005 tokoe:invalid" result="pass"/><test-case name="32015mgAa006 tokoe:invalid" result="pass"/><test-case name="32016mgAa007 tokoe:invalid" result="pass"/><test-case name="32017mgAa008 tokoe:invalid" result="pass"/><test-case name="32018mgAa009 tokoe:invalid" result="pass"/><test-case name="32019mgAb001 tokoe:invalid" result="pass"/><test-case name="32020mgAb002 tokoe:invalid" result="pass"/><test-case name="32021mgAb003 tokoe:invalid" result="pass"/><test-case name="32022mgAb004 tokoe:invalid" result="pass"/><test-case name="32023mgAb005 tokoe:invalid" result="pass"/><test-case name="32024mgAb006 tokoe:invalid" result="pass"/><test-case name="32025mgAb007 tokoe:invalid" result="pass"/><test-case name="32026mgAb008 tokoe:invalid" result="pass"/><test-case name="32027mgAb009 tokoe:invalid" result="pass"/><test-case name="32028mgB001 tokoe:valid" result="pass"/><test-case name="32029mgB001.v tokoe:valid" result="pass"/><test-case name="32030mgB002 tokoe:valid" result="pass"/><test-case name="32031mgB002.v tokoe:valid" result="pass"/><test-case name="32032mgB003 tokoe:invalid" result="pass"/><test-case name="32033mgB004 tokoe:valid" result="pass"/><test-case name="32034mgB004.v tokoe:valid" result="pass"/><test-case name="32035mgB006 tokoe:valid" result="pass"/><test-case name="32036mgB006.v tokoe:valid" result="pass"/><test-case name="32037mgB007 tokoe:invalid" result="pass"/><test-case name="32038mgB008 tokoe:invalid" result="pass"/><test-case name="32039mgB009 tokoe:invalid" result="pass"/><test-case name="32040mgB010 tokoe:invalid" result="pass"/><test-case name="32041mgC001 tokoe:valid" result="pass"/><test-case name="32042mgC001.i tokoe:invalid" result="pass"/><test-case name="32043mgC002 tokoe:valid" result="pass"/><test-case name="32044mgC002.v tokoe:valid" result="pass"/><test-case name="32045mgC003 tokoe:valid" result="pass"/><test-case name="32046mgC003.i tokoe:invalid" result="pass"/><test-case name="32047mgC004 tokoe:valid" result="pass"/><test-case name="32048mgC004.v tokoe:valid" result="pass"/><test-case name="32049mgC005 tokoe:valid" result="pass"/><test-case name="32050mgC005.i tokoe:invalid" result="pass"/><test-case name="32051mgC006 tokoe:valid" result="pass"/><test-case name="32052mgC006.v tokoe:valid" result="pass"/><test-case name="32053mgC007 tokoe:valid" result="pass"/><test-case name="32054mgC007.i tokoe:invalid" result="pass"/><test-case name="32055mgC008 tokoe:invalid" result="pass"/><test-case name="32056mgC009 tokoe:invalid" result="pass"/><test-case name="32057mgC010 tokoe:valid" result="pass"/><test-case name="32058mgC010.i tokoe:invalid" result="pass"/><test-case name="32059mgC011 tokoe:valid" result="pass"/><test-case name="32060mgC011.v tokoe:valid" result="pass"/><test-case name="32061mgC012 tokoe:valid" result="pass"/><test-case name="32062mgC012.i tokoe:invalid" result="pass"/><test-case name="32063mgC013 tokoe:invalid" result="pass"/><test-case name="32064mgC014 tokoe:valid" result="pass"/><test-case name="32065mgC014.v tokoe:valid" result="pass"/><test-case name="32066mgD001 tokoe:valid" result="pass"/><test-case name="32067mgD001.v tokoe:valid" result="pass"/><test-case name="32068mgD005 tokoe:valid" result="pass"/><test-case name="32069mgD005.v tokoe:valid" result="pass"/><test-case name="32070mgD009 tokoe:valid" result="pass"/><test-case name="32071mgD009.v tokoe:valid" result="pass"/><test-case name="32072mgD013 tokoe:valid" result="pass"/><test-case name="32073mgD013.v tokoe:valid" result="pass"/><test-case name="32074mgE001 tokoe:valid" result="pass"/><test-case name="32075mgE001.v tokoe:valid" result="pass"/><test-case name="32076mgE002 tokoe:invalid" result="pass"/><test-case name="32077mgE003 tokoe:invalid" result="pass"/><test-case name="32078mgE004 tokoe:invalid" result="pass"/><test-case name="32079mgE005 tokoe:invalid" result="pass"/><test-case name="32080mgE006 tokoe:invalid" result="pass"/><test-case name="32081mgE007 tokoe:invalid" result="pass"/><test-case name="32082mgE008 tokoe:invalid" result="pass"/><test-case name="32083mgE009 tokoe:invalid" result="pass"/><test-case name="32084mgE010 tokoe:invalid" result="pass"/><test-case name="32085mgE011 tokoe:invalid" result="pass"/><test-case name="32086mgE012 tokoe:invalid" result="pass"/><test-case name="32087mgE013 tokoe:valid" result="pass"/><test-case name="32088mgE013.v tokoe:valid" result="pass"/><test-case name="32089mgE014 tokoe:valid" result="pass"/><test-case name="32090mgE014.v tokoe:valid" result="pass"/><test-case name="32091mgE015 tokoe:valid" result="pass"/><test-case name="32092mgE015.v tokoe:valid" result="pass"/><test-case name="32093mgE016 tokoe:valid" result="pass"/><test-case name="32094mgE016.v tokoe:valid" result="pass"/><test-case name="32095mgE017 tokoe:valid" result="pass"/><test-case name="32096mgE017.v tokoe:valid" result="pass"/><test-case name="32097mgE018 tokoe:valid" result="pass"/><test-case name="32098mgE018.v tokoe:valid" result="pass"/><test-case name="32099mgEa001 tokoe:invalid" result="pass"/><test-case name="32100mgEa002 tokoe:invalid" result="pass"/><test-case name="32101mgEa003 tokoe:invalid" result="pass"/><test-case name="32102mgEa004 tokoe:invalid" result="pass"/><test-case name="32103mgEa005 tokoe:invalid" result="pass"/><test-case name="32104mgEa006 tokoe:invalid" result="pass"/><test-case name="32105mgEa007 tokoe:invalid" result="pass"/><test-case name="32106mgEa008 tokoe:invalid" result="pass"/><test-case name="32107mgEb001 tokoe:invalid" result="pass"/><test-case name="32108mgEb002 tokoe:invalid" result="pass"/><test-case name="32109mgEb003 tokoe:invalid" result="pass"/><test-case name="32110mgEb004 tokoe:valid" result="pass"/><test-case name="32111mgEb004.v tokoe:valid" result="pass"/><test-case name="32112mgEb005 tokoe:valid" result="pass"/><test-case name="32113mgEb005.v tokoe:valid" result="pass"/><test-case name="32114mgEb006 tokoe:invalid" result="pass"/><test-case name="32115mgEb007 tokoe:invalid" result="pass"/><test-case name="32116mgEb008 tokoe:invalid" result="pass"/><test-case name="32117mgF001 tokoe:valid" result="pass"/><test-case name="32118mgF001.v tokoe:valid" result="pass"/><test-case name="32119mgF002 tokoe:valid" result="pass"/><test-case name="32120mgF002.v tokoe:valid" result="pass"/><test-case name="32121mgF003 tokoe:invalid" result="pass"/><test-case name="32122mgF004 tokoe:valid" result="pass"/><test-case name="32123mgF004.v tokoe:valid" result="pass"/><test-case name="32124mgF005 tokoe:valid" result="pass"/><test-case name="32125mgF005.v tokoe:valid" result="pass"/><test-case name="32126mgF006 tokoe:valid" result="pass"/><test-case name="32127mgF006.v tokoe:valid" result="pass"/><test-case name="32128mgF007 tokoe:valid" result="pass"/><test-case name="32129mgF007.v tokoe:valid" result="pass"/><test-case name="32130mgF008 tokoe:valid" result="pass"/><test-case name="32131mgF008.v tokoe:valid" result="pass"/><test-case name="32132mgF009 tokoe:valid" result="pass"/><test-case name="32133mgF009.v tokoe:valid" result="pass"/><test-case name="32134mgF010 tokoe:valid" result="pass"/><test-case name="32135mgF010.v tokoe:valid" result="pass"/><test-case name="32136mgF011 tokoe:valid" result="pass"/><test-case name="32137mgF011.v tokoe:valid" result="pass"/><test-case name="32138mgF012 tokoe:valid" result="pass"/><test-case name="32139mgF012.v tokoe:valid" result="pass"/><test-case name="32140mgF013 tokoe:valid" result="pass"/><test-case name="32141mgF013.v tokoe:valid" result="pass"/><test-case name="32142mgF014 tokoe:valid" result="pass"/><test-case name="32143mgF014.v tokoe:valid" result="pass"/><test-case name="32144mgF015 tokoe:valid" result="pass"/><test-case name="32145mgF015.v tokoe:valid" result="pass"/><test-case name="32146mgF016 tokoe:valid" result="pass"/><test-case name="32147mgF016.v tokoe:valid" result="pass"/><test-case name="32148mgF017 tokoe:valid" result="pass"/><test-case name="32149mgF017.v tokoe:valid" result="pass"/><test-case name="32150mgF018 tokoe:valid" result="pass"/><test-case name="32151mgF018.v tokoe:valid" result="pass"/><test-case name="32152mgF019 tokoe:valid" result="pass"/><test-case name="32153mgF019.v tokoe:valid" result="pass"/><test-case name="32154mgF020 tokoe:invalid" result="pass"/><test-case name="32155mgF021 tokoe:invalid" result="pass"/><test-case name="32156mgF022 tokoe:invalid" result="pass"/><test-case name="32157mgF023 tokoe:invalid" result="pass"/><test-case name="32158mgG002 tokoe:invalid" result="pass"/><test-case name="32159mgG003 tokoe:valid" result="pass"/><test-case name="32160mgG003.i tokoe:invalid" result="pass"/><test-case name="32161mgG004 tokoe:valid" result="pass"/><test-case name="32162mgG004.v tokoe:valid" result="pass"/><test-case name="32163mgG005 tokoe:valid" result="pass"/><test-case name="32164mgG005.i tokoe:invalid" result="pass"/><test-case name="32165mgG006 tokoe:valid" result="pass"/><test-case name="32166mgG006.v tokoe:valid" result="pass"/><test-case name="32167mgG007 tokoe:valid" result="pass"/><test-case name="32168mgG007.v tokoe:valid" result="pass"/><test-case name="32169mgG008 tokoe:valid" result="pass"/><test-case name="32170mgG008.i tokoe:invalid" result="pass"/><test-case name="32171mgG009 tokoe:valid" result="pass"/><test-case name="32172mgG009.v tokoe:valid" result="pass"/><test-case name="32173mgG010 tokoe:valid" result="pass"/><test-case name="32174mgG010.v tokoe:valid" result="pass"/><test-case name="32175mgG011 tokoe:valid" result="pass"/><test-case name="32176mgG011.i tokoe:invalid" result="pass"/><test-case name="32177mgG012 tokoe:valid" result="pass"/><test-case name="32178mgG012.v tokoe:valid" result="pass"/><test-case name="32179mgG013 tokoe:valid" result="pass"/><test-case name="32180mgG013.i tokoe:invalid" result="pass"/><test-case name="32181mgG014 tokoe:valid" result="pass"/><test-case name="32182mgG014.v tokoe:valid" result="pass"/><test-case name="32183mgG015 tokoe:valid" result="pass"/><test-case name="32184mgG015.i tokoe:invalid" result="pass"/><test-case name="32185mgG016 tokoe:valid" result="pass"/><test-case name="32186mgG016.v tokoe:valid" result="pass"/><test-case name="32187mgG017 tokoe:valid" result="pass"/><test-case name="32188mgG017.i tokoe:invalid" result="pass"/><test-case name="32189mgG018 tokoe:valid" result="pass"/><test-case name="32190mgG018.i tokoe:invalid" result="pass"/><test-case name="32191mgG019 tokoe:valid" result="pass"/><test-case name="32192mgG019.v tokoe:valid" result="pass"/><test-case name="32193mgG020 tokoe:valid" result="pass"/><test-case name="32194mgG020.i tokoe:invalid" result="pass"/><test-case name="32195mgG021 tokoe:valid" result="pass"/><test-case name="32196mgG021.i tokoe:invalid" result="pass"/><test-case name="32197mgG022 tokoe:valid" result="pass"/><test-case name="32198mgG022.v tokoe:valid" result="pass"/><test-case name="32199mgG023 tokoe:valid" result="pass"/><test-case name="32200mgG023.v tokoe:valid" result="pass"/><test-case name="32201mgG024 tokoe:valid" result="pass"/><test-case name="32202mgG024.i tokoe:invalid" result="pass"/><test-case name="32203mgG025 tokoe:invalid" result="pass"/><test-case name="32204mgG026 tokoe:valid" result="pass"/><test-case name="32205mgG026.v tokoe:valid" result="pass"/><test-case name="32206mgG027 tokoe:invalid" result="pass"/><test-case name="32207mgG028 tokoe:invalid" result="pass"/><test-case name="32208mgG029 tokoe:invalid" result="pass"/><test-case name="32209mgG030 tokoe:invalid" result="pass"/><test-case name="32210mgH001 tokoe:valid" result="pass"/><test-case name="32211mgH001.v tokoe:valid" result="pass"/><test-case name="32212mgH002 tokoe:invalid" result="pass"/><test-case name="32213mgH003 tokoe:invalid" result="pass"/><test-case name="32214mgH004 tokoe:invalid" result="pass"/><test-case name="32215mgH005 tokoe:invalid" result="pass"/><test-case name="32216mgH006 tokoe:invalid" result="pass"/><test-case name="32217mgH007 tokoe:invalid" result="pass"/><test-case name="32218mgH008 tokoe:invalid" result="pass"/><test-case name="32219mgH009 tokoe:invalid" result="pass"/><test-case name="32220mgH010 tokoe:invalid" result="pass"/><test-case name="32221mgH011 tokoe:invalid" result="pass"/><test-case name="32222mgH012 tokoe:invalid" result="pass"/><test-case name="32223mgH013 tokoe:valid" result="pass"/><test-case name="32224mgH013.v tokoe:valid" result="pass"/><test-case name="32225mgH014 tokoe:valid" result="pass"/><test-case name="32226mgH014.v tokoe:valid" result="pass"/><test-case name="32227mgH015 tokoe:valid" result="pass"/><test-case name="32228mgH015.v tokoe:valid" result="pass"/><test-case name="32229mgH016 tokoe:valid" result="pass"/><test-case name="32230mgH016.v tokoe:valid" result="pass"/><test-case name="32231mgH017 tokoe:valid" result="pass"/><test-case name="32232mgH017.v tokoe:valid" result="pass"/><test-case name="32233mgH018 tokoe:valid" result="pass"/><test-case name="32234mgH018.v tokoe:valid" result="pass"/><test-case name="32235mgHa001 tokoe:invalid" result="pass"/><test-case name="32236mgHa002 tokoe:invalid" result="pass"/><test-case name="32237mgHa003 tokoe:invalid" result="pass"/><test-case name="32238mgHa004 tokoe:invalid" result="pass"/><test-case name="32239mgHa005 tokoe:invalid" result="pass"/><test-case name="32240mgHa006 tokoe:invalid" result="pass"/><test-case name="32241mgHa007 tokoe:invalid" result="pass"/><test-case name="32242mgHa008 tokoe:invalid" result="pass"/><test-case name="32243mgHb001 tokoe:invalid" result="pass"/><test-case name="32244mgHb002 tokoe:invalid" result="pass"/><test-case name="32245mgHb003 tokoe:invalid" result="pass"/><test-case name="32246mgHb004 tokoe:valid" result="pass"/><test-case name="32247mgHb004.v tokoe:valid" result="pass"/><test-case name="32248mgHb005 tokoe:valid" result="pass"/><test-case name="32249mgHb005.v tokoe:valid" result="pass"/><test-case name="32250mgHb006 tokoe:invalid" result="pass"/><test-case name="32251mgHb007 tokoe:invalid" result="pass"/><test-case name="32252mgHb008 tokoe:invalid" result="pass"/><test-case name="32253mgI001 tokoe:valid" result="pass"/><test-case name="32254mgI001.v tokoe:valid" result="pass"/><test-case name="32255mgI002 tokoe:valid" result="pass"/><test-case name="32256mgI002.v tokoe:valid" result="pass"/><test-case name="32257mgI003 tokoe:invalid" result="pass"/><test-case name="32258mgI004 tokoe:valid" result="pass"/><test-case name="32259mgI004.v tokoe:valid" result="pass"/><test-case name="32260mgI005 tokoe:valid" result="pass"/><test-case name="32261mgI005.v tokoe:valid" result="pass"/><test-case name="32262mgI006 tokoe:valid" result="pass"/><test-case name="32263mgI006.v tokoe:valid" result="pass"/><test-case name="32264mgI007 tokoe:valid" result="pass"/><test-case name="32265mgI007.v tokoe:valid" result="pass"/><test-case name="32266mgI008 tokoe:valid" result="pass"/><test-case name="32267mgI008.v tokoe:valid" result="pass"/><test-case name="32268mgI009 tokoe:valid" result="pass"/><test-case name="32269mgI009.v tokoe:valid" result="pass"/><test-case name="32270mgI010 tokoe:valid" result="pass"/><test-case name="32271mgI010.v tokoe:valid" result="pass"/><test-case name="32272mgI011 tokoe:valid" result="pass"/><test-case name="32273mgI011.v tokoe:valid" result="pass"/><test-case name="32274mgI012 tokoe:valid" result="pass"/><test-case name="32275mgI012.v tokoe:valid" result="pass"/><test-case name="32276mgI013 tokoe:valid" result="pass"/><test-case name="32277mgI013.v tokoe:valid" result="pass"/><test-case name="32278mgI014 tokoe:valid" result="pass"/><test-case name="32279mgI014.v tokoe:valid" result="pass"/><test-case name="32280mgI015 tokoe:valid" result="pass"/><test-case name="32281mgI015.v tokoe:valid" result="pass"/><test-case name="32282mgI016 tokoe:valid" result="pass"/><test-case name="32283mgI016.v tokoe:valid" result="pass"/><test-case name="32284mgI017 tokoe:valid" result="pass"/><test-case name="32285mgI017.v tokoe:valid" result="pass"/><test-case name="32286mgI018 tokoe:valid" result="pass"/><test-case name="32287mgI018.v tokoe:valid" result="pass"/><test-case name="32288mgI019 tokoe:valid" result="pass"/><test-case name="32289mgI019.v tokoe:valid" result="pass"/><test-case name="32290mgI020 tokoe:invalid" result="pass"/><test-case name="32291mgI021 tokoe:invalid" result="pass"/><test-case name="32292mgI022 tokoe:invalid" result="pass"/><test-case name="32293mgI023 tokoe:invalid" result="pass"/><test-case name="32294mgJ002 tokoe:invalid" result="pass"/><test-case name="32295mgJ003 tokoe:valid" result="pass"/><test-case name="32296mgJ003.i tokoe:invalid" result="pass"/><test-case name="32297mgJ004 tokoe:valid" result="pass"/><test-case name="32298mgJ004.v tokoe:valid" result="pass"/><test-case name="32299mgJ005 tokoe:valid" result="pass"/><test-case name="32300mgJ005.i tokoe:invalid" result="pass"/><test-case name="32301mgJ006 tokoe:valid" result="pass"/><test-case name="32302mgJ006.v tokoe:valid" result="pass"/><test-case name="32303mgJ007 tokoe:valid" result="pass"/><test-case name="32304mgJ007.v tokoe:valid" result="pass"/><test-case name="32305mgJ008 tokoe:valid" result="pass"/><test-case name="32306mgJ008.i tokoe:invalid" result="pass"/><test-case name="32307mgJ009 tokoe:valid" result="pass"/><test-case name="32308mgJ009.v tokoe:valid" result="pass"/><test-case name="32309mgJ010 tokoe:valid" result="pass"/><test-case name="32310mgJ010.v tokoe:valid" result="pass"/><test-case name="32311mgJ011 tokoe:valid" result="pass"/><test-case name="32312mgJ011.i tokoe:invalid" result="pass"/><test-case name="32313mgJ012 tokoe:valid" result="pass"/><test-case name="32314mgJ012.v tokoe:valid" result="pass"/><test-case name="32315mgJ013 tokoe:valid" result="pass"/><test-case name="32316mgJ013.i tokoe:invalid" result="pass"/><test-case name="32317mgJ014 tokoe:valid" result="pass"/><test-case name="32318mgJ014.v tokoe:valid" result="pass"/><test-case name="32319mgJ015 tokoe:valid" result="pass"/><test-case name="32320mgJ015.i tokoe:invalid" result="pass"/><test-case name="32321mgJ016 tokoe:valid" result="pass"/><test-case name="32322mgJ016.v tokoe:valid" result="pass"/><test-case name="32323mgJ017 tokoe:valid" result="pass"/><test-case name="32324mgJ017.i tokoe:invalid" result="pass"/><test-case name="32325mgJ018 tokoe:valid" result="pass"/><test-case name="32326mgJ018.i tokoe:invalid" result="pass"/><test-case name="32327mgJ019 tokoe:valid" result="pass"/><test-case name="32328mgJ019.v tokoe:valid" result="pass"/><test-case name="32329mgJ020 tokoe:valid" result="pass"/><test-case name="32330mgJ020.i tokoe:invalid" result="pass"/><test-case name="32331mgJ021 tokoe:valid" result="pass"/><test-case name="32332mgJ021.i tokoe:invalid" result="pass"/><test-case name="32333mgJ022 tokoe:valid" result="pass"/><test-case name="32334mgJ022.v tokoe:valid" result="pass"/><test-case name="32335mgJ023 tokoe:valid" result="pass"/><test-case name="32336mgJ023.v tokoe:valid" result="pass"/><test-case name="32337mgJ024 tokoe:valid" result="pass"/><test-case name="32338mgJ024.i tokoe:invalid" result="pass"/><test-case name="32339mgJ025 tokoe:invalid" result="pass"/><test-case name="32340mgJ026 tokoe:valid" result="pass"/><test-case name="32341mgJ026.v tokoe:valid" result="pass"/><test-case name="32342mgJ027 tokoe:invalid" result="pass"/><test-case name="32343mgJ028 tokoe:invalid" result="pass"/><test-case name="32344mgJ029 tokoe:invalid" result="pass"/><test-case name="32345mgJ030 tokoe:invalid" result="pass"/><test-case name="32346mgK001 tokoe:valid" result="pass"/><test-case name="32347mgK001.v tokoe:valid" result="pass"/><test-case name="32348mgK002 tokoe:valid" result="pass"/><test-case name="32349mgK002.i tokoe:invalid" result="pass"/><test-case name="32350mgK003 tokoe:valid" result="pass"/><test-case name="32351mgK003.i tokoe:invalid" result="pass"/><test-case name="32352mgK004 tokoe:valid" result="pass"/><test-case name="32353mgK004.v tokoe:valid" result="pass"/><test-case name="32354mgK005 tokoe:valid" result="pass"/><test-case name="32355mgK005.i tokoe:invalid" result="pass"/><test-case name="32356mgK006 tokoe:valid" result="pass"/><test-case name="32357mgK006.i tokoe:invalid" result="pass"/><test-case name="32358mgK007 tokoe:valid" result="pass"/><test-case name="32359mgK007.i tokoe:invalid" result="pass"/><test-case name="32360mgK008 tokoe:valid" result="pass"/><test-case name="32361mgK008.i tokoe:invalid" result="pass"/><test-case name="32362mgK009 tokoe:valid" result="pass"/><test-case name="32363mgK009.v tokoe:valid" result="pass"/><test-case name="32364mgK010 tokoe:valid" result="pass"/><test-case name="32365mgK010.i tokoe:invalid" result="pass"/><test-case name="32366mgL001 tokoe:valid" result="pass"/><test-case name="32367mgL001.v tokoe:valid" result="pass"/><test-case name="32368mgL002 tokoe:valid" result="pass"/><test-case name="32369mgL002.i tokoe:invalid" result="pass"/><test-case name="32370mgL003 tokoe:valid" result="pass"/><test-case name="32371mgL003.i tokoe:invalid" result="pass"/><test-case name="32372mgL004 tokoe:valid" result="pass"/><test-case name="32373mgL004.v tokoe:valid" result="pass"/><test-case name="32374mgL005 tokoe:valid" result="pass"/><test-case name="32375mgL005.i tokoe:invalid" result="pass"/><test-case name="32376mgL006 tokoe:valid" result="pass"/><test-case name="32377mgL006.v tokoe:valid" result="pass"/><test-case name="32378mgL007 tokoe:valid" result="pass"/><test-case name="32379mgL007.i tokoe:invalid" result="pass"/><test-case name="32380mgL008 tokoe:valid" result="pass"/><test-case name="32381mgL008.v tokoe:valid" result="pass"/><test-case name="32382mgL009 tokoe:valid" result="pass"/><test-case name="32383mgL009.v tokoe:valid" result="pass"/><test-case name="32384mgL010 tokoe:valid" result="pass"/><test-case name="32385mgL010.i tokoe:invalid" result="pass"/><test-case name="32386mgM002 tokoe:valid" result="pass"/><test-case name="32387mgM002.i tokoe:invalid" result="pass"/><test-case name="32388mgM003 tokoe:valid" result="pass"/><test-case name="32389mgM003.i tokoe:invalid" result="pass"/><test-case name="32390mgM004 tokoe:valid" result="pass"/><test-case name="32391mgM004.v tokoe:valid" result="pass"/><test-case name="32392mgM005 tokoe:valid" result="pass"/><test-case name="32393mgM005.i tokoe:invalid" result="pass"/><test-case name="32394mgM006 tokoe:valid" result="pass"/><test-case name="32395mgM006.i tokoe:invalid" result="pass"/><test-case name="32396mgM007 tokoe:valid" result="pass"/><test-case name="32397mgM007.i tokoe:invalid" result="pass"/><test-case name="32398mgM008 tokoe:valid" result="pass"/><test-case name="32399mgM008.v tokoe:valid" result="pass"/><test-case name="32400mgM009 tokoe:valid" result="pass"/><test-case name="32401mgM009.v tokoe:valid" result="pass"/><test-case name="32402mgM010 tokoe:valid" result="pass"/><test-case name="32403mgM010.i tokoe:invalid" result="pass"/><test-case name="32404mgM011 tokoe:valid" result="pass"/><test-case name="32405mgM011.v tokoe:valid" result="pass"/><test-case name="32406mgM012 tokoe:valid" result="pass"/><test-case name="32407mgM012.i tokoe:invalid" result="pass"/><test-case name="32408mgM013 tokoe:valid" result="pass"/><test-case name="32409mgM013.v tokoe:valid" result="pass"/><test-case name="32410mgM014 tokoe:valid" result="pass"/><test-case name="32411mgM014.i tokoe:invalid" result="pass"/><test-case name="32412mgN001 tokoe:valid" result="pass"/><test-case name="32413mgN001.v tokoe:valid" result="pass"/><test-case name="32414mgN002 tokoe:valid" result="pass"/><test-case name="32415mgN002.i tokoe:invalid" result="pass"/><test-case name="32416mgN003 tokoe:valid" result="pass"/><test-case name="32417mgN003.i tokoe:invalid" result="pass"/><test-case name="32418mgN004 tokoe:valid" result="pass"/><test-case name="32419mgN004.i tokoe:invalid" result="pass"/><test-case name="32420mgN005 tokoe:valid" result="pass"/><test-case name="32421mgN005.v tokoe:valid" result="pass"/><test-case name="32422mgN006 tokoe:valid" result="pass"/><test-case name="32423mgN006.i tokoe:invalid" result="pass"/><test-case name="32424mgN007 tokoe:valid" result="pass"/><test-case name="32425mgN007.i tokoe:invalid" result="pass"/><test-case name="32426mgN008 tokoe:valid" result="pass"/><test-case name="32427mgN008.i tokoe:invalid" result="pass"/><test-case name="32428mgN009 tokoe:valid" result="pass"/><test-case name="32429mgN009.i tokoe:invalid" result="pass"/><test-case name="32430mgN010 tokoe:valid" result="pass"/><test-case name="32431mgN010.i tokoe:invalid" result="pass"/><test-case name="32432mgN011 tokoe:valid" result="pass"/><test-case name="32433mgN011.i tokoe:invalid" result="pass"/><test-case name="32434mgN012 tokoe:valid" result="pass"/><test-case name="32435mgN012.v tokoe:valid" result="pass"/><test-case name="32436mgN013 tokoe:valid" result="pass"/><test-case name="32437mgN013.i tokoe:invalid" result="pass"/><test-case name="32438mgN014 tokoe:valid" result="pass"/><test-case name="32439mgN014.i tokoe:invalid" result="pass"/><test-case name="32440mgN015 tokoe:valid" result="pass"/><test-case name="32441mgN015.i tokoe:invalid" result="pass"/><test-case name="32442mgN016 tokoe:valid" result="pass"/><test-case name="32443mgN016.i tokoe:invalid" result="pass"/><test-case name="32444mgO001 tokoe:invalid" result="pass"/><test-case name="32445mgO002 tokoe:valid" result="pass"/><test-case name="32446mgO002.v tokoe:valid" result="pass"/><test-case name="32447mgO003 tokoe:invalid" result="pass"/><test-case name="32448mgO004 tokoe:valid" result="pass"/><test-case name="32449mgO004.v tokoe:valid" result="pass"/><test-case name="32450mgO005 tokoe:valid" result="pass"/><test-case name="32451mgO005.v tokoe:valid" result="pass"/><test-case name="32452mgO006 tokoe:valid" result="pass"/><test-case name="32453mgO006.v tokoe:valid" result="pass"/><test-case name="32454mgO007 tokoe:valid" result="pass"/><test-case name="32455mgO008 tokoe:valid" result="pass"/><test-case name="32456mgO008.v tokoe:valid" result="pass"/><test-case name="32457mgO009 tokoe:valid" result="pass"/><test-case name="32458mgO009.v tokoe:valid" result="pass"/><test-case name="32459mgO010 tokoe:valid" result="pass"/><test-case name="32460mgO010.v tokoe:valid" result="pass"/><test-case name="32461mgO011 tokoe:valid" result="pass"/><test-case name="32462mgO011.v tokoe:valid" result="pass"/><test-case name="32463mgO012 tokoe:invalid" result="pass"/><test-case name="32464mgO014 tokoe:valid" result="pass"/><test-case name="32465mgO015 tokoe:valid" result="pass"/><test-case name="32466mgO015.v tokoe:valid" result="pass"/><test-case name="32467mgO016 tokoe:valid" result="pass"/><test-case name="32468mgO016.v tokoe:valid" result="pass"/><test-case name="32469mgO017 tokoe:valid" result="pass"/><test-case name="32470mgO017.v tokoe:valid" result="pass"/><test-case name="32471mgO018 tokoe:invalid" result="pass"/><test-case name="32472mgO019 tokoe:invalid" result="pass"/><test-case name="32473mgO020 tokoe:invalid" result="pass"/><test-case name="32474mgO021 tokoe:invalid" result="pass"/><test-case name="32475mgO022 tokoe:invalid" result="pass"/><test-case name="32476mgO023 tokoe:invalid" result="pass"/><test-case name="32477mgO024 tokoe:invalid" result="pass"/><test-case name="32478mgO025 tokoe:invalid" result="pass"/><test-case name="32479mgO026 tokoe:invalid" result="pass"/><test-case name="32480mgO027 tokoe:invalid" result="pass"/><test-case name="32481mgO028 tokoe:valid" result="pass"/><test-case name="32482mgO029 tokoe:valid" result="pass"/><test-case name="32483mgO029.v tokoe:valid" result="pass"/><test-case name="32484mgO030 tokoe:valid" result="pass"/><test-case name="32485mgO030.v tokoe:valid" result="pass"/><test-case name="32486mgO031 tokoe:valid" result="pass"/><test-case name="32487mgO031.v tokoe:valid" result="pass"/><test-case name="32488mgO032 tokoe:invalid" result="pass"/><test-case name="32489mgO033 tokoe:invalid" result="pass"/><test-case name="32490mgO034 tokoe:valid" result="pass"/><test-case name="32491mgO034.v tokoe:valid" result="pass"/><test-case name="32492mgO035 tokoe:valid" result="pass"/><test-case name="32493mgO036 tokoe:valid" result="pass"/><test-case name="32494mgO036.v tokoe:valid" result="pass"/><test-case name="32495mgO037 tokoe:valid" result="pass"/><test-case name="32496mgO037.v tokoe:valid" result="pass"/><test-case name="32497mgO038 tokoe:valid" result="pass"/><test-case name="32498mgO038.v tokoe:valid" result="pass"/><test-case name="32499mgP039 tokoe:invalid" result="pass"/><test-case name="32500mgP040 tokoe:invalid" result="pass"/><test-case name="32501mgP041 tokoe:invalid" result="pass"/><test-case name="32502mgP042 tokoe:invalid" result="pass"/><test-case name="32503mgP043 tokoe:invalid" result="pass"/><test-case name="32504mgP049 tokoe:invalid" result="pass"/><test-case name="32505mgP050 tokoe:invalid" result="pass"/><test-case name="32506mgP055 tokoe:invalid" result="pass"/><test-case name="32507mgP056 tokoe:invalid" result="pass"/><test-case name="32508mgP057 tokoe:invalid" result="pass"/><test-case name="32509mgP058 tokoe:invalid" result="pass"/><test-case name="32510mgP059 tokoe:invalid" result="pass"/><test-case name="32511mgP060 tokoe:invalid" result="pass"/><test-case name="32512mgP061 tokoe:invalid" result="pass"/><test-case name="32513mgP062 tokoe:invalid" result="pass"/><test-case name="32514mgQ001 tokoe:invalid" result="pass"/><test-case name="32515mgQ002 tokoe:valid" result="pass"/><test-case name="32516mgQ002.v tokoe:valid" result="pass"/><test-case name="32517mgQ003 tokoe:valid" result="pass"/><test-case name="32518mgQ003.v tokoe:valid" result="pass"/><test-case name="32519mgQ004 tokoe:invalid" result="pass"/><test-case name="32520mgQ005 tokoe:invalid" result="pass"/><test-case name="32521mgQ006 tokoe:valid" result="pass"/><test-case name="32522mgQ006.v tokoe:valid" result="pass"/><test-case name="32523mgQ007 tokoe:valid" result="pass"/><test-case name="32524mgQ007.v tokoe:valid" result="pass"/><test-case name="32525mgQ008 tokoe:valid" result="pass"/><test-case name="32526mgQ008.v tokoe:valid" result="pass"/><test-case name="32527mgQ009 tokoe:valid" result="pass"/><test-case name="32528mgQ009.v tokoe:valid" result="pass"/><test-case name="32529mgQ010 tokoe:invalid" result="pass"/><test-case name="32530mgQ011 tokoe:invalid" result="pass"/><test-case name="32531mgQ012 tokoe:invalid" result="pass"/><test-case name="32532mgQ013 tokoe:invalid" result="pass"/><test-case name="32533mgQ014 tokoe:valid" result="pass"/><test-case name="32534mgQ014.v tokoe:valid" result="pass"/><test-case name="32535mgQ015 tokoe:valid" result="pass"/><test-case name="32536mgQ015.v tokoe:valid" result="pass"/><test-case name="32537mgQ016 tokoe:valid" result="pass"/><test-case name="32538mgQ016.v tokoe:valid" result="pass"/><test-case name="32539mgQ017 tokoe:valid" result="pass"/><test-case name="32540mgQ017.v tokoe:valid" result="pass"/><test-case name="32541mgQ018 tokoe:valid" result="pass"/><test-case name="32542mgQ018.v tokoe:valid" result="pass"/><test-case name="32543mgQ019 tokoe:valid" result="pass"/><test-case name="32544mgQ019.v tokoe:valid" result="pass"/><test-case name="32545mgQ020 tokoe:valid" result="pass"/><test-case name="32546mgQ020.v tokoe:valid" result="pass"/><test-case name="32547mgQ021 tokoe:invalid" result="pass"/><test-case name="32548mgR001 tokoe:invalid" result="pass"/><test-case name="32549mgR002 tokoe:invalid" result="pass"/><test-case name="32550mgR003 tokoe:invalid" result="pass"/><test-case name="32551mgR004 tokoe:invalid" result="pass"/><test-case name="32552mgR005 tokoe:invalid" result="pass"/><test-case name="32553mgR006 tokoe:invalid" result="pass"/><test-case name="32554mgR007 tokoe:invalid" result="pass"/><test-case name="32555mgR008 tokoe:invalid" result="pass"/><test-case name="32556mgR009 tokoe:invalid" result="pass"/><test-case name="32557mgR010 tokoe:invalid" result="pass"/><test-case name="32558mgR011 tokoe:invalid" result="pass"/><test-case name="32559mgR012 tokoe:invalid" result="pass"/><test-case name="32560mgR013 tokoe:invalid" result="pass"/><test-case name="32561mgR014 tokoe:invalid" result="pass"/><test-case name="32562mgR015 tokoe:invalid" result="pass"/><test-case name="32563mgR016 tokoe:invalid" result="pass"/><test-case name="32564mgR017 tokoe:invalid" result="pass"/><test-case name="32565mgR018 tokoe:invalid" result="pass"/><test-case name="32566mgR019 tokoe:invalid" result="pass"/><test-case name="32567mgR020 tokoe:invalid" result="pass"/><test-case name="32568mgR021 tokoe:invalid" result="pass"/><test-case name="32569mgR022 tokoe:invalid" result="pass"/><test-case name="32570mgS002 tokoe:invalid" result="pass"/><test-case name="32571mgS003 tokoe:invalid" result="pass"/><test-case name="32572mgS004 tokoe:invalid" result="pass"/><test-case name="32573mgS005 tokoe:invalid" result="pass"/><test-case name="32574mgZ001 tokoe:valid" result="pass"/><test-case name="32575mgZ001.i tokoe:invalid" result="pass"/><test-case name="32576mgZ002 tokoe:valid" result="pass"/><test-case name="32577mgZ003 tokoe:valid" result="pass"/><test-case name="32578mgZ003.v tokoe:valid" result="pass"/><test-case name="32579mgZ004 tokoe:valid" result="pass"/><test-case name="32580mgZ004.v tokoe:valid" result="pass"/><test-case name="32581mgZ005 tokoe:valid" result="pass"/><test-case name="32582notatA001 tokoe:valid" result="pass"/><test-case name="32583notatA002 tokoe:invalid" result="pass"/><test-case name="32584notatA003 tokoe:valid" result="pass"/><test-case name="32585notatA004 tokoe:valid" result="pass"/><test-case name="32586notatA005 tokoe:invalid" result="pass"/><test-case name="32587notatA006 tokoe:invalid" result="pass"/><test-case name="32588notatA007 tokoe:invalid" result="pass"/><test-case name="32589notatB001 tokoe:invalid" result="pass"/><test-case name="32590notatB002 tokoe:valid" result="pass"/><test-case name="32591notatB003 tokoe:valid" result="pass"/><test-case name="32592notatB004 tokoe:valid" result="pass"/><test-case name="32593notatB005 tokoe:invalid" result="pass"/><test-case name="32594notatB006 tokoe:valid" result="pass"/><test-case name="32595notatB008 tokoe:invalid" result="pass"/><test-case name="32596notatB009 tokoe:invalid" result="pass"/><test-case name="32597notatB010 tokoe:invalid" result="pass"/><test-case name="32598notatB011 tokoe:invalid" result="pass"/><test-case name="32599notatB012 tokoe:invalid" result="pass"/><test-case name="32600notatB013 tokoe:invalid" result="pass"/><test-case name="32601notatB014 tokoe:valid" result="pass"/><test-case name="32602notatB015 tokoe:valid" result="pass"/><test-case name="32603notatB016 tokoe:valid" result="pass"/><test-case name="32604notatC001 tokoe:valid" result="pass"/><test-case name="32605notatC003 tokoe:valid" result="pass"/><test-case name="32606notatC004 tokoe:valid" result="pass"/><test-case name="32607notatC005 tokoe:valid" result="pass"/><test-case name="32608notatC006 tokoe:valid" result="pass"/><test-case name="32609notatD001 tokoe:valid" result="pass"/><test-case name="32610notatD004 tokoe:valid" result="pass"/><test-case name="32611notatD005 tokoe:valid" result="pass"/><test-case name="32612notatD006 tokoe:valid" result="pass"/><test-case name="32613notatD007 tokoe:valid" result="pass"/><test-case name="32614notatE001 tokoe:valid" result="pass"/><test-case name="32615notatE002 tokoe:invalid" result="pass"/><test-case name="32616notatE003 tokoe:invalid" result="pass"/><test-case name="32617notatE004 tokoe:valid" result="pass"/><test-case name="32618notatF001 tokoe:invalid" result="pass"/><test-case name="32619notatF002 tokoe:invalid" result="pass"/><test-case name="32620notatF003 tokoe:invalid" result="pass"/><test-case name="32621notatF004 tokoe:valid" result="pass"/><test-case name="32622notatF005 tokoe:invalid" result="pass"/><test-case name="32623notatF006 tokoe:invalid" result="pass"/><test-case name="32624notatF007 tokoe:invalid" result="pass"/><test-case name="32625notatF008 tokoe:invalid" result="pass"/><test-case name="32626notatF009 tokoe:valid" result="pass"/><test-case name="32627notatF010 tokoe:invalid" result="pass"/><test-case name="32628notatF011 tokoe:invalid" result="pass"/><test-case name="32629notatF012 tokoe:invalid" result="pass"/><test-case name="32630notatF013 tokoe:invalid" result="pass"/><test-case name="32631notatF014 tokoe:invalid" result="pass"/><test-case name="32632notatF015 tokoe:invalid" result="pass"/><test-case name="32633notatF016 tokoe:invalid" result="pass"/><test-case name="32634notatF017 tokoe:invalid" result="pass"/><test-case name="32635notatF018 tokoe:invalid" result="pass"/><test-case name="32636notatF019 tokoe:invalid" result="pass"/><test-case name="32637notatF020 tokoe:invalid" result="pass"/><test-case name="32638notatF021 tokoe:valid" result="pass"/><test-case name="32639notatF022 tokoe:invalid" result="pass"/><test-case name="32640notatF023 tokoe:invalid" result="pass"/><test-case name="32641notatF024 tokoe:invalid" result="pass"/><test-case name="32642notatF025 tokoe:invalid" result="pass"/><test-case name="32643notatF026 tokoe:invalid" result="pass"/><test-case name="32644notatF027 tokoe:invalid" result="pass"/><test-case name="32645notatF028 tokoe:invalid" result="pass"/><test-case name="32646notatF029 tokoe:invalid" result="pass"/><test-case name="32647notatF030 tokoe:invalid" result="pass"/><test-case name="32648notatF031 tokoe:invalid" result="pass"/><test-case name="32649notatF032 tokoe:invalid" result="pass"/><test-case name="32650notatF033 tokoe:invalid" result="pass"/><test-case name="32651notatF034 tokoe:invalid" result="pass"/><test-case name="32652notatF035 tokoe:invalid" result="pass"/><test-case name="32653notatF036 tokoe:invalid" result="pass"/><test-case name="32654notatF037 tokoe:invalid" result="pass"/><test-case name="32655notatF038 tokoe:invalid" result="pass"/><test-case name="32656notatF039 tokoe:invalid" result="pass"/><test-case name="32657notatF040 tokoe:invalid" result="pass"/><test-case name="32658notatF041 tokoe:invalid" result="pass"/><test-case name="32659notatF042 tokoe:invalid" result="pass"/><test-case name="32660notatF043 tokoe:invalid" result="pass"/><test-case name="32661notatF044 tokoe:invalid" result="pass"/><test-case name="32662notatF045 tokoe:invalid" result="pass"/><test-case name="32663notatF046 tokoe:invalid" result="pass"/><test-case name="32664notatF047 tokoe:invalid" result="pass"/><test-case name="32665notatF048 tokoe:invalid" result="pass"/><test-case name="32666notatF049 tokoe:invalid" result="pass"/><test-case name="32667notatF050 tokoe:invalid" result="pass"/><test-case name="32668notatF051 tokoe:invalid" result="pass"/><test-case name="32669notatF052 tokoe:invalid" result="pass"/><test-case name="32670notatF053 tokoe:invalid" result="pass"/><test-case name="32671notatF054 tokoe:invalid" result="pass"/><test-case name="32672notatF055 tokoe:invalid" result="pass"/><test-case name="32673notatF056 tokoe:invalid" result="pass"/><test-case name="32674notatF057 tokoe:invalid" result="pass"/><test-case name="32675notatF058 tokoe:invalid" result="pass"/><test-case name="32676notatF059 tokoe:valid" result="pass"/><test-case name="32677notatF060 tokoe:invalid" result="pass"/><test-case name="32678notatF061 tokoe:invalid" result="pass"/><test-case name="32679notatF062 tokoe:invalid" result="pass"/><test-case name="32680notatF063 tokoe:invalid" result="pass"/><test-case name="32681notatF064 tokoe:invalid" result="pass"/><test-case name="32682notatF065 tokoe:invalid" result="pass"/><test-case name="32683notatF066 tokoe:invalid" result="pass"/><test-case name="32684notatF067 tokoe:invalid" result="pass"/><test-case name="32685notatF068 tokoe:invalid" result="pass"/><test-case name="32686notatF069 tokoe:invalid" result="pass"/><test-case name="32687notatF070 tokoe:invalid" result="pass"/><test-case name="32688notatF071 tokoe:invalid" result="pass"/><test-case name="32689notatF072 tokoe:invalid" result="pass"/><test-case name="32690notatG001 tokoe:invalid" result="pass"/><test-case name="32691notatG002 tokoe:invalid" result="pass"/><test-case name="32692notatG003 tokoe:invalid" result="pass"/><test-case name="32693notatG005 tokoe:valid" result="pass"/><test-case name="32694notatG006 tokoe:invalid" result="pass"/><test-case name="32695notatH001v tokoe:valid" result="pass"/><test-case name="32696notatH001v.v tokoe:valid" result="pass"/><test-case name="32697notatH002v tokoe:valid" result="pass"/><test-case name="32698notatH002v.i tokoe:invalid" result="pass"/><test-case name="32699notatH003 tokoe:valid" result="pass"/><test-case name="32700notatH003.i tokoe:invalid" result="pass"/><test-case name="32701particlesA001 tokoe:valid" result="pass"/><test-case name="32702particlesA001.i tokoe:invalid" result="pass"/><test-case name="32703particlesA002 tokoe:valid" result="pass"/><test-case name="32704particlesA002.v tokoe:valid" result="pass"/><test-case name="32705particlesA003 tokoe:valid" result="pass"/><test-case name="32706particlesA003.i tokoe:invalid" result="pass"/><test-case name="32707particlesA004 tokoe:valid" result="pass"/><test-case name="32708particlesA004.i tokoe:invalid" result="pass"/><test-case name="32709particlesA005 tokoe:valid" result="pass"/><test-case name="32710particlesA005.i tokoe:invalid" result="pass"/><test-case name="32711particlesA006 tokoe:valid" result="pass"/><test-case name="32712particlesA006.v tokoe:valid" result="pass"/><test-case name="32713particlesA007 tokoe:valid" result="pass"/><test-case name="32714particlesA007.v tokoe:valid" result="pass"/><test-case name="32715particlesA008 tokoe:valid" result="pass"/><test-case name="32716particlesA008.i tokoe:invalid" result="pass"/><test-case name="32717particlesA009 tokoe:valid" result="pass"/><test-case name="32718particlesA009.i tokoe:invalid" result="pass"/><test-case name="32719particlesA010 tokoe:valid" result="pass"/><test-case name="32720particlesA010.v tokoe:valid" result="pass"/><test-case name="32721particlesA011 tokoe:valid" result="pass"/><test-case name="32722particlesA011.v tokoe:valid" result="pass"/><test-case name="32723particlesB001 tokoe:valid" result="pass"/><test-case name="32724particlesB001.i tokoe:invalid" result="pass"/><test-case name="32725particlesB002 tokoe:valid" result="pass"/><test-case name="32726particlesB002.v tokoe:valid" result="pass"/><test-case name="32727particlesB003 tokoe:valid" result="pass"/><test-case name="32728particlesB003.i tokoe:invalid" result="pass"/><test-case name="32729particlesB004 tokoe:valid" result="pass"/><test-case name="32730particlesB004.i tokoe:invalid" result="pass"/><test-case name="32731particlesB005 tokoe:valid" result="pass"/><test-case name="32732particlesB005.v tokoe:valid" result="pass"/><test-case name="32733particlesB006 tokoe:valid" result="pass"/><test-case name="32734particlesB006.v tokoe:valid" result="pass"/><test-case name="32735particlesB007 tokoe:valid" result="pass"/><test-case name="32736particlesB007.i tokoe:invalid" result="pass"/><test-case name="32737particlesB008 tokoe:valid" result="pass"/><test-case name="32738particlesB008.i tokoe:invalid" result="pass"/><test-case name="32739particlesB009 tokoe:valid" result="pass"/><test-case name="32740particlesB009.v tokoe:valid" result="pass"/><test-case name="32741particlesB010 tokoe:valid" result="pass"/><test-case name="32742particlesB010.v tokoe:valid" result="pass"/><test-case name="32743particlesB011 tokoe:valid" result="pass"/><test-case name="32744particlesB011.i tokoe:invalid" result="pass"/><test-case name="32745particlesB012 tokoe:valid" result="pass"/><test-case name="32746particlesB012.i tokoe:invalid" result="pass"/><test-case name="32747particlesB013 tokoe:valid" result="pass"/><test-case name="32748particlesB013.v tokoe:valid" result="pass"/><test-case name="32749particlesB014 tokoe:valid" result="pass"/><test-case name="32750particlesB014.v tokoe:valid" result="pass"/><test-case name="32751particlesB015 tokoe:valid" result="pass"/><test-case name="32752particlesB015.i tokoe:invalid" result="pass"/><test-case name="32753particlesC001 tokoe:valid" result="pass"/><test-case name="32754particlesC001.v tokoe:valid" result="pass"/><test-case name="32755particlesC002 tokoe:valid" result="pass"/><test-case name="32756particlesC002.v tokoe:valid" result="pass"/><test-case name="32757particlesC003 tokoe:valid" result="pass"/><test-case name="32758particlesC003.v tokoe:valid" result="pass"/><test-case name="32759particlesC004 tokoe:valid" result="pass"/><test-case name="32760particlesC004.v tokoe:valid" result="pass"/><test-case name="32761particlesC005 tokoe:valid" result="pass"/><test-case name="32762particlesC005.v tokoe:valid" result="pass"/><test-case name="32763particlesC006 tokoe:valid" result="pass"/><test-case name="32764particlesC006.v tokoe:valid" result="pass"/><test-case name="32765particlesC007 tokoe:valid" result="pass"/><test-case name="32766particlesC007.i tokoe:invalid" result="pass"/><test-case name="32767particlesC008 tokoe:valid" result="pass"/><test-case name="32768particlesC008.v tokoe:valid" result="pass"/><test-case name="32769particlesC009 tokoe:valid" result="pass"/><test-case name="32770particlesC009.i tokoe:invalid" result="pass"/><test-case name="32771particlesC010 tokoe:valid" result="pass"/><test-case name="32772particlesC010.i tokoe:invalid" result="pass"/><test-case name="32773particlesC011 tokoe:valid" result="pass"/><test-case name="32774particlesC011.v tokoe:valid" result="pass"/><test-case name="32775particlesC012 tokoe:valid" result="pass"/><test-case name="32776particlesC012.i tokoe:invalid" result="pass"/><test-case name="32777particlesC013 tokoe:valid" result="pass"/><test-case name="32778particlesC013.i tokoe:invalid" result="pass"/><test-case name="32779particlesC014 tokoe:valid" result="pass"/><test-case name="32780particlesC014.i tokoe:invalid" result="pass"/><test-case name="32781particlesC015 tokoe:valid" result="pass"/><test-case name="32782particlesC015.v tokoe:valid" result="pass"/><test-case name="32783particlesC016 tokoe:valid" result="pass"/><test-case name="32784particlesC016.v tokoe:valid" result="pass"/><test-case name="32785particlesC017 tokoe:valid" result="pass"/><test-case name="32786particlesC017.i tokoe:invalid" result="pass"/><test-case name="32787particlesC018 tokoe:valid" result="pass"/><test-case name="32788particlesC018.i tokoe:invalid" result="pass"/><test-case name="32789particlesC019 tokoe:valid" result="pass"/><test-case name="32790particlesC019.i tokoe:invalid" result="pass"/><test-case name="32791particlesC020 tokoe:valid" result="pass"/><test-case name="32792particlesC020.i tokoe:invalid" result="pass"/><test-case name="32793particlesC021 tokoe:valid" result="pass"/><test-case name="32794particlesC021.v tokoe:valid" result="pass"/><test-case name="32795particlesC022 tokoe:valid" result="pass"/><test-case name="32796particlesC022.i tokoe:invalid" result="pass"/><test-case name="32797particlesC023 tokoe:valid" result="pass"/><test-case name="32798particlesC023.i tokoe:invalid" result="pass"/><test-case name="32799particlesC024 tokoe:valid" result="pass"/><test-case name="32800particlesC024.i tokoe:invalid" result="pass"/><test-case name="32801particlesC025 tokoe:valid" result="pass"/><test-case name="32802particlesC025.i tokoe:invalid" result="pass"/><test-case name="32803particlesC026 tokoe:valid" result="pass"/><test-case name="32804particlesC026.i tokoe:invalid" result="pass"/><test-case name="32805particlesC027 tokoe:valid" result="pass"/><test-case name="32806particlesC027.v tokoe:valid" result="pass"/><test-case name="32807particlesC028 tokoe:valid" result="pass"/><test-case name="32808particlesC028.v tokoe:valid" result="pass"/><test-case name="32809particlesC029 tokoe:valid" result="pass"/><test-case name="32810particlesC029.v tokoe:valid" result="pass"/><test-case name="32811particlesC030 tokoe:valid" result="pass"/><test-case name="32812particlesC030.v tokoe:valid" result="pass"/><test-case name="32813particlesC031 tokoe:valid" result="pass"/><test-case name="32814particlesC031.i tokoe:invalid" result="pass"/><test-case name="32815particlesC032 tokoe:valid" result="pass"/><test-case name="32816particlesC032.i tokoe:invalid" result="pass"/><test-case name="32817particlesC033 tokoe:valid" result="pass"/><test-case name="32818particlesC033.i tokoe:invalid" result="pass"/><test-case name="32819particlesC034 tokoe:valid" result="pass"/><test-case name="32820particlesC034.v tokoe:valid" result="pass"/><test-case name="32821particlesC035 tokoe:valid" result="pass"/><test-case name="32822particlesC035.i tokoe:invalid" result="pass"/><test-case name="32823particlesC036 tokoe:valid" result="pass"/><test-case name="32824particlesC036.i tokoe:invalid" result="pass"/><test-case name="32825particlesC037 tokoe:valid" result="pass"/><test-case name="32826particlesC037.v tokoe:valid" result="pass"/><test-case name="32827particlesC038 tokoe:valid" result="pass"/><test-case name="32828particlesC038.i tokoe:invalid" result="pass"/><test-case name="32829particlesC039 tokoe:valid" result="pass"/><test-case name="32830particlesC039.i tokoe:invalid" result="pass"/><test-case name="32831particlesC040 tokoe:valid" result="pass"/><test-case name="32832particlesC040.v tokoe:valid" result="pass"/><test-case name="32833particlesC041 tokoe:valid" result="pass"/><test-case name="32834particlesC041.v tokoe:valid" result="pass"/><test-case name="32835particlesC042 tokoe:valid" result="pass"/><test-case name="32836particlesC042.i tokoe:invalid" result="pass"/><test-case name="32837particlesC043 tokoe:valid" result="pass"/><test-case name="32838particlesC043.v tokoe:valid" result="pass"/><test-case name="32839particlesC044 tokoe:valid" result="pass"/><test-case name="32840particlesC044.v tokoe:valid" result="pass"/><test-case name="32841particlesC045 tokoe:valid" result="pass"/><test-case name="32842particlesC045.v tokoe:valid" result="pass"/><test-case name="32843particlesC046 tokoe:valid" result="pass"/><test-case name="32844particlesC046.v tokoe:valid" result="pass"/><test-case name="32845particlesC047 tokoe:valid" result="pass"/><test-case name="32846particlesC047.i tokoe:invalid" result="pass"/><test-case name="32847particlesC048 tokoe:valid" result="pass"/><test-case name="32848particlesC048.i tokoe:invalid" result="pass"/><test-case name="32849particlesDa001 tokoe:valid" result="pass"/><test-case name="32850particlesDa001.i tokoe:invalid" result="pass"/><test-case name="32851particlesDa002 tokoe:valid" result="pass"/><test-case name="32852particlesDa002.v tokoe:valid" result="pass"/><test-case name="32853particlesDa003 tokoe:valid" result="pass"/><test-case name="32854particlesDa003.i tokoe:invalid" result="pass"/><test-case name="32855particlesDa004 tokoe:valid" result="pass"/><test-case name="32856particlesDa004.i tokoe:invalid" result="pass"/><test-case name="32857particlesDa005 tokoe:valid" result="pass"/><test-case name="32858particlesDa005.i tokoe:invalid" result="pass"/><test-case name="32859particlesDa006 tokoe:invalid" result="pass"/><test-case name="32860particlesDa011 tokoe:invalid" result="pass"/><test-case name="32861particlesDb001 tokoe:valid" result="pass"/><test-case name="32862particlesDb001.i tokoe:invalid" result="pass"/><test-case name="32863particlesDb002 tokoe:valid" result="pass"/><test-case name="32864particlesDb002.v tokoe:valid" result="pass"/><test-case name="32865particlesDb003 tokoe:valid" result="pass"/><test-case name="32866particlesDb003.i tokoe:invalid" result="pass"/><test-case name="32867particlesDb004 tokoe:valid" result="pass"/><test-case name="32868particlesDb004.i tokoe:invalid" result="pass"/><test-case name="32869particlesDb005 tokoe:valid" result="pass"/><test-case name="32870particlesDb005.i tokoe:invalid" result="pass"/><test-case name="32871particlesDb006 tokoe:valid" result="pass"/><test-case name="32872particlesDb006.i tokoe:invalid" result="pass"/><test-case name="32873particlesDb007 tokoe:valid" result="pass"/><test-case name="32874particlesDb007.v tokoe:valid" result="pass"/><test-case name="32875particlesDb008 tokoe:valid" result="pass"/><test-case name="32876particlesDb008.i tokoe:invalid" result="pass"/><test-case name="32877particlesDb009 tokoe:valid" result="pass"/><test-case name="32878particlesDb009.i tokoe:invalid" result="pass"/><test-case name="32879particlesDb010 tokoe:valid" result="pass"/><test-case name="32880particlesDb010.i tokoe:invalid" result="pass"/><test-case name="32881particlesDb011 tokoe:valid" result="pass"/><test-case name="32882particlesDb011.i tokoe:invalid" result="pass"/><test-case name="32883particlesDc001 tokoe:valid" result="pass"/><test-case name="32884particlesDc001.v tokoe:valid" result="pass"/><test-case name="32885particlesDc002 tokoe:valid" result="pass"/><test-case name="32886particlesDc002.v tokoe:valid" result="pass"/><test-case name="32887particlesDc003 tokoe:valid" result="pass"/><test-case name="32888particlesDc003.v tokoe:valid" result="pass"/><test-case name="32889particlesDc004 tokoe:valid" result="pass"/><test-case name="32890particlesDc004.i tokoe:invalid" result="pass"/><test-case name="32891particlesDc005 tokoe:valid" result="pass"/><test-case name="32892particlesDc005.i tokoe:invalid" result="pass"/><test-case name="32893particlesDc006 tokoe:valid" result="pass"/><test-case name="32894particlesDc006.i tokoe:invalid" result="pass"/><test-case name="32895particlesDc007 tokoe:valid" result="pass"/><test-case name="32896particlesDc007.v tokoe:valid" result="pass"/><test-case name="32897particlesDc008 tokoe:valid" result="pass"/><test-case name="32898particlesDc008.i tokoe:invalid" result="pass"/><test-case name="32899particlesDc009 tokoe:valid" result="pass"/><test-case name="32900particlesDc009.i tokoe:invalid" result="pass"/><test-case name="32901particlesEa001 tokoe:valid" result="pass"/><test-case name="32902particlesEa001.v tokoe:valid" result="pass"/><test-case name="32903particlesEa002 tokoe:valid" result="pass"/><test-case name="32904particlesEa002.i tokoe:invalid" result="pass"/><test-case name="32905particlesEa003 tokoe:valid" result="pass"/><test-case name="32906particlesEa003.v tokoe:valid" result="pass"/><test-case name="32907particlesEa004 tokoe:valid" result="pass"/><test-case name="32908particlesEa004.v tokoe:valid" result="pass"/><test-case name="32909particlesEa005 tokoe:valid" result="pass"/><test-case name="32910particlesEa005.i tokoe:invalid" result="pass"/><test-case name="32911particlesEa006 tokoe:valid" result="pass"/><test-case name="32912particlesEa006.i tokoe:invalid" result="pass"/><test-case name="32913particlesEa007 tokoe:valid" result="pass"/><test-case name="32914particlesEa007.i tokoe:invalid" result="pass"/><test-case name="32915particlesEa008 tokoe:valid" result="pass"/><test-case name="32916particlesEa008.v tokoe:valid" result="pass"/><test-case name="32917particlesEa009 tokoe:valid" result="pass"/><test-case name="32918particlesEa009.i tokoe:invalid" result="pass"/><test-case name="32919particlesEa010 tokoe:valid" result="pass"/><test-case name="32920particlesEa010.v tokoe:valid" result="pass"/><test-case name="32921particlesEa011 tokoe:valid" result="pass"/><test-case name="32922particlesEa011.v tokoe:valid" result="pass"/><test-case name="32923particlesEa012 tokoe:valid" result="pass"/><test-case name="32924particlesEa012.i tokoe:invalid" result="pass"/><test-case name="32925particlesEa013 tokoe:valid" result="pass"/><test-case name="32926particlesEa013.i tokoe:invalid" result="pass"/><test-case name="32927particlesEa014 tokoe:valid" result="pass"/><test-case name="32928particlesEa014.i tokoe:invalid" result="pass"/><test-case name="32929particlesEa015 tokoe:valid" result="pass"/><test-case name="32930particlesEa015.v tokoe:valid" result="pass"/><test-case name="32931particlesEa016 tokoe:valid" result="pass"/><test-case name="32932particlesEa016.i tokoe:invalid" result="pass"/><test-case name="32933particlesEa017 tokoe:valid" result="pass"/><test-case name="32934particlesEa017.v tokoe:valid" result="pass"/><test-case name="32935particlesEa018 tokoe:valid" result="pass"/><test-case name="32936particlesEa018.v tokoe:valid" result="pass"/><test-case name="32937particlesEa019 tokoe:valid" result="pass"/><test-case name="32938particlesEa019.i tokoe:invalid" result="pass"/><test-case name="32939particlesEa020 tokoe:valid" result="pass"/><test-case name="32940particlesEa020.i tokoe:invalid" result="pass"/><test-case name="32941particlesEa021 tokoe:valid" result="pass"/><test-case name="32942particlesEa021.i tokoe:invalid" result="pass"/><test-case name="32943particlesEa022 tokoe:valid" result="pass"/><test-case name="32944particlesEa023 tokoe:invalid" result="pass"/><test-case name="32945particlesEa024 tokoe:invalid" result="pass"/><test-case name="32946particlesEa025 tokoe:invalid" result="pass"/><test-case name="32947particlesEb001 tokoe:valid" result="pass"/><test-case name="32948particlesEb001.v tokoe:valid" result="pass"/><test-case name="32949particlesEb002 tokoe:valid" result="pass"/><test-case name="32950particlesEb002.i tokoe:invalid" result="pass"/><test-case name="32951particlesEb003 tokoe:valid" result="pass"/><test-case name="32952particlesEb003.v tokoe:valid" result="pass"/><test-case name="32953particlesEb004 tokoe:valid" result="pass"/><test-case name="32954particlesEb004.i tokoe:invalid" result="pass"/><test-case name="32955particlesEb005 tokoe:valid" result="pass"/><test-case name="32956particlesEb005.i tokoe:invalid" result="pass"/><test-case name="32957particlesEb006 tokoe:valid" result="pass"/><test-case name="32958particlesEb006.i tokoe:invalid" result="pass"/><test-case name="32959particlesEb007 tokoe:valid" result="pass"/><test-case name="32960particlesEb007.i tokoe:invalid" result="pass"/><test-case name="32961particlesEb008 tokoe:valid" result="pass"/><test-case name="32962particlesEb008.i tokoe:invalid" result="pass"/><test-case name="32963particlesEb009 tokoe:valid" result="pass"/><test-case name="32964particlesEb009.i tokoe:invalid" result="pass"/><test-case name="32965particlesEb010 tokoe:valid" result="pass"/><test-case name="32966particlesEb010.v tokoe:valid" result="pass"/><test-case name="32967particlesEb011 tokoe:valid" result="pass"/><test-case name="32968particlesEb011.i tokoe:invalid" result="pass"/><test-case name="32969particlesEb012 tokoe:valid" result="pass"/><test-case name="32970particlesEb012.i tokoe:invalid" result="pass"/><test-case name="32971particlesEb013 tokoe:valid" result="pass"/><test-case name="32972particlesEb013.i tokoe:invalid" result="pass"/><test-case name="32973particlesEb014 tokoe:valid" result="pass"/><test-case name="32974particlesEb014.i tokoe:invalid" result="pass"/><test-case name="32975particlesEb015 tokoe:invalid" result="pass"/><test-case name="32976particlesEb017 tokoe:valid" result="pass"/><test-case name="32977particlesEb017.i tokoe:invalid" result="pass"/><test-case name="32978particlesEb018 tokoe:valid" result="pass"/><test-case name="32979particlesEb018.i tokoe:invalid" result="pass"/><test-case name="32980particlesEb019 tokoe:valid" result="pass"/><test-case name="32981particlesEb019.v tokoe:valid" result="pass"/><test-case name="32982particlesEb020 tokoe:valid" result="pass"/><test-case name="32983particlesEb020.i tokoe:invalid" result="pass"/><test-case name="32984particlesEb021 tokoe:valid" result="pass"/><test-case name="32985particlesEb021.i tokoe:invalid" result="pass"/><test-case name="32986particlesEb022 tokoe:valid" result="pass"/><test-case name="32987particlesEb022.i tokoe:invalid" result="pass"/><test-case name="32988particlesEb023 tokoe:valid" result="pass"/><test-case name="32989particlesEb023.i tokoe:invalid" result="pass"/><test-case name="32990particlesEb024 tokoe:valid" result="pass"/><test-case name="32991particlesEb024.i tokoe:invalid" result="pass"/><test-case name="32992particlesEb025 tokoe:valid" result="pass"/><test-case name="32993particlesEb025.i tokoe:invalid" result="pass"/><test-case name="32994particlesEb026 tokoe:valid" result="pass"/><test-case name="32995particlesEb026.v tokoe:valid" result="pass"/><test-case name="32996particlesEb027 tokoe:valid" result="pass"/><test-case name="32997particlesEb027.v tokoe:valid" result="pass"/><test-case name="32998particlesEb028 tokoe:valid" result="pass"/><test-case name="32999particlesEb028.i tokoe:invalid" result="pass"/><test-case name="33000particlesEb029 tokoe:valid" result="pass"/><test-case name="33001particlesEb029.i tokoe:invalid" result="pass"/><test-case name="33002particlesEb030 tokoe:valid" result="pass"/><test-case name="33003particlesEb030.i tokoe:invalid" result="pass"/><test-case name="33004particlesEb031 tokoe:valid" result="pass"/><test-case name="33005particlesEb031.i tokoe:invalid" result="pass"/><test-case name="33006particlesEb032 tokoe:valid" result="pass"/><test-case name="33007particlesEb032.i tokoe:invalid" result="pass"/><test-case name="33008particlesEb033 tokoe:valid" result="pass"/><test-case name="33009particlesEb033.i tokoe:invalid" result="pass"/><test-case name="33010particlesEb034 tokoe:valid" result="pass"/><test-case name="33011particlesEb034.i tokoe:invalid" result="pass"/><test-case name="33012particlesEb035 tokoe:valid" result="pass"/><test-case name="33013particlesEb035.i tokoe:invalid" result="pass"/><test-case name="33014particlesEb036 tokoe:valid" result="pass"/><test-case name="33015particlesEb036.v tokoe:valid" result="pass"/><test-case name="33016particlesEb037 tokoe:valid" result="pass"/><test-case name="33017particlesEb037.i tokoe:invalid" result="pass"/><test-case name="33018particlesEb038 tokoe:valid" result="pass"/><test-case name="33019particlesEb038.v tokoe:valid" result="pass"/><test-case name="33020particlesEb039 tokoe:valid" result="pass"/><test-case name="33021particlesEb039.i tokoe:invalid" result="pass"/><test-case name="33022particlesEb040 tokoe:invalid" result="pass"/><test-case name="33023particlesEb041 tokoe:valid" result="pass"/><test-case name="33024particlesEb041.v tokoe:valid" result="pass"/><test-case name="33025particlesEc001 tokoe:valid" result="pass"/><test-case name="33026particlesEc001.v tokoe:valid" result="pass"/><test-case name="33027particlesEc002 tokoe:valid" result="pass"/><test-case name="33028particlesEc002.v tokoe:valid" result="pass"/><test-case name="33029particlesEc003 tokoe:valid" result="pass"/><test-case name="33030particlesEc003.i tokoe:invalid" result="pass"/><test-case name="33031particlesEc004 tokoe:valid" result="pass"/><test-case name="33032particlesEc004.i tokoe:invalid" result="pass"/><test-case name="33033particlesEc005 tokoe:valid" result="pass"/><test-case name="33034particlesEc005.i tokoe:invalid" result="pass"/><test-case name="33035particlesEc006 tokoe:valid" result="pass"/><test-case name="33036particlesEc006.v tokoe:valid" result="pass"/><test-case name="33037particlesEc007 tokoe:valid" result="pass"/><test-case name="33038particlesEc007.i tokoe:invalid" result="pass"/><test-case name="33039particlesEc008 tokoe:valid" result="pass"/><test-case name="33040particlesEc008.i tokoe:invalid" result="pass"/><test-case name="33041particlesEc009 tokoe:invalid" result="pass"/><test-case name="33042particlesEc011 tokoe:valid" result="pass"/><test-case name="33043particlesEc011.i tokoe:invalid" result="pass"/><test-case name="33044particlesEc012 tokoe:valid" result="pass"/><test-case name="33045particlesEc012.v tokoe:valid" result="pass"/><test-case name="33046particlesEc013 tokoe:valid" result="pass"/><test-case name="33047particlesEc013.i tokoe:invalid" result="pass"/><test-case name="33048particlesEc014 tokoe:valid" result="pass"/><test-case name="33049particlesEc014.i tokoe:invalid" result="pass"/><test-case name="33050particlesEc015 tokoe:valid" result="pass"/><test-case name="33051particlesEc015.i tokoe:invalid" result="pass"/><test-case name="33052particlesEc016 tokoe:valid" result="pass"/><test-case name="33053particlesEc016.v tokoe:valid" result="pass"/><test-case name="33054particlesEc017 tokoe:valid" result="pass"/><test-case name="33055particlesEc017.v tokoe:valid" result="pass"/><test-case name="33056particlesEc018 tokoe:valid" result="pass"/><test-case name="33057particlesEc018.v tokoe:valid" result="pass"/><test-case name="33058particlesEc019 tokoe:valid" result="pass"/><test-case name="33059particlesEc019.v tokoe:valid" result="pass"/><test-case name="33060particlesEc020 tokoe:valid" result="pass"/><test-case name="33061particlesEc020.v tokoe:valid" result="pass"/><test-case name="33062particlesEc021 tokoe:valid" result="pass"/><test-case name="33063particlesEc021.v tokoe:valid" result="pass"/><test-case name="33064particlesEc022 tokoe:valid" result="pass"/><test-case name="33065particlesEc022.i tokoe:invalid" result="pass"/><test-case name="33066particlesEc023 tokoe:valid" result="pass"/><test-case name="33067particlesEc023.i tokoe:invalid" result="pass"/><test-case name="33068particlesEc024 tokoe:valid" result="pass"/><test-case name="33069particlesEc024.i tokoe:invalid" result="pass"/><test-case name="33070particlesEc025 tokoe:valid" result="pass"/><test-case name="33071particlesEc025.i tokoe:invalid" result="pass"/><test-case name="33072particlesEc026 tokoe:valid" result="pass"/><test-case name="33073particlesEc026.i tokoe:invalid" result="pass"/><test-case name="33074particlesEc027 tokoe:valid" result="pass"/><test-case name="33075particlesEc027.i tokoe:invalid" result="pass"/><test-case name="33076particlesEc028 tokoe:valid" result="pass"/><test-case name="33077particlesEc028.i tokoe:invalid" result="pass"/><test-case name="33078particlesEc029 tokoe:valid" result="pass"/><test-case name="33079particlesEc029.v tokoe:valid" result="pass"/><test-case name="33080particlesEc030 tokoe:valid" result="pass"/><test-case name="33081particlesEc030.v tokoe:valid" result="pass"/><test-case name="33082particlesEc031 tokoe:valid" result="pass"/><test-case name="33083particlesEc031.v tokoe:valid" result="pass"/><test-case name="33084particlesEc032 tokoe:valid" result="pass"/><test-case name="33085particlesEc032.v tokoe:valid" result="pass"/><test-case name="33086particlesEc033 tokoe:valid" result="pass"/><test-case name="33087particlesEc033.v tokoe:valid" result="pass"/><test-case name="33088particlesEc034 tokoe:valid" result="pass"/><test-case name="33089particlesEc034.v tokoe:valid" result="pass"/><test-case name="33090particlesEc035 tokoe:valid" result="pass"/><test-case name="33091particlesEc035.v tokoe:valid" result="pass"/><test-case name="33092particlesEc036 tokoe:valid" result="pass"/><test-case name="33093particlesEc036.v tokoe:valid" result="pass"/><test-case name="33094particlesEc037 tokoe:valid" result="pass"/><test-case name="33095particlesEc037.v tokoe:valid" result="pass"/><test-case name="33096particlesEc038 tokoe:valid" result="pass"/><test-case name="33097particlesEc038.i tokoe:invalid" result="pass"/><test-case name="33098particlesEc039 tokoe:valid" result="pass"/><test-case name="33099particlesEc039.i tokoe:invalid" result="pass"/><test-case name="33100particlesEc040 tokoe:valid" result="pass"/><test-case name="33101particlesEc040.i tokoe:invalid" result="pass"/><test-case name="33102particlesEc041 tokoe:valid" result="pass"/><test-case name="33103particlesEc041.i tokoe:invalid" result="pass"/><test-case name="33104particlesEd001 tokoe:invalid" result="pass"/><test-case name="33105particlesFa001 tokoe:valid" result="pass"/><test-case name="33106particlesFa002 tokoe:valid" result="pass"/><test-case name="33107particlesFa002.v tokoe:valid" result="pass"/><test-case name="33108particlesFa003 tokoe:valid" result="pass"/><test-case name="33109particlesFa003.v tokoe:valid" result="pass"/><test-case name="33110particlesFa004 tokoe:valid" result="pass"/><test-case name="33111particlesFa004.v tokoe:valid" result="pass"/><test-case name="33112particlesFa005 tokoe:valid" result="pass"/><test-case name="33113particlesFa005.v tokoe:valid" result="pass"/><test-case name="33114particlesFb001 tokoe:valid" result="pass"/><test-case name="33115particlesFb001.v tokoe:valid" result="pass"/><test-case name="33116particlesFb002 tokoe:invalid" result="pass"/><test-case name="33117particlesFb003 tokoe:invalid" result="pass"/><test-case name="33118particlesFb004 tokoe:valid" result="pass"/><test-case name="33119particlesFb004.v tokoe:valid" result="pass"/><test-case name="33120particlesFb005 tokoe:invalid" result="pass"/><test-case name="33121particlesFb006 tokoe:invalid" result="pass"/><test-case name="33122particlesHa001 tokoe:valid" result="pass"/><test-case name="33123particlesHa001.v tokoe:valid" result="pass"/><test-case name="33124particlesHa002 tokoe:valid" result="pass"/><test-case name="33125particlesHa002.v tokoe:valid" result="pass"/><test-case name="33126particlesHa003 tokoe:valid" result="pass"/><test-case name="33127particlesHa003.v tokoe:valid" result="pass"/><test-case name="33128particlesHa004 tokoe:valid" result="pass"/><test-case name="33129particlesHa004.v tokoe:valid" result="pass"/><test-case name="33130particlesHa005 tokoe:valid" result="pass"/><test-case name="33131particlesHa005.v tokoe:valid" result="pass"/><test-case name="33132particlesHa006 tokoe:valid" result="pass"/><test-case name="33133particlesHa006.v tokoe:valid" result="pass"/><test-case name="33134particlesHa007 tokoe:valid" result="pass"/><test-case name="33135particlesHa007.v tokoe:valid" result="pass"/><test-case name="33136particlesHa008 tokoe:invalid" result="pass"/><test-case name="33137particlesHa009 tokoe:valid" result="pass"/><test-case name="33138particlesHa009.v tokoe:valid" result="pass"/><test-case name="33139particlesHa010 tokoe:valid" result="pass"/><test-case name="33140particlesHa010.v tokoe:valid" result="pass"/><test-case name="33141particlesHa011 tokoe:valid" result="pass"/><test-case name="33142particlesHa011.v tokoe:valid" result="pass"/><test-case name="33143particlesHa012 tokoe:valid" result="pass"/><test-case name="33144particlesHa012.v tokoe:valid" result="pass"/><test-case name="33145particlesHa013 tokoe:valid" result="pass"/><test-case name="33146particlesHa013.v tokoe:valid" result="pass"/><test-case name="33147particlesHa014 tokoe:valid" result="pass"/><test-case name="33148particlesHa014.v tokoe:valid" result="pass"/><test-case name="33149particlesHa015 tokoe:valid" result="pass"/><test-case name="33150particlesHa015.v tokoe:valid" result="pass"/><test-case name="33151particlesHa016 tokoe:valid" result="pass"/><test-case name="33152particlesHa016.v tokoe:valid" result="pass"/><test-case name="33153particlesHa017 tokoe:valid" result="pass"/><test-case name="33154particlesHa017.v tokoe:valid" result="pass"/><test-case name="33155particlesHa018 tokoe:valid" result="pass"/><test-case name="33156particlesHa018.v tokoe:valid" result="pass"/><test-case name="33157particlesHa020 tokoe:valid" result="pass"/><test-case name="33158particlesHa021 tokoe:invalid" result="pass"/><test-case name="33159particlesHa022 tokoe:valid" result="pass"/><test-case name="33160particlesHa050 tokoe:valid" result="pass"/><test-case name="33161particlesHa051 tokoe:valid" result="pass"/><test-case name="33162particlesHa052 tokoe:invalid" result="pass"/><test-case name="33163particlesHa053 tokoe:valid" result="pass"/><test-case name="33164particlesHa054 tokoe:valid" result="pass"/><test-case name="33165particlesHa070 tokoe:valid" result="pass"/><test-case name="33166particlesHa071 tokoe:invalid" result="pass"/><test-case name="33167particlesHa080 tokoe:valid" result="pass"/><test-case name="33168particlesHa081 tokoe:invalid" result="pass"/><test-case name="33169particlesHa082 tokoe:invalid" result="pass"/><test-case name="33170particlesHa083 tokoe:invalid" result="pass"/><test-case name="33171particlesHa084 tokoe:valid" result="pass"/><test-case name="33172particlesHa100 tokoe:valid" result="pass"/><test-case name="33173particlesHa101 tokoe:invalid" result="pass"/><test-case name="33174particlesHa102 tokoe:invalid" result="pass"/><test-case name="33175particlesHa103 tokoe:invalid" result="pass"/><test-case name="33176particlesHa120 tokoe:valid" result="pass"/><test-case name="33177particlesHa121 tokoe:invalid" result="pass"/><test-case name="33178particlesHa122 tokoe:valid" result="pass"/><test-case name="33179particlesHa123 tokoe:invalid" result="pass"/><test-case name="33180particlesHa140 tokoe:invalid" result="pass"/><test-case name="33181particlesHa141 tokoe:valid" result="pass"/><test-case name="33182particlesHa142 tokoe:valid" result="pass"/><test-case name="33183particlesHa143 tokoe:invalid" result="pass"/><test-case name="33184particlesHa144 tokoe:invalid" result="pass"/><test-case name="33185particlesHa145 tokoe:invalid" result="pass"/><test-case name="33186particlesHa146 tokoe:valid" result="pass"/><test-case name="33187particlesHa147 tokoe:invalid" result="pass"/><test-case name="33188particlesHa160 tokoe:valid" result="pass"/><test-case name="33189particlesHa162 tokoe:invalid" result="pass"/><test-case name="33190particlesHa163 tokoe:invalid" result="pass"/><test-case name="33191particlesHa164 tokoe:invalid" result="pass"/><test-case name="33192particlesHa165 tokoe:valid" result="pass"/><test-case name="33193particlesHa166 tokoe:invalid" result="pass"/><test-case name="33194particlesHa167 tokoe:valid" result="pass"/><test-case name="33195particlesHa168 tokoe:invalid" result="pass"/><test-case name="33196particlesHa169 tokoe:invalid" result="pass"/><test-case name="33197particlesHa180 tokoe:valid" result="pass"/><test-case name="33198particlesHa181 tokoe:invalid" result="pass"/><test-case name="33199particlesHa182 tokoe:invalid" result="pass"/><test-case name="33200particlesHa183 tokoe:invalid" result="pass"/><test-case name="33201particlesHa184 tokoe:invalid" result="pass"/><test-case name="33202particlesHa185 tokoe:valid" result="pass"/><test-case name="33203particlesHa186 tokoe:valid" result="pass"/><test-case name="33204particlesHa187 tokoe:invalid" result="pass"/><test-case name="33205particlesHa188 tokoe:valid" result="pass"/><test-case name="33206particlesHa189 tokoe:invalid" result="pass"/><test-case name="33207particlesHb001 tokoe:invalid" result="pass"/><test-case name="33208particlesHb002 tokoe:invalid" result="pass"/><test-case name="33209particlesHb003 tokoe:invalid" result="pass"/><test-case name="33210particlesHb004 tokoe:invalid" result="pass"/><test-case name="33211particlesHb006 tokoe:invalid" result="pass"/><test-case name="33212particlesHb007 tokoe:invalid" result="pass"/><test-case name="33213particlesHb009 tokoe:invalid" result="pass"/><test-case name="33214particlesHb010 tokoe:valid" result="pass"/><test-case name="33215particlesIa001 tokoe:valid" result="pass"/><test-case name="33216particlesIa001.v tokoe:valid" result="pass"/><test-case name="33217particlesIa002 tokoe:valid" result="pass"/><test-case name="33218particlesIa002.v tokoe:valid" result="pass"/><test-case name="33219particlesIa003 tokoe:valid" result="pass"/><test-case name="33220particlesIa003.v tokoe:valid" result="pass"/><test-case name="33221particlesIa004 tokoe:valid" result="pass"/><test-case name="33222particlesIa004.v tokoe:valid" result="pass"/><test-case name="33223particlesIa005 tokoe:valid" result="pass"/><test-case name="33224particlesIa005.v tokoe:valid" result="pass"/><test-case name="33225particlesIa006 tokoe:invalid" result="pass"/><test-case name="33226particlesIa007 tokoe:valid" result="pass"/><test-case name="33227particlesIa008 tokoe:invalid" result="pass"/><test-case name="33228particlesIa009 tokoe:valid" result="pass"/><test-case name="33229particlesIb001 tokoe:valid" result="pass"/><test-case name="33230particlesIb001.v tokoe:valid" result="pass"/><test-case name="33231particlesIb002 tokoe:invalid" result="pass"/><test-case name="33232particlesIb003 tokoe:valid" result="pass"/><test-case name="33233particlesIb003.v tokoe:valid" result="pass"/><test-case name="33234particlesIb004 tokoe:invalid" result="pass"/><test-case name="33235particlesIb005 tokoe:valid" result="pass"/><test-case name="33236particlesIb005.v tokoe:valid" result="pass"/><test-case name="33237particlesIb006 tokoe:invalid" result="pass"/><test-case name="33238particlesIb007 tokoe:invalid" result="pass"/><test-case name="33239particlesIc001 tokoe:valid" result="pass"/><test-case name="33240particlesIc001.v tokoe:valid" result="pass"/><test-case name="33241particlesIc002 tokoe:invalid" result="pass"/><test-case name="33242particlesIc003 tokoe:invalid" result="pass"/><test-case name="33243particlesIc004 tokoe:invalid" result="pass"/><test-case name="33244particlesIc005 tokoe:valid" result="pass"/><test-case name="33245particlesIc005.v tokoe:valid" result="pass"/><test-case name="33246particlesIc006 tokoe:valid" result="pass"/><test-case name="33247particlesIc006.v tokoe:valid" result="pass"/><test-case name="33248particlesIc007 tokoe:valid" result="pass"/><test-case name="33249particlesIc007.v tokoe:valid" result="pass"/><test-case name="33250particlesId001 tokoe:valid" result="pass"/><test-case name="33251particlesId001.v tokoe:valid" result="pass"/><test-case name="33252particlesId002 tokoe:valid" result="pass"/><test-case name="33253particlesId002.v tokoe:valid" result="pass"/><test-case name="33254particlesId003 tokoe:invalid" result="pass"/><test-case name="33255particlesId004 tokoe:valid" result="pass"/><test-case name="33256particlesId004.v tokoe:valid" result="pass"/><test-case name="33257particlesId005 tokoe:valid" result="pass"/><test-case name="33258particlesId005.v tokoe:valid" result="pass"/><test-case name="33259particlesId006 tokoe:invalid" result="pass"/><test-case name="33260particlesId007 tokoe:valid" result="pass"/><test-case name="33261particlesId007.v tokoe:valid" result="pass"/><test-case name="33262particlesId008 tokoe:valid" result="pass"/><test-case name="33263particlesId008.v tokoe:valid" result="pass"/><test-case name="33264particlesId009 tokoe:valid" result="pass"/><test-case name="33265particlesId009.v tokoe:valid" result="pass"/><test-case name="33266particlesId010 tokoe:valid" result="pass"/><test-case name="33267particlesId010.v tokoe:valid" result="pass"/><test-case name="33268particlesId011 tokoe:valid" result="pass"/><test-case name="33269particlesId011.v tokoe:valid" result="pass"/><test-case name="33270particlesId012 tokoe:invalid" result="pass"/><test-case name="33271particlesIe001 tokoe:valid" result="pass"/><test-case name="33272particlesIe001.v tokoe:valid" result="pass"/><test-case name="33273particlesIe002 tokoe:valid" result="pass"/><test-case name="33274particlesIe002.v tokoe:valid" result="pass"/><test-case name="33275particlesIe004 tokoe:valid" result="pass"/><test-case name="33276particlesIe004.v tokoe:valid" result="pass"/><test-case name="33277particlesIe005 tokoe:valid" result="pass"/><test-case name="33278particlesIe005.v tokoe:valid" result="pass"/><test-case name="33279particlesIe006 tokoe:invalid" result="pass"/><test-case name="33280particlesIe007 tokoe:valid" result="pass"/><test-case name="33281particlesIe007.v tokoe:valid" result="pass"/><test-case name="33282particlesIe008 tokoe:valid" result="pass"/><test-case name="33283particlesIe008.v tokoe:valid" result="pass"/><test-case name="33284particlesIe009 tokoe:invalid" result="pass"/><test-case name="33285particlesIe010 tokoe:valid" result="pass"/><test-case name="33286particlesIe010.v tokoe:valid" result="pass"/><test-case name="33287particlesIe011 tokoe:valid" result="pass"/><test-case name="33288particlesIe011.v tokoe:valid" result="pass"/><test-case name="33289particlesIe012 tokoe:invalid" result="pass"/><test-case name="33290particlesIe013 tokoe:valid" result="pass"/><test-case name="33291particlesIe013.v tokoe:valid" result="pass"/><test-case name="33292particlesIe014 tokoe:invalid" result="pass"/><test-case name="33293particlesIe015 tokoe:valid" result="pass"/><test-case name="33294particlesIe015.v tokoe:valid" result="pass"/><test-case name="33295particlesIe016 tokoe:valid" result="pass"/><test-case name="33296particlesIe016.v tokoe:valid" result="pass"/><test-case name="33297particlesIf001 tokoe:valid" result="pass"/><test-case name="33298particlesIf001.v tokoe:valid" result="pass"/><test-case name="33299particlesIf002 tokoe:valid" result="pass"/><test-case name="33300particlesIf002.v tokoe:valid" result="pass"/><test-case name="33301particlesIf003 tokoe:valid" result="pass"/><test-case name="33302particlesIf003.v tokoe:valid" result="pass"/><test-case name="33303particlesIf004 tokoe:valid" result="pass"/><test-case name="33304particlesIf004.v tokoe:valid" result="pass"/><test-case name="33305particlesIf005 tokoe:valid" result="pass"/><test-case name="33306particlesIf005.v tokoe:valid" result="pass"/><test-case name="33307particlesIf006 tokoe:valid" result="pass"/><test-case name="33308particlesIf006.v tokoe:valid" result="pass"/><test-case name="33309particlesIf007 tokoe:invalid" result="pass"/><test-case name="33310particlesIf008 tokoe:invalid" result="pass"/><test-case name="33311particlesIf009 tokoe:invalid" result="pass"/><test-case name="33312particlesIg001 tokoe:valid" result="pass"/><test-case name="33313particlesIg001.v tokoe:valid" result="pass"/><test-case name="33314particlesIg002 tokoe:valid" result="pass"/><test-case name="33315particlesIg002.v tokoe:valid" result="pass"/><test-case name="33316particlesIg005 tokoe:valid" result="pass"/><test-case name="33317particlesIg005.v tokoe:valid" result="pass"/><test-case name="33318particlesIg006 tokoe:invalid" result="pass"/><test-case name="33319particlesIg007 tokoe:invalid" result="pass"/><test-case name="33320particlesIg008 tokoe:invalid" result="pass"/><test-case name="33321particlesIg009 tokoe:invalid" result="pass"/><test-case name="33322particlesIg010 tokoe:invalid" result="pass"/><test-case name="33323particlesIg011 tokoe:valid" result="pass"/><test-case name="33324particlesIg011.v tokoe:valid" result="pass"/><test-case name="33325particlesIg012 tokoe:valid" result="pass"/><test-case name="33326particlesIg012.v tokoe:valid" result="pass"/><test-case name="33327particlesIg013 tokoe:invalid" result="pass"/><test-case name="33328particlesIg014 tokoe:valid" result="pass"/><test-case name="33329particlesIg014.v tokoe:valid" result="pass"/><test-case name="33330particlesIg015 tokoe:valid" result="pass"/><test-case name="33331particlesIg015.v tokoe:valid" result="pass"/><test-case name="33332particlesIg016 tokoe:invalid" result="pass"/><test-case name="33333particlesIh001 tokoe:invalid" result="pass"/><test-case name="33334particlesIj001 tokoe:valid" result="pass"/><test-case name="33335particlesIj001.v tokoe:valid" result="pass"/><test-case name="33336particlesIj002 tokoe:valid" result="pass"/><test-case name="33337particlesIj002.v tokoe:valid" result="pass"/><test-case name="33338particlesIj003 tokoe:invalid" result="pass"/><test-case name="33339particlesIj004 tokoe:invalid" result="pass"/><test-case name="33340particlesIj005 tokoe:valid" result="pass"/><test-case name="33341particlesIj005.v tokoe:valid" result="pass"/><test-case name="33342particlesIj006 tokoe:valid" result="pass"/><test-case name="33343particlesIj006.v tokoe:valid" result="pass"/><test-case name="33344particlesIj007 tokoe:invalid" result="pass"/><test-case name="33345particlesIj008 tokoe:invalid" result="pass"/><test-case name="33346particlesIj009 tokoe:invalid" result="pass"/><test-case name="33347particlesIj010 tokoe:invalid" result="pass"/><test-case name="33348particlesIj011 tokoe:invalid" result="pass"/><test-case name="33349particlesIj012 tokoe:invalid" result="pass"/><test-case name="33350particlesIj013 tokoe:invalid" result="pass"/><test-case name="33351particlesIj014 tokoe:valid" result="pass"/><test-case name="33352particlesIj015 tokoe:invalid" result="pass"/><test-case name="33353particlesIj016 tokoe:invalid" result="pass"/><test-case name="33354particlesIk001 tokoe:valid" result="pass"/><test-case name="33355particlesIk001.v tokoe:valid" result="pass"/><test-case name="33356particlesIk002 tokoe:invalid" result="pass"/><test-case name="33357particlesIk003 tokoe:invalid" result="pass"/><test-case name="33358particlesIk004 tokoe:valid" result="pass"/><test-case name="33359particlesIk004.v tokoe:valid" result="pass"/><test-case name="33360particlesIk005 tokoe:invalid" result="pass"/><test-case name="33361particlesIk006 tokoe:invalid" result="pass"/><test-case name="33362particlesIk007 tokoe:invalid" result="pass"/><test-case name="33363particlesIk008 tokoe:invalid" result="pass"/><test-case name="33364particlesIk009 tokoe:invalid" result="pass"/><test-case name="33365particlesIk010 tokoe:invalid" result="pass"/><test-case name="33366particlesIk011 tokoe:invalid" result="pass"/><test-case name="33367particlesIk012 tokoe:valid" result="pass"/><test-case name="33368particlesIk012.v tokoe:valid" result="pass"/><test-case name="33369particlesIk013 tokoe:invalid" result="pass"/><test-case name="33370particlesIk014 tokoe:valid" result="pass"/><test-case name="33371particlesIk015 tokoe:invalid" result="pass"/><test-case name="33372particlesIk016 tokoe:invalid" result="pass"/><test-case name="33373particlesIk017 tokoe:valid" result="pass"/><test-case name="33374particlesIk018 tokoe:valid" result="pass"/><test-case name="33375particlesIk019 tokoe:invalid" result="pass"/><test-case name="33376particlesIk020 tokoe:invalid" result="pass"/><test-case name="33377particlesIk021 tokoe:invalid" result="pass"/><test-case name="33378particlesIk022 tokoe:invalid" result="pass"/><test-case name="33379particlesIk023 tokoe:valid" result="pass"/><test-case name="33380particlesIk024 tokoe:invalid" result="pass"/><test-case name="33381particlesIk025 tokoe:invalid" result="pass"/><test-case name="33382particlesIk026 tokoe:valid" result="pass"/><test-case name="33383particlesIk026.v tokoe:valid" result="pass"/><test-case name="33384particlesIk027 tokoe:invalid" result="pass"/><test-case name="33385particlesJa001 tokoe:valid" result="pass"/><test-case name="33386particlesJa001.v tokoe:valid" result="pass"/><test-case name="33387particlesJa002 tokoe:valid" result="pass"/><test-case name="33388particlesJa002.v tokoe:valid" result="pass"/><test-case name="33389particlesJa003 tokoe:invalid" result="pass"/><test-case name="33390particlesJa004 tokoe:valid" result="pass"/><test-case name="33391particlesJa004.v tokoe:valid" result="pass"/><test-case name="33392particlesJa005 tokoe:valid" result="pass"/><test-case name="33393particlesJa005.v tokoe:valid" result="pass"/><test-case name="33394particlesJa006 tokoe:invalid" result="pass"/><test-case name="33395particlesJa007 tokoe:valid" result="pass"/><test-case name="33396particlesJa007.v tokoe:valid" result="pass"/><test-case name="33397particlesJa008 tokoe:valid" result="pass"/><test-case name="33398particlesJa008.v tokoe:valid" result="pass"/><test-case name="33399particlesJa009 tokoe:valid" result="pass"/><test-case name="33400particlesJa009.v tokoe:valid" result="pass"/><test-case name="33401particlesJa010 tokoe:valid" result="pass"/><test-case name="33402particlesJa010.v tokoe:valid" result="pass"/><test-case name="33403particlesJa011 tokoe:valid" result="pass"/><test-case name="33404particlesJa011.v tokoe:valid" result="pass"/><test-case name="33405particlesJa012 tokoe:invalid" result="pass"/><test-case name="33406particlesJb001 tokoe:valid" result="pass"/><test-case name="33407particlesJb001.v tokoe:valid" result="pass"/><test-case name="33408particlesJb002 tokoe:valid" result="pass"/><test-case name="33409particlesJb002.v tokoe:valid" result="pass"/><test-case name="33410particlesJb004 tokoe:valid" result="pass"/><test-case name="33411particlesJb004.v tokoe:valid" result="pass"/><test-case name="33412particlesJb005 tokoe:valid" result="pass"/><test-case name="33413particlesJb005.v tokoe:valid" result="pass"/><test-case name="33414particlesJb006 tokoe:invalid" result="pass"/><test-case name="33415particlesJb007 tokoe:valid" result="pass"/><test-case name="33416particlesJb007.v tokoe:valid" result="pass"/><test-case name="33417particlesJb008 tokoe:valid" result="pass"/><test-case name="33418particlesJb008.v tokoe:valid" result="pass"/><test-case name="33419particlesJb009 tokoe:invalid" result="pass"/><test-case name="33420particlesJb010 tokoe:valid" result="pass"/><test-case name="33421particlesJb010.v tokoe:valid" result="pass"/><test-case name="33422particlesJb011 tokoe:valid" result="pass"/><test-case name="33423particlesJb011.v tokoe:valid" result="pass"/><test-case name="33424particlesJb012 tokoe:invalid" result="pass"/><test-case name="33425particlesJb013 tokoe:valid" result="pass"/><test-case name="33426particlesJb013.v tokoe:valid" result="pass"/><test-case name="33427particlesJb014 tokoe:invalid" result="pass"/><test-case name="33428particlesJb015 tokoe:valid" result="pass"/><test-case name="33429particlesJb015.v tokoe:valid" result="pass"/><test-case name="33430particlesJb016 tokoe:valid" result="pass"/><test-case name="33431particlesJb016.v tokoe:valid" result="pass"/><test-case name="33432particlesJc001 tokoe:valid" result="pass"/><test-case name="33433particlesJc001.v tokoe:valid" result="pass"/><test-case name="33434particlesJc002 tokoe:valid" result="pass"/><test-case name="33435particlesJc002.v tokoe:valid" result="pass"/><test-case name="33436particlesJc003 tokoe:invalid" result="pass"/><test-case name="33437particlesJc004 tokoe:valid" result="pass"/><test-case name="33438particlesJc004.v tokoe:valid" result="pass"/><test-case name="33439particlesJc005 tokoe:valid" result="pass"/><test-case name="33440particlesJc005.v tokoe:valid" result="pass"/><test-case name="33441particlesJc006 tokoe:invalid" result="pass"/><test-case name="33442particlesJc007 tokoe:valid" result="pass"/><test-case name="33443particlesJc007.v tokoe:valid" result="pass"/><test-case name="33444particlesJc008 tokoe:valid" result="pass"/><test-case name="33445particlesJc008.v tokoe:valid" result="pass"/><test-case name="33446particlesJc009 tokoe:valid" result="pass"/><test-case name="33447particlesJc009.v tokoe:valid" result="pass"/><test-case name="33448particlesJc010 tokoe:valid" result="pass"/><test-case name="33449particlesJc010.v tokoe:valid" result="pass"/><test-case name="33450particlesJc011 tokoe:valid" result="pass"/><test-case name="33451particlesJc011.v tokoe:valid" result="pass"/><test-case name="33452particlesJc012 tokoe:invalid" result="pass"/><test-case name="33453particlesJd001 tokoe:valid" result="pass"/><test-case name="33454particlesJd001.v tokoe:valid" result="pass"/><test-case name="33455particlesJd002 tokoe:valid" result="pass"/><test-case name="33456particlesJd002.v tokoe:valid" result="pass"/><test-case name="33457particlesJd004 tokoe:valid" result="pass"/><test-case name="33458particlesJd004.v tokoe:valid" result="pass"/><test-case name="33459particlesJd005 tokoe:valid" result="pass"/><test-case name="33460particlesJd005.v tokoe:valid" result="pass"/><test-case name="33461particlesJd006 tokoe:invalid" result="pass"/><test-case name="33462particlesJd007 tokoe:valid" result="pass"/><test-case name="33463particlesJd007.v tokoe:valid" result="pass"/><test-case name="33464particlesJd008 tokoe:valid" result="pass"/><test-case name="33465particlesJd008.v tokoe:valid" result="pass"/><test-case name="33466particlesJd009 tokoe:invalid" result="pass"/><test-case name="33467particlesJd010 tokoe:valid" result="pass"/><test-case name="33468particlesJd010.v tokoe:valid" result="pass"/><test-case name="33469particlesJd011 tokoe:valid" result="pass"/><test-case name="33470particlesJd011.v tokoe:valid" result="pass"/><test-case name="33471particlesJd012 tokoe:invalid" result="pass"/><test-case name="33472particlesJd013 tokoe:valid" result="pass"/><test-case name="33473particlesJd013.v tokoe:valid" result="pass"/><test-case name="33474particlesJd014 tokoe:invalid" result="pass"/><test-case name="33475particlesJd015 tokoe:valid" result="pass"/><test-case name="33476particlesJd015.v tokoe:valid" result="pass"/><test-case name="33477particlesJd016 tokoe:valid" result="pass"/><test-case name="33478particlesJd016.v tokoe:valid" result="pass"/><test-case name="33479particlesJe001 tokoe:valid" result="pass"/><test-case name="33480particlesJe001.v tokoe:valid" result="pass"/><test-case name="33481particlesJe002 tokoe:valid" result="pass"/><test-case name="33482particlesJe002.v tokoe:valid" result="pass"/><test-case name="33483particlesJe003 tokoe:invalid" result="pass"/><test-case name="33484particlesJe004 tokoe:valid" result="pass"/><test-case name="33485particlesJe004.v tokoe:valid" result="pass"/><test-case name="33486particlesJe005 tokoe:valid" result="pass"/><test-case name="33487particlesJe005.v tokoe:valid" result="pass"/><test-case name="33488particlesJe006 tokoe:invalid" result="pass"/><test-case name="33489particlesJe007 tokoe:valid" result="pass"/><test-case name="33490particlesJe007.v tokoe:valid" result="pass"/><test-case name="33491particlesJe008 tokoe:valid" result="pass"/><test-case name="33492particlesJe008.v tokoe:valid" result="pass"/><test-case name="33493particlesJe009 tokoe:valid" result="pass"/><test-case name="33494particlesJe009.v tokoe:valid" result="pass"/><test-case name="33495particlesJe010 tokoe:valid" result="pass"/><test-case name="33496particlesJe010.v tokoe:valid" result="pass"/><test-case name="33497particlesJe011 tokoe:valid" result="pass"/><test-case name="33498particlesJe011.v tokoe:valid" result="pass"/><test-case name="33499particlesJe012 tokoe:invalid" result="pass"/><test-case name="33500particlesJf001 tokoe:valid" result="pass"/><test-case name="33501particlesJf001.v tokoe:valid" result="pass"/><test-case name="33502particlesJf002 tokoe:valid" result="pass"/><test-case name="33503particlesJf002.v tokoe:valid" result="pass"/><test-case name="33504particlesJf004 tokoe:valid" result="pass"/><test-case name="33505particlesJf004.v tokoe:valid" result="pass"/><test-case name="33506particlesJf005 tokoe:valid" result="pass"/><test-case name="33507particlesJf005.v tokoe:valid" result="pass"/><test-case name="33508particlesJf006 tokoe:invalid" result="pass"/><test-case name="33509particlesJf007 tokoe:valid" result="pass"/><test-case name="33510particlesJf007.v tokoe:valid" result="pass"/><test-case name="33511particlesJf008 tokoe:valid" result="pass"/><test-case name="33512particlesJf008.v tokoe:valid" result="pass"/><test-case name="33513particlesJf009 tokoe:invalid" result="pass"/><test-case name="33514particlesJf010 tokoe:valid" result="pass"/><test-case name="33515particlesJf010.v tokoe:valid" result="pass"/><test-case name="33516particlesJf011 tokoe:valid" result="pass"/><test-case name="33517particlesJf011.v tokoe:valid" result="pass"/><test-case name="33518particlesJf012 tokoe:invalid" result="pass"/><test-case name="33519particlesJf013 tokoe:valid" result="pass"/><test-case name="33520particlesJf013.v tokoe:valid" result="pass"/><test-case name="33521particlesJf014 tokoe:invalid" result="pass"/><test-case name="33522particlesJf015 tokoe:valid" result="pass"/><test-case name="33523particlesJf015.v tokoe:valid" result="pass"/><test-case name="33524particlesJf016 tokoe:valid" result="pass"/><test-case name="33525particlesJf016.v tokoe:valid" result="pass"/><test-case name="33526particlesJg001 tokoe:invalid" result="pass"/><test-case name="33527particlesJh001 tokoe:invalid" result="pass"/><test-case name="33528particlesJj001 tokoe:valid" result="pass"/><test-case name="33529particlesJj001.v tokoe:valid" result="pass"/><test-case name="33530particlesJj002 tokoe:valid" result="pass"/><test-case name="33531particlesJj002.v tokoe:valid" result="pass"/><test-case name="33532particlesJj003 tokoe:invalid" result="pass"/><test-case name="33533particlesJj004 tokoe:valid" result="pass"/><test-case name="33534particlesJj004.v tokoe:valid" result="pass"/><test-case name="33535particlesJj005 tokoe:valid" result="pass"/><test-case name="33536particlesJj005.v tokoe:valid" result="pass"/><test-case name="33537particlesJj006 tokoe:invalid" result="pass"/><test-case name="33538particlesJj007 tokoe:valid" result="pass"/><test-case name="33539particlesJj007.v tokoe:valid" result="pass"/><test-case name="33540particlesJj008 tokoe:valid" result="pass"/><test-case name="33541particlesJj008.v tokoe:valid" result="pass"/><test-case name="33542particlesJj009 tokoe:valid" result="pass"/><test-case name="33543particlesJj009.v tokoe:valid" result="pass"/><test-case name="33544particlesJj010 tokoe:valid" result="pass"/><test-case name="33545particlesJj010.v tokoe:valid" result="pass"/><test-case name="33546particlesJj011 tokoe:valid" result="pass"/><test-case name="33547particlesJj011.v tokoe:valid" result="pass"/><test-case name="33548particlesJj012 tokoe:invalid" result="pass"/><test-case name="33549particlesJk001 tokoe:valid" result="pass"/><test-case name="33550particlesJk001.v tokoe:valid" result="pass"/><test-case name="33551particlesJk002 tokoe:valid" result="pass"/><test-case name="33552particlesJk002.v tokoe:valid" result="pass"/><test-case name="33553particlesJk004 tokoe:valid" result="pass"/><test-case name="33554particlesJk004.v tokoe:valid" result="pass"/><test-case name="33555particlesJk005 tokoe:valid" result="pass"/><test-case name="33556particlesJk005.v tokoe:valid" result="pass"/><test-case name="33557particlesJk006 tokoe:invalid" result="pass"/><test-case name="33558particlesJk007 tokoe:valid" result="pass"/><test-case name="33559particlesJk007.v tokoe:valid" result="pass"/><test-case name="33560particlesJk008 tokoe:valid" result="pass"/><test-case name="33561particlesJk008.v tokoe:valid" result="pass"/><test-case name="33562particlesJk009 tokoe:invalid" result="pass"/><test-case name="33563particlesJk010 tokoe:valid" result="pass"/><test-case name="33564particlesJk010.v tokoe:valid" result="pass"/><test-case name="33565particlesJk011 tokoe:valid" result="pass"/><test-case name="33566particlesJk011.v tokoe:valid" result="pass"/><test-case name="33567particlesJk012 tokoe:invalid" result="pass"/><test-case name="33568particlesJk013 tokoe:valid" result="pass"/><test-case name="33569particlesJk013.v tokoe:valid" result="pass"/><test-case name="33570particlesJk014 tokoe:invalid" result="pass"/><test-case name="33571particlesJk015 tokoe:valid" result="pass"/><test-case name="33572particlesJk015.v tokoe:valid" result="pass"/><test-case name="33573particlesJk016 tokoe:valid" result="pass"/><test-case name="33574particlesJk016.v tokoe:valid" result="pass"/><test-case name="33575particlesJl001 tokoe:valid" result="pass"/><test-case name="33576particlesJl001.v tokoe:valid" result="pass"/><test-case name="33577particlesJl002 tokoe:invalid" result="pass"/><test-case name="33578particlesJl003 tokoe:invalid" result="pass"/><test-case name="33579particlesJm003 tokoe:invalid" result="pass"/><test-case name="33580particlesJm004 tokoe:valid" result="pass"/><test-case name="33581particlesJm004.v tokoe:valid" result="pass"/><test-case name="33582particlesJm005 tokoe:valid" result="pass"/><test-case name="33583particlesJm005.v tokoe:valid" result="pass"/><test-case name="33584particlesJn007 tokoe:valid" result="pass"/><test-case name="33585particlesJn007.v tokoe:valid" result="pass"/><test-case name="33586particlesJn008 tokoe:valid" result="pass"/><test-case name="33587particlesJn008.v tokoe:valid" result="pass"/><test-case name="33588particlesJn009 tokoe:invalid" result="pass"/><test-case name="33589particlesJn010 tokoe:valid" result="pass"/><test-case name="33590particlesJn010.v tokoe:valid" result="pass"/><test-case name="33591particlesJr001 tokoe:invalid" result="pass"/><test-case name="33592particlesJr002 tokoe:invalid" result="pass"/><test-case name="33593particlesJp003 tokoe:invalid" result="pass"/><test-case name="33594particlesJp004 tokoe:valid" result="pass"/><test-case name="33595particlesJp004.v tokoe:valid" result="pass"/><test-case name="33596particlesJp005 tokoe:valid" result="pass"/><test-case name="33597particlesJp005.v tokoe:valid" result="pass"/><test-case name="33598particlesJq007 tokoe:valid" result="pass"/><test-case name="33599particlesJq007.v tokoe:valid" result="pass"/><test-case name="33600particlesJq008 tokoe:valid" result="pass"/><test-case name="33601particlesJq008.v tokoe:valid" result="pass"/><test-case name="33602particlesJq009 tokoe:invalid" result="pass"/><test-case name="33603particlesJq010 tokoe:valid" result="pass"/><test-case name="33604particlesJq010.v tokoe:valid" result="pass"/><test-case name="33605particlesJs001 tokoe:valid" result="pass"/><test-case name="33606particlesJs001.v tokoe:valid" result="pass"/><test-case name="33607particlesJs002 tokoe:invalid" result="pass"/><test-case name="33608particlesJs003 tokoe:invalid" result="pass"/><test-case name="33609particlesJs004 tokoe:invalid" result="pass"/><test-case name="33610particlesJu001 tokoe:valid" result="pass"/><test-case name="33611particlesJu001.v tokoe:valid" result="pass"/><test-case name="33612particlesJu002 tokoe:valid" result="pass"/><test-case name="33613particlesJu002.v tokoe:valid" result="pass"/><test-case name="33614particlesJu003 tokoe:valid" result="pass"/><test-case name="33615particlesJu003.v tokoe:valid" result="pass"/><test-case name="33616particlesK001 tokoe:valid" result="pass"/><test-case name="33617particlesK001.v tokoe:valid" result="pass"/><test-case name="33618particlesK002 tokoe:valid" result="pass"/><test-case name="33619particlesK002.v tokoe:valid" result="pass"/><test-case name="33620particlesK003 tokoe:valid" result="pass"/><test-case name="33621particlesK003.v tokoe:valid" result="pass"/><test-case name="33622particlesK004 tokoe:invalid" result="pass"/><test-case name="33623particlesK005 tokoe:valid" result="pass"/><test-case name="33624particlesK005.v tokoe:valid" result="pass"/><test-case name="33625particlesK006 tokoe:invalid" result="pass"/><test-case name="33626particlesK008 tokoe:valid" result="pass"/><test-case name="33627particlesK008.v tokoe:valid" result="pass"/><test-case name="33628particlesL001 tokoe:invalid" result="pass"/><test-case name="33629particlesL002 tokoe:invalid" result="pass"/><test-case name="33630particlesL003 tokoe:valid" result="pass"/><test-case name="33631particlesL003.v tokoe:valid" result="pass"/><test-case name="33632particlesL004 tokoe:invalid" result="pass"/><test-case name="33633particlesL005 tokoe:invalid" result="pass"/><test-case name="33634particlesL006 tokoe:valid" result="pass"/><test-case name="33635particlesL006.v tokoe:valid" result="pass"/><test-case name="33636particlesL007 tokoe:valid" result="pass"/><test-case name="33637particlesL007.v tokoe:valid" result="pass"/><test-case name="33638particlesL008 tokoe:invalid" result="pass"/><test-case name="33639particlesL009 tokoe:invalid" result="pass"/><test-case name="33640particlesL010 tokoe:invalid" result="pass"/><test-case name="33641particlesL011 tokoe:invalid" result="pass"/><test-case name="33642particlesL012 tokoe:valid" result="pass"/><test-case name="33643particlesL012.v tokoe:valid" result="pass"/><test-case name="33644particlesL013 tokoe:valid" result="pass"/><test-case name="33645particlesL013.v tokoe:valid" result="pass"/><test-case name="33646particlesL014 tokoe:invalid" result="pass"/><test-case name="33647particlesL015 tokoe:invalid" result="pass"/><test-case name="33648particlesL016 tokoe:invalid" result="pass"/><test-case name="33649particlesL017 tokoe:valid" result="pass"/><test-case name="33650particlesL017.v tokoe:valid" result="pass"/><test-case name="33651particlesL018 tokoe:valid" result="pass"/><test-case name="33652particlesL018.v tokoe:valid" result="pass"/><test-case name="33653particlesL019 tokoe:invalid" result="pass"/><test-case name="33654particlesL020 tokoe:invalid" result="pass"/><test-case name="33655particlesL021 tokoe:valid" result="pass"/><test-case name="33656particlesL021.v tokoe:valid" result="pass"/><test-case name="33657particlesL022 tokoe:invalid" result="pass"/><test-case name="33658particlesL023 tokoe:valid" result="pass"/><test-case name="33659particlesL023.v tokoe:valid" result="pass"/><test-case name="33660particlesL024 tokoe:invalid" result="pass"/><test-case name="33661particlesL025 tokoe:valid" result="pass"/><test-case name="33662particlesL025.v tokoe:valid" result="pass"/><test-case name="33663particlesL026 tokoe:invalid" result="pass"/><test-case name="33664particlesL027 tokoe:invalid" result="pass"/><test-case name="33665particlesL028 tokoe:valid" result="pass"/><test-case name="33666particlesL028.v tokoe:valid" result="pass"/><test-case name="33667particlesL029 tokoe:valid" result="pass"/><test-case name="33668particlesL029.v tokoe:valid" result="pass"/><test-case name="33669particlesL030 tokoe:invalid" result="pass"/><test-case name="33670particlesL031 tokoe:invalid" result="pass"/><test-case name="33671particlesL032 tokoe:invalid" result="pass"/><test-case name="33672particlesM001 tokoe:invalid" result="pass"/><test-case name="33673particlesM002 tokoe:valid" result="pass"/><test-case name="33674particlesM002.v tokoe:valid" result="pass"/><test-case name="33675particlesM003 tokoe:valid" result="pass"/><test-case name="33676particlesM003.v tokoe:valid" result="pass"/><test-case name="33677particlesM033 tokoe:invalid" result="pass"/><test-case name="33678particlesM034 tokoe:invalid" result="pass"/><test-case name="33679particlesM035 tokoe:valid" result="pass"/><test-case name="33680particlesM035.v tokoe:valid" result="pass"/><test-case name="33681particlesOa001 tokoe:valid" result="pass"/><test-case name="33682particlesOa001.v tokoe:valid" result="pass"/><test-case name="33683particlesOa002 tokoe:invalid" result="pass"/><test-case name="33684particlesOa003 tokoe:valid" result="pass"/><test-case name="33685particlesOa003.v tokoe:valid" result="pass"/><test-case name="33686particlesOa004 tokoe:invalid" result="pass"/><test-case name="33687particlesOa005 tokoe:invalid" result="pass"/><test-case name="33688particlesOa006 tokoe:valid" result="pass"/><test-case name="33689particlesOa006.v tokoe:valid" result="pass"/><test-case name="33690particlesOa007 tokoe:invalid" result="pass"/><test-case name="33691particlesOa008 tokoe:invalid" result="pass"/><test-case name="33692particlesOa009 tokoe:invalid" result="pass"/><test-case name="33693particlesOa010 tokoe:invalid" result="pass"/><test-case name="33694particlesOa011 tokoe:valid" result="pass"/><test-case name="33695particlesOa011.v tokoe:valid" result="pass"/><test-case name="33696particlesOa012 tokoe:valid" result="pass"/><test-case name="33697particlesOa012.v tokoe:valid" result="pass"/><test-case name="33698particlesOa013 tokoe:valid" result="pass"/><test-case name="33699particlesOa013.v tokoe:valid" result="pass"/><test-case name="33700particlesOa014 tokoe:valid" result="pass"/><test-case name="33701particlesOa014.v tokoe:valid" result="pass"/><test-case name="33702particlesOa015 tokoe:invalid" result="pass"/><test-case name="33703particlesOb003 tokoe:valid" result="pass"/><test-case name="33704particlesOb003.v tokoe:valid" result="pass"/><test-case name="33705particlesOb005 tokoe:valid" result="pass"/><test-case name="33706particlesOb005.v tokoe:valid" result="pass"/><test-case name="33707particlesOb006 tokoe:valid" result="pass"/><test-case name="33708particlesOb006.v tokoe:valid" result="pass"/><test-case name="33709particlesOb007 tokoe:valid" result="pass"/><test-case name="33710particlesOb007.v tokoe:valid" result="pass"/><test-case name="33711particlesOb010 tokoe:invalid" result="pass"/><test-case name="33712particlesOb011 tokoe:invalid" result="pass"/><test-case name="33713particlesOb012 tokoe:valid" result="pass"/><test-case name="33714particlesOb012.v tokoe:valid" result="pass"/><test-case name="33715particlesOb014 tokoe:invalid" result="pass"/><test-case name="33716particlesOb015 tokoe:valid" result="pass"/><test-case name="33717particlesOb015.v tokoe:valid" result="pass"/><test-case name="33718particlesOb016 tokoe:invalid" result="pass"/><test-case name="33719particlesOb017 tokoe:invalid" result="pass"/><test-case name="33720particlesOb019 tokoe:invalid" result="pass"/><test-case name="33721particlesOb020 tokoe:invalid" result="pass"/><test-case name="33722particlesOb021 tokoe:invalid" result="pass"/><test-case name="33723particlesOb022 tokoe:valid" result="pass"/><test-case name="33724particlesOb022.v tokoe:valid" result="pass"/><test-case name="33725particlesOb023 tokoe:invalid" result="pass"/><test-case name="33726particlesOb024 tokoe:invalid" result="pass"/><test-case name="33727particlesOb025 tokoe:invalid" result="pass"/><test-case name="33728particlesOb026 tokoe:invalid" result="pass"/><test-case name="33729particlesOb027 tokoe:invalid" result="pass"/><test-case name="33730particlesOb028 tokoe:invalid" result="pass"/><test-case name="33731particlesOb029 tokoe:invalid" result="pass"/><test-case name="33732particlesOb030 tokoe:invalid" result="pass"/><test-case name="33733particlesOb031 tokoe:invalid" result="pass"/><test-case name="33734particlesOb032 tokoe:valid" result="pass"/><test-case name="33735particlesOb032.v tokoe:valid" result="pass"/><test-case name="33736particlesOb033 tokoe:invalid" result="pass"/><test-case name="33737particlesOb034 tokoe:invalid" result="pass"/><test-case name="33738particlesOb035 tokoe:invalid" result="pass"/><test-case name="33739particlesOb036 tokoe:invalid" result="pass"/><test-case name="33740particlesOb037 tokoe:invalid" result="pass"/><test-case name="33741particlesOb038 tokoe:invalid" result="pass"/><test-case name="33742particlesOb039 tokoe:invalid" result="pass"/><test-case name="33743particlesOb040 tokoe:invalid" result="pass"/><test-case name="33744particlesOb041 tokoe:invalid" result="pass"/><test-case name="33745particlesOb042 tokoe:valid" result="pass"/><test-case name="33746particlesOb042.v tokoe:valid" result="pass"/><test-case name="33747particlesOb043 tokoe:invalid" result="pass"/><test-case name="33748particlesOb044 tokoe:invalid" result="pass"/><test-case name="33749particlesOb045 tokoe:invalid" result="pass"/><test-case name="33750particlesOb046 tokoe:invalid" result="pass"/><test-case name="33751particlesOb047 tokoe:valid" result="pass"/><test-case name="33752particlesOb047.v tokoe:valid" result="pass"/><test-case name="33753particlesOb048 tokoe:valid" result="pass"/><test-case name="33754particlesOb048.v tokoe:valid" result="pass"/><test-case name="33755particlesOb049 tokoe:invalid" result="pass"/><test-case name="33756particlesOb050 tokoe:invalid" result="pass"/><test-case name="33757particlesOb051 tokoe:invalid" result="pass"/><test-case name="33758particlesOb052 tokoe:valid" result="pass"/><test-case name="33759particlesOb052.v tokoe:valid" result="pass"/><test-case name="33760particlesOb053 tokoe:valid" result="pass"/><test-case name="33761particlesOb053.v tokoe:valid" result="pass"/><test-case name="33762particlesOb054 tokoe:valid" result="pass"/><test-case name="33763particlesOb054.v tokoe:valid" result="pass"/><test-case name="33764particlesOb055 tokoe:valid" result="pass"/><test-case name="33765particlesOb055.v tokoe:valid" result="pass"/><test-case name="33766particlesOb056 tokoe:valid" result="pass"/><test-case name="33767particlesOb056.v tokoe:valid" result="pass"/><test-case name="33768particlesOb057 tokoe:valid" result="pass"/><test-case name="33769particlesOb057.v tokoe:valid" result="pass"/><test-case name="33770particlesOb058 tokoe:invalid" result="pass"/><test-case name="33771particlesOb059 tokoe:valid" result="pass"/><test-case name="33772particlesOb059.v tokoe:valid" result="pass"/><test-case name="33773particlesOb060 tokoe:valid" result="pass"/><test-case name="33774particlesOb060.v tokoe:valid" result="pass"/><test-case name="33775particlesP002 tokoe:valid" result="pass"/><test-case name="33776particlesP002.v tokoe:valid" result="pass"/><test-case name="33777particlesS001 tokoe:valid" result="pass"/><test-case name="33778particlesS001.v tokoe:valid" result="pass"/><test-case name="33779particlesS003 tokoe:valid" result="pass"/><test-case name="33780particlesS003.v tokoe:valid" result="pass"/><test-case name="33781particlesS004 tokoe:valid" result="pass"/><test-case name="33782particlesS004.v tokoe:valid" result="pass"/><test-case name="33783particlesS005 tokoe:invalid" result="pass"/><test-case name="33784particlesS006 tokoe:invalid" result="pass"/><test-case name="33785particlesS007 tokoe:valid" result="pass"/><test-case name="33786particlesS007.v tokoe:valid" result="pass"/><test-case name="33787particlesS008 tokoe:invalid" result="pass"/><test-case name="33788particlesS009 tokoe:invalid" result="pass"/><test-case name="33789particlesS010 tokoe:invalid" result="pass"/><test-case name="33790particlesS011 tokoe:valid" result="pass"/><test-case name="33791particlesS011.v tokoe:valid" result="pass"/><test-case name="33792particlesR001 tokoe:valid" result="pass"/><test-case name="33793particlesR001.v tokoe:valid" result="pass"/><test-case name="33794particlesR002 tokoe:valid" result="pass"/><test-case name="33795particlesR002.v tokoe:valid" result="pass"/><test-case name="33796particlesR003 tokoe:valid" result="pass"/><test-case name="33797particlesR003.v tokoe:valid" result="pass"/><test-case name="33798particlesR004 tokoe:valid" result="pass"/><test-case name="33799particlesR004.v tokoe:valid" result="pass"/><test-case name="33800particlesR005 tokoe:valid" result="pass"/><test-case name="33801particlesR005.v tokoe:valid" result="fail"/><test-case name="33802particlesR006 tokoe:invalid" result="pass"/><test-case name="33803particlesR007 tokoe:valid" result="pass"/><test-case name="33804particlesR007.v tokoe:valid" result="pass"/><test-case name="33805particlesR008 tokoe:valid" result="pass"/><test-case name="33806particlesR008.v tokoe:valid" result="pass"/><test-case name="33807particlesR009 tokoe:valid" result="pass"/><test-case name="33808particlesR009.v tokoe:valid" result="pass"/><test-case name="33809particlesR010 tokoe:invalid" result="pass"/><test-case name="33810particlesR011 tokoe:valid" result="pass"/><test-case name="33811particlesR011.v tokoe:valid" result="pass"/><test-case name="33812particlesR012 tokoe:valid" result="pass"/><test-case name="33813particlesR012.v tokoe:valid" result="pass"/><test-case name="33814particlesR013 tokoe:valid" result="pass"/><test-case name="33815particlesR013.v tokoe:valid" result="pass"/><test-case name="33816particlesR014 tokoe:invalid" result="pass"/><test-case name="33817particlesR015 tokoe:valid" result="pass"/><test-case name="33818particlesR015.v tokoe:valid" result="pass"/><test-case name="33819particlesR016 tokoe:valid" result="pass"/><test-case name="33820particlesR016.v tokoe:valid" result="pass"/><test-case name="33821particlesR017 tokoe:valid" result="pass"/><test-case name="33822particlesR017.v tokoe:valid" result="pass"/><test-case name="33823particlesR018 tokoe:invalid" result="pass"/><test-case name="33824particlesR019 tokoe:invalid" result="pass"/><test-case name="33825particlesR020 tokoe:valid" result="pass"/><test-case name="33826particlesR020.v tokoe:valid" result="pass"/><test-case name="33827particlesR021 tokoe:invalid" result="pass"/><test-case name="33828particlesR022 tokoe:valid" result="pass"/><test-case name="33829particlesR022.v tokoe:valid" result="pass"/><test-case name="33830particlesR023 tokoe:invalid" result="pass"/><test-case name="33831particlesR024 tokoe:valid" result="pass"/><test-case name="33832particlesR024.v tokoe:valid" result="pass"/><test-case name="33833particlesR025 tokoe:invalid" result="pass"/><test-case name="33834particlesR026 tokoe:invalid" result="pass"/><test-case name="33835particlesR027 tokoe:invalid" result="pass"/><test-case name="33836particlesR028 tokoe:invalid" result="pass"/><test-case name="33837particlesR029 tokoe:valid" result="pass"/><test-case name="33838particlesR029.v tokoe:valid" result="pass"/><test-case name="33839particlesR030 tokoe:valid" result="pass"/><test-case name="33840particlesR030.v tokoe:valid" result="pass"/><test-case name="33841particlesR031 tokoe:invalid" result="pass"/><test-case name="33842particlesT001 tokoe:valid" result="pass"/><test-case name="33843particlesT001.v tokoe:valid" result="pass"/><test-case name="33844particlesT003 tokoe:valid" result="pass"/><test-case name="33845particlesT003.v tokoe:valid" result="pass"/><test-case name="33846particlesT004 tokoe:valid" result="pass"/><test-case name="33847particlesT004.v tokoe:valid" result="pass"/><test-case name="33848particlesT005 tokoe:valid" result="pass"/><test-case name="33849particlesT005.v tokoe:valid" result="pass"/><test-case name="33850particlesT006 tokoe:valid" result="pass"/><test-case name="33851particlesT006.v tokoe:valid" result="pass"/><test-case name="33852particlesT007 tokoe:valid" result="pass"/><test-case name="33853particlesT007.v tokoe:valid" result="pass"/><test-case name="33854particlesT008 tokoe:invalid" result="pass"/><test-case name="33855particlesT010 tokoe:invalid" result="pass"/><test-case name="33856particlesT011 tokoe:invalid" result="pass"/><test-case name="33857particlesT012 tokoe:valid" result="pass"/><test-case name="33858particlesT012.v tokoe:valid" result="pass"/><test-case name="33859particlesT013 tokoe:valid" result="pass"/><test-case name="33860particlesT013.v tokoe:valid" result="pass"/><test-case name="33861particlesQ001 tokoe:valid" result="pass"/><test-case name="33862particlesQ001.v tokoe:valid" result="pass"/><test-case name="33863particlesQ002 tokoe:valid" result="pass"/><test-case name="33864particlesQ002.v tokoe:valid" result="pass"/><test-case name="33865particlesQ003 tokoe:valid" result="pass"/><test-case name="33866particlesQ003.v tokoe:valid" result="pass"/><test-case name="33867particlesQ004 tokoe:valid" result="pass"/><test-case name="33868particlesQ004.v tokoe:valid" result="pass"/><test-case name="33869particlesQ006 tokoe:invalid" result="pass"/><test-case name="33870particlesQ007 tokoe:valid" result="pass"/><test-case name="33871particlesQ007.v tokoe:valid" result="pass"/><test-case name="33872particlesQ008 tokoe:invalid" result="pass"/><test-case name="33873particlesQ011 tokoe:valid" result="pass"/><test-case name="33874particlesQ011.v tokoe:valid" result="pass"/><test-case name="33875particlesQ012 tokoe:invalid" result="pass"/><test-case name="33876particlesQ013 tokoe:valid" result="pass"/><test-case name="33877particlesQ013.v tokoe:valid" result="pass"/><test-case name="33878particlesQ016 tokoe:valid" result="pass"/><test-case name="33879particlesQ016.v tokoe:valid" result="pass"/><test-case name="33880particlesQ017 tokoe:valid" result="pass"/><test-case name="33881particlesQ017.v tokoe:valid" result="pass"/><test-case name="33882particlesQ018 tokoe:invalid" result="pass"/><test-case name="33883particlesQ019 tokoe:invalid" result="pass"/><test-case name="33884particlesQ020 tokoe:valid" result="pass"/><test-case name="33885particlesQ020.v tokoe:valid" result="pass"/><test-case name="33886particlesQ021 tokoe:invalid" result="pass"/><test-case name="33887particlesQ022 tokoe:valid" result="pass"/><test-case name="33888particlesQ022.v tokoe:valid" result="pass"/><test-case name="33889particlesQ023 tokoe:invalid" result="pass"/><test-case name="33890particlesQ024 tokoe:valid" result="pass"/><test-case name="33891particlesQ024.v tokoe:valid" result="pass"/><test-case name="33892particlesQ025 tokoe:invalid" result="pass"/><test-case name="33893particlesQ026 tokoe:invalid" result="pass"/><test-case name="33894particlesQ027 tokoe:invalid" result="pass"/><test-case name="33895particlesQ028 tokoe:invalid" result="pass"/><test-case name="33896particlesQ029 tokoe:valid" result="pass"/><test-case name="33897particlesQ029.v tokoe:valid" result="pass"/><test-case name="33898particlesQ030 tokoe:valid" result="pass"/><test-case name="33899particlesQ030.v tokoe:valid" result="pass"/><test-case name="33900particlesQ031 tokoe:invalid" result="pass"/><test-case name="33901particlesQ032 tokoe:valid" result="pass"/><test-case name="33902particlesQ032.v tokoe:valid" result="pass"/><test-case name="33903particlesU001 tokoe:invalid" result="pass"/><test-case name="33904particlesU002 tokoe:invalid" result="pass"/><test-case name="33905particlesU003 tokoe:valid" result="pass"/><test-case name="33906particlesU003.v tokoe:valid" result="pass"/><test-case name="33907particlesU004 tokoe:valid" result="pass"/><test-case name="33908particlesU004.v tokoe:valid" result="pass"/><test-case name="33909particlesU005 tokoe:valid" result="pass"/><test-case name="33910particlesU005.v tokoe:valid" result="pass"/><test-case name="33911particlesU006 tokoe:invalid" result="pass"/><test-case name="33912particlesU007 tokoe:valid" result="pass"/><test-case name="33913particlesU007.v tokoe:valid" result="pass"/><test-case name="33914particlesU008 tokoe:invalid" result="pass"/><test-case name="33915particlesU009 tokoe:invalid" result="pass"/><test-case name="33916particlesV003 tokoe:valid" result="pass"/><test-case name="33917particlesV003.v tokoe:valid" result="pass"/><test-case name="33918particlesV004 tokoe:valid" result="pass"/><test-case name="33919particlesV004.v tokoe:valid" result="pass"/><test-case name="33920particlesV005 tokoe:invalid" result="pass"/><test-case name="33921particlesV006 tokoe:valid" result="pass"/><test-case name="33922particlesV006.v tokoe:valid" result="pass"/><test-case name="33923particlesV007 tokoe:valid" result="pass"/><test-case name="33924particlesV007.v tokoe:valid" result="pass"/><test-case name="33925particlesV008 tokoe:valid" result="pass"/><test-case name="33926particlesV008.v tokoe:valid" result="pass"/><test-case name="33927particlesV009 tokoe:valid" result="pass"/><test-case name="33928particlesV009.v tokoe:valid" result="pass"/><test-case name="33929particlesV010 tokoe:valid" result="pass"/><test-case name="33930particlesV010.v tokoe:valid" result="pass"/><test-case name="33931particlesV011 tokoe:valid" result="pass"/><test-case name="33932particlesV011.v tokoe:valid" result="pass"/><test-case name="33933particlesV012 tokoe:valid" result="pass"/><test-case name="33934particlesV012.v tokoe:valid" result="pass"/><test-case name="33935particlesV013 tokoe:valid" result="pass"/><test-case name="33936particlesV013.v tokoe:valid" result="pass"/><test-case name="33937particlesV014 tokoe:valid" result="pass"/><test-case name="33938particlesV014.v tokoe:valid" result="pass"/><test-case name="33939particlesV015 tokoe:valid" result="pass"/><test-case name="33940particlesV015.v tokoe:valid" result="pass"/><test-case name="33941particlesV016 tokoe:invalid" result="pass"/><test-case name="33942particlesV017 tokoe:invalid" result="pass"/><test-case name="33943particlesV018 tokoe:invalid" result="pass"/><test-case name="33944particlesW001 tokoe:valid" result="pass"/><test-case name="33945particlesW001.v tokoe:valid" result="pass"/><test-case name="33946particlesW002 tokoe:invalid" result="pass"/><test-case name="33947particlesW003 tokoe:valid" result="pass"/><test-case name="33948particlesW003.v tokoe:valid" result="pass"/><test-case name="33949particlesW005 tokoe:invalid" result="pass"/><test-case name="33950particlesW006 tokoe:valid" result="pass"/><test-case name="33951particlesW007 tokoe:invalid" result="pass"/><test-case name="33952particlesW008 tokoe:valid" result="pass"/><test-case name="33953particlesW008.v tokoe:valid" result="pass"/><test-case name="33954particlesW010 tokoe:invalid" result="pass"/><test-case name="33955particlesW011 tokoe:valid" result="pass"/><test-case name="33956particlesW011.v tokoe:valid" result="pass"/><test-case name="33957particlesW012 tokoe:invalid" result="pass"/><test-case name="33958particlesW013 tokoe:invalid" result="pass"/><test-case name="33959particlesW014 tokoe:invalid" result="pass"/><test-case name="33960particlesW015 tokoe:invalid" result="pass"/><test-case name="33961particlesW016 tokoe:valid" result="pass"/><test-case name="33962particlesW016.v tokoe:valid" result="pass"/><test-case name="33963particlesZ002 tokoe:valid" result="pass"/><test-case name="33964particlesZ002.v tokoe:valid" result="pass"/><test-case name="33965particlesZ003 tokoe:valid" result="pass"/><test-case name="33966particlesZ003.v tokoe:valid" result="pass"/><test-case name="33967particlesZ008 tokoe:valid" result="pass"/><test-case name="33968particlesZ008.v tokoe:valid" result="pass"/><test-case name="33969particlesZ009 tokoe:invalid" result="pass"/><test-case name="33970particlesZ010 tokoe:valid" result="pass"/><test-case name="33971particlesZ011 tokoe:invalid" result="pass"/><test-case name="33972particlesZ012 tokoe:valid" result="pass"/><test-case name="33973particlesZ012.v tokoe:valid" result="pass"/><test-case name="33974particlesZ013 tokoe:invalid" result="pass"/><test-case name="33975particlesZ014 tokoe:invalid" result="pass"/><test-case name="33976particlesZ015 tokoe:valid" result="pass"/><test-case name="33977particlesZ015.i tokoe:invalid" result="pass"/><test-case name="33978particlesZ016 tokoe:valid" result="pass"/><test-case name="33979particlesZ016.i tokoe:invalid" result="pass"/><test-case name="33980particlesZ017 tokoe:invalid" result="pass"/><test-case name="33981particlesZ018 tokoe:invalid" result="pass"/><test-case name="33982particlesZ020 tokoe:valid" result="pass"/><test-case name="33983particlesZ021 tokoe:invalid" result="pass"/><test-case name="33984particlesZ022 tokoe:invalid" result="pass"/><test-case name="33985particlesZ030_a tokoe:valid" result="pass"/><test-case name="33986particlesZ030_b tokoe:valid" result="pass"/><test-case name="33987particlesZ030_c tokoe:valid" result="pass"/><test-case name="33988particlesZ030_d tokoe:invalid" result="pass"/><test-case name="33989particlesZ031 tokoe:valid" result="fail"/><test-case name="33990particlesZ033_a tokoe:valid" result="fail"/><test-case name="33991particlesZ037 tokoe:invalid" result="pass"/><test-case name="33992particlesZ038 tokoe:valid" result="pass"/><test-case name="33993particlesZ039 tokoe:invalid" result="pass"/><test-case name="33994particlesZ040 tokoe:valid" result="pass"/><test-case name="33995particlesZ040.i tokoe:valid" result="pass"/><test-case name="33996reA1 tokoe:valid" result="pass"/><test-case name="33997reA1.v tokoe:valid" result="pass"/><test-case name="33998reA2 tokoe:valid" result="pass"/><test-case name="33999reA2.i tokoe:invalid" result="pass"/><test-case name="34000reA3 tokoe:valid" result="pass"/><test-case name="34001reA3.i tokoe:invalid" result="pass"/><test-case name="34002reA4 tokoe:valid" result="pass"/><test-case name="34003reA4.i tokoe:invalid" result="pass"/><test-case name="34004reA5 tokoe:valid" result="pass"/><test-case name="34005reA5.i tokoe:invalid" result="pass"/><test-case name="34006reA6 tokoe:valid" result="pass"/><test-case name="34007reA6.i tokoe:invalid" result="pass"/><test-case name="34008reA7 tokoe:valid" result="pass"/><test-case name="34009reA7.v tokoe:valid" result="pass"/><test-case name="34010reA8 tokoe:valid" result="pass"/><test-case name="34011reA8.v tokoe:valid" result="pass"/><test-case name="34012reA9 tokoe:valid" result="pass"/><test-case name="34013reA9.i tokoe:invalid" result="pass"/><test-case name="34014reA10 tokoe:valid" result="pass"/><test-case name="34015reA10.i tokoe:invalid" result="pass"/><test-case name="34016reA11 tokoe:valid" result="pass"/><test-case name="34017reA11.i tokoe:invalid" result="pass"/><test-case name="34018reA12 tokoe:valid" result="pass"/><test-case name="34019reA12.v tokoe:valid" result="pass"/><test-case name="34020reA13 tokoe:valid" result="pass"/><test-case name="34021reA13.i tokoe:invalid" result="pass"/><test-case name="34022reA14 tokoe:valid" result="pass"/><test-case name="34023reA14.i tokoe:invalid" result="pass"/><test-case name="34024reA15 tokoe:valid" result="pass"/><test-case name="34025reA15.i tokoe:invalid" result="pass"/><test-case name="34026reA16 tokoe:valid" result="pass"/><test-case name="34027reA16.v tokoe:valid" result="pass"/><test-case name="34028reA17 tokoe:valid" result="pass"/><test-case name="34029reA17.v tokoe:valid" result="pass"/><test-case name="34030reA18 tokoe:valid" result="pass"/><test-case name="34031reA18.i tokoe:invalid" result="pass"/><test-case name="34032reA19 tokoe:valid" result="pass"/><test-case name="34033reA19.i tokoe:invalid" result="pass"/><test-case name="34034reA20 tokoe:valid" result="pass"/><test-case name="34035reA20.i tokoe:invalid" result="pass"/><test-case name="34036reA21 tokoe:valid" result="pass"/><test-case name="34037reA21.i tokoe:invalid" result="pass"/><test-case name="34038reA22 tokoe:valid" result="pass"/><test-case name="34039reA22.i tokoe:invalid" result="pass"/><test-case name="34040reA23 tokoe:valid" result="pass"/><test-case name="34041reA23.i tokoe:invalid" result="pass"/><test-case name="34042reA24 tokoe:valid" result="pass"/><test-case name="34043reA24.v tokoe:valid" result="pass"/><test-case name="34044reA25 tokoe:valid" result="pass"/><test-case name="34045reA25.i tokoe:invalid" result="pass"/><test-case name="34046reA26 tokoe:valid" result="pass"/><test-case name="34047reA26.i tokoe:invalid" result="pass"/><test-case name="34048reA27 tokoe:valid" result="pass"/><test-case name="34049reA27.i tokoe:invalid" result="pass"/><test-case name="34050reA28 tokoe:valid" result="pass"/><test-case name="34051reA28.v tokoe:valid" result="pass"/><test-case name="34052reA29 tokoe:valid" result="pass"/><test-case name="34053reA29.v tokoe:valid" result="pass"/><test-case name="34054reA30 tokoe:valid" result="pass"/><test-case name="34055reA30.v tokoe:valid" result="pass"/><test-case name="34056reA31 tokoe:valid" result="pass"/><test-case name="34057reA31.v tokoe:valid" result="pass"/><test-case name="34058reA32 tokoe:valid" result="pass"/><test-case name="34059reA32.i tokoe:invalid" result="pass"/><test-case name="34060reA33 tokoe:valid" result="pass"/><test-case name="34061reA33.i tokoe:invalid" result="pass"/><test-case name="34062reA34 tokoe:valid" result="pass"/><test-case name="34063reA34.i tokoe:invalid" result="pass"/><test-case name="34064reA35 tokoe:valid" result="pass"/><test-case name="34065reA36 tokoe:valid" result="pass"/><test-case name="34066reA37 tokoe:valid" result="pass"/><test-case name="34067reA38 tokoe:valid" result="pass"/><test-case name="34068reA39 tokoe:valid" result="pass"/><test-case name="34069reA40 tokoe:valid" result="pass"/><test-case name="34070reA45 tokoe:valid" result="pass"/><test-case name="34071reA45.v tokoe:valid" result="pass"/><test-case name="34072reB1 tokoe:valid" result="pass"/><test-case name="34073reB1.v tokoe:valid" result="pass"/><test-case name="34074reB2 tokoe:valid" result="pass"/><test-case name="34075reB2.v tokoe:valid" result="pass"/><test-case name="34076reB3 tokoe:valid" result="pass"/><test-case name="34077reB3.i tokoe:invalid" result="pass"/><test-case name="34078reB4 tokoe:valid" result="pass"/><test-case name="34079reB4.i tokoe:invalid" result="pass"/><test-case name="34080reB5 tokoe:valid" result="pass"/><test-case name="34081reB5.i tokoe:invalid" result="pass"/><test-case name="34082reB10 tokoe:valid" result="pass"/><test-case name="34083reB10.i tokoe:invalid" result="pass"/><test-case name="34084reB11 tokoe:valid" result="pass"/><test-case name="34085reB11.v tokoe:valid" result="pass"/><test-case name="34086reB12 tokoe:valid" result="pass"/><test-case name="34087reB12.v tokoe:valid" result="pass"/><test-case name="34088reB13 tokoe:valid" result="pass"/><test-case name="34089reB13.i tokoe:invalid" result="pass"/><test-case name="34090reB14 tokoe:valid" result="pass"/><test-case name="34091reB14.i tokoe:invalid" result="pass"/><test-case name="34092reB15 tokoe:valid" result="pass"/><test-case name="34093reB15.i tokoe:invalid" result="pass"/><test-case name="34094reB16 tokoe:valid" result="pass"/><test-case name="34095reB16.i tokoe:invalid" result="pass"/><test-case name="34096reB17 tokoe:valid" result="pass"/><test-case name="34097reB17.v tokoe:valid" result="pass"/><test-case name="34098reB18 tokoe:valid" result="pass"/><test-case name="34099reB18.v tokoe:valid" result="pass"/><test-case name="34100reB19 tokoe:valid" result="pass"/><test-case name="34101reB19.i tokoe:invalid" result="pass"/><test-case name="34102reB20 tokoe:valid" result="pass"/><test-case name="34103reB20.i tokoe:invalid" result="pass"/><test-case name="34104reB21 tokoe:valid" result="pass"/><test-case name="34105reB21.i tokoe:invalid" result="pass"/><test-case name="34106reB22 tokoe:valid" result="pass"/><test-case name="34107reB22.i tokoe:invalid" result="pass"/><test-case name="34108reB23 tokoe:valid" result="pass"/><test-case name="34109reB23.v tokoe:valid" result="pass"/><test-case name="34110reB24 tokoe:valid" result="pass"/><test-case name="34111reB24.v tokoe:valid" result="pass"/><test-case name="34112reB25 tokoe:valid" result="pass"/><test-case name="34113reB25.i tokoe:invalid" result="pass"/><test-case name="34114reB26 tokoe:valid" result="pass"/><test-case name="34115reB26.i tokoe:invalid" result="pass"/><test-case name="34116reB27 tokoe:valid" result="pass"/><test-case name="34117reB27.i tokoe:invalid" result="pass"/><test-case name="34118reB28 tokoe:valid" result="pass"/><test-case name="34119reB28.v tokoe:valid" result="pass"/><test-case name="34120reB29 tokoe:valid" result="pass"/><test-case name="34121reB29.v tokoe:valid" result="pass"/><test-case name="34122reB30 tokoe:valid" result="pass"/><test-case name="34123reB30.v tokoe:valid" result="pass"/><test-case name="34124reB31 tokoe:valid" result="pass"/><test-case name="34125reB31.i tokoe:invalid" result="pass"/><test-case name="34126reB32 tokoe:valid" result="pass"/><test-case name="34127reB32.i tokoe:invalid" result="pass"/><test-case name="34128reB33 tokoe:valid" result="pass"/><test-case name="34129reB33.i tokoe:invalid" result="pass"/><test-case name="34130reB34 tokoe:valid" result="pass"/><test-case name="34131reB34.i tokoe:invalid" result="pass"/><test-case name="34132reB35 tokoe:valid" result="pass"/><test-case name="34133reB35.i tokoe:invalid" result="pass"/><test-case name="34134reB36 tokoe:valid" result="pass"/><test-case name="34135reB36.i tokoe:invalid" result="pass"/><test-case name="34136reB37 tokoe:valid" result="pass"/><test-case name="34137reB37.v tokoe:valid" result="pass"/><test-case name="34138reB38 tokoe:valid" result="pass"/><test-case name="34139reB38.v tokoe:valid" result="pass"/><test-case name="34140reB39 tokoe:valid" result="pass"/><test-case name="34141reB39.v tokoe:valid" result="pass"/><test-case name="34142reB40 tokoe:valid" result="pass"/><test-case name="34143reB40.i tokoe:invalid" result="pass"/><test-case name="34144reB41 tokoe:valid" result="pass"/><test-case name="34145reB41.i tokoe:invalid" result="pass"/><test-case name="34146reB42 tokoe:valid" result="pass"/><test-case name="34147reB42.i tokoe:invalid" result="pass"/><test-case name="34148reB43 tokoe:valid" result="pass"/><test-case name="34149reB43.i tokoe:invalid" result="pass"/><test-case name="34150reB44 tokoe:valid" result="pass"/><test-case name="34151reB44.v tokoe:valid" result="pass"/><test-case name="34152reB45 tokoe:valid" result="pass"/><test-case name="34153reB45.v tokoe:valid" result="pass"/><test-case name="34154reB46 tokoe:valid" result="pass"/><test-case name="34155reB46.v tokoe:valid" result="pass"/><test-case name="34156reB47 tokoe:valid" result="pass"/><test-case name="34157reB47.v tokoe:valid" result="pass"/><test-case name="34158reB48 tokoe:valid" result="pass"/><test-case name="34159reB48.v tokoe:valid" result="pass"/><test-case name="34160reB49 tokoe:valid" result="pass"/><test-case name="34161reB49.i tokoe:invalid" result="pass"/><test-case name="34162reB50 tokoe:valid" result="pass"/><test-case name="34163reB50.i tokoe:invalid" result="pass"/><test-case name="34164reB51 tokoe:valid" result="pass"/><test-case name="34165reB51.i tokoe:invalid" result="pass"/><test-case name="34166reB52 tokoe:valid" result="pass"/><test-case name="34167reB52.i tokoe:invalid" result="pass"/><test-case name="34168reB53 tokoe:valid" result="pass"/><test-case name="34169reB53.i tokoe:invalid" result="pass"/><test-case name="34170reB54 tokoe:valid" result="pass"/><test-case name="34171reB54.v tokoe:valid" result="pass"/><test-case name="34172reB55 tokoe:valid" result="pass"/><test-case name="34173reB55.v tokoe:valid" result="pass"/><test-case name="34174reB56 tokoe:valid" result="pass"/><test-case name="34175reB56.v tokoe:valid" result="pass"/><test-case name="34176reB57 tokoe:valid" result="pass"/><test-case name="34177reB57.v tokoe:valid" result="pass"/><test-case name="34178reB58 tokoe:valid" result="pass"/><test-case name="34179reB58.i tokoe:invalid" result="pass"/><test-case name="34180reB59 tokoe:valid" result="pass"/><test-case name="34181reB59.i tokoe:invalid" result="pass"/><test-case name="34182reB60 tokoe:valid" result="pass"/><test-case name="34183reB60.i tokoe:invalid" result="pass"/><test-case name="34184reB61 tokoe:valid" result="pass"/><test-case name="34185reB61.i tokoe:invalid" result="pass"/><test-case name="34186reB62 tokoe:invalid" result="pass"/><test-case name="34187reB63 tokoe:invalid" result="pass"/><test-case name="34188reB64 tokoe:invalid" result="pass"/><test-case name="34189reB65 tokoe:invalid" result="pass"/><test-case name="34190reB78 tokoe:valid" result="pass"/><test-case name="34191reB78.v tokoe:valid" result="pass"/><test-case name="34192reB79 tokoe:invalid" result="pass"/><test-case name="34193reB80 tokoe:invalid" result="pass"/><test-case name="34194reC1 tokoe:valid" result="pass"/><test-case name="34195reC1.i tokoe:invalid" result="pass"/><test-case name="34196reC2 tokoe:valid" result="pass"/><test-case name="34197reC2.v tokoe:valid" result="pass"/><test-case name="34198reC3 tokoe:valid" result="pass"/><test-case name="34199reC3.v tokoe:valid" result="pass"/><test-case name="34200reC4 tokoe:valid" result="pass"/><test-case name="34201reC4.v tokoe:valid" result="pass"/><test-case name="34202reC5 tokoe:valid" result="pass"/><test-case name="34203reC5.i tokoe:invalid" result="pass"/><test-case name="34204reC6 tokoe:valid" result="pass"/><test-case name="34205reC6.i tokoe:invalid" result="pass"/><test-case name="34206reC7 tokoe:valid" result="pass"/><test-case name="34207reC7.i tokoe:invalid" result="pass"/><test-case name="34208reC8 tokoe:valid" result="pass"/><test-case name="34209reC8.i tokoe:invalid" result="pass"/><test-case name="34210reC9 tokoe:valid" result="pass"/><test-case name="34211reC9.v tokoe:valid" result="pass"/><test-case name="34212reC10 tokoe:valid" result="pass"/><test-case name="34213reC10.v tokoe:valid" result="pass"/><test-case name="34214reC11 tokoe:valid" result="pass"/><test-case name="34215reC11.v tokoe:valid" result="pass"/><test-case name="34216reC12 tokoe:valid" result="pass"/><test-case name="34217reC12.i tokoe:invalid" result="pass"/><test-case name="34218reC13 tokoe:valid" result="pass"/><test-case name="34219reC13.i tokoe:invalid" result="pass"/><test-case name="34220reC14 tokoe:valid" result="pass"/><test-case name="34221reC14.i tokoe:invalid" result="pass"/><test-case name="34222reC15 tokoe:valid" result="pass"/><test-case name="34223reC15.i tokoe:invalid" result="pass"/><test-case name="34224reC16 tokoe:valid" result="pass"/><test-case name="34225reC16.v tokoe:valid" result="pass"/><test-case name="34226reC17 tokoe:valid" result="pass"/><test-case name="34227reC17.v tokoe:valid" result="pass"/><test-case name="34228reC18 tokoe:valid" result="pass"/><test-case name="34229reC18.v tokoe:valid" result="pass"/><test-case name="34230reC19 tokoe:valid" result="pass"/><test-case name="34231reC19.i tokoe:invalid" result="pass"/><test-case name="34232reC20 tokoe:valid" result="pass"/><test-case name="34233reC20.i tokoe:invalid" result="pass"/><test-case name="34234reC21 tokoe:valid" result="pass"/><test-case name="34235reC21.i tokoe:invalid" result="pass"/><test-case name="34236reC22 tokoe:valid" result="pass"/><test-case name="34237reC22.v tokoe:valid" result="pass"/><test-case name="34238reC23 tokoe:valid" result="pass"/><test-case name="34239reC23.i tokoe:invalid" result="pass"/><test-case name="34240reC24 tokoe:valid" result="pass"/><test-case name="34241reC24.i tokoe:invalid" result="pass"/><test-case name="34242reC25 tokoe:valid" result="pass"/><test-case name="34243reC25.i tokoe:invalid" result="pass"/><test-case name="34244reC26 tokoe:valid" result="pass"/><test-case name="34245reC26.i tokoe:invalid" result="pass"/><test-case name="34246reC27 tokoe:valid" result="pass"/><test-case name="34247reC27.i tokoe:invalid" result="pass"/><test-case name="34248reC28 tokoe:valid" result="pass"/><test-case name="34249reC28.v tokoe:valid" result="pass"/><test-case name="34250reC29 tokoe:valid" result="pass"/><test-case name="34251reC29.i tokoe:invalid" result="pass"/><test-case name="34252reC30 tokoe:valid" result="pass"/><test-case name="34253reC30.i tokoe:invalid" result="pass"/><test-case name="34254reC31 tokoe:valid" result="pass"/><test-case name="34255reC31.i tokoe:invalid" result="pass"/><test-case name="34256reC32 tokoe:valid" result="pass"/><test-case name="34257reC32.v tokoe:valid" result="pass"/><test-case name="34258reC33 tokoe:valid" result="pass"/><test-case name="34259reC33.v tokoe:valid" result="pass"/><test-case name="34260reC34 tokoe:valid" result="pass"/><test-case name="34261reC34.v tokoe:valid" result="pass"/><test-case name="34262reC35 tokoe:valid" result="pass"/><test-case name="34263reC35.v tokoe:valid" result="pass"/><test-case name="34264reC36 tokoe:valid" result="pass"/><test-case name="34265reC36.i tokoe:invalid" result="pass"/><test-case name="34266reC37 tokoe:valid" result="pass"/><test-case name="34267reC37.i tokoe:invalid" result="pass"/><test-case name="34268reC38 tokoe:valid" result="pass"/><test-case name="34269reC38.i tokoe:invalid" result="pass"/><test-case name="34270reC39 tokoe:valid" result="pass"/><test-case name="34271reC39.i tokoe:invalid" result="pass"/><test-case name="34272reC40 tokoe:valid" result="pass"/><test-case name="34273reC40.i tokoe:invalid" result="pass"/><test-case name="34274reC41 tokoe:valid" result="pass"/><test-case name="34275reC41.v tokoe:valid" result="pass"/><test-case name="34276reC42 tokoe:valid" result="pass"/><test-case name="34277reC42.v tokoe:valid" result="pass"/><test-case name="34278reC43 tokoe:valid" result="pass"/><test-case name="34279reC43.v tokoe:valid" result="pass"/><test-case name="34280reC44 tokoe:valid" result="pass"/><test-case name="34281reC44.i tokoe:invalid" result="pass"/><test-case name="34282reC45 tokoe:valid" result="pass"/><test-case name="34283reC45.i tokoe:invalid" result="pass"/><test-case name="34284reC46 tokoe:valid" result="pass"/><test-case name="34285reC46.i tokoe:invalid" result="pass"/><test-case name="34286reC47 tokoe:valid" result="pass"/><test-case name="34287reC47.i tokoe:invalid" result="pass"/><test-case name="34288reC48 tokoe:valid" result="pass"/><test-case name="34289reC48.i tokoe:invalid" result="pass"/><test-case name="34290reC49 tokoe:valid" result="pass"/><test-case name="34291reC49.v tokoe:valid" result="pass"/><test-case name="34292reC50 tokoe:valid" result="pass"/><test-case name="34293reC50.v tokoe:valid" result="pass"/><test-case name="34294reC51 tokoe:valid" result="pass"/><test-case name="34295reC51.v tokoe:valid" result="pass"/><test-case name="34296reC52 tokoe:valid" result="pass"/><test-case name="34297reC52.i tokoe:invalid" result="pass"/><test-case name="34298reC53 tokoe:valid" result="pass"/><test-case name="34299reC53.i tokoe:invalid" result="pass"/><test-case name="34300reC54 tokoe:valid" result="pass"/><test-case name="34301reC54.i tokoe:invalid" result="pass"/><test-case name="34302reC55 tokoe:valid" result="pass"/><test-case name="34303reC55.i tokoe:invalid" result="pass"/><test-case name="34304reC56 tokoe:valid" result="pass"/><test-case name="34305reC56.v tokoe:valid" result="pass"/><test-case name="34306reC57 tokoe:valid" result="pass"/><test-case name="34307reC57.v tokoe:valid" result="pass"/><test-case name="34308reC58 tokoe:valid" result="pass"/><test-case name="34309reC58.v tokoe:valid" result="pass"/><test-case name="34310reC59 tokoe:valid" result="pass"/><test-case name="34311reC59.i tokoe:invalid" result="pass"/><test-case name="34312reC60 tokoe:valid" result="pass"/><test-case name="34313reC60.i tokoe:invalid" result="pass"/><test-case name="34314reC61 tokoe:valid" result="pass"/><test-case name="34315reC61.i tokoe:invalid" result="pass"/><test-case name="34316reC62 tokoe:valid" result="pass"/><test-case name="34317reC62.i tokoe:invalid" result="pass"/><test-case name="34318reC63 tokoe:valid" result="pass"/><test-case name="34319reC63.i tokoe:invalid" result="pass"/><test-case name="34320reC64 tokoe:valid" result="pass"/><test-case name="34321reC64.i tokoe:invalid" result="pass"/><test-case name="34322reC69 tokoe:invalid" result="pass"/><test-case name="34323reC70 tokoe:valid" result="pass"/><test-case name="34324reC70.v tokoe:valid" result="pass"/><test-case name="34325reC71 tokoe:valid" result="pass"/><test-case name="34326reC71.i tokoe:invalid" result="pass"/><test-case name="34327reC72 tokoe:valid" result="pass"/><test-case name="34328reC72.i tokoe:invalid" result="pass"/><test-case name="34329reC73 tokoe:valid" result="pass"/><test-case name="34330reC73.v tokoe:valid" result="pass"/><test-case name="34331reC74 tokoe:valid" result="pass"/><test-case name="34332reC74.v tokoe:valid" result="pass"/><test-case name="34333reC75 tokoe:valid" result="pass"/><test-case name="34334reC75.v tokoe:valid" result="pass"/><test-case name="34335reC76 tokoe:valid" result="pass"/><test-case name="34336reC76.v tokoe:valid" result="pass"/><test-case name="34337reC77 tokoe:valid" result="pass"/><test-case name="34338reC77.v tokoe:valid" result="pass"/><test-case name="34339reC78 tokoe:valid" result="pass"/><test-case name="34340reC78.v tokoe:valid" result="pass"/><test-case name="34341reC79 tokoe:valid" result="pass"/><test-case name="34342reC79.i tokoe:invalid" result="pass"/><test-case name="34343reC80 tokoe:valid" result="pass"/><test-case name="34344reC80.i tokoe:invalid" result="pass"/><test-case name="34345reC81 tokoe:valid" result="pass"/><test-case name="34346reC81.i tokoe:invalid" result="pass"/><test-case name="34347reC82 tokoe:valid" result="pass"/><test-case name="34348reC82.i tokoe:invalid" result="pass"/><test-case name="34349reC83 tokoe:valid" result="pass"/><test-case name="34350reC83.i tokoe:invalid" result="pass"/><test-case name="34351reC84 tokoe:valid" result="pass"/><test-case name="34352reC84.i tokoe:invalid" result="pass"/><test-case name="34353reD1 tokoe:valid" result="pass"/><test-case name="34354reD1.v tokoe:valid" result="pass"/><test-case name="34355reD2 tokoe:valid" result="pass"/><test-case name="34356reD2.v tokoe:valid" result="pass"/><test-case name="34357reD3 tokoe:valid" result="pass"/><test-case name="34358reD3.v tokoe:valid" result="pass"/><test-case name="34359reD4 tokoe:valid" result="pass"/><test-case name="34360reD4.v tokoe:valid" result="pass"/><test-case name="34361reD5 tokoe:valid" result="pass"/><test-case name="34362reD5.v tokoe:valid" result="pass"/><test-case name="34363reD6 tokoe:valid" result="pass"/><test-case name="34364reD6.v tokoe:valid" result="pass"/><test-case name="34365reD7 tokoe:valid" result="pass"/><test-case name="34366reD7.i tokoe:invalid" result="pass"/><test-case name="34367reD8 tokoe:valid" result="pass"/><test-case name="34368reD8.i tokoe:invalid" result="pass"/><test-case name="34369reD9 tokoe:invalid" result="pass"/><test-case name="34370reD10 tokoe:invalid" result="pass"/><test-case name="34371reD11 tokoe:invalid" result="pass"/><test-case name="34372reD12 tokoe:invalid" result="pass"/><test-case name="34373reE2 tokoe:invalid" result="pass"/><test-case name="34374reE3 tokoe:invalid" result="pass"/><test-case name="34375reE4 tokoe:invalid" result="pass"/><test-case name="34376reE5 tokoe:invalid" result="pass"/><test-case name="34377reE8 tokoe:invalid" result="pass"/><test-case name="34378reE9 tokoe:invalid" result="pass"/><test-case name="34379reE10 tokoe:valid" result="pass"/><test-case name="34380reE10.v tokoe:valid" result="pass"/><test-case name="34381reE11 tokoe:invalid" result="pass"/><test-case name="34382reE13 tokoe:valid" result="pass"/><test-case name="34383reE13.v tokoe:valid" result="pass"/><test-case name="34384reE14 tokoe:valid" result="pass"/><test-case name="34385reE14.v tokoe:valid" result="pass"/><test-case name="34386reF4 tokoe:valid" result="pass"/><test-case name="34387reF4.v tokoe:valid" result="pass"/><test-case name="34388reF6 tokoe:valid" result="pass"/><test-case name="34389reF6.i tokoe:invalid" result="pass"/><test-case name="34390reF7 tokoe:valid" result="pass"/><test-case name="34391reF7.v tokoe:valid" result="pass"/><test-case name="34392reF8 tokoe:valid" result="pass"/><test-case name="34393reF8.i tokoe:invalid" result="pass"/><test-case name="34394reF9 tokoe:valid" result="pass"/><test-case name="34395reF9.v tokoe:valid" result="pass"/><test-case name="34396reF10 tokoe:valid" result="pass"/><test-case name="34397reF10.v tokoe:valid" result="pass"/><test-case name="34398reF11 tokoe:valid" result="pass"/><test-case name="34399reF11.v tokoe:valid" result="pass"/><test-case name="34400reF12 tokoe:valid" result="pass"/><test-case name="34401reF12.v tokoe:valid" result="pass"/><test-case name="34402reF13 tokoe:valid" result="pass"/><test-case name="34403reF13.i tokoe:invalid" result="pass"/><test-case name="34404reF14 tokoe:valid" result="pass"/><test-case name="34405reF14.i tokoe:invalid" result="pass"/><test-case name="34406reF15 tokoe:valid" result="pass"/><test-case name="34407reF15.i tokoe:invalid" result="pass"/><test-case name="34408reF17 tokoe:valid" result="fail"/><test-case name="34409reF17.i tokoe:invalid" result="pass"/><test-case name="34410reF18 tokoe:valid" result="fail"/><test-case name="34411reF18.i tokoe:invalid" result="pass"/><test-case name="34412reF20 tokoe:valid" result="pass"/><test-case name="34413reF20.i tokoe:invalid" result="pass"/><test-case name="34414reF21 tokoe:valid" result="pass"/><test-case name="34415reF21.i tokoe:invalid" result="pass"/><test-case name="34416reF22 tokoe:valid" result="pass"/><test-case name="34417reF22.i tokoe:invalid" result="pass"/><test-case name="34418reF23 tokoe:valid" result="pass"/><test-case name="34419reF23.i tokoe:invalid" result="pass"/><test-case name="34420reF32 tokoe:valid" result="pass"/><test-case name="34421reF32.v tokoe:valid" result="pass"/><test-case name="34422reF34 tokoe:valid" result="fail"/><test-case name="34423reF34.i tokoe:invalid" result="pass"/><test-case name="34424reF36 tokoe:valid" result="fail"/><test-case name="34425reF36.i tokoe:invalid" result="pass"/><test-case name="34426reF39 tokoe:valid" result="fail"/><test-case name="34427reF39.i tokoe:invalid" result="pass"/><test-case name="34428reF40 tokoe:valid" result="pass"/><test-case name="34429reF40.v tokoe:valid" result="pass"/><test-case name="34430reF41 tokoe:valid" result="pass"/><test-case name="34431reF41.i tokoe:invalid" result="pass"/><test-case name="34432reF42 tokoe:valid" result="pass"/><test-case name="34433reF42.i tokoe:invalid" result="pass"/><test-case name="34434reF43 tokoe:valid" result="pass"/><test-case name="34435reF43.v tokoe:valid" result="pass"/><test-case name="34436reF44 tokoe:valid" result="pass"/><test-case name="34437reF44.i tokoe:invalid" result="pass"/><test-case name="34438reF45 tokoe:valid" result="pass"/><test-case name="34439reF45.v tokoe:valid" result="pass"/><test-case name="34440reF46 tokoe:valid" result="pass"/><test-case name="34441reF46.v tokoe:valid" result="pass"/><test-case name="34442reF47 tokoe:valid" result="pass"/><test-case name="34443reF47.i tokoe:invalid" result="pass"/><test-case name="34444reF48 tokoe:valid" result="pass"/><test-case name="34445reF48.i tokoe:invalid" result="pass"/><test-case name="34446reF49 tokoe:valid" result="pass"/><test-case name="34447reF49.i tokoe:invalid" result="pass"/><test-case name="34448reF50 tokoe:valid" result="pass"/><test-case name="34449reF50.i tokoe:invalid" result="pass"/><test-case name="34450reF51 tokoe:valid" result="pass"/><test-case name="34451reF51.i tokoe:invalid" result="pass"/><test-case name="34452reF52 tokoe:valid" result="pass"/><test-case name="34453reF52.i tokoe:invalid" result="pass"/><test-case name="34454reF53 tokoe:valid" result="pass"/><test-case name="34455reF53.i tokoe:invalid" result="pass"/><test-case name="34456reF54 tokoe:valid" result="pass"/><test-case name="34457reF54.v tokoe:valid" result="pass"/><test-case name="34458reF55 tokoe:valid" result="pass"/><test-case name="34459reF55.v tokoe:valid" result="pass"/><test-case name="34460reF56 tokoe:valid" result="fail"/><test-case name="34461reF57 tokoe:invalid" result="fail"/><test-case name="34462reG2 tokoe:valid" result="pass"/><test-case name="34463reG2.i tokoe:invalid" result="pass"/><test-case name="34464reG3 tokoe:valid" result="pass"/><test-case name="34465reG3.i tokoe:invalid" result="pass"/><test-case name="34466reG4 tokoe:valid" result="pass"/><test-case name="34467reG4.v tokoe:valid" result="pass"/><test-case name="34468reG6 tokoe:valid" result="pass"/><test-case name="34469reG6.v tokoe:valid" result="pass"/><test-case name="34470reG7 tokoe:valid" result="pass"/><test-case name="34471reG7.i tokoe:invalid" result="pass"/><test-case name="34472reG8 tokoe:valid" result="pass"/><test-case name="34473reG8.v tokoe:valid" result="pass"/><test-case name="34474reG9 tokoe:valid" result="pass"/><test-case name="34475reG9.i tokoe:invalid" result="pass"/><test-case name="34476reG10 tokoe:valid" result="pass"/><test-case name="34477reG10.i tokoe:invalid" result="pass"/><test-case name="34478reG11 tokoe:valid" result="pass"/><test-case name="34479reG11.v tokoe:valid" result="pass"/><test-case name="34480reG13 tokoe:valid" result="pass"/><test-case name="34481reG13.v tokoe:valid" result="pass"/><test-case name="34482reG14 tokoe:valid" result="pass"/><test-case name="34483reG14.v tokoe:valid" result="pass"/><test-case name="34484reG16 tokoe:valid" result="pass"/><test-case name="34485reG16.i tokoe:invalid" result="pass"/><test-case name="34486reG17 tokoe:valid" result="pass"/><test-case name="34487reG17.i tokoe:invalid" result="pass"/><test-case name="34488reG18 tokoe:valid" result="pass"/><test-case name="34489reG18.v tokoe:valid" result="fail"/><test-case name="34490reG19 tokoe:valid" result="pass"/><test-case name="34491reG19.v tokoe:valid" result="fail"/><test-case name="34492reG20 tokoe:valid" result="pass"/><test-case name="34493reG20.v tokoe:valid" result="fail"/><test-case name="34494reG21 tokoe:valid" result="pass"/><test-case name="34495reG21.i tokoe:invalid" result="pass"/><test-case name="34496reG22 tokoe:valid" result="pass"/><test-case name="34497reG22.v tokoe:valid" result="pass"/><test-case name="34498reG23 tokoe:valid" result="pass"/><test-case name="34499reG23.i tokoe:invalid" result="pass"/><test-case name="34500reG24 tokoe:valid" result="pass"/><test-case name="34501reG24.i tokoe:invalid" result="pass"/><test-case name="34502reG25 tokoe:valid" result="pass"/><test-case name="34503reG25.i tokoe:invalid" result="pass"/><test-case name="34504reG26 tokoe:valid" result="pass"/><test-case name="34505reG26.v tokoe:valid" result="pass"/><test-case name="34506reG27 tokoe:valid" result="pass"/><test-case name="34507reG27.v tokoe:valid" result="pass"/><test-case name="34508reG28 tokoe:valid" result="pass"/><test-case name="34509reG28.v tokoe:valid" result="pass"/><test-case name="34510reG29 tokoe:valid" result="pass"/><test-case name="34511reG29.v tokoe:valid" result="pass"/><test-case name="34512reG30 tokoe:valid" result="pass"/><test-case name="34513reG30.v tokoe:valid" result="pass"/><test-case name="34514reG31 tokoe:valid" result="pass"/><test-case name="34515reG31.v tokoe:valid" result="pass"/><test-case name="34516reG32 tokoe:valid" result="pass"/><test-case name="34517reG32.v tokoe:valid" result="pass"/><test-case name="34518reG33 tokoe:valid" result="pass"/><test-case name="34519reG33.v tokoe:valid" result="pass"/><test-case name="34520reG34 tokoe:invalid" result="fail"/><test-case name="34521reG35 tokoe:invalid" result="fail"/><test-case name="34522reG36 tokoe:valid" result="pass"/><test-case name="34523reG36.v tokoe:valid" result="pass"/><test-case name="34524reG37 tokoe:invalid" result="fail"/><test-case name="34525reG38 tokoe:valid" result="pass"/><test-case name="34526reG38.v tokoe:valid" result="pass"/><test-case name="34527reG39 tokoe:valid" result="pass"/><test-case name="34528reG39.i tokoe:invalid" result="pass"/><test-case name="34529reG40 tokoe:valid" result="pass"/><test-case name="34530reG40.i tokoe:invalid" result="pass"/><test-case name="34531reG41 tokoe:valid" result="pass"/><test-case name="34532reG42 tokoe:valid" result="pass"/><test-case name="34533reG43 tokoe:valid" result="pass"/><test-case name="34534reG43.v tokoe:valid" result="pass"/><test-case name="34535reG44 tokoe:valid" result="pass"/><test-case name="34536reG44.v tokoe:valid" result="pass"/><test-case name="34537reG45 tokoe:valid" result="pass"/><test-case name="34538reG45.i tokoe:invalid" result="pass"/><test-case name="34539reG46 tokoe:invalid" result="fail"/><test-case name="34540reG47 tokoe:valid" result="pass"/><test-case name="34541reG47.v tokoe:valid" result="pass"/><test-case name="34542reG48 tokoe:valid" result="pass"/><test-case name="34543reG48.i tokoe:invalid" result="pass"/><test-case name="34544reG49 tokoe:valid" result="pass"/><test-case name="34545reG49.v tokoe:valid" result="pass"/><test-case name="34546reG51 tokoe:valid" result="pass"/><test-case name="34547reG51.i tokoe:invalid" result="pass"/><test-case name="34548reH1 tokoe:invalid" result="pass"/><test-case name="34549reH4 tokoe:valid" result="pass"/><test-case name="34550reH4.v tokoe:valid" result="pass"/><test-case name="34551reH5 tokoe:valid" result="pass"/><test-case name="34552reH5.v tokoe:valid" result="pass"/><test-case name="34553reH6 tokoe:valid" result="pass"/><test-case name="34554reH6.v tokoe:valid" result="pass"/><test-case name="34555reH7 tokoe:valid" result="pass"/><test-case name="34556reH7.v tokoe:valid" result="pass"/><test-case name="34557reH8 tokoe:valid" result="pass"/><test-case name="34558reH8.v tokoe:valid" result="pass"/><test-case name="34559reH9 tokoe:valid" result="pass"/><test-case name="34560reH9.v tokoe:valid" result="pass"/><test-case name="34561reH10 tokoe:valid" result="pass"/><test-case name="34562reH10.v tokoe:valid" result="pass"/><test-case name="34563reH11 tokoe:valid" result="pass"/><test-case name="34564reH11.v tokoe:valid" result="pass"/><test-case name="34565reH12 tokoe:valid" result="pass"/><test-case name="34566reH12.v tokoe:valid" result="pass"/><test-case name="34567reH13 tokoe:valid" result="pass"/><test-case name="34568reH13.i tokoe:invalid" result="pass"/><test-case name="34569reH14 tokoe:valid" result="pass"/><test-case name="34570reH14.i tokoe:invalid" result="pass"/><test-case name="34571reH15 tokoe:valid" result="pass"/><test-case name="34572reH15.i tokoe:invalid" result="pass"/><test-case name="34573reH16 tokoe:valid" result="pass"/><test-case name="34574reH16.v tokoe:valid" result="pass"/><test-case name="34575reH17 tokoe:valid" result="pass"/><test-case name="34576reH17.v tokoe:valid" result="pass"/><test-case name="34577reH18 tokoe:valid" result="pass"/><test-case name="34578reH18.v tokoe:valid" result="pass"/><test-case name="34579reH19 tokoe:valid" result="pass"/><test-case name="34580reH19.v tokoe:valid" result="pass"/><test-case name="34581reH20 tokoe:valid" result="pass"/><test-case name="34582reH20.i tokoe:invalid" result="pass"/><test-case name="34583reH21 tokoe:valid" result="pass"/><test-case name="34584reH21.i tokoe:invalid" result="pass"/><test-case name="34585reI1 tokoe:valid" result="pass"/><test-case name="34586reI1.v tokoe:valid" result="pass"/><test-case name="34587reI8 tokoe:valid" result="pass"/><test-case name="34588reI8.v tokoe:valid" result="pass"/><test-case name="34589reI9 tokoe:valid" result="pass"/><test-case name="34590reI9.v tokoe:valid" result="pass"/><test-case name="34591reI10 tokoe:valid" result="pass"/><test-case name="34592reI10.v tokoe:valid" result="pass"/><test-case name="34593reI11 tokoe:valid" result="pass"/><test-case name="34594reI11.i tokoe:invalid" result="pass"/><test-case name="34595reI12 tokoe:valid" result="pass"/><test-case name="34596reI12.v tokoe:valid" result="pass"/><test-case name="34597reI13 tokoe:valid" result="pass"/><test-case name="34598reI13.v tokoe:valid" result="pass"/><test-case name="34599reI14 tokoe:valid" result="pass"/><test-case name="34600reI14.v tokoe:valid" result="pass"/><test-case name="34601reI15 tokoe:valid" result="pass"/><test-case name="34602reI15.v tokoe:valid" result="pass"/><test-case name="34603reI16 tokoe:valid" result="pass"/><test-case name="34604reI16.v tokoe:valid" result="pass"/><test-case name="34605reI17 tokoe:valid" result="pass"/><test-case name="34606reI17.v tokoe:valid" result="pass"/><test-case name="34607reI18 tokoe:valid" result="pass"/><test-case name="34608reI18.i tokoe:invalid" result="pass"/><test-case name="34609reI19 tokoe:valid" result="pass"/><test-case name="34610reI19.i tokoe:invalid" result="pass"/><test-case name="34611reI20 tokoe:valid" result="pass"/><test-case name="34612reI20.i tokoe:invalid" result="pass"/><test-case name="34613reI21 tokoe:valid" result="pass"/><test-case name="34614reI21.v tokoe:valid" result="pass"/><test-case name="34615reI22 tokoe:valid" result="pass"/><test-case name="34616reI22.i tokoe:invalid" result="pass"/><test-case name="34617reI23 tokoe:valid" result="pass"/><test-case name="34618reI23.i tokoe:invalid" result="pass"/><test-case name="34619reI24 tokoe:valid" result="pass"/><test-case name="34620reI24.i tokoe:invalid" result="pass"/><test-case name="34621reI25 tokoe:valid" result="pass"/><test-case name="34622reI25.v tokoe:valid" result="pass"/><test-case name="34623reI26 tokoe:valid" result="pass"/><test-case name="34624reI26.i tokoe:invalid" result="pass"/><test-case name="34625reI27 tokoe:valid" result="pass"/><test-case name="34626reI27.i tokoe:invalid" result="pass"/><test-case name="34627reI28 tokoe:valid" result="pass"/><test-case name="34628reI28.i tokoe:invalid" result="pass"/><test-case name="34629reI29 tokoe:valid" result="pass"/><test-case name="34630reI29.v tokoe:valid" result="pass"/><test-case name="34631reI31 tokoe:valid" result="pass"/><test-case name="34632reI31.v tokoe:valid" result="pass"/><test-case name="34633reI32 tokoe:valid" result="pass"/><test-case name="34634reI32.v tokoe:valid" result="pass"/><test-case name="34635reI33 tokoe:valid" result="pass"/><test-case name="34636reI33.v tokoe:valid" result="pass"/><test-case name="34637reI34 tokoe:valid" result="pass"/><test-case name="34638reI34.v tokoe:valid" result="pass"/><test-case name="34639reI35 tokoe:valid" result="pass"/><test-case name="34640reI35.v tokoe:valid" result="pass"/><test-case name="34641reI36 tokoe:valid" result="pass"/><test-case name="34642reI36.v tokoe:valid" result="pass"/><test-case name="34643reI37 tokoe:valid" result="pass"/><test-case name="34644reI37.v tokoe:valid" result="pass"/><test-case name="34645reI38 tokoe:valid" result="pass"/><test-case name="34646reI38.v tokoe:valid" result="pass"/><test-case name="34647reI39 tokoe:valid" result="pass"/><test-case name="34648reI39.v tokoe:valid" result="pass"/><test-case name="34649reI40 tokoe:valid" result="pass"/><test-case name="34650reI40.v tokoe:valid" result="pass"/><test-case name="34651reI41 tokoe:valid" result="pass"/><test-case name="34652reI41.v tokoe:valid" result="pass"/><test-case name="34653reI42 tokoe:valid" result="pass"/><test-case name="34654reI42.v tokoe:valid" result="pass"/><test-case name="34655reI43 tokoe:valid" result="pass"/><test-case name="34656reI43.v tokoe:valid" result="pass"/><test-case name="34657reI44 tokoe:valid" result="pass"/><test-case name="34658reI44.v tokoe:valid" result="pass"/><test-case name="34659reI45 tokoe:valid" result="pass"/><test-case name="34660reI45.v tokoe:valid" result="pass"/><test-case name="34661reI47 tokoe:valid" result="pass"/><test-case name="34662reI47.i tokoe:invalid" result="pass"/><test-case name="34663reI48 tokoe:valid" result="pass"/><test-case name="34664reI48.i tokoe:invalid" result="pass"/><test-case name="34665reI49 tokoe:valid" result="pass"/><test-case name="34666reI49.i tokoe:invalid" result="pass"/><test-case name="34667reI51 tokoe:valid" result="pass"/><test-case name="34668reI51.i tokoe:invalid" result="pass"/><test-case name="34669reI52 tokoe:valid" result="pass"/><test-case name="34670reI52.i tokoe:invalid" result="pass"/><test-case name="34671reI53 tokoe:valid" result="pass"/><test-case name="34672reI53.i tokoe:invalid" result="pass"/><test-case name="34673reI54 tokoe:valid" result="pass"/><test-case name="34674reI54.i tokoe:invalid" result="pass"/><test-case name="34675reI55 tokoe:valid" result="pass"/><test-case name="34676reI55.v tokoe:valid" result="pass"/><test-case name="34677reI56 tokoe:valid" result="pass"/><test-case name="34678reI56.i tokoe:invalid" result="pass"/><test-case name="34679reI57 tokoe:valid" result="pass"/><test-case name="34680reI57.i tokoe:invalid" result="pass"/><test-case name="34681reI58 tokoe:valid" result="pass"/><test-case name="34682reI58.i tokoe:invalid" result="pass"/><test-case name="34683reI59 tokoe:valid" result="pass"/><test-case name="34684reI59.i tokoe:invalid" result="pass"/><test-case name="34685reI61 tokoe:valid" result="pass"/><test-case name="34686reI61.i tokoe:invalid" result="pass"/><test-case name="34687reI62 tokoe:valid" result="pass"/><test-case name="34688reI62.i tokoe:invalid" result="pass"/><test-case name="34689reI63 tokoe:valid" result="pass"/><test-case name="34690reI63.i tokoe:invalid" result="pass"/><test-case name="34691reI64 tokoe:valid" result="pass"/><test-case name="34692reI64.i tokoe:invalid" result="pass"/><test-case name="34693reI65 tokoe:valid" result="pass"/><test-case name="34694reI65.v tokoe:valid" result="pass"/><test-case name="34695reI67 tokoe:valid" result="pass"/><test-case name="34696reI67.v tokoe:valid" result="pass"/><test-case name="34697reI69 tokoe:valid" result="pass"/><test-case name="34698reI69.v tokoe:valid" result="pass"/><test-case name="34699reI71 tokoe:valid" result="pass"/><test-case name="34700reI71.v tokoe:valid" result="pass"/><test-case name="34701reI72 tokoe:valid" result="pass"/><test-case name="34702reI72.v tokoe:valid" result="pass"/><test-case name="34703reI73 tokoe:valid" result="pass"/><test-case name="34704reI73.v tokoe:valid" result="pass"/><test-case name="34705reI74 tokoe:valid" result="pass"/><test-case name="34706reI74.v tokoe:valid" result="pass"/><test-case name="34707reI75 tokoe:valid" result="pass"/><test-case name="34708reI75.i tokoe:invalid" result="pass"/><test-case name="34709reI76 tokoe:valid" result="pass"/><test-case name="34710reI76.i tokoe:invalid" result="pass"/><test-case name="34711reI77 tokoe:valid" result="pass"/><test-case name="34712reI77.v tokoe:valid" result="pass"/><test-case name="34713reI78 tokoe:valid" result="pass"/><test-case name="34714reI78.v tokoe:valid" result="pass"/><test-case name="34715reI79 tokoe:valid" result="pass"/><test-case name="34716reI79.i tokoe:invalid" result="pass"/><test-case name="34717reI80 tokoe:valid" result="pass"/><test-case name="34718reI80.i tokoe:invalid" result="pass"/><test-case name="34719reI81 tokoe:valid" result="pass"/><test-case name="34720reI81.i tokoe:invalid" result="pass"/><test-case name="34721reI82 tokoe:valid" result="pass"/><test-case name="34722reI82.v tokoe:valid" result="pass"/><test-case name="34723reI83 tokoe:valid" result="pass"/><test-case name="34724reI83.v tokoe:valid" result="pass"/><test-case name="34725reJ4 tokoe:valid" result="pass"/><test-case name="34726reJ4.v tokoe:valid" result="pass"/><test-case name="34727reJ5 tokoe:valid" result="pass"/><test-case name="34728reJ5.i tokoe:invalid" result="pass"/><test-case name="34729reJ8 tokoe:valid" result="pass"/><test-case name="34730reJ8.i tokoe:invalid" result="pass"/><test-case name="34731reJ10 tokoe:valid" result="pass"/><test-case name="34732reJ10.i tokoe:invalid" result="pass"/><test-case name="34733reJ12 tokoe:valid" result="pass"/><test-case name="34734reJ12.i tokoe:invalid" result="pass"/><test-case name="34735reJ14 tokoe:valid" result="pass"/><test-case name="34736reJ14.i tokoe:invalid" result="pass"/><test-case name="34737reJ15 tokoe:valid" result="pass"/><test-case name="34738reJ15.v tokoe:valid" result="pass"/><test-case name="34739reJ16 tokoe:valid" result="pass"/><test-case name="34740reJ16.i tokoe:invalid" result="pass"/><test-case name="34741reJ17 tokoe:valid" result="pass"/><test-case name="34742reJ17.v tokoe:valid" result="pass"/><test-case name="34743reJ18 tokoe:valid" result="pass"/><test-case name="34744reJ18.i tokoe:invalid" result="pass"/><test-case name="34745reJ20 tokoe:valid" result="pass"/><test-case name="34746reJ20.i tokoe:invalid" result="pass"/><test-case name="34747reJ22 tokoe:valid" result="pass"/><test-case name="34748reJ22.i tokoe:invalid" result="pass"/><test-case name="34749reJ24 tokoe:valid" result="pass"/><test-case name="34750reJ24.i tokoe:invalid" result="pass"/><test-case name="34751reJ26 tokoe:valid" result="pass"/><test-case name="34752reJ26.i tokoe:invalid" result="pass"/><test-case name="34753reJ27 tokoe:valid" result="pass"/><test-case name="34754reJ27.v tokoe:valid" result="pass"/><test-case name="34755reJ28 tokoe:valid" result="pass"/><test-case name="34756reJ28.i tokoe:invalid" result="pass"/><test-case name="34757reJ30 tokoe:valid" result="pass"/><test-case name="34758reJ30.i tokoe:invalid" result="pass"/><test-case name="34759reJ32 tokoe:valid" result="pass"/><test-case name="34760reJ32.i tokoe:invalid" result="pass"/><test-case name="34761reJ34 tokoe:valid" result="pass"/><test-case name="34762reJ34.i tokoe:invalid" result="pass"/><test-case name="34763reJ36 tokoe:valid" result="pass"/><test-case name="34764reJ36.i tokoe:invalid" result="pass"/><test-case name="34765reJ37 tokoe:valid" result="pass"/><test-case name="34766reJ37.v tokoe:valid" result="fail"/><test-case name="34767reJ38 tokoe:valid" result="pass"/><test-case name="34768reJ38.i tokoe:invalid" result="pass"/><test-case name="34769reJ40 tokoe:valid" result="pass"/><test-case name="34770reJ40.i tokoe:invalid" result="pass"/><test-case name="34771reJ41 tokoe:valid" result="pass"/><test-case name="34772reJ41.v tokoe:valid" result="pass"/><test-case name="34773reJ42 tokoe:valid" result="pass"/><test-case name="34774reJ42.i tokoe:invalid" result="pass"/><test-case name="34775reJ43 tokoe:valid" result="pass"/><test-case name="34776reJ43.v tokoe:valid" result="pass"/><test-case name="34777reJ44 tokoe:valid" result="pass"/><test-case name="34778reJ44.i tokoe:invalid" result="pass"/><test-case name="34779reJ45 tokoe:valid" result="pass"/><test-case name="34780reJ45.v tokoe:valid" result="pass"/><test-case name="34781reJ46 tokoe:valid" result="pass"/><test-case name="34782reJ46.i tokoe:invalid" result="pass"/><test-case name="34783reJ47 tokoe:valid" result="pass"/><test-case name="34784reJ47.v tokoe:valid" result="pass"/><test-case name="34785reJ48 tokoe:valid" result="pass"/><test-case name="34786reJ48.i tokoe:invalid" result="pass"/><test-case name="34787reJ49 tokoe:valid" result="pass"/><test-case name="34788reJ49.v tokoe:valid" result="pass"/><test-case name="34789reJ50 tokoe:valid" result="pass"/><test-case name="34790reJ50.i tokoe:invalid" result="pass"/><test-case name="34791reJ51 tokoe:valid" result="pass"/><test-case name="34792reJ51.v tokoe:valid" result="pass"/><test-case name="34793reJ52 tokoe:valid" result="pass"/><test-case name="34794reJ52.i tokoe:invalid" result="pass"/><test-case name="34795reJ53 tokoe:valid" result="pass"/><test-case name="34796reJ53.v tokoe:valid" result="pass"/><test-case name="34797reJ54 tokoe:valid" result="pass"/><test-case name="34798reJ54.i tokoe:invalid" result="pass"/><test-case name="34799reJ55 tokoe:valid" result="pass"/><test-case name="34800reJ55.v tokoe:valid" result="pass"/><test-case name="34801reJ56 tokoe:valid" result="pass"/><test-case name="34802reJ56.i tokoe:invalid" result="pass"/><test-case name="34803reJ57 tokoe:valid" result="pass"/><test-case name="34804reJ57.v tokoe:valid" result="pass"/><test-case name="34805reJ58 tokoe:valid" result="pass"/><test-case name="34806reJ58.i tokoe:invalid" result="pass"/><test-case name="34807reJ59 tokoe:valid" result="pass"/><test-case name="34808reJ59.v tokoe:valid" result="pass"/><test-case name="34809reJ60 tokoe:valid" result="pass"/><test-case name="34810reJ60.i tokoe:invalid" result="pass"/><test-case name="34811reJ62 tokoe:valid" result="pass"/><test-case name="34812reJ62.i tokoe:invalid" result="pass"/><test-case name="34813reJ63 tokoe:valid" result="pass"/><test-case name="34814reJ63.v tokoe:valid" result="pass"/><test-case name="34815reJ64 tokoe:valid" result="pass"/><test-case name="34816reJ64.i tokoe:invalid" result="pass"/><test-case name="34817reJ65 tokoe:valid" result="pass"/><test-case name="34818reJ65.v tokoe:valid" result="pass"/><test-case name="34819reJ66 tokoe:valid" result="pass"/><test-case name="34820reJ66.i tokoe:invalid" result="pass"/><test-case name="34821reJ67 tokoe:valid" result="pass"/><test-case name="34822reJ67.v tokoe:valid" result="pass"/><test-case name="34823reJ68 tokoe:valid" result="pass"/><test-case name="34824reJ68.i tokoe:invalid" result="pass"/><test-case name="34825reJ70 tokoe:valid" result="pass"/><test-case name="34826reJ70.i tokoe:invalid" result="pass"/><test-case name="34827reJ72 tokoe:valid" result="pass"/><test-case name="34828reJ72.i tokoe:invalid" result="pass"/><test-case name="34829reJ73 tokoe:valid" result="pass"/><test-case name="34830reJ73.v tokoe:valid" result="pass"/><test-case name="34831reJ74 tokoe:valid" result="pass"/><test-case name="34832reJ74.i tokoe:invalid" result="pass"/><test-case name="34833reJ76 tokoe:valid" result="pass"/><test-case name="34834reJ76.i tokoe:invalid" result="pass"/><test-case name="34835reJ78 tokoe:valid" result="pass"/><test-case name="34836reJ78.i tokoe:invalid" result="pass"/><test-case name="34837reJ80 tokoe:valid" result="pass"/><test-case name="34838reJ80.i tokoe:invalid" result="pass"/><test-case name="34839reK1 tokoe:valid" result="pass"/><test-case name="34840reK1.i tokoe:invalid" result="pass"/><test-case name="34841reK2 tokoe:valid" result="pass"/><test-case name="34842reK2.v tokoe:valid" result="pass"/><test-case name="34843reK3 tokoe:valid" result="pass"/><test-case name="34844reK3.v tokoe:valid" result="pass"/><test-case name="34845reK4 tokoe:valid" result="pass"/><test-case name="34846reK4.v tokoe:valid" result="pass"/><test-case name="34847reK5 tokoe:valid" result="pass"/><test-case name="34848reK5.i tokoe:invalid" result="pass"/><test-case name="34849reK6 tokoe:valid" result="pass"/><test-case name="34850reK6.i tokoe:invalid" result="pass"/><test-case name="34851reK9 tokoe:valid" result="pass"/><test-case name="34852reK9.i tokoe:invalid" result="pass"/><test-case name="34853reK10 tokoe:valid" result="pass"/><test-case name="34854reK10.v tokoe:valid" result="pass"/><test-case name="34855reK11 tokoe:valid" result="pass"/><test-case name="34856reK11.i tokoe:invalid" result="pass"/><test-case name="34857reK12 tokoe:valid" result="pass"/><test-case name="34858reK12.v tokoe:valid" result="pass"/><test-case name="34859reK13 tokoe:valid" result="pass"/><test-case name="34860reK13.i tokoe:invalid" result="pass"/><test-case name="34861reK14 tokoe:valid" result="pass"/><test-case name="34862reK14.v tokoe:valid" result="pass"/><test-case name="34863reK15 tokoe:valid" result="pass"/><test-case name="34864reK15.i tokoe:invalid" result="pass"/><test-case name="34865reK16 tokoe:valid" result="pass"/><test-case name="34866reK16.v tokoe:valid" result="pass"/><test-case name="34867reK17 tokoe:valid" result="pass"/><test-case name="34868reK17.i tokoe:invalid" result="pass"/><test-case name="34869reK18 tokoe:valid" result="pass"/><test-case name="34870reK18.v tokoe:valid" result="pass"/><test-case name="34871reK19 tokoe:valid" result="pass"/><test-case name="34872reK19.i tokoe:invalid" result="pass"/><test-case name="34873reK20 tokoe:valid" result="pass"/><test-case name="34874reK20.v tokoe:valid" result="pass"/><test-case name="34875reK21 tokoe:valid" result="pass"/><test-case name="34876reK21.i tokoe:invalid" result="pass"/><test-case name="34877reK22 tokoe:valid" result="pass"/><test-case name="34878reK22.v tokoe:valid" result="pass"/><test-case name="34879reK23 tokoe:valid" result="pass"/><test-case name="34880reK23.i tokoe:invalid" result="pass"/><test-case name="34881reK24 tokoe:valid" result="pass"/><test-case name="34882reK24.v tokoe:valid" result="pass"/><test-case name="34883reK25 tokoe:valid" result="pass"/><test-case name="34884reK25.i tokoe:invalid" result="pass"/><test-case name="34885reK26 tokoe:valid" result="pass"/><test-case name="34886reK26.v tokoe:valid" result="pass"/><test-case name="34887reK27 tokoe:valid" result="pass"/><test-case name="34888reK27.i tokoe:invalid" result="pass"/><test-case name="34889reK28 tokoe:valid" result="pass"/><test-case name="34890reK28.v tokoe:valid" result="pass"/><test-case name="34891reK29 tokoe:valid" result="pass"/><test-case name="34892reK29.i tokoe:invalid" result="pass"/><test-case name="34893reK30 tokoe:valid" result="pass"/><test-case name="34894reK30.v tokoe:valid" result="pass"/><test-case name="34895reK31 tokoe:valid" result="pass"/><test-case name="34896reK31.i tokoe:invalid" result="pass"/><test-case name="34897reK32 tokoe:valid" result="pass"/><test-case name="34898reK32.v tokoe:valid" result="pass"/><test-case name="34899reK33 tokoe:valid" result="pass"/><test-case name="34900reK33.i tokoe:invalid" result="pass"/><test-case name="34901reK34 tokoe:valid" result="pass"/><test-case name="34902reK34.v tokoe:valid" result="pass"/><test-case name="34903reK35 tokoe:valid" result="pass"/><test-case name="34904reK35.i tokoe:invalid" result="pass"/><test-case name="34905reK36 tokoe:valid" result="pass"/><test-case name="34906reK36.v tokoe:valid" result="pass"/><test-case name="34907reK37 tokoe:valid" result="pass"/><test-case name="34908reK37.i tokoe:invalid" result="pass"/><test-case name="34909reK38 tokoe:valid" result="pass"/><test-case name="34910reK38.v tokoe:valid" result="pass"/><test-case name="34911reK39 tokoe:valid" result="pass"/><test-case name="34912reK39.i tokoe:invalid" result="pass"/><test-case name="34913reK40 tokoe:valid" result="pass"/><test-case name="34914reK40.v tokoe:valid" result="pass"/><test-case name="34915reK41 tokoe:valid" result="pass"/><test-case name="34916reK41.i tokoe:invalid" result="pass"/><test-case name="34917reK42 tokoe:valid" result="pass"/><test-case name="34918reK42.v tokoe:valid" result="pass"/><test-case name="34919reK43 tokoe:valid" result="pass"/><test-case name="34920reK43.i tokoe:invalid" result="pass"/><test-case name="34921reK44 tokoe:valid" result="pass"/><test-case name="34922reK44.v tokoe:valid" result="pass"/><test-case name="34923reK45 tokoe:valid" result="pass"/><test-case name="34924reK45.i tokoe:invalid" result="pass"/><test-case name="34925reK46 tokoe:valid" result="pass"/><test-case name="34926reK46.v tokoe:valid" result="pass"/><test-case name="34927reK47 tokoe:valid" result="pass"/><test-case name="34928reK47.i tokoe:invalid" result="pass"/><test-case name="34929reK48 tokoe:valid" result="pass"/><test-case name="34930reK48.v tokoe:valid" result="pass"/><test-case name="34931reK49 tokoe:valid" result="pass"/><test-case name="34932reK49.i tokoe:invalid" result="pass"/><test-case name="34933reK50 tokoe:valid" result="pass"/><test-case name="34934reK50.v tokoe:valid" result="pass"/><test-case name="34935reK51 tokoe:valid" result="pass"/><test-case name="34936reK51.i tokoe:invalid" result="pass"/><test-case name="34937reK52 tokoe:valid" result="pass"/><test-case name="34938reK52.v tokoe:valid" result="pass"/><test-case name="34939reK53 tokoe:valid" result="pass"/><test-case name="34940reK53.i tokoe:invalid" result="pass"/><test-case name="34941reK54 tokoe:valid" result="pass"/><test-case name="34942reK54.v tokoe:valid" result="pass"/><test-case name="34943reK55 tokoe:valid" result="pass"/><test-case name="34944reK55.i tokoe:invalid" result="pass"/><test-case name="34945reK56 tokoe:valid" result="pass"/><test-case name="34946reK56.v tokoe:valid" result="pass"/><test-case name="34947reK57 tokoe:valid" result="pass"/><test-case name="34948reK57.i tokoe:invalid" result="pass"/><test-case name="34949reK58 tokoe:valid" result="pass"/><test-case name="34950reK58.v tokoe:valid" result="pass"/><test-case name="34951reK59 tokoe:valid" result="pass"/><test-case name="34952reK59.i tokoe:invalid" result="pass"/><test-case name="34953reK60 tokoe:valid" result="pass"/><test-case name="34954reK60.v tokoe:valid" result="pass"/><test-case name="34955reK61 tokoe:valid" result="pass"/><test-case name="34956reK61.i tokoe:invalid" result="pass"/><test-case name="34957reK62 tokoe:valid" result="pass"/><test-case name="34958reK62.v tokoe:valid" result="pass"/><test-case name="34959reK63 tokoe:valid" result="pass"/><test-case name="34960reK63.i tokoe:invalid" result="pass"/><test-case name="34961reK64 tokoe:valid" result="pass"/><test-case name="34962reK64.v tokoe:valid" result="pass"/><test-case name="34963reK65 tokoe:valid" result="pass"/><test-case name="34964reK65.i tokoe:invalid" result="pass"/><test-case name="34965reK66 tokoe:valid" result="pass"/><test-case name="34966reK66.v tokoe:valid" result="pass"/><test-case name="34967reK67 tokoe:valid" result="pass"/><test-case name="34968reK67.i tokoe:invalid" result="pass"/><test-case name="34969reK68 tokoe:valid" result="pass"/><test-case name="34970reK68.v tokoe:valid" result="pass"/><test-case name="34971reK69 tokoe:valid" result="pass"/><test-case name="34972reK69.i tokoe:invalid" result="pass"/><test-case name="34973reK70 tokoe:valid" result="pass"/><test-case name="34974reK70.v tokoe:valid" result="pass"/><test-case name="34975reK71 tokoe:valid" result="pass"/><test-case name="34976reK71.i tokoe:invalid" result="pass"/><test-case name="34977reK72 tokoe:valid" result="pass"/><test-case name="34978reK72.v tokoe:valid" result="pass"/><test-case name="34979reK73 tokoe:valid" result="pass"/><test-case name="34980reK73.i tokoe:invalid" result="pass"/><test-case name="34981reK74 tokoe:valid" result="pass"/><test-case name="34982reK74.v tokoe:valid" result="pass"/><test-case name="34983reK75 tokoe:valid" result="pass"/><test-case name="34984reK75.i tokoe:invalid" result="pass"/><test-case name="34985reK76 tokoe:valid" result="pass"/><test-case name="34986reK76.v tokoe:valid" result="pass"/><test-case name="34987reK77 tokoe:valid" result="pass"/><test-case name="34988reK77.i tokoe:invalid" result="pass"/><test-case name="34989reK78 tokoe:valid" result="pass"/><test-case name="34990reK78.v tokoe:valid" result="pass"/><test-case name="34991reK82 tokoe:invalid" result="pass"/><test-case name="34992reK84 tokoe:valid" result="pass"/><test-case name="34993reK84.v tokoe:valid" result="pass"/><test-case name="34994reK85 tokoe:valid" result="pass"/><test-case name="34995reK85.i tokoe:invalid" result="pass"/><test-case name="34996reK86 tokoe:invalid" result="pass"/><test-case name="34997reK87 tokoe:invalid" result="pass"/><test-case name="34998reK88 tokoe:invalid" result="pass"/><test-case name="34999reL1 tokoe:valid" result="pass"/><test-case name="35000reL1.v tokoe:valid" result="pass"/><test-case name="35001reL2 tokoe:valid" result="pass"/><test-case name="35002reL2.v tokoe:valid" result="pass"/><test-case name="35003reL3 tokoe:valid" result="pass"/><test-case name="35004reL3.v tokoe:valid" result="pass"/><test-case name="35005reL4 tokoe:valid" result="pass"/><test-case name="35006reL4.v tokoe:valid" result="pass"/><test-case name="35007reL5 tokoe:valid" result="pass"/><test-case name="35008reL5.v tokoe:valid" result="pass"/><test-case name="35009reL6 tokoe:valid" result="pass"/><test-case name="35010reL6.v tokoe:valid" result="pass"/><test-case name="35011reL10 tokoe:valid" result="pass"/><test-case name="35012reL10.v tokoe:valid" result="pass"/><test-case name="35013reL11 tokoe:valid" result="pass"/><test-case name="35014reL11.v tokoe:valid" result="pass"/><test-case name="35015reL12 tokoe:valid" result="pass"/><test-case name="35016reL12.v tokoe:valid" result="pass"/><test-case name="35017reL13 tokoe:valid" result="pass"/><test-case name="35018reL13.v tokoe:valid" result="pass"/><test-case name="35019reL14 tokoe:valid" result="pass"/><test-case name="35020reL14.v tokoe:valid" result="pass"/><test-case name="35021reL15 tokoe:valid" result="pass"/><test-case name="35022reL15.v tokoe:valid" result="pass"/><test-case name="35023reL16 tokoe:valid" result="pass"/><test-case name="35024reL16.v tokoe:valid" result="pass"/><test-case name="35025reL17 tokoe:valid" result="pass"/><test-case name="35026reL17.v tokoe:valid" result="pass"/><test-case name="35027reL18 tokoe:valid" result="pass"/><test-case name="35028reL18.v tokoe:valid" result="pass"/><test-case name="35029reL19 tokoe:valid" result="pass"/><test-case name="35030reL19.v tokoe:valid" result="pass"/><test-case name="35031reL20 tokoe:valid" result="pass"/><test-case name="35032reL20.v tokoe:valid" result="pass"/><test-case name="35033reL21 tokoe:valid" result="pass"/><test-case name="35034reL21.v tokoe:valid" result="pass"/><test-case name="35035reL22 tokoe:valid" result="pass"/><test-case name="35036reL22.v tokoe:valid" result="pass"/><test-case name="35037reL23 tokoe:valid" result="pass"/><test-case name="35038reL23.v tokoe:valid" result="pass"/><test-case name="35039reL24 tokoe:valid" result="pass"/><test-case name="35040reL24.v tokoe:valid" result="pass"/><test-case name="35041reL25 tokoe:valid" result="pass"/><test-case name="35042reL25.v tokoe:valid" result="pass"/><test-case name="35043reL26 tokoe:valid" result="pass"/><test-case name="35044reL26.v tokoe:valid" result="pass"/><test-case name="35045reL27 tokoe:valid" result="pass"/><test-case name="35046reL27.v tokoe:valid" result="pass"/><test-case name="35047reL28 tokoe:valid" result="pass"/><test-case name="35048reL28.v tokoe:valid" result="pass"/><test-case name="35049reL29 tokoe:valid" result="pass"/><test-case name="35050reL29.v tokoe:valid" result="pass"/><test-case name="35051reL30 tokoe:valid" result="pass"/><test-case name="35052reL30.v tokoe:valid" result="pass"/><test-case name="35053reL31 tokoe:valid" result="pass"/><test-case name="35054reL31.v tokoe:valid" result="pass"/><test-case name="35055reL32 tokoe:valid" result="pass"/><test-case name="35056reL32.v tokoe:valid" result="pass"/><test-case name="35057reL33 tokoe:valid" result="pass"/><test-case name="35058reL33.v tokoe:valid" result="pass"/><test-case name="35059reL34 tokoe:valid" result="pass"/><test-case name="35060reL34.v tokoe:valid" result="pass"/><test-case name="35061reL35 tokoe:valid" result="pass"/><test-case name="35062reL35.v tokoe:valid" result="pass"/><test-case name="35063reL36 tokoe:valid" result="pass"/><test-case name="35064reL36.v tokoe:valid" result="pass"/><test-case name="35065reL37 tokoe:valid" result="pass"/><test-case name="35066reL37.v tokoe:valid" result="pass"/><test-case name="35067reL38 tokoe:valid" result="pass"/><test-case name="35068reL38.v tokoe:valid" result="pass"/><test-case name="35069reL39 tokoe:valid" result="pass"/><test-case name="35070reL39.v tokoe:valid" result="pass"/><test-case name="35071reL40 tokoe:valid" result="pass"/><test-case name="35072reL40.v tokoe:valid" result="pass"/><test-case name="35073reL41 tokoe:valid" result="pass"/><test-case name="35074reL41.v tokoe:valid" result="pass"/><test-case name="35075reL42 tokoe:valid" result="pass"/><test-case name="35076reL42.v tokoe:valid" result="pass"/><test-case name="35077reL43 tokoe:valid" result="pass"/><test-case name="35078reL43.v tokoe:valid" result="pass"/><test-case name="35079reL44 tokoe:valid" result="pass"/><test-case name="35080reL44.v tokoe:valid" result="pass"/><test-case name="35081reL45 tokoe:valid" result="pass"/><test-case name="35082reL45.v tokoe:valid" result="pass"/><test-case name="35083reL46 tokoe:valid" result="pass"/><test-case name="35084reL46.v tokoe:valid" result="pass"/><test-case name="35085reL47 tokoe:valid" result="pass"/><test-case name="35086reL47.v tokoe:valid" result="pass"/><test-case name="35087reL48 tokoe:valid" result="pass"/><test-case name="35088reL48.v tokoe:valid" result="pass"/><test-case name="35089reL49 tokoe:valid" result="pass"/><test-case name="35090reL49.v tokoe:valid" result="pass"/><test-case name="35091reL50 tokoe:valid" result="pass"/><test-case name="35092reL50.v tokoe:valid" result="pass"/><test-case name="35093reL51 tokoe:valid" result="pass"/><test-case name="35094reL51.v tokoe:valid" result="pass"/><test-case name="35095reL52 tokoe:valid" result="pass"/><test-case name="35096reL52.v tokoe:valid" result="pass"/><test-case name="35097reL53 tokoe:valid" result="pass"/><test-case name="35098reL53.v tokoe:valid" result="pass"/><test-case name="35099reL54 tokoe:valid" result="pass"/><test-case name="35100reL54.v tokoe:valid" result="pass"/><test-case name="35101reL55 tokoe:valid" result="pass"/><test-case name="35102reL55.v tokoe:valid" result="pass"/><test-case name="35103reL56 tokoe:valid" result="pass"/><test-case name="35104reL56.v tokoe:valid" result="pass"/><test-case name="35105reL57 tokoe:valid" result="pass"/><test-case name="35106reL57.v tokoe:valid" result="pass"/><test-case name="35107reL58 tokoe:valid" result="pass"/><test-case name="35108reL58.v tokoe:valid" result="pass"/><test-case name="35109reL59 tokoe:valid" result="pass"/><test-case name="35110reL59.v tokoe:valid" result="pass"/><test-case name="35111reL60 tokoe:valid" result="pass"/><test-case name="35112reL60.v tokoe:valid" result="pass"/><test-case name="35113reL61 tokoe:valid" result="pass"/><test-case name="35114reL61.v tokoe:valid" result="pass"/><test-case name="35115reL62 tokoe:valid" result="pass"/><test-case name="35116reL62.v tokoe:valid" result="pass"/><test-case name="35117reL63 tokoe:valid" result="pass"/><test-case name="35118reL63.v tokoe:valid" result="pass"/><test-case name="35119reL64 tokoe:valid" result="pass"/><test-case name="35120reL64.v tokoe:valid" result="pass"/><test-case name="35121reL65 tokoe:valid" result="pass"/><test-case name="35122reL65.v tokoe:valid" result="pass"/><test-case name="35123reL66 tokoe:valid" result="pass"/><test-case name="35124reL66.v tokoe:valid" result="pass"/><test-case name="35125reL67 tokoe:valid" result="pass"/><test-case name="35126reL67.v tokoe:valid" result="pass"/><test-case name="35127reL68 tokoe:valid" result="pass"/><test-case name="35128reL68.v tokoe:valid" result="pass"/><test-case name="35129reL69 tokoe:valid" result="pass"/><test-case name="35130reL69.v tokoe:valid" result="pass"/><test-case name="35131reL70 tokoe:valid" result="pass"/><test-case name="35132reL70.v tokoe:valid" result="pass"/><test-case name="35133reL71 tokoe:valid" result="pass"/><test-case name="35134reL71.v tokoe:valid" result="pass"/><test-case name="35135reL72 tokoe:valid" result="pass"/><test-case name="35136reL72.v tokoe:valid" result="pass"/><test-case name="35137reL73 tokoe:valid" result="pass"/><test-case name="35138reL73.v tokoe:valid" result="pass"/><test-case name="35139reL74 tokoe:valid" result="pass"/><test-case name="35140reL74.v tokoe:valid" result="pass"/><test-case name="35141reL78 tokoe:valid" result="pass"/><test-case name="35142reL78.v tokoe:valid" result="pass"/><test-case name="35143reL79 tokoe:valid" result="pass"/><test-case name="35144reL79.v tokoe:valid" result="pass"/><test-case name="35145reL80 tokoe:valid" result="pass"/><test-case name="35146reL80.v tokoe:valid" result="pass"/><test-case name="35147reL81 tokoe:valid" result="pass"/><test-case name="35148reL81.v tokoe:valid" result="pass"/><test-case name="35149reL82 tokoe:valid" result="pass"/><test-case name="35150reL82.v tokoe:valid" result="pass"/><test-case name="35151reL83 tokoe:valid" result="pass"/><test-case name="35152reL83.v tokoe:valid" result="pass"/><test-case name="35153reL84 tokoe:valid" result="pass"/><test-case name="35154reL84.v tokoe:valid" result="pass"/><test-case name="35155reL85 tokoe:valid" result="pass"/><test-case name="35156reL85.v tokoe:valid" result="pass"/><test-case name="35157reL87 tokoe:valid" result="pass"/><test-case name="35158reL87.v tokoe:valid" result="pass"/><test-case name="35159reL88 tokoe:valid" result="pass"/><test-case name="35160reL88.v tokoe:valid" result="pass"/><test-case name="35161reM1 tokoe:valid" result="pass"/><test-case name="35162reM1.i tokoe:invalid" result="pass"/><test-case name="35163reM2 tokoe:valid" result="pass"/><test-case name="35164reM2.i tokoe:invalid" result="pass"/><test-case name="35165reM3 tokoe:valid" result="pass"/><test-case name="35166reM3.i tokoe:invalid" result="pass"/><test-case name="35167reM4 tokoe:valid" result="pass"/><test-case name="35168reM4.i tokoe:invalid" result="pass"/><test-case name="35169reM5 tokoe:valid" result="pass"/><test-case name="35170reM5.i tokoe:invalid" result="pass"/><test-case name="35171reM6 tokoe:valid" result="pass"/><test-case name="35172reM6.i tokoe:invalid" result="pass"/><test-case name="35173reM9 tokoe:valid" result="pass"/><test-case name="35174reM9.i tokoe:invalid" result="pass"/><test-case name="35175reM10 tokoe:valid" result="pass"/><test-case name="35176reM10.i tokoe:invalid" result="pass"/><test-case name="35177reM11 tokoe:valid" result="pass"/><test-case name="35178reM11.i tokoe:invalid" result="pass"/><test-case name="35179reM12 tokoe:valid" result="pass"/><test-case name="35180reM12.i tokoe:invalid" result="pass"/><test-case name="35181reM13 tokoe:valid" result="pass"/><test-case name="35182reM13.i tokoe:invalid" result="pass"/><test-case name="35183reM14 tokoe:valid" result="pass"/><test-case name="35184reM14.i tokoe:invalid" result="pass"/><test-case name="35185reM15 tokoe:valid" result="pass"/><test-case name="35186reM15.i tokoe:invalid" result="pass"/><test-case name="35187reM16 tokoe:valid" result="pass"/><test-case name="35188reM16.i tokoe:invalid" result="pass"/><test-case name="35189reM17 tokoe:valid" result="pass"/><test-case name="35190reM17.i tokoe:invalid" result="pass"/><test-case name="35191reM18 tokoe:valid" result="pass"/><test-case name="35192reM18.i tokoe:invalid" result="pass"/><test-case name="35193reM19 tokoe:valid" result="pass"/><test-case name="35194reM19.i tokoe:invalid" result="pass"/><test-case name="35195reM20 tokoe:valid" result="pass"/><test-case name="35196reM20.i tokoe:invalid" result="pass"/><test-case name="35197reM21 tokoe:valid" result="pass"/><test-case name="35198reM21.i tokoe:invalid" result="pass"/><test-case name="35199reM22 tokoe:valid" result="pass"/><test-case name="35200reM22.i tokoe:invalid" result="pass"/><test-case name="35201reM23 tokoe:valid" result="pass"/><test-case name="35202reM23.i tokoe:invalid" result="pass"/><test-case name="35203reM24 tokoe:valid" result="pass"/><test-case name="35204reM24.i tokoe:invalid" result="pass"/><test-case name="35205reM25 tokoe:valid" result="pass"/><test-case name="35206reM25.i tokoe:invalid" result="pass"/><test-case name="35207reM26 tokoe:valid" result="pass"/><test-case name="35208reM26.i tokoe:invalid" result="pass"/><test-case name="35209reM27 tokoe:valid" result="pass"/><test-case name="35210reM27.i tokoe:invalid" result="pass"/><test-case name="35211reM28 tokoe:valid" result="pass"/><test-case name="35212reM28.i tokoe:invalid" result="pass"/><test-case name="35213reM29 tokoe:valid" result="pass"/><test-case name="35214reM29.i tokoe:invalid" result="pass"/><test-case name="35215reM30 tokoe:valid" result="pass"/><test-case name="35216reM30.i tokoe:invalid" result="pass"/><test-case name="35217reM31 tokoe:valid" result="pass"/><test-case name="35218reM31.i tokoe:invalid" result="pass"/><test-case name="35219reM32 tokoe:valid" result="pass"/><test-case name="35220reM32.i tokoe:invalid" result="pass"/><test-case name="35221reM33 tokoe:valid" result="pass"/><test-case name="35222reM33.i tokoe:invalid" result="pass"/><test-case name="35223reM34 tokoe:valid" result="pass"/><test-case name="35224reM34.i tokoe:invalid" result="pass"/><test-case name="35225reM35 tokoe:valid" result="pass"/><test-case name="35226reM35.i tokoe:invalid" result="pass"/><test-case name="35227reM36 tokoe:valid" result="pass"/><test-case name="35228reM36.i tokoe:invalid" result="pass"/><test-case name="35229reM37 tokoe:valid" result="pass"/><test-case name="35230reM37.i tokoe:invalid" result="pass"/><test-case name="35231reM38 tokoe:valid" result="pass"/><test-case name="35232reM38.i tokoe:invalid" result="pass"/><test-case name="35233reM39 tokoe:valid" result="pass"/><test-case name="35234reM39.i tokoe:invalid" result="pass"/><test-case name="35235reM40 tokoe:valid" result="pass"/><test-case name="35236reM40.i tokoe:invalid" result="pass"/><test-case name="35237reM41 tokoe:valid" result="pass"/><test-case name="35238reM41.i tokoe:invalid" result="pass"/><test-case name="35239reM42 tokoe:valid" result="pass"/><test-case name="35240reM42.i tokoe:invalid" result="pass"/><test-case name="35241reM43 tokoe:valid" result="pass"/><test-case name="35242reM43.i tokoe:invalid" result="pass"/><test-case name="35243reM44 tokoe:valid" result="pass"/><test-case name="35244reM44.i tokoe:invalid" result="pass"/><test-case name="35245reM45 tokoe:valid" result="pass"/><test-case name="35246reM45.i tokoe:invalid" result="pass"/><test-case name="35247reM46 tokoe:valid" result="pass"/><test-case name="35248reM46.i tokoe:invalid" result="pass"/><test-case name="35249reM47 tokoe:valid" result="pass"/><test-case name="35250reM47.i tokoe:invalid" result="pass"/><test-case name="35251reM48 tokoe:valid" result="pass"/><test-case name="35252reM48.i tokoe:invalid" result="pass"/><test-case name="35253reM49 tokoe:valid" result="pass"/><test-case name="35254reM49.i tokoe:invalid" result="pass"/><test-case name="35255reM50 tokoe:valid" result="pass"/><test-case name="35256reM50.i tokoe:invalid" result="pass"/><test-case name="35257reM51 tokoe:valid" result="pass"/><test-case name="35258reM51.i tokoe:invalid" result="pass"/><test-case name="35259reM52 tokoe:valid" result="pass"/><test-case name="35260reM52.i tokoe:invalid" result="pass"/><test-case name="35261reM53 tokoe:valid" result="pass"/><test-case name="35262reM53.i tokoe:invalid" result="pass"/><test-case name="35263reM54 tokoe:valid" result="pass"/><test-case name="35264reM54.i tokoe:invalid" result="pass"/><test-case name="35265reM55 tokoe:valid" result="pass"/><test-case name="35266reM55.i tokoe:invalid" result="pass"/><test-case name="35267reM56 tokoe:valid" result="pass"/><test-case name="35268reM56.i tokoe:invalid" result="pass"/><test-case name="35269reM57 tokoe:valid" result="pass"/><test-case name="35270reM57.i tokoe:invalid" result="pass"/><test-case name="35271reM58 tokoe:valid" result="pass"/><test-case name="35272reM58.i tokoe:invalid" result="pass"/><test-case name="35273reM59 tokoe:valid" result="pass"/><test-case name="35274reM59.i tokoe:invalid" result="pass"/><test-case name="35275reM60 tokoe:valid" result="pass"/><test-case name="35276reM60.i tokoe:invalid" result="pass"/><test-case name="35277reM61 tokoe:valid" result="pass"/><test-case name="35278reM61.i tokoe:invalid" result="pass"/><test-case name="35279reM62 tokoe:valid" result="pass"/><test-case name="35280reM62.i tokoe:invalid" result="pass"/><test-case name="35281reM63 tokoe:valid" result="pass"/><test-case name="35282reM63.i tokoe:invalid" result="pass"/><test-case name="35283reM64 tokoe:valid" result="pass"/><test-case name="35284reM64.i tokoe:invalid" result="pass"/><test-case name="35285reM65 tokoe:valid" result="pass"/><test-case name="35286reM65.i tokoe:invalid" result="pass"/><test-case name="35287reM66 tokoe:valid" result="pass"/><test-case name="35288reM66.i tokoe:invalid" result="pass"/><test-case name="35289reM67 tokoe:valid" result="pass"/><test-case name="35290reM67.i tokoe:invalid" result="pass"/><test-case name="35291reM68 tokoe:valid" result="pass"/><test-case name="35292reM68.i tokoe:invalid" result="pass"/><test-case name="35293reM69 tokoe:valid" result="pass"/><test-case name="35294reM69.i tokoe:invalid" result="pass"/><test-case name="35295reM70 tokoe:valid" result="pass"/><test-case name="35296reM70.i tokoe:invalid" result="pass"/><test-case name="35297reM71 tokoe:valid" result="pass"/><test-case name="35298reM71.i tokoe:invalid" result="pass"/><test-case name="35299reM72 tokoe:valid" result="pass"/><test-case name="35300reM72.i tokoe:invalid" result="pass"/><test-case name="35301reM73 tokoe:valid" result="pass"/><test-case name="35302reM73.i tokoe:invalid" result="pass"/><test-case name="35303reM77 tokoe:valid" result="fail"/><test-case name="35304reM77.i tokoe:invalid" result="pass"/><test-case name="35305reM78 tokoe:valid" result="pass"/><test-case name="35306reM78.i tokoe:invalid" result="pass"/><test-case name="35307reM79 tokoe:valid" result="pass"/><test-case name="35308reM79.i tokoe:invalid" result="pass"/><test-case name="35309reM80 tokoe:valid" result="pass"/><test-case name="35310reM80.i tokoe:invalid" result="pass"/><test-case name="35311reM81 tokoe:valid" result="pass"/><test-case name="35312reM81.i tokoe:invalid" result="pass"/><test-case name="35313reM82 tokoe:valid" result="pass"/><test-case name="35314reM82.i tokoe:invalid" result="pass"/><test-case name="35315reM83 tokoe:valid" result="pass"/><test-case name="35316reM83.i tokoe:invalid" result="pass"/><test-case name="35317reM84 tokoe:valid" result="pass"/><test-case name="35318reM84.i tokoe:invalid" result="pass"/><test-case name="35319reM86 tokoe:valid" result="pass"/><test-case name="35320reM86.i tokoe:invalid" result="pass"/><test-case name="35321reM87 tokoe:valid" result="pass"/><test-case name="35322reM87.i tokoe:invalid" result="pass"/><test-case name="35323reM88 tokoe:valid" result="pass"/><test-case name="35324reM88.i tokoe:invalid" result="pass"/><test-case name="35325reM89 tokoe:valid" result="pass"/><test-case name="35326reM89.i tokoe:invalid" result="pass"/><test-case name="35327reM90 tokoe:valid" result="pass"/><test-case name="35328reM90.i tokoe:invalid" result="pass"/><test-case name="35329reM91 tokoe:valid" result="pass"/><test-case name="35330reM91.i tokoe:invalid" result="pass"/><test-case name="35331reM92 tokoe:valid" result="pass"/><test-case name="35332reM92.i tokoe:invalid" result="pass"/><test-case name="35333reM93 tokoe:valid" result="pass"/><test-case name="35334reM93.i tokoe:invalid" result="pass"/><test-case name="35335reM94 tokoe:valid" result="pass"/><test-case name="35336reM94.i tokoe:invalid" result="pass"/><test-case name="35337reM95 tokoe:valid" result="pass"/><test-case name="35338reM95.i tokoe:invalid" result="pass"/><test-case name="35339reM96 tokoe:valid" result="pass"/><test-case name="35340reM96.i tokoe:invalid" result="pass"/><test-case name="35341reM97 tokoe:valid" result="pass"/><test-case name="35342reM97.i tokoe:invalid" result="pass"/><test-case name="35343reM99 tokoe:valid" result="pass"/><test-case name="35344reM99.i tokoe:invalid" result="pass"/><test-case name="35345reN1 tokoe:valid" result="pass"/><test-case name="35346reN1.i tokoe:invalid" result="pass"/><test-case name="35347reN2 tokoe:valid" result="pass"/><test-case name="35348reN2.i tokoe:invalid" result="pass"/><test-case name="35349reN3 tokoe:valid" result="pass"/><test-case name="35350reN3.i tokoe:invalid" result="pass"/><test-case name="35351reN4 tokoe:valid" result="pass"/><test-case name="35352reN4.i tokoe:invalid" result="pass"/><test-case name="35353reN5 tokoe:valid" result="pass"/><test-case name="35354reN5.i tokoe:invalid" result="pass"/><test-case name="35355reN6 tokoe:valid" result="pass"/><test-case name="35356reN6.i tokoe:invalid" result="pass"/><test-case name="35357reN8 tokoe:valid" result="pass"/><test-case name="35358reN8.i tokoe:invalid" result="pass"/><test-case name="35359reN9 tokoe:valid" result="pass"/><test-case name="35360reN9.i tokoe:invalid" result="pass"/><test-case name="35361reN10 tokoe:valid" result="pass"/><test-case name="35362reN10.i tokoe:invalid" result="pass"/><test-case name="35363reN11 tokoe:valid" result="pass"/><test-case name="35364reN11.i tokoe:invalid" result="pass"/><test-case name="35365reN12 tokoe:valid" result="pass"/><test-case name="35366reN12.i tokoe:invalid" result="pass"/><test-case name="35367reN13 tokoe:valid" result="pass"/><test-case name="35368reN13.i tokoe:invalid" result="pass"/><test-case name="35369reN14 tokoe:valid" result="pass"/><test-case name="35370reN14.i tokoe:invalid" result="pass"/><test-case name="35371reN15 tokoe:valid" result="pass"/><test-case name="35372reN15.i tokoe:invalid" result="pass"/><test-case name="35373reN16 tokoe:valid" result="pass"/><test-case name="35374reN16.i tokoe:invalid" result="pass"/><test-case name="35375reN17 tokoe:valid" result="pass"/><test-case name="35376reN17.i tokoe:invalid" result="pass"/><test-case name="35377reN18 tokoe:valid" result="pass"/><test-case name="35378reN18.i tokoe:invalid" result="pass"/><test-case name="35379reN19 tokoe:valid" result="pass"/><test-case name="35380reN19.i tokoe:invalid" result="pass"/><test-case name="35381reN20 tokoe:valid" result="pass"/><test-case name="35382reN20.i tokoe:invalid" result="pass"/><test-case name="35383reN21 tokoe:valid" result="pass"/><test-case name="35384reN21.i tokoe:invalid" result="pass"/><test-case name="35385reN22 tokoe:valid" result="pass"/><test-case name="35386reN22.i tokoe:invalid" result="pass"/><test-case name="35387reN23 tokoe:valid" result="pass"/><test-case name="35388reN23.i tokoe:invalid" result="pass"/><test-case name="35389reN24 tokoe:valid" result="pass"/><test-case name="35390reN24.i tokoe:invalid" result="pass"/><test-case name="35391reN25 tokoe:valid" result="pass"/><test-case name="35392reN25.i tokoe:invalid" result="pass"/><test-case name="35393reN26 tokoe:valid" result="pass"/><test-case name="35394reN26.i tokoe:invalid" result="pass"/><test-case name="35395reN27 tokoe:valid" result="pass"/><test-case name="35396reN27.i tokoe:invalid" result="pass"/><test-case name="35397reN28 tokoe:valid" result="pass"/><test-case name="35398reN28.i tokoe:invalid" result="pass"/><test-case name="35399reN29 tokoe:valid" result="pass"/><test-case name="35400reN29.i tokoe:invalid" result="pass"/><test-case name="35401reN30 tokoe:valid" result="pass"/><test-case name="35402reN30.i tokoe:invalid" result="pass"/><test-case name="35403reN31 tokoe:valid" result="pass"/><test-case name="35404reN31.i tokoe:invalid" result="pass"/><test-case name="35405reN32 tokoe:valid" result="pass"/><test-case name="35406reN32.i tokoe:invalid" result="pass"/><test-case name="35407reN33 tokoe:valid" result="pass"/><test-case name="35408reN33.i tokoe:invalid" result="pass"/><test-case name="35409reN34 tokoe:valid" result="pass"/><test-case name="35410reN34.i tokoe:invalid" result="pass"/><test-case name="35411reN35 tokoe:valid" result="pass"/><test-case name="35412reN35.i tokoe:invalid" result="pass"/><test-case name="35413reN36 tokoe:valid" result="pass"/><test-case name="35414reN36.i tokoe:invalid" result="pass"/><test-case name="35415reN37 tokoe:valid" result="pass"/><test-case name="35416reN37.i tokoe:invalid" result="pass"/><test-case name="35417reN38 tokoe:valid" result="pass"/><test-case name="35418reN38.i tokoe:invalid" result="pass"/><test-case name="35419reN39 tokoe:valid" result="pass"/><test-case name="35420reN39.i tokoe:invalid" result="pass"/><test-case name="35421reN40 tokoe:valid" result="pass"/><test-case name="35422reN40.i tokoe:invalid" result="pass"/><test-case name="35423reN41 tokoe:valid" result="pass"/><test-case name="35424reN41.i tokoe:invalid" result="pass"/><test-case name="35425reN42 tokoe:valid" result="pass"/><test-case name="35426reN42.i tokoe:invalid" result="pass"/><test-case name="35427reN43 tokoe:valid" result="pass"/><test-case name="35428reN43.i tokoe:invalid" result="pass"/><test-case name="35429reN44 tokoe:valid" result="pass"/><test-case name="35430reN44.i tokoe:invalid" result="pass"/><test-case name="35431reN45 tokoe:valid" result="pass"/><test-case name="35432reN45.i tokoe:invalid" result="pass"/><test-case name="35433reN46 tokoe:valid" result="pass"/><test-case name="35434reN46.i tokoe:invalid" result="pass"/><test-case name="35435reN47 tokoe:valid" result="pass"/><test-case name="35436reN47.i tokoe:invalid" result="pass"/><test-case name="35437reN48 tokoe:valid" result="pass"/><test-case name="35438reN48.i tokoe:invalid" result="pass"/><test-case name="35439reN49 tokoe:valid" result="pass"/><test-case name="35440reN49.i tokoe:invalid" result="pass"/><test-case name="35441reN50 tokoe:valid" result="pass"/><test-case name="35442reN50.i tokoe:invalid" result="pass"/><test-case name="35443reN51 tokoe:valid" result="pass"/><test-case name="35444reN51.i tokoe:invalid" result="pass"/><test-case name="35445reN52 tokoe:valid" result="pass"/><test-case name="35446reN52.i tokoe:invalid" result="pass"/><test-case name="35447reN53 tokoe:valid" result="pass"/><test-case name="35448reN53.i tokoe:invalid" result="pass"/><test-case name="35449reN54 tokoe:valid" result="pass"/><test-case name="35450reN54.i tokoe:invalid" result="pass"/><test-case name="35451reN55 tokoe:valid" result="pass"/><test-case name="35452reN55.i tokoe:invalid" result="pass"/><test-case name="35453reN56 tokoe:valid" result="pass"/><test-case name="35454reN56.i tokoe:invalid" result="pass"/><test-case name="35455reN57 tokoe:valid" result="pass"/><test-case name="35456reN57.i tokoe:invalid" result="pass"/><test-case name="35457reN58 tokoe:valid" result="pass"/><test-case name="35458reN58.i tokoe:invalid" result="pass"/><test-case name="35459reN59 tokoe:valid" result="pass"/><test-case name="35460reN59.i tokoe:invalid" result="pass"/><test-case name="35461reN60 tokoe:valid" result="pass"/><test-case name="35462reN60.i tokoe:invalid" result="pass"/><test-case name="35463reN61 tokoe:valid" result="pass"/><test-case name="35464reN61.i tokoe:invalid" result="pass"/><test-case name="35465reN62 tokoe:valid" result="pass"/><test-case name="35466reN62.i tokoe:invalid" result="pass"/><test-case name="35467reN63 tokoe:valid" result="pass"/><test-case name="35468reN63.i tokoe:invalid" result="pass"/><test-case name="35469reN64 tokoe:valid" result="pass"/><test-case name="35470reN64.i tokoe:invalid" result="pass"/><test-case name="35471reN65 tokoe:valid" result="pass"/><test-case name="35472reN65.i tokoe:invalid" result="pass"/><test-case name="35473reN66 tokoe:valid" result="pass"/><test-case name="35474reN66.i tokoe:invalid" result="pass"/><test-case name="35475reN67 tokoe:valid" result="pass"/><test-case name="35476reN67.i tokoe:invalid" result="pass"/><test-case name="35477reN68 tokoe:valid" result="pass"/><test-case name="35478reN68.i tokoe:invalid" result="pass"/><test-case name="35479reN69 tokoe:valid" result="pass"/><test-case name="35480reN69.i tokoe:invalid" result="pass"/><test-case name="35481reN70 tokoe:valid" result="pass"/><test-case name="35482reN70.i tokoe:invalid" result="pass"/><test-case name="35483reN71 tokoe:valid" result="pass"/><test-case name="35484reN71.i tokoe:invalid" result="pass"/><test-case name="35485reN72 tokoe:valid" result="pass"/><test-case name="35486reN72.i tokoe:invalid" result="pass"/><test-case name="35487reN73 tokoe:valid" result="pass"/><test-case name="35488reN73.i tokoe:invalid" result="pass"/><test-case name="35489reN74 tokoe:valid" result="pass"/><test-case name="35490reN74.i tokoe:invalid" result="pass"/><test-case name="35491reN75 tokoe:valid" result="fail"/><test-case name="35492reN75.i tokoe:invalid" result="pass"/><test-case name="35493reN79 tokoe:valid" result="pass"/><test-case name="35494reN79.i tokoe:invalid" result="pass"/><test-case name="35495reN80 tokoe:valid" result="pass"/><test-case name="35496reN80.i tokoe:invalid" result="pass"/><test-case name="35497reN81 tokoe:valid" result="pass"/><test-case name="35498reN81.i tokoe:invalid" result="pass"/><test-case name="35499reN82 tokoe:valid" result="pass"/><test-case name="35500reN82.i tokoe:invalid" result="pass"/><test-case name="35501reN83 tokoe:valid" result="pass"/><test-case name="35502reN83.i tokoe:invalid" result="pass"/><test-case name="35503reN84 tokoe:valid" result="pass"/><test-case name="35504reN84.i tokoe:invalid" result="pass"/><test-case name="35505reN85 tokoe:valid" result="pass"/><test-case name="35506reN85.i tokoe:invalid" result="pass"/><test-case name="35507reN86 tokoe:valid" result="pass"/><test-case name="35508reN86.i tokoe:invalid" result="pass"/><test-case name="35509reN87 tokoe:valid" result="pass"/><test-case name="35510reN87.i tokoe:invalid" result="pass"/><test-case name="35511reN88 tokoe:valid" result="pass"/><test-case name="35512reN88.i tokoe:invalid" result="pass"/><test-case name="35513reN89 tokoe:valid" result="pass"/><test-case name="35514reN89.i tokoe:invalid" result="pass"/><test-case name="35515reN90 tokoe:valid" result="pass"/><test-case name="35516reN90.i tokoe:invalid" result="pass"/><test-case name="35517reN91 tokoe:valid" result="pass"/><test-case name="35518reN91.i tokoe:invalid" result="pass"/><test-case name="35519reN92 tokoe:valid" result="pass"/><test-case name="35520reN92.i tokoe:invalid" result="pass"/><test-case name="35521reN93 tokoe:valid" result="pass"/><test-case name="35522reN93.i tokoe:invalid" result="pass"/><test-case name="35523reN94 tokoe:valid" result="pass"/><test-case name="35524reN94.i tokoe:invalid" result="pass"/><test-case name="35525reN95 tokoe:valid" result="pass"/><test-case name="35526reN95.i tokoe:invalid" result="pass"/><test-case name="35527reN96 tokoe:valid" result="pass"/><test-case name="35528reN96.i tokoe:invalid" result="pass"/><test-case name="35529reN97 tokoe:valid" result="pass"/><test-case name="35530reN97.i tokoe:invalid" result="pass"/><test-case name="35531reN98 tokoe:valid" result="pass"/><test-case name="35532reN98.i tokoe:invalid" result="pass"/><test-case name="35533reO1 tokoe:valid" result="pass"/><test-case name="35534reO1.v tokoe:valid" result="pass"/><test-case name="35535reO2 tokoe:valid" result="pass"/><test-case name="35536reO2.v tokoe:valid" result="pass"/><test-case name="35537reO3 tokoe:valid" result="pass"/><test-case name="35538reO3.i tokoe:invalid" result="pass"/><test-case name="35539reO4 tokoe:valid" result="pass"/><test-case name="35540reO4.i tokoe:invalid" result="pass"/><test-case name="35541reP1 tokoe:valid" result="pass"/><test-case name="35542reP1.v tokoe:valid" result="pass"/><test-case name="35543reP2 tokoe:valid" result="pass"/><test-case name="35544reP2.v tokoe:valid" result="pass"/><test-case name="35545reP3 tokoe:valid" result="pass"/><test-case name="35546reP3.v tokoe:valid" result="pass"/><test-case name="35547reP4 tokoe:valid" result="pass"/><test-case name="35548reP4.v tokoe:valid" result="pass"/><test-case name="35549reP5 tokoe:valid" result="pass"/><test-case name="35550reP5.i tokoe:invalid" result="pass"/><test-case name="35551reP6 tokoe:valid" result="pass"/><test-case name="35552reP6.v tokoe:valid" result="pass"/><test-case name="35553reP7 tokoe:valid" result="pass"/><test-case name="35554reP7.v tokoe:valid" result="pass"/><test-case name="35555reP8 tokoe:valid" result="pass"/><test-case name="35556reP8.i tokoe:invalid" result="pass"/><test-case name="35557reP9 tokoe:valid" result="pass"/><test-case name="35558reP9.i tokoe:invalid" result="pass"/><test-case name="35559reP10 tokoe:valid" result="pass"/><test-case name="35560reP10.i tokoe:invalid" result="pass"/><test-case name="35561reP11 tokoe:valid" result="pass"/><test-case name="35562reP11.v tokoe:valid" result="pass"/><test-case name="35563reP12 tokoe:valid" result="pass"/><test-case name="35564reP12.v tokoe:valid" result="pass"/><test-case name="35565reP13 tokoe:valid" result="pass"/><test-case name="35566reP13.v tokoe:valid" result="pass"/><test-case name="35567reP14 tokoe:valid" result="pass"/><test-case name="35568reP14.i tokoe:invalid" result="pass"/><test-case name="35569reP15 tokoe:valid" result="pass"/><test-case name="35570reP15.i tokoe:invalid" result="pass"/><test-case name="35571reP16 tokoe:valid" result="pass"/><test-case name="35572reP16.i tokoe:invalid" result="pass"/><test-case name="35573reP17 tokoe:valid" result="pass"/><test-case name="35574reP17.i tokoe:invalid" result="pass"/><test-case name="35575reP18 tokoe:valid" result="pass"/><test-case name="35576reP18.v tokoe:valid" result="pass"/><test-case name="35577reP19 tokoe:valid" result="pass"/><test-case name="35578reP19.i tokoe:invalid" result="pass"/><test-case name="35579reP20 tokoe:valid" result="pass"/><test-case name="35580reP20.i tokoe:invalid" result="pass"/><test-case name="35581reP21 tokoe:valid" result="pass"/><test-case name="35582reP21.i tokoe:invalid" result="pass"/><test-case name="35583reP22 tokoe:valid" result="pass"/><test-case name="35584reP22.i tokoe:invalid" result="pass"/><test-case name="35585reP23 tokoe:valid" result="pass"/><test-case name="35586reP23.i tokoe:invalid" result="pass"/><test-case name="35587reP24 tokoe:valid" result="pass"/><test-case name="35588reP24.i tokoe:invalid" result="pass"/><test-case name="35589reP25 tokoe:valid" result="pass"/><test-case name="35590reP25.v tokoe:valid" result="pass"/><test-case name="35591reP26 tokoe:valid" result="pass"/><test-case name="35592reP26.v tokoe:valid" result="pass"/><test-case name="35593reP27 tokoe:valid" result="pass"/><test-case name="35594reP27.v tokoe:valid" result="pass"/><test-case name="35595reP28 tokoe:valid" result="pass"/><test-case name="35596reP28.i tokoe:invalid" result="pass"/><test-case name="35597reP29 tokoe:valid" result="pass"/><test-case name="35598reP29.i tokoe:invalid" result="pass"/><test-case name="35599reP30 tokoe:valid" result="pass"/><test-case name="35600reP30.i tokoe:invalid" result="pass"/><test-case name="35601reQ1 tokoe:valid" result="pass"/><test-case name="35602reQ1.v tokoe:valid" result="pass"/><test-case name="35603reQ2 tokoe:valid" result="pass"/><test-case name="35604reQ2.v tokoe:valid" result="pass"/><test-case name="35605reQ3 tokoe:valid" result="pass"/><test-case name="35606reQ3.v tokoe:valid" result="pass"/><test-case name="35607reQ4 tokoe:valid" result="pass"/><test-case name="35608reQ4.i tokoe:invalid" result="pass"/><test-case name="35609reQ5 tokoe:valid" result="pass"/><test-case name="35610reQ5.i tokoe:invalid" result="pass"/><test-case name="35611reQ6 tokoe:valid" result="pass"/><test-case name="35612reQ6.i tokoe:invalid" result="pass"/><test-case name="35613reQ7 tokoe:valid" result="pass"/><test-case name="35614reQ7.i tokoe:invalid" result="pass"/><test-case name="35615reQ8 tokoe:valid" result="pass"/><test-case name="35616reQ8.v tokoe:valid" result="pass"/><test-case name="35617reQ9 tokoe:valid" result="pass"/><test-case name="35618reQ9.i tokoe:invalid" result="pass"/><test-case name="35619reQ10 tokoe:valid" result="pass"/><test-case name="35620reQ10.v tokoe:valid" result="pass"/><test-case name="35621reQ11 tokoe:valid" result="pass"/><test-case name="35622reQ11.i tokoe:invalid" result="pass"/><test-case name="35623reQ12 tokoe:valid" result="pass"/><test-case name="35624reQ12.v tokoe:valid" result="pass"/><test-case name="35625reQ13 tokoe:valid" result="pass"/><test-case name="35626reQ13.i tokoe:invalid" result="fail"/><test-case name="35627reQ14 tokoe:valid" result="pass"/><test-case name="35628reQ14.i tokoe:invalid" result="pass"/><test-case name="35629reQ15 tokoe:valid" result="pass"/><test-case name="35630reQ15.i tokoe:invalid" result="pass"/><test-case name="35631reQ16 tokoe:valid" result="pass"/><test-case name="35632reQ16.i tokoe:invalid" result="pass"/><test-case name="35633reQ17 tokoe:valid" result="pass"/><test-case name="35634reQ17.v tokoe:valid" result="pass"/><test-case name="35635reQ18 tokoe:valid" result="pass"/><test-case name="35636reQ18.v tokoe:valid" result="pass"/><test-case name="35637reQ19 tokoe:valid" result="pass"/><test-case name="35638reQ19.v tokoe:valid" result="pass"/><test-case name="35639reQ20 tokoe:valid" result="pass"/><test-case name="35640reQ20.v tokoe:valid" result="pass"/><test-case name="35641reQ21 tokoe:valid" result="pass"/><test-case name="35642reQ21.v tokoe:valid" result="fail"/><test-case name="35643reQ22 tokoe:valid" result="pass"/><test-case name="35644reQ22.v tokoe:valid" result="fail"/><test-case name="35645reQ23 tokoe:valid" result="pass"/><test-case name="35646reQ23.i tokoe:invalid" result="pass"/><test-case name="35647reQ24 tokoe:valid" result="pass"/><test-case name="35648reQ24.i tokoe:invalid" result="pass"/><test-case name="35649reR1 tokoe:valid" result="pass"/><test-case name="35650reR1.v tokoe:valid" result="pass"/><test-case name="35651reR2 tokoe:valid" result="pass"/><test-case name="35652reR2.v tokoe:valid" result="pass"/><test-case name="35653reR3 tokoe:valid" result="pass"/><test-case name="35654reR3.v tokoe:valid" result="pass"/><test-case name="35655reR4 tokoe:valid" result="pass"/><test-case name="35656reR4.i tokoe:invalid" result="pass"/><test-case name="35657reR5 tokoe:valid" result="pass"/><test-case name="35658reR5.i tokoe:invalid" result="pass"/><test-case name="35659reR6 tokoe:valid" result="pass"/><test-case name="35660reR6.i tokoe:invalid" result="pass"/><test-case name="35661reR7 tokoe:valid" result="pass"/><test-case name="35662reR7.i tokoe:invalid" result="pass"/><test-case name="35663reR8 tokoe:valid" result="pass"/><test-case name="35664reR8.v tokoe:valid" result="pass"/><test-case name="35665reR9 tokoe:valid" result="pass"/><test-case name="35666reR9.v tokoe:valid" result="pass"/><test-case name="35667reR10 tokoe:valid" result="pass"/><test-case name="35668reR10.i tokoe:invalid" result="pass"/><test-case name="35669reR11 tokoe:valid" result="pass"/><test-case name="35670reR11.i tokoe:invalid" result="pass"/><test-case name="35671reR12 tokoe:valid" result="pass"/><test-case name="35672reR12.v tokoe:valid" result="pass"/><test-case name="35673reR13 tokoe:valid" result="pass"/><test-case name="35674reR13.v tokoe:valid" result="pass"/><test-case name="35675reR14 tokoe:valid" result="pass"/><test-case name="35676reR14.v tokoe:valid" result="pass"/><test-case name="35677reR15 tokoe:valid" result="pass"/><test-case name="35678reR15.i tokoe:invalid" result="pass"/><test-case name="35679reR16 tokoe:valid" result="pass"/><test-case name="35680reR16.i tokoe:invalid" result="pass"/><test-case name="35681reR17 tokoe:valid" result="pass"/><test-case name="35682reR17.i tokoe:invalid" result="pass"/><test-case name="35683reR18 tokoe:valid" result="pass"/><test-case name="35684reR18.i tokoe:invalid" result="pass"/><test-case name="35685reR19 tokoe:valid" result="pass"/><test-case name="35686reR19.v tokoe:valid" result="pass"/><test-case name="35687reR20 tokoe:valid" result="pass"/><test-case name="35688reR20.v tokoe:valid" result="pass"/><test-case name="35689reR21 tokoe:valid" result="pass"/><test-case name="35690reR21.v tokoe:valid" result="pass"/><test-case name="35691reR22 tokoe:valid" result="pass"/><test-case name="35692reR22.v tokoe:valid" result="pass"/><test-case name="35693reR23 tokoe:valid" result="pass"/><test-case name="35694reR23.i tokoe:invalid" result="pass"/><test-case name="35695reR24 tokoe:valid" result="pass"/><test-case name="35696reR24.v tokoe:valid" result="pass"/><test-case name="35697reR25 tokoe:valid" result="pass"/><test-case name="35698reR25.v tokoe:valid" result="pass"/><test-case name="35699reR26 tokoe:valid" result="pass"/><test-case name="35700reR26.i tokoe:invalid" result="pass"/><test-case name="35701reR27 tokoe:valid" result="pass"/><test-case name="35702reR27.i tokoe:invalid" result="pass"/><test-case name="35703reR28 tokoe:valid" result="pass"/><test-case name="35704reR28.i tokoe:invalid" result="pass"/><test-case name="35705reR29 tokoe:valid" result="pass"/><test-case name="35706reR29.i tokoe:invalid" result="pass"/><test-case name="35707reS1 tokoe:valid" result="pass"/><test-case name="35708reS1.v tokoe:valid" result="pass"/><test-case name="35709reS3 tokoe:valid" result="pass"/><test-case name="35710reS3.v tokoe:valid" result="pass"/><test-case name="35711reS5 tokoe:valid" result="pass"/><test-case name="35712reS5.v tokoe:valid" result="pass"/><test-case name="35713reS6 tokoe:valid" result="pass"/><test-case name="35714reS6.v tokoe:valid" result="pass"/><test-case name="35715reS7 tokoe:valid" result="pass"/><test-case name="35716reS7.v tokoe:valid" result="pass"/><test-case name="35717reS8 tokoe:valid" result="pass"/><test-case name="35718reS8.v tokoe:valid" result="pass"/><test-case name="35719reS9 tokoe:valid" result="pass"/><test-case name="35720reS9.v tokoe:valid" result="pass"/><test-case name="35721reS10 tokoe:valid" result="pass"/><test-case name="35722reS10.v tokoe:valid" result="pass"/><test-case name="35723reS11 tokoe:valid" result="pass"/><test-case name="35724reS11.v tokoe:valid" result="pass"/><test-case name="35725reS12 tokoe:valid" result="pass"/><test-case name="35726reS12.v tokoe:valid" result="pass"/><test-case name="35727reS13 tokoe:valid" result="pass"/><test-case name="35728reS13.v tokoe:valid" result="pass"/><test-case name="35729reS14 tokoe:valid" result="pass"/><test-case name="35730reS14.v tokoe:valid" result="pass"/><test-case name="35731reS15 tokoe:valid" result="pass"/><test-case name="35732reS15.v tokoe:valid" result="pass"/><test-case name="35733reS16 tokoe:valid" result="pass"/><test-case name="35734reS16.v tokoe:valid" result="pass"/><test-case name="35735reS17 tokoe:valid" result="pass"/><test-case name="35736reS17.v tokoe:valid" result="fail"/><test-case name="35737reS18 tokoe:valid" result="pass"/><test-case name="35738reS18.v tokoe:valid" result="pass"/><test-case name="35739reS19 tokoe:valid" result="pass"/><test-case name="35740reS19.v tokoe:valid" result="pass"/><test-case name="35741reS20 tokoe:valid" result="pass"/><test-case name="35742reS20.v tokoe:valid" result="pass"/><test-case name="35743reS22 tokoe:valid" result="pass"/><test-case name="35744reS22.v tokoe:valid" result="pass"/><test-case name="35745reS23 tokoe:valid" result="pass"/><test-case name="35746reS23.v tokoe:valid" result="pass"/><test-case name="35747reS24 tokoe:valid" result="pass"/><test-case name="35748reS24.v tokoe:valid" result="pass"/><test-case name="35749reS25 tokoe:valid" result="pass"/><test-case name="35750reS25.v tokoe:valid" result="pass"/><test-case name="35751reS26 tokoe:valid" result="pass"/><test-case name="35752reS26.v tokoe:valid" result="pass"/><test-case name="35753reS27 tokoe:valid" result="pass"/><test-case name="35754reS27.v tokoe:valid" result="pass"/><test-case name="35755reS28 tokoe:valid" result="pass"/><test-case name="35756reS28.v tokoe:valid" result="pass"/><test-case name="35757reS29 tokoe:valid" result="pass"/><test-case name="35758reS29.v tokoe:valid" result="pass"/><test-case name="35759reS30 tokoe:valid" result="pass"/><test-case name="35760reS30.v tokoe:valid" result="pass"/><test-case name="35761reS31 tokoe:valid" result="pass"/><test-case name="35762reS31.v tokoe:valid" result="pass"/><test-case name="35763reS32 tokoe:valid" result="pass"/><test-case name="35764reS32.v tokoe:valid" result="pass"/><test-case name="35765reS33 tokoe:valid" result="pass"/><test-case name="35766reS33.v tokoe:valid" result="pass"/><test-case name="35767reS34 tokoe:valid" result="pass"/><test-case name="35768reS34.v tokoe:valid" result="pass"/><test-case name="35769reS35 tokoe:valid" result="pass"/><test-case name="35770reS35.v tokoe:valid" result="pass"/><test-case name="35771reS36 tokoe:valid" result="pass"/><test-case name="35772reS36.v tokoe:valid" result="pass"/><test-case name="35773reS37 tokoe:valid" result="pass"/><test-case name="35774reS37.v tokoe:valid" result="pass"/><test-case name="35775reS38 tokoe:valid" result="pass"/><test-case name="35776reS38.v tokoe:valid" result="fail"/><test-case name="35777reS39 tokoe:valid" result="pass"/><test-case name="35778reS39.v tokoe:valid" result="pass"/><test-case name="35779reS40 tokoe:valid" result="pass"/><test-case name="35780reS40.v tokoe:valid" result="pass"/><test-case name="35781reS41 tokoe:valid" result="pass"/><test-case name="35782reS41.v tokoe:valid" result="pass"/><test-case name="35783reS43 tokoe:valid" result="pass"/><test-case name="35784reS43.i tokoe:invalid" result="pass"/><test-case name="35785reS44 tokoe:valid" result="pass"/><test-case name="35786reS44.i tokoe:invalid" result="pass"/><test-case name="35787reS45 tokoe:valid" result="pass"/><test-case name="35788reS45.i tokoe:invalid" result="pass"/><test-case name="35789reS46 tokoe:valid" result="pass"/><test-case name="35790reS46.i tokoe:invalid" result="pass"/><test-case name="35791reS47 tokoe:valid" result="pass"/><test-case name="35792reS47.i tokoe:invalid" result="pass"/><test-case name="35793reS48 tokoe:valid" result="pass"/><test-case name="35794reS48.i tokoe:invalid" result="pass"/><test-case name="35795reS49 tokoe:valid" result="pass"/><test-case name="35796reS49.i tokoe:invalid" result="pass"/><test-case name="35797reS50 tokoe:valid" result="pass"/><test-case name="35798reS50.i tokoe:invalid" result="pass"/><test-case name="35799reS51 tokoe:valid" result="pass"/><test-case name="35800reS51.i tokoe:invalid" result="fail"/><test-case name="35801reS52 tokoe:valid" result="pass"/><test-case name="35802reS52.i tokoe:invalid" result="pass"/><test-case name="35803reS53 tokoe:valid" result="pass"/><test-case name="35804reS53.i tokoe:invalid" result="pass"/><test-case name="35805reS54 tokoe:valid" result="pass"/><test-case name="35806reS54.i tokoe:invalid" result="pass"/><test-case name="35807reS55 tokoe:valid" result="pass"/><test-case name="35808reS55.i tokoe:invalid" result="pass"/><test-case name="35809reS56 tokoe:valid" result="pass"/><test-case name="35810reS56.i tokoe:invalid" result="pass"/><test-case name="35811reS57 tokoe:valid" result="pass"/><test-case name="35812reS57.i tokoe:invalid" result="pass"/><test-case name="35813reS58 tokoe:valid" result="pass"/><test-case name="35814reS58.i tokoe:invalid" result="pass"/><test-case name="35815reS59 tokoe:valid" result="pass"/><test-case name="35816reS59.i tokoe:invalid" result="pass"/><test-case name="35817reS60 tokoe:valid" result="pass"/><test-case name="35818reS60.i tokoe:invalid" result="pass"/><test-case name="35819reS61 tokoe:valid" result="pass"/><test-case name="35820reS61.i tokoe:invalid" result="pass"/><test-case name="35821reS62 tokoe:valid" result="pass"/><test-case name="35822reS62.i tokoe:invalid" result="pass"/><test-case name="35823reS63 tokoe:valid" result="pass"/><test-case name="35824reS63.i tokoe:invalid" result="pass"/><test-case name="35825reS64 tokoe:valid" result="pass"/><test-case name="35826reS64.i tokoe:invalid" result="pass"/><test-case name="35827reS65 tokoe:valid" result="pass"/><test-case name="35828reS65.i tokoe:invalid" result="pass"/><test-case name="35829reS66 tokoe:valid" result="pass"/><test-case name="35830reS66.i tokoe:invalid" result="pass"/><test-case name="35831reS67 tokoe:valid" result="pass"/><test-case name="35832reS67.i tokoe:invalid" result="pass"/><test-case name="35833reS68 tokoe:valid" result="pass"/><test-case name="35834reS68.i tokoe:invalid" result="pass"/><test-case name="35835reS69 tokoe:valid" result="pass"/><test-case name="35836reS69.i tokoe:invalid" result="pass"/><test-case name="35837reS70 tokoe:valid" result="pass"/><test-case name="35838reS70.i tokoe:invalid" result="pass"/><test-case name="35839reS71 tokoe:valid" result="pass"/><test-case name="35840reS71.i tokoe:invalid" result="pass"/><test-case name="35841reS72 tokoe:valid" result="pass"/><test-case name="35842reS72.i tokoe:invalid" result="pass"/><test-case name="35843reS73 tokoe:valid" result="pass"/><test-case name="35844reS73.i tokoe:invalid" result="pass"/><test-case name="35845reS74 tokoe:valid" result="pass"/><test-case name="35846reS74.i tokoe:invalid" result="pass"/><test-case name="35847reS75 tokoe:valid" result="pass"/><test-case name="35848reS75.i tokoe:invalid" result="pass"/><test-case name="35849reS76 tokoe:valid" result="pass"/><test-case name="35850reS76.i tokoe:invalid" result="pass"/><test-case name="35851reS77 tokoe:valid" result="pass"/><test-case name="35852reS77.i tokoe:invalid" result="pass"/><test-case name="35853reS78 tokoe:valid" result="pass"/><test-case name="35854reS78.i tokoe:invalid" result="pass"/><test-case name="35855reS79 tokoe:valid" result="pass"/><test-case name="35856reS79.i tokoe:invalid" result="pass"/><test-case name="35857reS80 tokoe:valid" result="pass"/><test-case name="35858reS80.i tokoe:invalid" result="pass"/><test-case name="35859reS81 tokoe:valid" result="pass"/><test-case name="35860reS81.i tokoe:invalid" result="pass"/><test-case name="35861reS82 tokoe:valid" result="pass"/><test-case name="35862reS82.i tokoe:invalid" result="pass"/><test-case name="35863reS83 tokoe:valid" result="pass"/><test-case name="35864reS83.i tokoe:invalid" result="pass"/><test-case name="35865reS84 tokoe:valid" result="pass"/><test-case name="35866reS84.i tokoe:invalid" result="pass"/><test-case name="35867reT1 tokoe:valid" result="pass"/><test-case name="35868reT1.i tokoe:invalid" result="pass"/><test-case name="35869reT2 tokoe:valid" result="pass"/><test-case name="35870reT2.i tokoe:invalid" result="pass"/><test-case name="35871reT3 tokoe:valid" result="pass"/><test-case name="35872reT3.i tokoe:invalid" result="pass"/><test-case name="35873reT4 tokoe:valid" result="pass"/><test-case name="35874reT4.i tokoe:invalid" result="pass"/><test-case name="35875reT5 tokoe:valid" result="pass"/><test-case name="35876reT5.i tokoe:invalid" result="pass"/><test-case name="35877reT7 tokoe:valid" result="pass"/><test-case name="35878reT7.i tokoe:invalid" result="pass"/><test-case name="35879reT9 tokoe:valid" result="pass"/><test-case name="35880reT9.i tokoe:invalid" result="pass"/><test-case name="35881reT10 tokoe:valid" result="pass"/><test-case name="35882reT10.i tokoe:invalid" result="pass"/><test-case name="35883reT11 tokoe:valid" result="pass"/><test-case name="35884reT11.i tokoe:invalid" result="pass"/><test-case name="35885reT12 tokoe:valid" result="pass"/><test-case name="35886reT12.i tokoe:invalid" result="pass"/><test-case name="35887reT13 tokoe:valid" result="pass"/><test-case name="35888reT13.i tokoe:invalid" result="pass"/><test-case name="35889reT14 tokoe:valid" result="pass"/><test-case name="35890reT14.i tokoe:invalid" result="pass"/><test-case name="35891reT15 tokoe:valid" result="pass"/><test-case name="35892reT15.i tokoe:invalid" result="pass"/><test-case name="35893reT16 tokoe:valid" result="pass"/><test-case name="35894reT16.i tokoe:invalid" result="pass"/><test-case name="35895reT17 tokoe:valid" result="pass"/><test-case name="35896reT17.i tokoe:invalid" result="fail"/><test-case name="35897reT18 tokoe:valid" result="pass"/><test-case name="35898reT18.i tokoe:invalid" result="pass"/><test-case name="35899reT19 tokoe:valid" result="pass"/><test-case name="35900reT19.i tokoe:invalid" result="pass"/><test-case name="35901reT20 tokoe:valid" result="pass"/><test-case name="35902reT20.i tokoe:invalid" result="pass"/><test-case name="35903reT21 tokoe:valid" result="pass"/><test-case name="35904reT21.i tokoe:invalid" result="pass"/><test-case name="35905reT22 tokoe:valid" result="pass"/><test-case name="35906reT22.i tokoe:invalid" result="pass"/><test-case name="35907reT23 tokoe:valid" result="pass"/><test-case name="35908reT23.i tokoe:invalid" result="pass"/><test-case name="35909reT24 tokoe:valid" result="pass"/><test-case name="35910reT24.i tokoe:invalid" result="pass"/><test-case name="35911reT25 tokoe:valid" result="pass"/><test-case name="35912reT25.i tokoe:invalid" result="pass"/><test-case name="35913reT26 tokoe:valid" result="pass"/><test-case name="35914reT26.i tokoe:invalid" result="pass"/><test-case name="35915reT27 tokoe:valid" result="pass"/><test-case name="35916reT27.i tokoe:invalid" result="pass"/><test-case name="35917reT28 tokoe:valid" result="pass"/><test-case name="35918reT28.i tokoe:invalid" result="pass"/><test-case name="35919reT29 tokoe:valid" result="pass"/><test-case name="35920reT29.i tokoe:invalid" result="pass"/><test-case name="35921reT30 tokoe:valid" result="pass"/><test-case name="35922reT30.i tokoe:invalid" result="pass"/><test-case name="35923reT31 tokoe:valid" result="pass"/><test-case name="35924reT31.i tokoe:invalid" result="pass"/><test-case name="35925reT32 tokoe:valid" result="pass"/><test-case name="35926reT32.i tokoe:invalid" result="pass"/><test-case name="35927reT33 tokoe:valid" result="pass"/><test-case name="35928reT33.i tokoe:invalid" result="pass"/><test-case name="35929reT34 tokoe:valid" result="pass"/><test-case name="35930reT34.i tokoe:invalid" result="pass"/><test-case name="35931reT35 tokoe:valid" result="pass"/><test-case name="35932reT35.i tokoe:invalid" result="pass"/><test-case name="35933reT36 tokoe:valid" result="pass"/><test-case name="35934reT36.i tokoe:invalid" result="pass"/><test-case name="35935reT37 tokoe:valid" result="pass"/><test-case name="35936reT37.i tokoe:invalid" result="pass"/><test-case name="35937reT38 tokoe:valid" result="pass"/><test-case name="35938reT38.i tokoe:invalid" result="fail"/><test-case name="35939reT39 tokoe:valid" result="pass"/><test-case name="35940reT39.i tokoe:invalid" result="pass"/><test-case name="35941reT40 tokoe:valid" result="pass"/><test-case name="35942reT40.i tokoe:invalid" result="pass"/><test-case name="35943reT41 tokoe:valid" result="pass"/><test-case name="35944reT41.i tokoe:invalid" result="pass"/><test-case name="35945reT42 tokoe:valid" result="pass"/><test-case name="35946reT42.i tokoe:invalid" result="pass"/><test-case name="35947reT43 tokoe:valid" result="pass"/><test-case name="35948reT43.v tokoe:valid" result="pass"/><test-case name="35949reT44 tokoe:valid" result="pass"/><test-case name="35950reT44.v tokoe:valid" result="pass"/><test-case name="35951reT45 tokoe:valid" result="pass"/><test-case name="35952reT45.v tokoe:valid" result="pass"/><test-case name="35953reT46 tokoe:valid" result="pass"/><test-case name="35954reT46.v tokoe:valid" result="pass"/><test-case name="35955reT47 tokoe:valid" result="pass"/><test-case name="35956reT47.v tokoe:valid" result="pass"/><test-case name="35957reT48 tokoe:valid" result="pass"/><test-case name="35958reT48.v tokoe:valid" result="pass"/><test-case name="35959reT49 tokoe:valid" result="pass"/><test-case name="35960reT49.v tokoe:valid" result="pass"/><test-case name="35961reT50 tokoe:valid" result="pass"/><test-case name="35962reT50.v tokoe:valid" result="pass"/><test-case name="35963reT51 tokoe:valid" result="pass"/><test-case name="35964reT51.v tokoe:valid" result="fail"/><test-case name="35965reT52 tokoe:valid" result="pass"/><test-case name="35966reT52.v tokoe:valid" result="pass"/><test-case name="35967reT53 tokoe:valid" result="pass"/><test-case name="35968reT53.v tokoe:valid" result="pass"/><test-case name="35969reT54 tokoe:valid" result="pass"/><test-case name="35970reT54.v tokoe:valid" result="pass"/><test-case name="35971reT55 tokoe:valid" result="pass"/><test-case name="35972reT55.v tokoe:valid" result="pass"/><test-case name="35973reT56 tokoe:valid" result="pass"/><test-case name="35974reT56.v tokoe:valid" result="pass"/><test-case name="35975reT57 tokoe:valid" result="pass"/><test-case name="35976reT57.v tokoe:valid" result="pass"/><test-case name="35977reT58 tokoe:valid" result="pass"/><test-case name="35978reT58.v tokoe:valid" result="pass"/><test-case name="35979reT59 tokoe:valid" result="pass"/><test-case name="35980reT59.v tokoe:valid" result="pass"/><test-case name="35981reT60 tokoe:valid" result="pass"/><test-case name="35982reT60.v tokoe:valid" result="pass"/><test-case name="35983reT61 tokoe:valid" result="pass"/><test-case name="35984reT61.v tokoe:valid" result="pass"/><test-case name="35985reT62 tokoe:valid" result="pass"/><test-case name="35986reT62.v tokoe:valid" result="pass"/><test-case name="35987reT64 tokoe:valid" result="pass"/><test-case name="35988reT64.v tokoe:valid" result="pass"/><test-case name="35989reT65 tokoe:valid" result="pass"/><test-case name="35990reT65.v tokoe:valid" result="pass"/><test-case name="35991reT66 tokoe:valid" result="pass"/><test-case name="35992reT66.v tokoe:valid" result="pass"/><test-case name="35993reT67 tokoe:valid" result="pass"/><test-case name="35994reT67.v tokoe:valid" result="pass"/><test-case name="35995reT68 tokoe:valid" result="pass"/><test-case name="35996reT68.v tokoe:valid" result="pass"/><test-case name="35997reT69 tokoe:valid" result="pass"/><test-case name="35998reT69.v tokoe:valid" result="pass"/><test-case name="35999reT70 tokoe:valid" result="pass"/><test-case name="36000reT70.v tokoe:valid" result="pass"/><test-case name="36001reT71 tokoe:valid" result="pass"/><test-case name="36002reT71.v tokoe:valid" result="pass"/><test-case name="36003reT72 tokoe:valid" result="pass"/><test-case name="36004reT72.v tokoe:valid" result="pass"/><test-case name="36005reT73 tokoe:valid" result="pass"/><test-case name="36006reT73.v tokoe:valid" result="pass"/><test-case name="36007reT74 tokoe:valid" result="pass"/><test-case name="36008reT74.v tokoe:valid" result="pass"/><test-case name="36009reT75 tokoe:valid" result="pass"/><test-case name="36010reT75.v tokoe:valid" result="pass"/><test-case name="36011reT76 tokoe:valid" result="pass"/><test-case name="36012reT76.v tokoe:valid" result="pass"/><test-case name="36013reT77 tokoe:valid" result="pass"/><test-case name="36014reT77.v tokoe:valid" result="pass"/><test-case name="36015reT78 tokoe:valid" result="pass"/><test-case name="36016reT78.v tokoe:valid" result="pass"/><test-case name="36017reT79 tokoe:valid" result="pass"/><test-case name="36018reT79.v tokoe:valid" result="pass"/><test-case name="36019reT80 tokoe:valid" result="pass"/><test-case name="36020reT80.v tokoe:valid" result="pass"/><test-case name="36021reT81 tokoe:valid" result="pass"/><test-case name="36022reT81.v tokoe:valid" result="pass"/><test-case name="36023reT82 tokoe:valid" result="pass"/><test-case name="36024reT82.v tokoe:valid" result="pass"/><test-case name="36025reT83 tokoe:valid" result="pass"/><test-case name="36026reT83.v tokoe:valid" result="pass"/><test-case name="36027reU3 tokoe:valid" result="pass"/><test-case name="36028reU3.i tokoe:invalid" result="pass"/><test-case name="36029reU4 tokoe:valid" result="pass"/><test-case name="36030reU4.i tokoe:invalid" result="pass"/><test-case name="36031reU5 tokoe:valid" result="pass"/><test-case name="36032reU5.i tokoe:invalid" result="pass"/><test-case name="36033reU6 tokoe:valid" result="pass"/><test-case name="36034reU6.i tokoe:invalid" result="fail"/><test-case name="36035reU7 tokoe:valid" result="pass"/><test-case name="36036reU7.i tokoe:invalid" result="pass"/><test-case name="36037reU8 tokoe:valid" result="pass"/><test-case name="36038reU8.i tokoe:invalid" result="pass"/><test-case name="36039reU9 tokoe:valid" result="pass"/><test-case name="36040reU9.i tokoe:invalid" result="pass"/><test-case name="36041reU10 tokoe:valid" result="pass"/><test-case name="36042reU10.i tokoe:invalid" result="pass"/><test-case name="36043reU11 tokoe:valid" result="pass"/><test-case name="36044reU11.i tokoe:invalid" result="pass"/><test-case name="36045reU12 tokoe:valid" result="pass"/><test-case name="36046reU12.i tokoe:invalid" result="pass"/><test-case name="36047reU13 tokoe:valid" result="pass"/><test-case name="36048reU13.i tokoe:invalid" result="pass"/><test-case name="36049reU14 tokoe:valid" result="pass"/><test-case name="36050reU14.i tokoe:invalid" result="pass"/><test-case name="36051reU15 tokoe:valid" result="pass"/><test-case name="36052reU15.i tokoe:invalid" result="pass"/><test-case name="36053reV2 tokoe:valid" result="pass"/><test-case name="36054reV2.i tokoe:invalid" result="pass"/><test-case name="36055reV3 tokoe:valid" result="pass"/><test-case name="36056reV3.i tokoe:invalid" result="pass"/><test-case name="36057reV4 tokoe:valid" result="pass"/><test-case name="36058reV4.i tokoe:invalid" result="pass"/><test-case name="36059reV5 tokoe:valid" result="pass"/><test-case name="36060reV5.i tokoe:invalid" result="pass"/><test-case name="36061reV6 tokoe:valid" result="pass"/><test-case name="36062reV6.i tokoe:invalid" result="pass"/><test-case name="36063reV7 tokoe:valid" result="pass"/><test-case name="36064reV7.i tokoe:invalid" result="pass"/><test-case name="36065reV8 tokoe:valid" result="pass"/><test-case name="36066reV8.i tokoe:invalid" result="pass"/><test-case name="36067reV9 tokoe:valid" result="pass"/><test-case name="36068reV9.i tokoe:invalid" result="pass"/><test-case name="36069reV10 tokoe:valid" result="pass"/><test-case name="36070reV10.i tokoe:invalid" result="pass"/><test-case name="36071reV11 tokoe:valid" result="pass"/><test-case name="36072reV11.i tokoe:invalid" result="pass"/><test-case name="36073reV12 tokoe:valid" result="pass"/><test-case name="36074reV12.i tokoe:invalid" result="pass"/><test-case name="36075reV13 tokoe:valid" result="pass"/><test-case name="36076reV13.i tokoe:invalid" result="pass"/><test-case name="36077reV14 tokoe:valid" result="pass"/><test-case name="36078reV14.i tokoe:invalid" result="pass"/><test-case name="36079reV15 tokoe:valid" result="pass"/><test-case name="36080reV15.i tokoe:invalid" result="pass"/><test-case name="36081reV16 tokoe:valid" result="pass"/><test-case name="36082reV16.i tokoe:invalid" result="pass"/><test-case name="36083reV17 tokoe:valid" result="pass"/><test-case name="36084reV17.i tokoe:invalid" result="pass"/><test-case name="36085reV18 tokoe:valid" result="pass"/><test-case name="36086reV18.i tokoe:invalid" result="pass"/><test-case name="36087reV19 tokoe:valid" result="pass"/><test-case name="36088reV19.i tokoe:invalid" result="pass"/><test-case name="36089reV20 tokoe:valid" result="pass"/><test-case name="36090reV20.i tokoe:invalid" result="pass"/><test-case name="36091reV21 tokoe:valid" result="pass"/><test-case name="36092reV21.i tokoe:invalid" result="pass"/><test-case name="36093reV22 tokoe:valid" result="pass"/><test-case name="36094reV22.i tokoe:invalid" result="pass"/><test-case name="36095reV23 tokoe:valid" result="pass"/><test-case name="36096reV23.i tokoe:invalid" result="pass"/><test-case name="36097reV24 tokoe:valid" result="pass"/><test-case name="36098reV24.i tokoe:invalid" result="pass"/><test-case name="36099reV25 tokoe:valid" result="pass"/><test-case name="36100reV25.i tokoe:invalid" result="pass"/><test-case name="36101reV26 tokoe:valid" result="pass"/><test-case name="36102reV26.i tokoe:invalid" result="pass"/><test-case name="36103reV27 tokoe:valid" result="pass"/><test-case name="36104reV27.i tokoe:invalid" result="pass"/><test-case name="36105reV28 tokoe:valid" result="pass"/><test-case name="36106reV28.i tokoe:invalid" result="pass"/><test-case name="36107reV29 tokoe:valid" result="pass"/><test-case name="36108reV29.i tokoe:invalid" result="pass"/><test-case name="36109reV30 tokoe:valid" result="pass"/><test-case name="36110reV30.i tokoe:invalid" result="pass"/><test-case name="36111reV31 tokoe:valid" result="pass"/><test-case name="36112reV31.i tokoe:invalid" result="pass"/><test-case name="36113reV32 tokoe:valid" result="pass"/><test-case name="36114reV32.i tokoe:invalid" result="pass"/><test-case name="36115reV33 tokoe:valid" result="pass"/><test-case name="36116reV33.i tokoe:invalid" result="fail"/><test-case name="36117reV34 tokoe:valid" result="pass"/><test-case name="36118reV34.i tokoe:invalid" result="fail"/><test-case name="36119reV35 tokoe:valid" result="pass"/><test-case name="36120reV35.i tokoe:invalid" result="fail"/><test-case name="36121reV36 tokoe:valid" result="pass"/><test-case name="36122reV36.i tokoe:invalid" result="fail"/><test-case name="36123reV37 tokoe:valid" result="pass"/><test-case name="36124reV37.i tokoe:invalid" result="fail"/><test-case name="36125reV38 tokoe:valid" result="pass"/><test-case name="36126reV38.i tokoe:invalid" result="fail"/><test-case name="36127reV39 tokoe:valid" result="pass"/><test-case name="36128reV39.i tokoe:invalid" result="fail"/><test-case name="36129reV40 tokoe:valid" result="pass"/><test-case name="36130reV40.i tokoe:invalid" result="fail"/><test-case name="36131reV41 tokoe:valid" result="pass"/><test-case name="36132reV41.i tokoe:invalid" result="fail"/><test-case name="36133reV42 tokoe:valid" result="pass"/><test-case name="36134reV42.i tokoe:invalid" result="fail"/><test-case name="36135reV43 tokoe:valid" result="pass"/><test-case name="36136reV43.i tokoe:invalid" result="pass"/><test-case name="36137reDA1 tokoe:valid" result="pass"/><test-case name="36138reDA1.v tokoe:valid" result="pass"/><test-case name="36139reDA2 tokoe:valid" result="pass"/><test-case name="36140reDA2.i tokoe:invalid" result="pass"/><test-case name="36141reDA3 tokoe:valid" result="pass"/><test-case name="36142reDA3.i tokoe:invalid" result="pass"/><test-case name="36143reDA4 tokoe:valid" result="pass"/><test-case name="36144reDA4.v tokoe:valid" result="pass"/><test-case name="36145reDA5 tokoe:valid" result="pass"/><test-case name="36146reDA5.v tokoe:valid" result="pass"/><test-case name="36147reDA6 tokoe:valid" result="pass"/><test-case name="36148reDA6.v tokoe:valid" result="pass"/><test-case name="36149reDA7 tokoe:valid" result="pass"/><test-case name="36150reDA8 tokoe:valid" result="pass"/><test-case name="36151reDA9 tokoe:valid" result="pass"/><test-case name="36152reDA9.v tokoe:valid" result="pass"/><test-case name="36153reDA10 tokoe:valid" result="pass"/><test-case name="36154reDA10.i tokoe:invalid" result="pass"/><test-case name="36155reDA11 tokoe:valid" result="pass"/><test-case name="36156reDA11.i tokoe:invalid" result="pass"/><test-case name="36157reDA12 tokoe:valid" result="pass"/><test-case name="36158reDA12.i tokoe:invalid" result="pass"/><test-case name="36159reDA13 tokoe:valid" result="pass"/><test-case name="36160reDA13.i tokoe:invalid" result="pass"/><test-case name="36161reDA14 tokoe:valid" result="pass"/><test-case name="36162reDA14.i tokoe:invalid" result="pass"/><test-case name="36163reDA15 tokoe:valid" result="pass"/><test-case name="36164reDA15.v tokoe:valid" result="pass"/><test-case name="36165reDB1 tokoe:valid" result="pass"/><test-case name="36166reDB1.v tokoe:valid" result="pass"/><test-case name="36167reDB2 tokoe:valid" result="pass"/><test-case name="36168reDB2.v tokoe:valid" result="pass"/><test-case name="36169reDB3 tokoe:valid" result="pass"/><test-case name="36170reDB3.i tokoe:invalid" result="pass"/><test-case name="36171reDB4 tokoe:valid" result="pass"/><test-case name="36172reDB4.i tokoe:invalid" result="pass"/><test-case name="36173reDB5 tokoe:valid" result="pass"/><test-case name="36174reDB5.i tokoe:invalid" result="pass"/><test-case name="36175reDB6 tokoe:valid" result="pass"/><test-case name="36176reDB6.i tokoe:invalid" result="pass"/><test-case name="36177reDC1 tokoe:valid" result="pass"/><test-case name="36178reDC1.v tokoe:valid" result="pass"/><test-case name="36179reDC2 tokoe:valid" result="pass"/><test-case name="36180reDC2.v tokoe:valid" result="pass"/><test-case name="36181reDC3 tokoe:valid" result="pass"/><test-case name="36182reDC3.v tokoe:valid" result="pass"/><test-case name="36183reDC4 tokoe:valid" result="pass"/><test-case name="36184reDC4.v tokoe:valid" result="pass"/><test-case name="36185reDC5 tokoe:valid" result="pass"/><test-case name="36186reDC5.v tokoe:valid" result="pass"/><test-case name="36187reDD1 tokoe:valid" result="pass"/><test-case name="36188reDD1.v tokoe:valid" result="pass"/><test-case name="36189reDD2 tokoe:valid" result="pass"/><test-case name="36190reDD2.i tokoe:invalid" result="pass"/><test-case name="36191reDD3 tokoe:valid" result="pass"/><test-case name="36192reDD3.i tokoe:invalid" result="pass"/><test-case name="36193reDD4 tokoe:valid" result="pass"/><test-case name="36194reDD4.i tokoe:invalid" result="pass"/><test-case name="36195reDD5 tokoe:valid" result="pass"/><test-case name="36196reDD5.i tokoe:invalid" result="pass"/><test-case name="36197reDD6 tokoe:valid" result="pass"/><test-case name="36198reDD6.i tokoe:invalid" result="pass"/><test-case name="36199reDD7 tokoe:valid" result="pass"/><test-case name="36200reDD7.i tokoe:invalid" result="pass"/><test-case name="36201reDD8 tokoe:valid" result="pass"/><test-case name="36202reDD8.i tokoe:invalid" result="pass"/><test-case name="36203reDE1 tokoe:valid" result="pass"/><test-case name="36204reDE1.v tokoe:valid" result="pass"/><test-case name="36205reDE2 tokoe:valid" result="pass"/><test-case name="36206reDE2.i tokoe:invalid" result="pass"/><test-case name="36207reDE3 tokoe:valid" result="pass"/><test-case name="36208reDE3.i tokoe:invalid" result="pass"/><test-case name="36209reDE4 tokoe:valid" result="pass"/><test-case name="36210reDE4.i tokoe:invalid" result="pass"/><test-case name="36211reDF1 tokoe:valid" result="pass"/><test-case name="36212reDF1.v tokoe:valid" result="pass"/><test-case name="36213reDF2 tokoe:valid" result="pass"/><test-case name="36214reDF2.v tokoe:valid" result="pass"/><test-case name="36215reDF3 tokoe:valid" result="pass"/><test-case name="36216reDF3.i tokoe:invalid" result="pass"/><test-case name="36217reDF5 tokoe:valid" result="pass"/><test-case name="36218reDF5.i tokoe:invalid" result="pass"/><test-case name="36219reDG1 tokoe:valid" result="pass"/><test-case name="36220reDG1.v tokoe:valid" result="pass"/><test-case name="36221reDG3 tokoe:valid" result="pass"/><test-case name="36222reDG3.v tokoe:valid" result="pass"/><test-case name="36223reDG4 tokoe:valid" result="pass"/><test-case name="36224reDG4.i tokoe:invalid" result="pass"/><test-case name="36225reDG5 tokoe:valid" result="pass"/><test-case name="36226reDG5.v tokoe:valid" result="pass"/><test-case name="36227reDG6 tokoe:valid" result="pass"/><test-case name="36228reDG6.v tokoe:valid" result="pass"/><test-case name="36229reDG7 tokoe:valid" result="pass"/><test-case name="36230reDG7.v tokoe:valid" result="fail"/><test-case name="36231reDH2 tokoe:valid" result="pass"/><test-case name="36232reDH2.v tokoe:valid" result="pass"/><test-case name="36233reDH3 tokoe:valid" result="pass"/><test-case name="36234reDH3.v tokoe:valid" result="pass"/><test-case name="36235reDH4 tokoe:valid" result="pass"/><test-case name="36236reDH4.v tokoe:valid" result="pass"/><test-case name="36237reDH5 tokoe:valid" result="pass"/><test-case name="36238reDH5.v tokoe:valid" result="pass"/><test-case name="36239reDH6 tokoe:valid" result="pass"/><test-case name="36240reDH6.v tokoe:valid" result="pass"/><test-case name="36241reDH7 tokoe:valid" result="pass"/><test-case name="36242reDH7.v tokoe:valid" result="pass"/><test-case name="36243reDH7a tokoe:valid" result="pass"/><test-case name="36244reDH7a.i tokoe:invalid" result="pass"/><test-case name="36245reDH10 tokoe:valid" result="pass"/><test-case name="36246reDH11 tokoe:valid" result="pass"/><test-case name="36247reDH11.v tokoe:valid" result="pass"/><test-case name="36248reDH12 tokoe:valid" result="pass"/><test-case name="36249reDI1 tokoe:valid" result="pass"/><test-case name="36250reDI1.v tokoe:valid" result="pass"/><test-case name="36251reDI2 tokoe:valid" result="pass"/><test-case name="36252reDI2.v tokoe:valid" result="pass"/><test-case name="36253reDI3 tokoe:valid" result="pass"/><test-case name="36254reDI3.i tokoe:invalid" result="pass"/><test-case name="36255reDI4 tokoe:valid" result="pass"/><test-case name="36256reDI4.i tokoe:invalid" result="pass"/><test-case name="36257reDI5 tokoe:valid" result="pass"/><test-case name="36258reDI5.i tokoe:invalid" result="pass"/><test-case name="36259reDI6 tokoe:valid" result="pass"/><test-case name="36260reDI6.v tokoe:valid" result="pass"/><test-case name="36261reDI7 tokoe:valid" result="pass"/><test-case name="36262reDI7.v tokoe:valid" result="pass"/><test-case name="36263reDI8 tokoe:valid" result="pass"/><test-case name="36264reDI8.v tokoe:valid" result="pass"/><test-case name="36265reDI9 tokoe:valid" result="pass"/><test-case name="36266reDI9.v tokoe:valid" result="pass"/><test-case name="36267reDI10 tokoe:valid" result="pass"/><test-case name="36268reDI10.v tokoe:valid" result="pass"/><test-case name="36269reDI11 tokoe:valid" result="pass"/><test-case name="36270reDI11.v tokoe:valid" result="pass"/><test-case name="36271reDI12 tokoe:valid" result="pass"/><test-case name="36272reDI12.i tokoe:invalid" result="pass"/><test-case name="36273reDI13 tokoe:valid" result="pass"/><test-case name="36274reDI13.i tokoe:invalid" result="pass"/><test-case name="36275reDI14 tokoe:valid" result="pass"/><test-case name="36276reDI14.v tokoe:valid" result="pass"/><test-case name="36277p1 tokoe:invalid" result="pass"/><test-case name="36278p2 tokoe:valid" result="pass"/><test-case name="36279p2.i tokoe:invalid" result="pass"/><test-case name="36280p3 tokoe:valid" result="pass"/><test-case name="36281p3.v tokoe:valid" result="pass"/><test-case name="36282p4 tokoe:valid" result="pass"/><test-case name="36283p4.i tokoe:invalid" result="pass"/><test-case name="36284p5 tokoe:valid" result="pass"/><test-case name="36285p5.v tokoe:valid" result="pass"/><test-case name="36286p6 tokoe:valid" result="pass"/><test-case name="36287p6.v tokoe:valid" result="pass"/><test-case name="36288p7 tokoe:valid" result="pass"/><test-case name="36289p7.i tokoe:invalid" result="pass"/><test-case name="36290p8 tokoe:valid" result="pass"/><test-case name="36291p8.v tokoe:valid" result="pass"/><test-case name="36292p9 tokoe:valid" result="pass"/><test-case name="36293p9.v tokoe:valid" result="pass"/><test-case name="36294p10 tokoe:valid" result="pass"/><test-case name="36295p10.i tokoe:invalid" result="pass"/><test-case name="36296p11 tokoe:valid" result="pass"/><test-case name="36297p11.v tokoe:valid" result="pass"/><test-case name="36298p12 tokoe:valid" result="pass"/><test-case name="36299p12.v tokoe:valid" result="pass"/><test-case name="36300p13 tokoe:valid" result="pass"/><test-case name="36301p13.v tokoe:valid" result="pass"/><test-case name="36302p14 tokoe:valid" result="pass"/><test-case name="36303p14.i tokoe:invalid" result="pass"/><test-case name="36304p15 tokoe:valid" result="pass"/><test-case name="36305p15.i tokoe:invalid" result="pass"/><test-case name="36306p16 tokoe:valid" result="pass"/><test-case name="36307p16.v tokoe:valid" result="pass"/><test-case name="36308p17 tokoe:valid" result="pass"/><test-case name="36309p17.v tokoe:valid" result="pass"/><test-case name="36310p18 tokoe:valid" result="pass"/><test-case name="36311p18.i tokoe:invalid" result="pass"/><test-case name="36312p19 tokoe:valid" result="pass"/><test-case name="36313p19.i tokoe:invalid" result="pass"/><test-case name="36314p20 tokoe:valid" result="pass"/><test-case name="36315p20.v tokoe:valid" result="pass"/><test-case name="36316p21 tokoe:valid" result="pass"/><test-case name="36317p21.i tokoe:invalid" result="fail"/><test-case name="36318RegexTest_1 tokoe:valid" result="pass"/><test-case name="36319RegexTest_1.v tokoe:valid" result="pass"/><test-case name="36320RegexTest_2 tokoe:valid" result="pass"/><test-case name="36321RegexTest_2.v tokoe:valid" result="pass"/><test-case name="36322RegexTest_3 tokoe:valid" result="pass"/><test-case name="36323RegexTest_3.v tokoe:valid" result="pass"/><test-case name="36324RegexTest_4 tokoe:valid" result="pass"/><test-case name="36325RegexTest_4.v tokoe:valid" result="pass"/><test-case name="36326RegexTest_5 tokoe:valid" result="pass"/><test-case name="36327RegexTest_5.v tokoe:valid" result="pass"/><test-case name="36328RegexTest_6 tokoe:valid" result="pass"/><test-case name="36329RegexTest_6.v tokoe:valid" result="pass"/><test-case name="36330RegexTest_7 tokoe:valid" result="pass"/><test-case name="36331RegexTest_7.i tokoe:invalid" result="pass"/><test-case name="36332RegexTest_8 tokoe:valid" result="pass"/><test-case name="36333RegexTest_8.i tokoe:invalid" result="pass"/><test-case name="36334RegexTest_10 tokoe:valid" result="pass"/><test-case name="36335RegexTest_10.i tokoe:invalid" result="pass"/><test-case name="36336RegexTest_12 tokoe:valid" result="pass"/><test-case name="36337RegexTest_12.i tokoe:invalid" result="pass"/><test-case name="36338RegexTest_13 tokoe:valid" result="pass"/><test-case name="36339RegexTest_13.i tokoe:invalid" result="pass"/><test-case name="36340RegexTest_20 tokoe:valid" result="pass"/><test-case name="36341RegexTest_20.v tokoe:valid" result="pass"/><test-case name="36342RegexTest_21 tokoe:valid" result="pass"/><test-case name="36343RegexTest_21.v tokoe:valid" result="pass"/><test-case name="36344RegexTest_35 tokoe:valid" result="pass"/><test-case name="36345RegexTest_35.i tokoe:invalid" result="pass"/><test-case name="36346RegexTest_36 tokoe:valid" result="pass"/><test-case name="36347RegexTest_36.i tokoe:invalid" result="pass"/><test-case name="36348RegexTest_37 tokoe:valid" result="pass"/><test-case name="36349RegexTest_37.i tokoe:invalid" result="pass"/><test-case name="36350RegexTest_38 tokoe:valid" result="pass"/><test-case name="36351RegexTest_38.i tokoe:invalid" result="pass"/><test-case name="36352RegexTest_39 tokoe:valid" result="pass"/><test-case name="36353RegexTest_39.i tokoe:invalid" result="pass"/><test-case name="36354RegexTest_40 tokoe:valid" result="pass"/><test-case name="36355RegexTest_40.i tokoe:invalid" result="pass"/><test-case name="36356RegexTest_41 tokoe:valid" result="pass"/><test-case name="36357RegexTest_41.v tokoe:valid" result="pass"/><test-case name="36358RegexTest_42 tokoe:valid" result="pass"/><test-case name="36359RegexTest_42.v tokoe:valid" result="pass"/><test-case name="36360RegexTest_63 tokoe:valid" result="pass"/><test-case name="36361RegexTest_63.i tokoe:invalid" result="pass"/><test-case name="36362RegexTest_66 tokoe:valid" result="pass"/><test-case name="36363RegexTest_66.i tokoe:invalid" result="pass"/><test-case name="36364RegexTest_67 tokoe:valid" result="pass"/><test-case name="36365RegexTest_67.i tokoe:invalid" result="pass"/><test-case name="36366RegexTest_68 tokoe:valid" result="pass"/><test-case name="36367RegexTest_68.i tokoe:invalid" result="pass"/><test-case name="36368RegexTest_69 tokoe:valid" result="pass"/><test-case name="36369RegexTest_69.i tokoe:invalid" result="pass"/><test-case name="36370RegexTest_70 tokoe:valid" result="pass"/><test-case name="36371RegexTest_70.i tokoe:invalid" result="pass"/><test-case name="36372RegexTest_71 tokoe:valid" result="pass"/><test-case name="36373RegexTest_71.i tokoe:invalid" result="pass"/><test-case name="36374RegexTest_72 tokoe:valid" result="pass"/><test-case name="36375RegexTest_72.v tokoe:valid" result="pass"/><test-case name="36376RegexTest_73 tokoe:valid" result="pass"/><test-case name="36377RegexTest_73.v tokoe:valid" result="pass"/><test-case name="36378RegexTest_74 tokoe:valid" result="pass"/><test-case name="36379RegexTest_74.i tokoe:invalid" result="pass"/><test-case name="36380RegexTest_75 tokoe:valid" result="pass"/><test-case name="36381RegexTest_75.i tokoe:invalid" result="pass"/><test-case name="36382RegexTest_76 tokoe:valid" result="pass"/><test-case name="36383RegexTest_76.i tokoe:invalid" result="pass"/><test-case name="36384RegexTest_77 tokoe:valid" result="pass"/><test-case name="36385RegexTest_77.i tokoe:invalid" result="pass"/><test-case name="36386RegexTest_78 tokoe:valid" result="pass"/><test-case name="36387RegexTest_78.i tokoe:invalid" result="pass"/><test-case name="36388RegexTest_79 tokoe:valid" result="pass"/><test-case name="36389RegexTest_79.i tokoe:invalid" result="pass"/><test-case name="36390RegexTest_80 tokoe:valid" result="pass"/><test-case name="36391RegexTest_80.v tokoe:valid" result="pass"/><test-case name="36392RegexTest_81 tokoe:valid" result="pass"/><test-case name="36393RegexTest_81.v tokoe:valid" result="pass"/><test-case name="36394RegexTest_117 tokoe:valid" result="pass"/><test-case name="36395RegexTest_117.i tokoe:invalid" result="pass"/><test-case name="36396RegexTest_118 tokoe:valid" result="pass"/><test-case name="36397RegexTest_118.i tokoe:invalid" result="pass"/><test-case name="36398RegexTest_175 tokoe:valid" result="pass"/><test-case name="36399RegexTest_175.i tokoe:invalid" result="pass"/><test-case name="36400RegexTest_176 tokoe:valid" result="pass"/><test-case name="36401RegexTest_176.i tokoe:invalid" result="pass"/><test-case name="36402RegexTest_177 tokoe:valid" result="pass"/><test-case name="36403RegexTest_177.i tokoe:invalid" result="pass"/><test-case name="36404RegexTest_180 tokoe:valid" result="pass"/><test-case name="36405RegexTest_180.i tokoe:invalid" result="pass"/><test-case name="36406RegexTest_181 tokoe:valid" result="pass"/><test-case name="36407RegexTest_181.i tokoe:invalid" result="pass"/><test-case name="36408RegexTest_182 tokoe:valid" result="pass"/><test-case name="36409RegexTest_182.i tokoe:invalid" result="pass"/><test-case name="36410RegexTest_234 tokoe:valid" result="pass"/><test-case name="36411RegexTest_234.v tokoe:valid" result="pass"/><test-case name="36412RegexTest_235 tokoe:valid" result="pass"/><test-case name="36413RegexTest_235.i tokoe:invalid" result="pass"/><test-case name="36414RegexTest_236 tokoe:valid" result="pass"/><test-case name="36415RegexTest_236.i tokoe:invalid" result="pass"/><test-case name="36416RegexTest_239 tokoe:valid" result="pass"/><test-case name="36417RegexTest_239.i tokoe:invalid" result="pass"/><test-case name="36418RegexTest_250 tokoe:valid" result="pass"/><test-case name="36419RegexTest_250.i tokoe:invalid" result="pass"/><test-case name="36420RegexTest_251 tokoe:valid" result="pass"/><test-case name="36421RegexTest_251.i tokoe:invalid" result="pass"/><test-case name="36422RegexTest_252 tokoe:valid" result="pass"/><test-case name="36423RegexTest_252.i tokoe:invalid" result="pass"/><test-case name="36424RegexTest_253 tokoe:valid" result="pass"/><test-case name="36425RegexTest_253.i tokoe:invalid" result="pass"/><test-case name="36426RegexTest_254 tokoe:valid" result="pass"/><test-case name="36427RegexTest_254.i tokoe:invalid" result="pass"/><test-case name="36428RegexTest_255 tokoe:valid" result="pass"/><test-case name="36429RegexTest_255.i tokoe:invalid" result="pass"/><test-case name="36430RegexTest_259 tokoe:valid" result="pass"/><test-case name="36431RegexTest_259.v tokoe:valid" result="pass"/><test-case name="36432RegexTest_260 tokoe:valid" result="pass"/><test-case name="36433RegexTest_260.v tokoe:valid" result="pass"/><test-case name="36434RegexTest_261 tokoe:valid" result="pass"/><test-case name="36435RegexTest_261.v tokoe:valid" result="pass"/><test-case name="36436RegexTest_262 tokoe:valid" result="pass"/><test-case name="36437RegexTest_262.v tokoe:valid" result="pass"/><test-case name="36438RegexTest_263 tokoe:valid" result="pass"/><test-case name="36439RegexTest_263.v tokoe:valid" result="pass"/><test-case name="36440RegexTest_264 tokoe:valid" result="pass"/><test-case name="36441RegexTest_264.v tokoe:valid" result="pass"/><test-case name="36442RegexTest_267 tokoe:valid" result="pass"/><test-case name="36443RegexTest_267.i tokoe:invalid" result="pass"/><test-case name="36444RegexTest_268 tokoe:valid" result="pass"/><test-case name="36445RegexTest_268.i tokoe:invalid" result="pass"/><test-case name="36446RegexTest_269 tokoe:valid" result="pass"/><test-case name="36447RegexTest_269.i tokoe:invalid" result="pass"/><test-case name="36448RegexTest_270 tokoe:valid" result="pass"/><test-case name="36449RegexTest_270.i tokoe:invalid" result="pass"/><test-case name="36450RegexTest_271 tokoe:valid" result="pass"/><test-case name="36451RegexTest_271.i tokoe:invalid" result="pass"/><test-case name="36452RegexTest_272 tokoe:valid" result="pass"/><test-case name="36453RegexTest_272.i tokoe:invalid" result="pass"/><test-case name="36454RegexTest_273 tokoe:valid" result="pass"/><test-case name="36455RegexTest_273.i tokoe:invalid" result="pass"/><test-case name="36456RegexTest_274 tokoe:valid" result="pass"/><test-case name="36457RegexTest_274.i tokoe:invalid" result="pass"/><test-case name="36458RegexTest_275 tokoe:valid" result="pass"/><test-case name="36459RegexTest_275.i tokoe:invalid" result="pass"/><test-case name="36460RegexTest_276 tokoe:valid" result="pass"/><test-case name="36461RegexTest_276.i tokoe:invalid" result="pass"/><test-case name="36462RegexTest_277 tokoe:valid" result="pass"/><test-case name="36463RegexTest_277.i tokoe:invalid" result="pass"/><test-case name="36464RegexTest_278 tokoe:valid" result="pass"/><test-case name="36465RegexTest_278.i tokoe:invalid" result="pass"/><test-case name="36466RegexTest_279 tokoe:valid" result="pass"/><test-case name="36467RegexTest_279.i tokoe:invalid" result="pass"/><test-case name="36468RegexTest_280 tokoe:valid" result="pass"/><test-case name="36469RegexTest_280.i tokoe:invalid" result="pass"/><test-case name="36470RegexTest_281 tokoe:valid" result="pass"/><test-case name="36471RegexTest_281.i tokoe:invalid" result="pass"/><test-case name="36472RegexTest_282 tokoe:valid" result="pass"/><test-case name="36473RegexTest_282.i tokoe:invalid" result="pass"/><test-case name="36474RegexTest_283 tokoe:valid" result="pass"/><test-case name="36475RegexTest_283.i tokoe:invalid" result="pass"/><test-case name="36476RegexTest_284 tokoe:valid" result="pass"/><test-case name="36477RegexTest_284.i tokoe:invalid" result="pass"/><test-case name="36478RegexTest_285 tokoe:valid" result="pass"/><test-case name="36479RegexTest_285.i tokoe:invalid" result="pass"/><test-case name="36480RegexTest_286 tokoe:valid" result="pass"/><test-case name="36481RegexTest_286.i tokoe:invalid" result="pass"/><test-case name="36482RegexTest_319 tokoe:valid" result="pass"/><test-case name="36483RegexTest_319.v tokoe:valid" result="pass"/><test-case name="36484RegexTest_322 tokoe:valid" result="fail"/><test-case name="36485RegexTest_322.i tokoe:invalid" result="pass"/><test-case name="36486RegexTest_323 tokoe:valid" result="fail"/><test-case name="36487RegexTest_323.i tokoe:invalid" result="pass"/><test-case name="36488RegexTest_324 tokoe:valid" result="fail"/><test-case name="36489RegexTest_324.i tokoe:invalid" result="pass"/><test-case name="36490RegexTest_325 tokoe:valid" result="fail"/><test-case name="36491RegexTest_325.i tokoe:invalid" result="pass"/><test-case name="36492RegexTest_326 tokoe:valid" result="fail"/><test-case name="36493RegexTest_326.i tokoe:invalid" result="pass"/><test-case name="36494RegexTest_327 tokoe:valid" result="fail"/><test-case name="36495RegexTest_327.i tokoe:invalid" result="pass"/><test-case name="36496RegexTest_328 tokoe:valid" result="fail"/><test-case name="36497RegexTest_328.i tokoe:invalid" result="pass"/><test-case name="36498RegexTest_329 tokoe:valid" result="fail"/><test-case name="36499RegexTest_329.i tokoe:invalid" result="pass"/><test-case name="36500RegexTest_332 tokoe:valid" result="fail"/><test-case name="36501RegexTest_332.i tokoe:invalid" result="pass"/><test-case name="36502RegexTest_333 tokoe:valid" result="fail"/><test-case name="36503RegexTest_333.i tokoe:invalid" result="pass"/><test-case name="36504RegexTest_334 tokoe:valid" result="fail"/><test-case name="36505RegexTest_334.i tokoe:invalid" result="pass"/><test-case name="36506RegexTest_335 tokoe:valid" result="fail"/><test-case name="36507RegexTest_335.i tokoe:invalid" result="pass"/><test-case name="36508RegexTest_336 tokoe:valid" result="fail"/><test-case name="36509RegexTest_336.i tokoe:invalid" result="pass"/><test-case name="36510RegexTest_337 tokoe:valid" result="fail"/><test-case name="36511RegexTest_337.i tokoe:invalid" result="pass"/><test-case name="36512RegexTest_339 tokoe:valid" result="fail"/><test-case name="36513RegexTest_339.i tokoe:invalid" result="pass"/><test-case name="36514RegexTest_340 tokoe:valid" result="fail"/><test-case name="36515RegexTest_340.i tokoe:invalid" result="pass"/><test-case name="36516RegexTest_341 tokoe:valid" result="fail"/><test-case name="36517RegexTest_341.i tokoe:invalid" result="pass"/><test-case name="36518RegexTest_342 tokoe:valid" result="fail"/><test-case name="36519RegexTest_342.i tokoe:invalid" result="pass"/><test-case name="36520RegexTest_343 tokoe:valid" result="fail"/><test-case name="36521RegexTest_343.i tokoe:invalid" result="pass"/><test-case name="36522RegexTest_344 tokoe:valid" result="fail"/><test-case name="36523RegexTest_344.i tokoe:invalid" result="pass"/><test-case name="36524RegexTest_345 tokoe:valid" result="fail"/><test-case name="36525RegexTest_345.i tokoe:invalid" result="pass"/><test-case name="36526RegexTest_346 tokoe:valid" result="fail"/><test-case name="36527RegexTest_346.i tokoe:invalid" result="pass"/><test-case name="36528RegexTest_347 tokoe:valid" result="fail"/><test-case name="36529RegexTest_347.i tokoe:invalid" result="pass"/><test-case name="36530RegexTest_348 tokoe:valid" result="fail"/><test-case name="36531RegexTest_348.i tokoe:invalid" result="pass"/><test-case name="36532RegexTest_349 tokoe:valid" result="fail"/><test-case name="36533RegexTest_349.i tokoe:invalid" result="pass"/><test-case name="36534RegexTest_350 tokoe:valid" result="fail"/><test-case name="36535RegexTest_350.i tokoe:invalid" result="pass"/><test-case name="36536RegexTest_352 tokoe:valid" result="fail"/><test-case name="36537RegexTest_352.i tokoe:invalid" result="pass"/><test-case name="36538RegexTest_353 tokoe:valid" result="fail"/><test-case name="36539RegexTest_353.i tokoe:invalid" result="pass"/><test-case name="36540RegexTest_354 tokoe:valid" result="fail"/><test-case name="36541RegexTest_354.i tokoe:invalid" result="pass"/><test-case name="36542RegexTest_356 tokoe:valid" result="fail"/><test-case name="36543RegexTest_356.i tokoe:invalid" result="pass"/><test-case name="36544RegexTest_357 tokoe:valid" result="fail"/><test-case name="36545RegexTest_357.i tokoe:invalid" result="pass"/><test-case name="36546RegexTest_358 tokoe:valid" result="fail"/><test-case name="36547RegexTest_358.i tokoe:invalid" result="pass"/><test-case name="36548RegexTest_359 tokoe:valid" result="fail"/><test-case name="36549RegexTest_359.i tokoe:invalid" result="pass"/><test-case name="36550RegexTest_363 tokoe:valid" result="fail"/><test-case name="36551RegexTest_363.i tokoe:invalid" result="pass"/><test-case name="36552RegexTest_364 tokoe:valid" result="fail"/><test-case name="36553RegexTest_364.i tokoe:invalid" result="pass"/><test-case name="36554RegexTest_365 tokoe:valid" result="fail"/><test-case name="36555RegexTest_365.i tokoe:invalid" result="pass"/><test-case name="36556RegexTest_367 tokoe:valid" result="fail"/><test-case name="36557RegexTest_367.i tokoe:invalid" result="pass"/><test-case name="36558RegexTest_370 tokoe:valid" result="fail"/><test-case name="36559RegexTest_370.i tokoe:invalid" result="pass"/><test-case name="36560RegexTest_371 tokoe:valid" result="fail"/><test-case name="36561RegexTest_371.i tokoe:invalid" result="pass"/><test-case name="36562RegexTest_372 tokoe:valid" result="fail"/><test-case name="36563RegexTest_372.i tokoe:invalid" result="pass"/><test-case name="36564RegexTest_373 tokoe:valid" result="fail"/><test-case name="36565RegexTest_373.i tokoe:invalid" result="pass"/><test-case name="36566RegexTest_374 tokoe:valid" result="fail"/><test-case name="36567RegexTest_374.i tokoe:invalid" result="pass"/><test-case name="36568RegexTest_375 tokoe:valid" result="fail"/><test-case name="36569RegexTest_375.i tokoe:invalid" result="pass"/><test-case name="36570RegexTest_420 tokoe:valid" result="fail"/><test-case name="36571RegexTest_420.i tokoe:invalid" result="pass"/><test-case name="36572RegexTest_421 tokoe:valid" result="fail"/><test-case name="36573RegexTest_421.i tokoe:invalid" result="pass"/><test-case name="36574RegexTest_422 tokoe:valid" result="fail"/><test-case name="36575RegexTest_422.i tokoe:invalid" result="pass"/><test-case name="36576RegexTest_424 tokoe:valid" result="fail"/><test-case name="36577RegexTest_424.i tokoe:invalid" result="pass"/><test-case name="36578RegexTest_425 tokoe:valid" result="fail"/><test-case name="36579RegexTest_425.i tokoe:invalid" result="pass"/><test-case name="36580RegexTest_426 tokoe:valid" result="fail"/><test-case name="36581RegexTest_426.i tokoe:invalid" result="pass"/><test-case name="36582RegexTest_429 tokoe:valid" result="fail"/><test-case name="36583RegexTest_429.i tokoe:invalid" result="pass"/><test-case name="36584RegexTest_430 tokoe:valid" result="fail"/><test-case name="36585RegexTest_430.i tokoe:invalid" result="pass"/><test-case name="36586RegexTest_433 tokoe:valid" result="fail"/><test-case name="36587RegexTest_433.i tokoe:invalid" result="pass"/><test-case name="36588RegexTest_434 tokoe:valid" result="fail"/><test-case name="36589RegexTest_434.i tokoe:invalid" result="pass"/><test-case name="36590RegexTest_438 tokoe:valid" result="fail"/><test-case name="36591RegexTest_438.i tokoe:invalid" result="pass"/><test-case name="36592RegexTest_439 tokoe:valid" result="fail"/><test-case name="36593RegexTest_439.i tokoe:invalid" result="pass"/><test-case name="36594RegexTest_459 tokoe:valid" result="fail"/><test-case name="36595RegexTest_459.i tokoe:invalid" result="pass"/><test-case name="36596RegexTest_460 tokoe:valid" result="fail"/><test-case name="36597RegexTest_460.i tokoe:invalid" result="pass"/><test-case name="36598RegexTest_461 tokoe:valid" result="fail"/><test-case name="36599RegexTest_461.i tokoe:invalid" result="pass"/><test-case name="36600RegexTest_462 tokoe:valid" result="fail"/><test-case name="36601RegexTest_462.i tokoe:invalid" result="pass"/><test-case name="36602RegexTest_466 tokoe:valid" result="pass"/><test-case name="36603RegexTest_466.i tokoe:invalid" result="pass"/><test-case name="36604RegexTest_467 tokoe:valid" result="pass"/><test-case name="36605RegexTest_467.i tokoe:invalid" result="pass"/><test-case name="36606RegexTest_468 tokoe:valid" result="pass"/><test-case name="36607RegexTest_468.i tokoe:invalid" result="pass"/><test-case name="36608RegexTest_474 tokoe:valid" result="pass"/><test-case name="36609RegexTest_474.i tokoe:invalid" result="pass"/><test-case name="36610RegexTest_475 tokoe:valid" result="fail"/><test-case name="36611RegexTest_475.i tokoe:invalid" result="pass"/><test-case name="36612RegexTest_476 tokoe:valid" result="fail"/><test-case name="36613RegexTest_476.i tokoe:invalid" result="pass"/><test-case name="36614RegexTest_488 tokoe:valid" result="pass"/><test-case name="36615RegexTest_488.i tokoe:invalid" result="pass"/><test-case name="36616RegexTest_489 tokoe:valid" result="pass"/><test-case name="36617RegexTest_489.i tokoe:invalid" result="pass"/><test-case name="36618RegexTest_491 tokoe:valid" result="pass"/><test-case name="36619RegexTest_491.i tokoe:invalid" result="pass"/><test-case name="36620RegexTest_492 tokoe:valid" result="pass"/><test-case name="36621RegexTest_492.i tokoe:invalid" result="pass"/><test-case name="36622RegexTest_493 tokoe:valid" result="pass"/><test-case name="36623RegexTest_493.i tokoe:invalid" result="pass"/><test-case name="36624RegexTest_494 tokoe:valid" result="pass"/><test-case name="36625RegexTest_494.i tokoe:invalid" result="pass"/><test-case name="36626RegexTest_495 tokoe:valid" result="pass"/><test-case name="36627RegexTest_495.v tokoe:valid" result="pass"/><test-case name="36628RegexTest_496 tokoe:valid" result="pass"/><test-case name="36629RegexTest_496.i tokoe:invalid" result="pass"/><test-case name="36630RegexTest_497 tokoe:valid" result="pass"/><test-case name="36631RegexTest_497.i tokoe:invalid" result="pass"/><test-case name="36632RegexTest_498 tokoe:valid" result="pass"/><test-case name="36633RegexTest_498.i tokoe:invalid" result="pass"/><test-case name="36634RegexTest_499 tokoe:valid" result="pass"/><test-case name="36635RegexTest_499.i tokoe:invalid" result="pass"/><test-case name="36636RegexTest_500 tokoe:valid" result="pass"/><test-case name="36637RegexTest_500.i tokoe:invalid" result="pass"/><test-case name="36638RegexTest_501 tokoe:valid" result="pass"/><test-case name="36639RegexTest_501.i tokoe:invalid" result="pass"/><test-case name="36640RegexTest_502 tokoe:valid" result="pass"/><test-case name="36641RegexTest_502.i tokoe:invalid" result="pass"/><test-case name="36642RegexTest_503 tokoe:valid" result="pass"/><test-case name="36643RegexTest_503.i tokoe:invalid" result="pass"/><test-case name="36644RegexTest_504 tokoe:valid" result="pass"/><test-case name="36645RegexTest_504.i tokoe:invalid" result="pass"/><test-case name="36646RegexTest_506 tokoe:valid" result="pass"/><test-case name="36647RegexTest_506.i tokoe:invalid" result="pass"/><test-case name="36648RegexTest_508 tokoe:valid" result="pass"/><test-case name="36649RegexTest_508.i tokoe:invalid" result="pass"/><test-case name="36650RegexTest_513 tokoe:valid" result="pass"/><test-case name="36651RegexTest_513.v tokoe:valid" result="pass"/><test-case name="36652RegexTest_514 tokoe:valid" result="pass"/><test-case name="36653RegexTest_514.i tokoe:invalid" result="pass"/><test-case name="36654RegexTest_515 tokoe:valid" result="pass"/><test-case name="36655RegexTest_515.v tokoe:valid" result="pass"/><test-case name="36656RegexTest_520 tokoe:valid" result="pass"/><test-case name="36657RegexTest_520.i tokoe:invalid" result="pass"/><test-case name="36658RegexTest_522 tokoe:valid" result="pass"/><test-case name="36659RegexTest_522.v tokoe:valid" result="pass"/><test-case name="36660RegexTest_525 tokoe:valid" result="pass"/><test-case name="36661RegexTest_525.v tokoe:valid" result="pass"/><test-case name="36662RegexTest_528 tokoe:valid" result="pass"/><test-case name="36663RegexTest_528.i tokoe:invalid" result="pass"/><test-case name="36664RegexTest_529 tokoe:valid" result="pass"/><test-case name="36665RegexTest_529.i tokoe:invalid" result="pass"/><test-case name="36666RegexTest_530 tokoe:valid" result="pass"/><test-case name="36667RegexTest_530.v tokoe:valid" result="pass"/><test-case name="36668RegexTest_531 tokoe:valid" result="pass"/><test-case name="36669RegexTest_531.i tokoe:invalid" result="pass"/><test-case name="36670RegexTest_532 tokoe:valid" result="pass"/><test-case name="36671RegexTest_532.i tokoe:invalid" result="pass"/><test-case name="36672RegexTest_533 tokoe:valid" result="pass"/><test-case name="36673RegexTest_533.i tokoe:invalid" result="pass"/><test-case name="36674RegexTest_535 tokoe:valid" result="pass"/><test-case name="36675RegexTest_535.v tokoe:valid" result="pass"/><test-case name="36676RegexTest_536 tokoe:valid" result="pass"/><test-case name="36677RegexTest_537 tokoe:valid" result="pass"/><test-case name="36678RegexTest_538 tokoe:valid" result="pass"/><test-case name="36679RegexTest_539 tokoe:valid" result="pass"/><test-case name="36680RegexTest_540 tokoe:valid" result="pass"/><test-case name="36681RegexTest_541 tokoe:valid" result="pass"/><test-case name="36682RegexTest_542 tokoe:valid" result="pass"/><test-case name="36683RegexTest_543 tokoe:valid" result="pass"/><test-case name="36684RegexTest_544 tokoe:valid" result="pass"/><test-case name="36685RegexTest_545 tokoe:valid" result="pass"/><test-case name="36686RegexTest_546 tokoe:valid" result="pass"/><test-case name="36687RegexTest_547 tokoe:valid" result="pass"/><test-case name="36688RegexTest_548 tokoe:valid" result="pass"/><test-case name="36689RegexTest_549 tokoe:valid" result="pass"/><test-case name="36690RegexTest_550 tokoe:valid" result="pass"/><test-case name="36691RegexTest_551 tokoe:valid" result="pass"/><test-case name="36692RegexTest_552 tokoe:valid" result="pass"/><test-case name="36693RegexTest_553 tokoe:valid" result="pass"/><test-case name="36694RegexTest_554 tokoe:valid" result="pass"/><test-case name="36695RegexTest_555 tokoe:valid" result="pass"/><test-case name="36696RegexTest_556 tokoe:valid" result="pass"/><test-case name="36697RegexTest_557 tokoe:valid" result="pass"/><test-case name="36698RegexTest_558 tokoe:valid" result="pass"/><test-case name="36699RegexTest_559 tokoe:valid" result="pass"/><test-case name="36700RegexTest_560 tokoe:valid" result="pass"/><test-case name="36701RegexTest_561 tokoe:valid" result="pass"/><test-case name="36702RegexTest_562 tokoe:valid" result="pass"/><test-case name="36703RegexTest_563 tokoe:valid" result="pass"/><test-case name="36704RegexTest_564 tokoe:valid" result="pass"/><test-case name="36705RegexTest_565 tokoe:valid" result="pass"/><test-case name="36706RegexTest_566 tokoe:valid" result="pass"/><test-case name="36707RegexTest_567 tokoe:valid" result="pass"/><test-case name="36708RegexTest_568 tokoe:valid" result="pass"/><test-case name="36709RegexTest_569 tokoe:valid" result="pass"/><test-case name="36710RegexTest_570 tokoe:valid" result="pass"/><test-case name="36711RegexTest_571 tokoe:valid" result="pass"/><test-case name="36712RegexTest_572 tokoe:valid" result="pass"/><test-case name="36713RegexTest_573 tokoe:valid" result="pass"/><test-case name="36714RegexTest_574 tokoe:valid" result="pass"/><test-case name="36715RegexTest_575 tokoe:valid" result="pass"/><test-case name="36716RegexTest_576 tokoe:valid" result="pass"/><test-case name="36717RegexTest_577 tokoe:valid" result="pass"/><test-case name="36718RegexTest_578 tokoe:valid" result="pass"/><test-case name="36719RegexTest_579 tokoe:valid" result="pass"/><test-case name="36720RegexTest_580 tokoe:valid" result="pass"/><test-case name="36721RegexTest_581 tokoe:valid" result="pass"/><test-case name="36722RegexTest_582 tokoe:valid" result="pass"/><test-case name="36723RegexTest_583 tokoe:invalid" result="fail"/><test-case name="36724RegexTest_584 tokoe:invalid" result="pass"/><test-case name="36725RegexTest_585 tokoe:invalid" result="pass"/><test-case name="36726RegexTest_588 tokoe:valid" result="pass"/><test-case name="36727RegexTest_589 tokoe:valid" result="pass"/><test-case name="36728RegexTest_590 tokoe:valid" result="pass"/><test-case name="36729RegexTest_591 tokoe:valid" result="pass"/><test-case name="36730RegexTest_606 tokoe:valid" result="pass"/><test-case name="36731RegexTest_607 tokoe:valid" result="pass"/><test-case name="36732RegexTest_608 tokoe:valid" result="pass"/><test-case name="36733RegexTest_609 tokoe:valid" result="pass"/><test-case name="36734RegexTest_610 tokoe:valid" result="pass"/><test-case name="36735RegexTest_611 tokoe:valid" result="pass"/><test-case name="36736RegexTest_612 tokoe:valid" result="pass"/><test-case name="36737RegexTest_613 tokoe:valid" result="pass"/><test-case name="36738RegexTest_614 tokoe:valid" result="pass"/><test-case name="36739RegexTest_615 tokoe:valid" result="pass"/><test-case name="36740RegexTest_616 tokoe:valid" result="pass"/><test-case name="36741RegexTest_617 tokoe:valid" result="pass"/><test-case name="36742RegexTest_618 tokoe:valid" result="pass"/><test-case name="36743RegexTest_619 tokoe:valid" result="pass"/><test-case name="36744RegexTest_620 tokoe:valid" result="pass"/><test-case name="36745RegexTest_621 tokoe:valid" result="pass"/><test-case name="36746RegexTest_622 tokoe:valid" result="pass"/><test-case name="36747RegexTest_623 tokoe:valid" result="pass"/><test-case name="36748RegexTest_624 tokoe:valid" result="pass"/><test-case name="36749RegexTest_625 tokoe:valid" result="pass"/><test-case name="36750RegexTest_626 tokoe:valid" result="pass"/><test-case name="36751RegexTest_627 tokoe:valid" result="pass"/><test-case name="36752RegexTest_628 tokoe:valid" result="pass"/><test-case name="36753RegexTest_629 tokoe:valid" result="pass"/><test-case name="36754RegexTest_630 tokoe:valid" result="pass"/><test-case name="36755RegexTest_631 tokoe:valid" result="pass"/><test-case name="36756RegexTest_632 tokoe:valid" result="pass"/><test-case name="36757RegexTest_633 tokoe:invalid" result="pass"/><test-case name="36758RegexTest_634 tokoe:invalid" result="pass"/><test-case name="36759RegexTest_635 tokoe:valid" result="pass"/><test-case name="36760RegexTest_636 tokoe:invalid" result="pass"/><test-case name="36761RegexTest_637 tokoe:valid" result="pass"/><test-case name="36762RegexTest_638 tokoe:valid" result="pass"/><test-case name="36763RegexTest_639 tokoe:valid" result="pass"/><test-case name="36764RegexTest_640 tokoe:valid" result="pass"/><test-case name="36765RegexTest_641 tokoe:invalid" result="pass"/><test-case name="36766RegexTest_642 tokoe:invalid" result="pass"/><test-case name="36767RegexTest_643 tokoe:valid" result="pass"/><test-case name="36768RegexTest_644 tokoe:valid" result="pass"/><test-case name="36769RegexTest_645 tokoe:valid" result="pass"/><test-case name="36770RegexTest_646 tokoe:valid" result="pass"/><test-case name="36771RegexTest_647 tokoe:invalid" result="pass"/><test-case name="36772RegexTest_649 tokoe:valid" result="pass"/><test-case name="36773RegexTest_650 tokoe:valid" result="pass"/><test-case name="36774RegexTest_651 tokoe:valid" result="pass"/><test-case name="36775RegexTest_652 tokoe:valid" result="pass"/><test-case name="36776RegexTest_653 tokoe:valid" result="pass"/><test-case name="36777RegexTest_654 tokoe:valid" result="pass"/><test-case name="36778RegexTest_656 tokoe:valid" result="pass"/><test-case name="36779RegexTest_657 tokoe:valid" result="pass"/><test-case name="36780RegexTest_658 tokoe:valid" result="pass"/><test-case name="36781RegexTest_659 tokoe:valid" result="pass"/><test-case name="36782RegexTest_660 tokoe:valid" result="pass"/><test-case name="36783RegexTest_661 tokoe:valid" result="pass"/><test-case name="36784RegexTest_662 tokoe:valid" result="pass"/><test-case name="36785RegexTest_663 tokoe:valid" result="pass"/><test-case name="36786RegexTest_664 tokoe:valid" result="pass"/><test-case name="36787RegexTest_665 tokoe:valid" result="pass"/><test-case name="36788RegexTest_666 tokoe:valid" result="pass"/><test-case name="36789RegexTest_667 tokoe:valid" result="pass"/><test-case name="36790RegexTest_668 tokoe:valid" result="pass"/><test-case name="36791RegexTest_669 tokoe:valid" result="pass"/><test-case name="36792RegexTest_670 tokoe:valid" result="pass"/><test-case name="36793RegexTest_671 tokoe:valid" result="pass"/><test-case name="36794RegexTest_672 tokoe:valid" result="pass"/><test-case name="36795RegexTest_673 tokoe:valid" result="pass"/><test-case name="36796RegexTest_674 tokoe:valid" result="pass"/><test-case name="36797RegexTest_675 tokoe:valid" result="pass"/><test-case name="36798RegexTest_676 tokoe:valid" result="pass"/><test-case name="36799RegexTest_677 tokoe:valid" result="pass"/><test-case name="36800RegexTest_678 tokoe:valid" result="pass"/><test-case name="36801RegexTest_679 tokoe:valid" result="pass"/><test-case name="36802RegexTest_680 tokoe:valid" result="pass"/><test-case name="36803RegexTest_681 tokoe:valid" result="pass"/><test-case name="36804RegexTest_682 tokoe:valid" result="pass"/><test-case name="36805RegexTest_683 tokoe:valid" result="pass"/><test-case name="36806RegexTest_684 tokoe:valid" result="pass"/><test-case name="36807RegexTest_685 tokoe:valid" result="pass"/><test-case name="36808RegexTest_686 tokoe:valid" result="pass"/><test-case name="36809RegexTest_687 tokoe:valid" result="pass"/><test-case name="36810RegexTest_689 tokoe:valid" result="pass"/><test-case name="36811RegexTest_690 tokoe:valid" result="pass"/><test-case name="36812RegexTest_691 tokoe:valid" result="pass"/><test-case name="36813RegexTest_692 tokoe:valid" result="pass"/><test-case name="36814RegexTest_693 tokoe:valid" result="pass"/><test-case name="36815RegexTest_694 tokoe:valid" result="pass"/><test-case name="36816RegexTest_695 tokoe:valid" result="pass"/><test-case name="36817RegexTest_699 tokoe:invalid" result="fail"/><test-case name="36818RegexTest_708 tokoe:valid" result="pass"/><test-case name="36819RegexTest_709 tokoe:valid" result="pass"/><test-case name="36820RegexTest_710 tokoe:valid" result="pass"/><test-case name="36821RegexTest_711 tokoe:valid" result="pass"/><test-case name="36822RegexTest_712 tokoe:valid" result="pass"/><test-case name="36823RegexTest_713 tokoe:valid" result="pass"/><test-case name="36824RegexTest_714 tokoe:valid" result="pass"/><test-case name="36825RegexTest_715 tokoe:valid" result="pass"/><test-case name="36826RegexTest_716 tokoe:valid" result="pass"/><test-case name="36827RegexTest_720 tokoe:valid" result="pass"/><test-case name="36828RegexTest_721 tokoe:valid" result="pass"/><test-case name="36829RegexTest_722 tokoe:valid" result="pass"/><test-case name="36830RegexTest_723 tokoe:valid" result="pass"/><test-case name="36831RegexTest_734 tokoe:valid" result="pass"/><test-case name="36832RegexTest_735 tokoe:valid" result="pass"/><test-case name="36833RegexTest_736 tokoe:valid" result="pass"/><test-case name="36834RegexTest_737 tokoe:valid" result="pass"/><test-case name="36835RegexTest_738 tokoe:valid" result="pass"/><test-case name="36836RegexTest_739 tokoe:valid" result="pass"/><test-case name="36837RegexTest_740 tokoe:valid" result="pass"/><test-case name="36838RegexTest_741 tokoe:valid" result="pass"/><test-case name="36839RegexTest_742 tokoe:valid" result="pass"/><test-case name="36840RegexTest_744 tokoe:valid" result="pass"/><test-case name="36841RegexTest_745 tokoe:valid" result="pass"/><test-case name="36842RegexTest_746 tokoe:valid" result="pass"/><test-case name="36843RegexTest_747 tokoe:valid" result="pass"/><test-case name="36844RegexTest_748 tokoe:valid" result="pass"/><test-case name="36845RegexTest_749 tokoe:valid" result="pass"/><test-case name="36846RegexTest_750 tokoe:valid" result="pass"/><test-case name="36847RegexTest_751 tokoe:valid" result="pass"/><test-case name="36848RegexTest_752 tokoe:invalid" result="fail"/><test-case name="36849RegexTest_753 tokoe:invalid" result="pass"/><test-case name="36850RegexTest_754 tokoe:invalid" result="pass"/><test-case name="36851RegexTest_757 tokoe:valid" result="pass"/><test-case name="36852RegexTest_758 tokoe:valid" result="pass"/><test-case name="36853RegexTest_759 tokoe:valid" result="pass"/><test-case name="36854RegexTest_760 tokoe:valid" result="pass"/><test-case name="36855RegexTest_763 tokoe:valid" result="pass"/><test-case name="36856RegexTest_764 tokoe:valid" result="pass"/><test-case name="36857RegexTest_765 tokoe:valid" result="pass"/><test-case name="36858RegexTest_766 tokoe:invalid" result="pass"/><test-case name="36859RegexTest_767 tokoe:invalid" result="pass"/><test-case name="36860RegexTest_768 tokoe:valid" result="pass"/><test-case name="36861RegexTest_769 tokoe:invalid" result="pass"/><test-case name="36862RegexTest_770 tokoe:valid" result="pass"/><test-case name="36863RegexTest_771 tokoe:valid" result="pass"/><test-case name="36864RegexTest_772 tokoe:valid" result="pass"/><test-case name="36865RegexTest_773 tokoe:valid" result="pass"/><test-case name="36866RegexTest_774 tokoe:invalid" result="pass"/><test-case name="36867RegexTest_775 tokoe:invalid" result="pass"/><test-case name="36868RegexTest_776 tokoe:valid" result="pass"/><test-case name="36869RegexTest_777 tokoe:valid" result="pass"/><test-case name="36870RegexTest_778 tokoe:valid" result="pass"/><test-case name="36871RegexTest_779 tokoe:valid" result="pass"/><test-case name="36872RegexTest_780 tokoe:invalid" result="pass"/><test-case name="36873RegexTest_784 tokoe:valid" result="pass"/><test-case name="36874RegexTest_785 tokoe:valid" result="pass"/><test-case name="36875RegexTest_786 tokoe:valid" result="pass"/><test-case name="36876RegexTest_787 tokoe:valid" result="pass"/><test-case name="36877RegexTest_788 tokoe:valid" result="pass"/><test-case name="36878RegexTest_789 tokoe:valid" result="pass"/><test-case name="36879RegexTest_792 tokoe:valid" result="pass"/><test-case name="36880RegexTest_793 tokoe:valid" result="pass"/><test-case name="36881RegexTest_794 tokoe:valid" result="pass"/><test-case name="36882RegexTest_795 tokoe:valid" result="pass"/><test-case name="36883RegexTest_796 tokoe:valid" result="pass"/><test-case name="36884RegexTest_797 tokoe:valid" result="pass"/><test-case name="36885RegexTest_798 tokoe:valid" result="pass"/><test-case name="36886RegexTest_799 tokoe:valid" result="pass"/><test-case name="36887RegexTest_800 tokoe:valid" result="pass"/><test-case name="36888RegexTest_801 tokoe:valid" result="pass"/><test-case name="36889RegexTest_802 tokoe:valid" result="pass"/><test-case name="36890RegexTest_803 tokoe:valid" result="pass"/><test-case name="36891RegexTest_804 tokoe:valid" result="pass"/><test-case name="36892RegexTest_805 tokoe:valid" result="pass"/><test-case name="36893RegexTest_806 tokoe:valid" result="pass"/><test-case name="36894RegexTest_807 tokoe:valid" result="pass"/><test-case name="36895RegexTest_808 tokoe:valid" result="pass"/><test-case name="36896RegexTest_809 tokoe:valid" result="pass"/><test-case name="36897RegexTest_810 tokoe:valid" result="pass"/><test-case name="36898RegexTest_811 tokoe:valid" result="pass"/><test-case name="36899RegexTest_812 tokoe:valid" result="pass"/><test-case name="36900RegexTest_813 tokoe:valid" result="pass"/><test-case name="36901RegexTest_814 tokoe:valid" result="pass"/><test-case name="36902RegexTest_815 tokoe:valid" result="pass"/><test-case name="36903RegexTest_816 tokoe:valid" result="pass"/><test-case name="36904RegexTest_817 tokoe:valid" result="pass"/><test-case name="36905RegexTest_818 tokoe:valid" result="pass"/><test-case name="36906RegexTest_819 tokoe:valid" result="pass"/><test-case name="36907RegexTest_820 tokoe:valid" result="pass"/><test-case name="36908RegexTest_821 tokoe:valid" result="pass"/><test-case name="36909RegexTest_822 tokoe:valid" result="pass"/><test-case name="36910RegexTest_823 tokoe:valid" result="pass"/><test-case name="36911RegexTest_825 tokoe:valid" result="pass"/><test-case name="36912RegexTest_828 tokoe:valid" result="pass"/><test-case name="36913RegexTest_829 tokoe:valid" result="pass"/><test-case name="36914RegexTest_830 tokoe:valid" result="pass"/><test-case name="36915RegexTest_831 tokoe:valid" result="pass"/><test-case name="36916RegexTest_832 tokoe:valid" result="pass"/><test-case name="36917RegexTest_833 tokoe:valid" result="pass"/><test-case name="36918RegexTest_834 tokoe:valid" result="pass"/><test-case name="36919RegexTest_835 tokoe:valid" result="pass"/><test-case name="36920RegexTest_849 tokoe:valid" result="pass"/><test-case name="36921RegexTest_850 tokoe:invalid" result="pass"/><test-case name="36922RegexTest_858 tokoe:valid" result="pass"/><test-case name="36923RegexTest_859 tokoe:valid" result="pass"/><test-case name="36924RegexTest_867 tokoe:valid" result="pass"/><test-case name="36925RegexTest_868 tokoe:valid" result="pass"/><test-case name="36926RegexTest_869 tokoe:valid" result="pass"/><test-case name="36927RegexTest_882 tokoe:valid" result="pass"/><test-case name="36928RegexTest_883 tokoe:valid" result="pass"/><test-case name="36929RegexTest_884 tokoe:valid" result="pass"/><test-case name="36930RegexTest_885 tokoe:valid" result="pass"/><test-case name="36931RegexTest_886 tokoe:valid" result="pass"/><test-case name="36932RegexTest_887 tokoe:valid" result="pass"/><test-case name="36933RegexTest_927 tokoe:valid" result="pass"/><test-case name="36934RegexTest_947 tokoe:valid" result="pass"/><test-case name="36935RegexTest_948 tokoe:valid" result="pass"/><test-case name="36936RegexTest_965 tokoe:invalid" result="pass"/><test-case name="36937RegexTest_966 tokoe:invalid" result="pass"/><test-case name="36938RegexTest_973 tokoe:valid" result="pass"/><test-case name="36939RegexTest_978 tokoe:valid" result="pass"/><test-case name="36940RegexTest_979 tokoe:valid" result="pass"/><test-case name="36941RegexTest_980 tokoe:valid" result="pass"/><test-case name="36942RegexTest_981 tokoe:valid" result="pass"/><test-case name="36943RegexTest_982 tokoe:valid" result="pass"/><test-case name="36944RegexTest_983 tokoe:valid" result="pass"/><test-case name="36945RegexTest_984 tokoe:valid" result="pass"/><test-case name="36946RegexTest_985 tokoe:valid" result="pass"/><test-case name="36947RegexTest_986 tokoe:valid" result="pass"/><test-case name="36948RegexTest_987 tokoe:valid" result="pass"/><test-case name="36949RegexTest_992 tokoe:invalid" result="pass"/><test-case name="36950RegexTest_993 tokoe:invalid" result="fail"/><test-case name="36951RegexTest_999 tokoe:invalid" result="pass"/><test-case name="36952RegexTest_1005 tokoe:valid" result="pass"/><test-case name="36953RegexTest_1006 tokoe:valid" result="pass"/><test-case name="36954RegexTest_1020 tokoe:valid" result="pass"/><test-case name="36955RegexTest_1021 tokoe:valid" result="pass"/><test-case name="36956RegexTest_1022 tokoe:valid" result="pass"/><test-case name="36957RegexTest_1023 tokoe:valid" result="pass"/><test-case name="36958RegexTest_1024 tokoe:valid" result="pass"/><test-case name="36959RegexTest_1025 tokoe:valid" result="pass"/><test-case name="36960RegexTest_1026 tokoe:valid" result="pass"/><test-case name="36961RegexTest_1027 tokoe:valid" result="pass"/><test-case name="36962RegexTest_1028 tokoe:valid" result="pass"/><test-case name="36963RegexTest_1029 tokoe:valid" result="pass"/><test-case name="36964RegexTest_1030 tokoe:valid" result="pass"/><test-case name="36965RegexTest_1031 tokoe:valid" result="pass"/><test-case name="36966RegexTest_1032 tokoe:valid" result="pass"/><test-case name="36967RegexTest_1033 tokoe:valid" result="pass"/><test-case name="36968RegexTest_1034 tokoe:valid" result="pass"/><test-case name="36969RegexTest_1035 tokoe:valid" result="pass"/><test-case name="36970RegexTest_1036 tokoe:valid" result="pass"/><test-case name="36971RegexTest_1037 tokoe:valid" result="pass"/><test-case name="36972RegexTest_1038 tokoe:valid" result="pass"/><test-case name="36973RegexTest_1039 tokoe:valid" result="pass"/><test-case name="36974RegexTest_1040 tokoe:valid" result="pass"/><test-case name="36975RegexTest_1041 tokoe:valid" result="pass"/><test-case name="36976RegexTest_1042 tokoe:valid" result="pass"/><test-case name="36977RegexTest_1043 tokoe:valid" result="pass"/><test-case name="36978RegexTest_1044 tokoe:valid" result="pass"/><test-case name="36979RegexTest_1045 tokoe:valid" result="pass"/><test-case name="36980RegexTest_1046 tokoe:valid" result="pass"/><test-case name="36981RegexTest_1047 tokoe:valid" result="pass"/><test-case name="36982RegexTest_1048 tokoe:valid" result="pass"/><test-case name="36983RegexTest_1049 tokoe:valid" result="pass"/><test-case name="36984RegexTest_1050 tokoe:valid" result="pass"/><test-case name="36985RegexTest_1051 tokoe:valid" result="pass"/><test-case name="36986RegexTest_1052 tokoe:valid" result="pass"/><test-case name="36987RegexTest_1053 tokoe:valid" result="pass"/><test-case name="36988RegexTest_1054 tokoe:valid" result="pass"/><test-case name="36989RegexTest_1055 tokoe:valid" result="pass"/><test-case name="36990RegexTest_1056 tokoe:valid" result="pass"/><test-case name="36991RegexTest_1057 tokoe:valid" result="pass"/><test-case name="36992RegexTest_1058 tokoe:valid" result="pass"/><test-case name="36993RegexTest_1059 tokoe:valid" result="pass"/><test-case name="36994RegexTest_1060 tokoe:valid" result="pass"/><test-case name="36995RegexTest_1061 tokoe:valid" result="pass"/><test-case name="36996RegexTest_1062 tokoe:valid" result="pass"/><test-case name="36997RegexTest_1063 tokoe:valid" result="pass"/><test-case name="36998RegexTest_1064 tokoe:valid" result="pass"/><test-case name="36999RegexTest_1065 tokoe:valid" result="pass"/><test-case name="37000RegexTest_1066 tokoe:valid" result="pass"/><test-case name="37001RegexTest_1067 tokoe:invalid" result="fail"/><test-case name="37002RegexTest_1068 tokoe:invalid" result="pass"/><test-case name="37003RegexTest_1069 tokoe:invalid" result="pass"/><test-case name="37004RegexTest_1072 tokoe:valid" result="pass"/><test-case name="37005RegexTest_1073 tokoe:valid" result="pass"/><test-case name="37006RegexTest_1074 tokoe:valid" result="pass"/><test-case name="37007RegexTest_1075 tokoe:valid" result="pass"/><test-case name="37008RegexTest_1090 tokoe:valid" result="pass"/><test-case name="37009RegexTest_1091 tokoe:valid" result="pass"/><test-case name="37010RegexTest_1092 tokoe:valid" result="pass"/><test-case name="37011RegexTest_1093 tokoe:valid" result="pass"/><test-case name="37012RegexTest_1094 tokoe:valid" result="pass"/><test-case name="37013RegexTest_1095 tokoe:valid" result="pass"/><test-case name="37014RegexTest_1096 tokoe:valid" result="pass"/><test-case name="37015RegexTest_1097 tokoe:valid" result="pass"/><test-case name="37016RegexTest_1098 tokoe:valid" result="pass"/><test-case name="37017RegexTest_1099 tokoe:valid" result="pass"/><test-case name="37018RegexTest_1100 tokoe:valid" result="pass"/><test-case name="37019RegexTest_1101 tokoe:valid" result="pass"/><test-case name="37020RegexTest_1102 tokoe:valid" result="pass"/><test-case name="37021RegexTest_1103 tokoe:valid" result="pass"/><test-case name="37022RegexTest_1104 tokoe:valid" result="pass"/><test-case name="37023RegexTest_1105 tokoe:valid" result="pass"/><test-case name="37024RegexTest_1106 tokoe:valid" result="pass"/><test-case name="37025RegexTest_1107 tokoe:valid" result="pass"/><test-case name="37026RegexTest_1108 tokoe:valid" result="pass"/><test-case name="37027RegexTest_1109 tokoe:valid" result="pass"/><test-case name="37028RegexTest_1110 tokoe:valid" result="pass"/><test-case name="37029RegexTest_1111 tokoe:valid" result="pass"/><test-case name="37030RegexTest_1112 tokoe:valid" result="pass"/><test-case name="37031RegexTest_1113 tokoe:valid" result="pass"/><test-case name="37032RegexTest_1114 tokoe:valid" result="pass"/><test-case name="37033RegexTest_1115 tokoe:valid" result="pass"/><test-case name="37034RegexTest_1116 tokoe:valid" result="pass"/><test-case name="37035RegexTest_1117 tokoe:invalid" result="pass"/><test-case name="37036RegexTest_1118 tokoe:invalid" result="pass"/><test-case name="37037RegexTest_1119 tokoe:valid" result="pass"/><test-case name="37038RegexTest_1120 tokoe:invalid" result="pass"/><test-case name="37039RegexTest_1121 tokoe:valid" result="pass"/><test-case name="37040RegexTest_1122 tokoe:valid" result="pass"/><test-case name="37041RegexTest_1123 tokoe:valid" result="pass"/><test-case name="37042RegexTest_1124 tokoe:valid" result="pass"/><test-case name="37043RegexTest_1125 tokoe:invalid" result="pass"/><test-case name="37044RegexTest_1126 tokoe:invalid" result="pass"/><test-case name="37045RegexTest_1127 tokoe:valid" result="pass"/><test-case name="37046RegexTest_1128 tokoe:valid" result="pass"/><test-case name="37047RegexTest_1129 tokoe:valid" result="pass"/><test-case name="37048RegexTest_1130 tokoe:valid" result="pass"/><test-case name="37049RegexTest_1131 tokoe:invalid" result="pass"/><test-case name="37050RegexTest_1133 tokoe:valid" result="pass"/><test-case name="37051RegexTest_1134 tokoe:valid" result="pass"/><test-case name="37052RegexTest_1135 tokoe:valid" result="pass"/><test-case name="37053RegexTest_1136 tokoe:valid" result="pass"/><test-case name="37054RegexTest_1137 tokoe:valid" result="pass"/><test-case name="37055RegexTest_1138 tokoe:valid" result="pass"/><test-case name="37056RegexTest_1140 tokoe:valid" result="pass"/><test-case name="37057RegexTest_1141 tokoe:valid" result="pass"/><test-case name="37058RegexTest_1142 tokoe:valid" result="pass"/><test-case name="37059RegexTest_1143 tokoe:valid" result="pass"/><test-case name="37060RegexTest_1144 tokoe:valid" result="pass"/><test-case name="37061RegexTest_1145 tokoe:valid" result="pass"/><test-case name="37062RegexTest_1146 tokoe:valid" result="pass"/><test-case name="37063RegexTest_1147 tokoe:valid" result="pass"/><test-case name="37064RegexTest_1148 tokoe:valid" result="pass"/><test-case name="37065RegexTest_1149 tokoe:valid" result="pass"/><test-case name="37066RegexTest_1150 tokoe:valid" result="pass"/><test-case name="37067RegexTest_1151 tokoe:valid" result="pass"/><test-case name="37068RegexTest_1152 tokoe:valid" result="pass"/><test-case name="37069RegexTest_1153 tokoe:valid" result="pass"/><test-case name="37070RegexTest_1154 tokoe:valid" result="pass"/><test-case name="37071RegexTest_1155 tokoe:valid" result="pass"/><test-case name="37072RegexTest_1156 tokoe:valid" result="pass"/><test-case name="37073RegexTest_1157 tokoe:valid" result="pass"/><test-case name="37074RegexTest_1158 tokoe:valid" result="pass"/><test-case name="37075RegexTest_1159 tokoe:valid" result="pass"/><test-case name="37076RegexTest_1160 tokoe:valid" result="pass"/><test-case name="37077RegexTest_1161 tokoe:valid" result="pass"/><test-case name="37078RegexTest_1162 tokoe:valid" result="pass"/><test-case name="37079RegexTest_1163 tokoe:valid" result="pass"/><test-case name="37080RegexTest_1164 tokoe:valid" result="pass"/><test-case name="37081RegexTest_1165 tokoe:valid" result="pass"/><test-case name="37082RegexTest_1166 tokoe:valid" result="pass"/><test-case name="37083RegexTest_1167 tokoe:valid" result="pass"/><test-case name="37084RegexTest_1168 tokoe:valid" result="pass"/><test-case name="37085RegexTest_1169 tokoe:valid" result="pass"/><test-case name="37086RegexTest_1170 tokoe:valid" result="pass"/><test-case name="37087RegexTest_1171 tokoe:valid" result="pass"/><test-case name="37088RegexTest_1173 tokoe:valid" result="pass"/><test-case name="37089RegexTest_1174 tokoe:valid" result="pass"/><test-case name="37090RegexTest_1175 tokoe:valid" result="pass"/><test-case name="37091RegexTest_1176 tokoe:valid" result="pass"/><test-case name="37092RegexTest_1177 tokoe:valid" result="pass"/><test-case name="37093RegexTest_1178 tokoe:valid" result="pass"/><test-case name="37094RegexTest_1179 tokoe:valid" result="pass"/><test-case name="37095RegexTest_1183 tokoe:invalid" result="fail"/><test-case name="37096RegexTest_1192 tokoe:valid" result="pass"/><test-case name="37097RegexTest_1193 tokoe:valid" result="pass"/><test-case name="37098RegexTest_1194 tokoe:valid" result="pass"/><test-case name="37099RegexTest_1195 tokoe:valid" result="pass"/><test-case name="37100RegexTest_1196 tokoe:valid" result="pass"/><test-case name="37101RegexTest_1197 tokoe:valid" result="pass"/><test-case name="37102RegexTest_1198 tokoe:valid" result="pass"/><test-case name="37103RegexTest_1199 tokoe:valid" result="pass"/><test-case name="37104RegexTest_1200 tokoe:valid" result="pass"/><test-case name="37105RegexTest_1204 tokoe:valid" result="pass"/><test-case name="37106RegexTest_1205 tokoe:valid" result="pass"/><test-case name="37107RegexTest_1206 tokoe:valid" result="pass"/><test-case name="37108RegexTest_1207 tokoe:valid" result="pass"/><test-case name="37109RegexTest_1218 tokoe:valid" result="pass"/><test-case name="37110RegexTest_1219 tokoe:valid" result="pass"/><test-case name="37111RegexTest_1220 tokoe:valid" result="pass"/><test-case name="37112RegexTest_1221 tokoe:valid" result="pass"/><test-case name="37113RegexTest_1222 tokoe:valid" result="pass"/><test-case name="37114RegexTest_1223 tokoe:valid" result="pass"/><test-case name="37115RegexTest_1224 tokoe:valid" result="pass"/><test-case name="37116RegexTest_1225 tokoe:valid" result="pass"/><test-case name="37117RegexTest_1226 tokoe:valid" result="pass"/><test-case name="37118RegexTest_1228 tokoe:valid" result="pass"/><test-case name="37119RegexTest_1229 tokoe:valid" result="pass"/><test-case name="37120RegexTest_1230 tokoe:valid" result="pass"/><test-case name="37121RegexTest_1231 tokoe:valid" result="pass"/><test-case name="37122RegexTest_1232 tokoe:valid" result="pass"/><test-case name="37123RegexTest_1233 tokoe:valid" result="pass"/><test-case name="37124RegexTest_1234 tokoe:valid" result="pass"/><test-case name="37125RegexTest_1235 tokoe:valid" result="pass"/><test-case name="37126RegexTest_1236 tokoe:invalid" result="fail"/><test-case name="37127RegexTest_1237 tokoe:invalid" result="pass"/><test-case name="37128RegexTest_1238 tokoe:invalid" result="pass"/><test-case name="37129RegexTest_1241 tokoe:valid" result="pass"/><test-case name="37130RegexTest_1242 tokoe:valid" result="pass"/><test-case name="37131RegexTest_1243 tokoe:valid" result="pass"/><test-case name="37132RegexTest_1244 tokoe:valid" result="pass"/><test-case name="37133RegexTest_1247 tokoe:valid" result="pass"/><test-case name="37134RegexTest_1248 tokoe:valid" result="pass"/><test-case name="37135RegexTest_1249 tokoe:valid" result="pass"/><test-case name="37136RegexTest_1250 tokoe:invalid" result="pass"/><test-case name="37137RegexTest_1251 tokoe:invalid" result="pass"/><test-case name="37138RegexTest_1252 tokoe:valid" result="pass"/><test-case name="37139RegexTest_1253 tokoe:invalid" result="pass"/><test-case name="37140RegexTest_1254 tokoe:valid" result="pass"/><test-case name="37141RegexTest_1255 tokoe:valid" result="pass"/><test-case name="37142RegexTest_1256 tokoe:valid" result="pass"/><test-case name="37143RegexTest_1257 tokoe:valid" result="pass"/><test-case name="37144RegexTest_1258 tokoe:invalid" result="pass"/><test-case name="37145RegexTest_1259 tokoe:invalid" result="pass"/><test-case name="37146RegexTest_1260 tokoe:valid" result="pass"/><test-case name="37147RegexTest_1261 tokoe:valid" result="pass"/><test-case name="37148RegexTest_1262 tokoe:valid" result="pass"/><test-case name="37149RegexTest_1263 tokoe:valid" result="pass"/><test-case name="37150RegexTest_1264 tokoe:invalid" result="pass"/><test-case name="37151RegexTest_1268 tokoe:valid" result="pass"/><test-case name="37152RegexTest_1269 tokoe:valid" result="pass"/><test-case name="37153RegexTest_1270 tokoe:valid" result="pass"/><test-case name="37154RegexTest_1271 tokoe:valid" result="pass"/><test-case name="37155RegexTest_1272 tokoe:valid" result="pass"/><test-case name="37156RegexTest_1273 tokoe:valid" result="pass"/><test-case name="37157RegexTest_1276 tokoe:valid" result="pass"/><test-case name="37158RegexTest_1277 tokoe:valid" result="pass"/><test-case name="37159RegexTest_1278 tokoe:valid" result="pass"/><test-case name="37160RegexTest_1279 tokoe:valid" result="pass"/><test-case name="37161RegexTest_1280 tokoe:valid" result="pass"/><test-case name="37162RegexTest_1281 tokoe:valid" result="pass"/><test-case name="37163RegexTest_1282 tokoe:valid" result="pass"/><test-case name="37164RegexTest_1283 tokoe:valid" result="pass"/><test-case name="37165RegexTest_1284 tokoe:valid" result="pass"/><test-case name="37166RegexTest_1285 tokoe:valid" result="pass"/><test-case name="37167RegexTest_1286 tokoe:valid" result="pass"/><test-case name="37168RegexTest_1287 tokoe:valid" result="pass"/><test-case name="37169RegexTest_1288 tokoe:valid" result="pass"/><test-case name="37170RegexTest_1289 tokoe:valid" result="pass"/><test-case name="37171RegexTest_1290 tokoe:valid" result="pass"/><test-case name="37172RegexTest_1291 tokoe:valid" result="pass"/><test-case name="37173RegexTest_1292 tokoe:valid" result="pass"/><test-case name="37174RegexTest_1293 tokoe:valid" result="pass"/><test-case name="37175RegexTest_1294 tokoe:valid" result="pass"/><test-case name="37176RegexTest_1295 tokoe:valid" result="pass"/><test-case name="37177RegexTest_1296 tokoe:valid" result="pass"/><test-case name="37178RegexTest_1297 tokoe:valid" result="pass"/><test-case name="37179RegexTest_1298 tokoe:valid" result="pass"/><test-case name="37180RegexTest_1299 tokoe:valid" result="pass"/><test-case name="37181RegexTest_1300 tokoe:valid" result="pass"/><test-case name="37182RegexTest_1301 tokoe:valid" result="pass"/><test-case name="37183RegexTest_1302 tokoe:valid" result="pass"/><test-case name="37184RegexTest_1303 tokoe:valid" result="pass"/><test-case name="37185RegexTest_1304 tokoe:valid" result="pass"/><test-case name="37186RegexTest_1305 tokoe:valid" result="pass"/><test-case name="37187RegexTest_1306 tokoe:valid" result="pass"/><test-case name="37188RegexTest_1307 tokoe:valid" result="pass"/><test-case name="37189RegexTest_1309 tokoe:valid" result="pass"/><test-case name="37190RegexTest_1312 tokoe:valid" result="pass"/><test-case name="37191RegexTest_1313 tokoe:valid" result="pass"/><test-case name="37192RegexTest_1314 tokoe:valid" result="pass"/><test-case name="37193RegexTest_1315 tokoe:valid" result="pass"/><test-case name="37194RegexTest_1316 tokoe:valid" result="pass"/><test-case name="37195RegexTest_1317 tokoe:valid" result="pass"/><test-case name="37196RegexTest_1318 tokoe:valid" result="pass"/><test-case name="37197RegexTest_1319 tokoe:valid" result="pass"/><test-case name="37198RegexTest_1333 tokoe:valid" result="pass"/><test-case name="37199RegexTest_1334 tokoe:invalid" result="pass"/><test-case name="37200RegexTest_1342 tokoe:valid" result="pass"/><test-case name="37201RegexTest_1343 tokoe:valid" result="pass"/><test-case name="37202RegexTest_1351 tokoe:valid" result="pass"/><test-case name="37203RegexTest_1352 tokoe:valid" result="pass"/><test-case name="37204RegexTest_1353 tokoe:valid" result="pass"/><test-case name="37205RegexTest_1366 tokoe:valid" result="pass"/><test-case name="37206RegexTest_1367 tokoe:valid" result="pass"/><test-case name="37207RegexTest_1368 tokoe:valid" result="pass"/><test-case name="37208RegexTest_1369 tokoe:valid" result="pass"/><test-case name="37209RegexTest_1370 tokoe:valid" result="pass"/><test-case name="37210RegexTest_1371 tokoe:valid" result="pass"/><test-case name="37211RegexTest_1411 tokoe:valid" result="pass"/><test-case name="37212RegexTest_1431 tokoe:valid" result="pass"/><test-case name="37213RegexTest_1432 tokoe:valid" result="pass"/><test-case name="37214RegexTest_1449 tokoe:invalid" result="pass"/><test-case name="37215RegexTest_1450 tokoe:invalid" result="pass"/><test-case name="37216RegexTest_1457 tokoe:valid" result="pass"/><test-case name="37217RegexTest_1462 tokoe:valid" result="pass"/><test-case name="37218RegexTest_1463 tokoe:valid" result="pass"/><test-case name="37219RegexTest_1464 tokoe:valid" result="pass"/><test-case name="37220RegexTest_1465 tokoe:valid" result="pass"/><test-case name="37221RegexTest_1466 tokoe:valid" result="pass"/><test-case name="37222RegexTest_1467 tokoe:valid" result="pass"/><test-case name="37223RegexTest_1468 tokoe:valid" result="pass"/><test-case name="37224RegexTest_1469 tokoe:valid" result="pass"/><test-case name="37225RegexTest_1470 tokoe:valid" result="pass"/><test-case name="37226RegexTest_1471 tokoe:valid" result="pass"/><test-case name="37227RegexTest_1476 tokoe:invalid" result="pass"/><test-case name="37228RegexTest_1477 tokoe:invalid" result="fail"/><test-case name="37229RegexTest_1483 tokoe:invalid" result="pass"/><test-case name="37230RegexTest_1489 tokoe:valid" result="pass"/><test-case name="37231RegexTest_1490 tokoe:valid" result="pass"/><test-case name="37232RegexTest_1504 tokoe:valid" result="pass"/><test-case name="37233RegexTest_1505 tokoe:valid" result="pass"/><test-case name="37234RegexTest_1506 tokoe:valid" result="pass"/><test-case name="37235RegexTest_1507 tokoe:valid" result="pass"/><test-case name="37236RegexTest_1508 tokoe:valid" result="pass"/><test-case name="37237RegexTest_1509 tokoe:valid" result="pass"/><test-case name="37238RegexTest_1510 tokoe:valid" result="pass"/><test-case name="37239RegexTest_1511 tokoe:valid" result="pass"/><test-case name="37240RegexTest_1512 tokoe:valid" result="pass"/><test-case name="37241RegexTest_1513 tokoe:valid" result="pass"/><test-case name="37242RegexTest_1514 tokoe:valid" result="pass"/><test-case name="37243RegexTest_1515 tokoe:valid" result="pass"/><test-case name="37244RegexTest_1516 tokoe:valid" result="pass"/><test-case name="37245RegexTest_1517 tokoe:valid" result="pass"/><test-case name="37246RegexTest_1518 tokoe:valid" result="pass"/><test-case name="37247RegexTest_1519 tokoe:valid" result="pass"/><test-case name="37248RegexTest_1520 tokoe:valid" result="pass"/><test-case name="37249RegexTest_1521 tokoe:valid" result="pass"/><test-case name="37250RegexTest_1522 tokoe:valid" result="pass"/><test-case name="37251RegexTest_1523 tokoe:valid" result="pass"/><test-case name="37252RegexTest_1524 tokoe:valid" result="pass"/><test-case name="37253RegexTest_1525 tokoe:valid" result="pass"/><test-case name="37254RegexTest_1526 tokoe:valid" result="pass"/><test-case name="37255RegexTest_1527 tokoe:valid" result="pass"/><test-case name="37256RegexTest_1528 tokoe:valid" result="pass"/><test-case name="37257RegexTest_1529 tokoe:valid" result="pass"/><test-case name="37258RegexTest_1530 tokoe:valid" result="pass"/><test-case name="37259RegexTest_1531 tokoe:valid" result="pass"/><test-case name="37260RegexTest_1532 tokoe:valid" result="pass"/><test-case name="37261RegexTest_1533 tokoe:valid" result="pass"/><test-case name="37262RegexTest_1534 tokoe:valid" result="pass"/><test-case name="37263RegexTest_1535 tokoe:valid" result="pass"/><test-case name="37264RegexTest_1536 tokoe:valid" result="pass"/><test-case name="37265RegexTest_1537 tokoe:valid" result="pass"/><test-case name="37266RegexTest_1538 tokoe:valid" result="pass"/><test-case name="37267RegexTest_1539 tokoe:valid" result="pass"/><test-case name="37268RegexTest_1540 tokoe:valid" result="pass"/><test-case name="37269RegexTest_1541 tokoe:valid" result="pass"/><test-case name="37270BasicLatin tokoe:valid" result="pass"/><test-case name="37271BasicLatin.v tokoe:valid" result="pass"/><test-case name="37272Latin-1Supplement tokoe:valid" result="pass"/><test-case name="37273Latin-1Supplement.v tokoe:valid" result="pass"/><test-case name="37274LatinExtended-A tokoe:valid" result="pass"/><test-case name="37275LatinExtended-A.v tokoe:valid" result="pass"/><test-case name="37276LatinExtended-B tokoe:valid" result="pass"/><test-case name="37277LatinExtended-B.v tokoe:valid" result="pass"/><test-case name="37278IPAExtensions tokoe:valid" result="pass"/><test-case name="37279IPAExtensions.v tokoe:valid" result="pass"/><test-case name="37280SpacingModifierLetters tokoe:valid" result="pass"/><test-case name="37281SpacingModifierLetters.v tokoe:valid" result="pass"/><test-case name="37282CombiningDiacriticalMarks tokoe:valid" result="pass"/><test-case name="37283CombiningDiacriticalMarks.v tokoe:valid" result="pass"/><test-case name="37284Cyrillic tokoe:valid" result="pass"/><test-case name="37285Cyrillic.v tokoe:valid" result="pass"/><test-case name="37286Armenian tokoe:valid" result="pass"/><test-case name="37287Armenian.v tokoe:valid" result="pass"/><test-case name="37288Hebrew tokoe:valid" result="pass"/><test-case name="37289Hebrew.v tokoe:valid" result="pass"/><test-case name="37290Arabic tokoe:valid" result="pass"/><test-case name="37291Arabic.v tokoe:valid" result="pass"/><test-case name="37292Syriac tokoe:valid" result="pass"/><test-case name="37293Syriac.v tokoe:valid" result="pass"/><test-case name="37294Thaana tokoe:valid" result="pass"/><test-case name="37295Thaana.v tokoe:valid" result="pass"/><test-case name="37296Devanagari tokoe:valid" result="pass"/><test-case name="37297Devanagari.v tokoe:valid" result="pass"/><test-case name="37298Bengali tokoe:valid" result="pass"/><test-case name="37299Bengali.v tokoe:valid" result="pass"/><test-case name="37300Gurmukhi tokoe:valid" result="pass"/><test-case name="37301Gurmukhi.v tokoe:valid" result="pass"/><test-case name="37302Gujarati tokoe:valid" result="pass"/><test-case name="37303Gujarati.v tokoe:valid" result="pass"/><test-case name="37304Oriya tokoe:valid" result="pass"/><test-case name="37305Oriya.v tokoe:valid" result="pass"/><test-case name="37306Tamil tokoe:valid" result="pass"/><test-case name="37307Tamil.v tokoe:valid" result="pass"/><test-case name="37308Telugu tokoe:valid" result="pass"/><test-case name="37309Telugu.v tokoe:valid" result="pass"/><test-case name="37310Kannada tokoe:valid" result="pass"/><test-case name="37311Kannada.v tokoe:valid" result="pass"/><test-case name="37312Malayalam tokoe:valid" result="pass"/><test-case name="37313Malayalam.v tokoe:valid" result="pass"/><test-case name="37314Sinhala tokoe:valid" result="pass"/><test-case name="37315Sinhala.v tokoe:valid" result="pass"/><test-case name="37316Thai tokoe:valid" result="pass"/><test-case name="37317Thai.v tokoe:valid" result="pass"/><test-case name="37318Lao tokoe:valid" result="pass"/><test-case name="37319Lao.v tokoe:valid" result="pass"/><test-case name="37320Tibetan tokoe:valid" result="pass"/><test-case name="37321Tibetan.v tokoe:valid" result="pass"/><test-case name="37322Myanmar tokoe:valid" result="pass"/><test-case name="37323Myanmar.v tokoe:valid" result="pass"/><test-case name="37324Georgian tokoe:valid" result="pass"/><test-case name="37325Georgian.v tokoe:valid" result="pass"/><test-case name="37326HangulJamo tokoe:valid" result="pass"/><test-case name="37327HangulJamo.v tokoe:valid" result="pass"/><test-case name="37328Ethiopic tokoe:valid" result="pass"/><test-case name="37329Ethiopic.v tokoe:valid" result="pass"/><test-case name="37330Cherokee tokoe:valid" result="pass"/><test-case name="37331Cherokee.v tokoe:valid" result="pass"/><test-case name="37332UnifiedCanadianAboriginalSyllabics tokoe:valid" result="pass"/><test-case name="37333UnifiedCanadianAboriginalSyllabics.v tokoe:valid" result="pass"/><test-case name="37334Ogham tokoe:valid" result="pass"/><test-case name="37335Ogham.v tokoe:valid" result="pass"/><test-case name="37336Runic tokoe:valid" result="pass"/><test-case name="37337Runic.v tokoe:valid" result="pass"/><test-case name="37338Khmer tokoe:valid" result="pass"/><test-case name="37339Khmer.v tokoe:valid" result="pass"/><test-case name="37340Mongolian tokoe:valid" result="pass"/><test-case name="37341Mongolian.v tokoe:valid" result="pass"/><test-case name="37342LatinExtendedAdditional tokoe:valid" result="pass"/><test-case name="37343LatinExtendedAdditional.v tokoe:valid" result="pass"/><test-case name="37344GreekExtended tokoe:valid" result="pass"/><test-case name="37345GreekExtended.v tokoe:valid" result="pass"/><test-case name="37346GeneralPunctuation tokoe:valid" result="pass"/><test-case name="37347GeneralPunctuation.v tokoe:valid" result="pass"/><test-case name="37348SuperscriptsandSubscripts tokoe:valid" result="pass"/><test-case name="37349SuperscriptsandSubscripts.v tokoe:valid" result="pass"/><test-case name="37350CurrencySymbols tokoe:valid" result="pass"/><test-case name="37351CurrencySymbols.v tokoe:valid" result="pass"/><test-case name="37352LetterlikeSymbols tokoe:valid" result="pass"/><test-case name="37353LetterlikeSymbols.v tokoe:valid" result="pass"/><test-case name="37354NumberForms tokoe:valid" result="pass"/><test-case name="37355NumberForms.v tokoe:valid" result="pass"/><test-case name="37356Arrows tokoe:valid" result="pass"/><test-case name="37357Arrows.v tokoe:valid" result="pass"/><test-case name="37358MathematicalOperators tokoe:valid" result="pass"/><test-case name="37359MathematicalOperators.v tokoe:valid" result="pass"/><test-case name="37360MiscellaneousTechnical tokoe:valid" result="pass"/><test-case name="37361MiscellaneousTechnical.v tokoe:valid" result="pass"/><test-case name="37362ControlPictures tokoe:valid" result="pass"/><test-case name="37363ControlPictures.v tokoe:valid" result="pass"/><test-case name="37364OpticalCharacterRecognition tokoe:valid" result="pass"/><test-case name="37365OpticalCharacterRecognition.v tokoe:valid" result="pass"/><test-case name="37366EnclosedAlphanumerics tokoe:valid" result="pass"/><test-case name="37367EnclosedAlphanumerics.v tokoe:valid" result="pass"/><test-case name="37368BoxDrawing tokoe:valid" result="pass"/><test-case name="37369BoxDrawing.v tokoe:valid" result="pass"/><test-case name="37370BlockElements tokoe:valid" result="pass"/><test-case name="37371BlockElements.v tokoe:valid" result="pass"/><test-case name="37372GeometricShapes tokoe:valid" result="pass"/><test-case name="37373GeometricShapes.v tokoe:valid" result="pass"/><test-case name="37374MiscellaneousSymbols tokoe:valid" result="pass"/><test-case name="37375MiscellaneousSymbols.v tokoe:valid" result="pass"/><test-case name="37376Dingbats tokoe:valid" result="pass"/><test-case name="37377Dingbats.v tokoe:valid" result="pass"/><test-case name="37378BraillePatterns tokoe:valid" result="pass"/><test-case name="37379BraillePatterns.v tokoe:valid" result="pass"/><test-case name="37380CJKRadicalsSupplement tokoe:valid" result="pass"/><test-case name="37381CJKRadicalsSupplement.v tokoe:valid" result="pass"/><test-case name="37382KangxiRadicals tokoe:valid" result="pass"/><test-case name="37383KangxiRadicals.v tokoe:valid" result="pass"/><test-case name="37384IdeographicDescriptionCharacters tokoe:valid" result="pass"/><test-case name="37385IdeographicDescriptionCharacters.v tokoe:valid" result="pass"/><test-case name="37386CJKSymbolsandPunctuation tokoe:valid" result="pass"/><test-case name="37387CJKSymbolsandPunctuation.v tokoe:valid" result="pass"/><test-case name="37388Hiragana tokoe:valid" result="pass"/><test-case name="37389Hiragana.v tokoe:valid" result="pass"/><test-case name="37390Katakana tokoe:valid" result="pass"/><test-case name="37391Katakana.v tokoe:valid" result="pass"/><test-case name="37392Bopomofo tokoe:valid" result="pass"/><test-case name="37393Bopomofo.v tokoe:valid" result="pass"/><test-case name="37394HangulCompatibilityJamo tokoe:valid" result="pass"/><test-case name="37395HangulCompatibilityJamo.v tokoe:valid" result="pass"/><test-case name="37396Kanbun tokoe:valid" result="pass"/><test-case name="37397Kanbun.v tokoe:valid" result="pass"/><test-case name="37398BopomofoExtended tokoe:valid" result="pass"/><test-case name="37399BopomofoExtended.v tokoe:valid" result="pass"/><test-case name="37400EnclosedCJKLettersandMonths tokoe:valid" result="pass"/><test-case name="37401EnclosedCJKLettersandMonths.v tokoe:valid" result="pass"/><test-case name="37402CJKCompatibility tokoe:valid" result="pass"/><test-case name="37403CJKCompatibility.v tokoe:valid" result="pass"/><test-case name="37404CJKUnifiedIdeographs tokoe:valid" result="pass"/><test-case name="37405CJKUnifiedIdeographs.v tokoe:valid" result="pass"/><test-case name="37406YiSyllables tokoe:valid" result="pass"/><test-case name="37407YiSyllables.v tokoe:valid" result="pass"/><test-case name="37408YiRadicals tokoe:valid" result="pass"/><test-case name="37409YiRadicals.v tokoe:valid" result="pass"/><test-case name="37410HighSurrogates tokoe:valid" result="fail"/><test-case name="37411HighSurrogates.i tokoe:invalid" result="pass"/><test-case name="37412CJKCompatibilityIdeographs tokoe:valid" result="pass"/><test-case name="37413CJKCompatibilityIdeographs.v tokoe:valid" result="pass"/><test-case name="37414AlphabeticPresentationForms tokoe:valid" result="pass"/><test-case name="37415AlphabeticPresentationForms.v tokoe:valid" result="pass"/><test-case name="37416ArabicPresentationForms-A tokoe:valid" result="pass"/><test-case name="37417ArabicPresentationForms-A.v tokoe:valid" result="pass"/><test-case name="37418CombiningHalfMarks tokoe:valid" result="pass"/><test-case name="37419CombiningHalfMarks.v tokoe:valid" result="pass"/><test-case name="37420CJKCompatibilityForms tokoe:valid" result="pass"/><test-case name="37421CJKCompatibilityForms.v tokoe:valid" result="pass"/><test-case name="37422SmallFormVariants tokoe:valid" result="pass"/><test-case name="37423SmallFormVariants.v tokoe:valid" result="pass"/><test-case name="37424HalfwidthandFullwidthForms tokoe:valid" result="pass"/><test-case name="37425HalfwidthandFullwidthForms.v tokoe:valid" result="pass"/><test-case name="37426Specials tokoe:valid" result="pass"/><test-case name="37427Specials.v tokoe:valid" result="pass"/><test-case name="37428reZ002 tokoe:valid" result="pass"/><test-case name="37429reZ002.i tokoe:invalid" result="fail"/><test-case name="37430reZ003v tokoe:valid" result="pass"/><test-case name="37431reZ003v.v tokoe:valid" result="fail"/><test-case name="37432reZ004v tokoe:valid" result="pass"/><test-case name="37433reZ004v.v tokoe:valid" result="fail"/><test-case name="37434reZ004i tokoe:valid" result="pass"/><test-case name="37435reZ004i.i tokoe:invalid" result="pass"/><test-case name="37436reZ005v tokoe:valid" result="pass"/><test-case name="37437reZ005v.v tokoe:valid" result="pass"/><test-case name="37438reZ005i tokoe:valid" result="pass"/><test-case name="37439reZ005i.i tokoe:invalid" result="pass"/><test-case name="37440reZ006v tokoe:valid" result="pass"/><test-case name="37441reZ006v.v tokoe:valid" result="pass"/><test-case name="37442reZ006i tokoe:valid" result="pass"/><test-case name="37443reZ006i.i tokoe:invalid" result="fail"/><test-case name="37444schA1 tokoe:valid" result="pass"/><test-case name="37445schA1.v tokoe:valid" result="pass"/><test-case name="37446schA3 tokoe:valid" result="pass"/><test-case name="37447schA3.v tokoe:valid" result="pass"/><test-case name="37448schA4.v tokoe:valid" result="pass"/><test-case name="37449schB1 tokoe:valid" result="pass"/><test-case name="37450schB1i tokoe:invalid" result="pass"/><test-case name="37451schB2 tokoe:valid" result="pass"/><test-case name="37452schB3 tokoe:invalid" result="pass"/><test-case name="37453schB4 tokoe:invalid" result="pass"/><test-case name="37454schB5 tokoe:invalid" result="pass"/><test-case name="37455schB8 tokoe:valid" result="pass"/><test-case name="37456schC2 tokoe:invalid" result="pass"/><test-case name="37457schC3 tokoe:valid" result="pass"/><test-case name="37458schC3.v tokoe:valid" result="pass"/><test-case name="37459schC4 tokoe:valid" result="pass"/><test-case name="37460schC4.v tokoe:valid" result="pass"/><test-case name="37461schC5 tokoe:invalid" result="pass"/><test-case name="37462schD5 tokoe:valid" result="pass"/><test-case name="37463schD5.v tokoe:valid" result="pass"/><test-case name="37464schD7 tokoe:valid" result="pass"/><test-case name="37465schD7.v tokoe:valid" result="pass"/><test-case name="37466schD10 tokoe:valid" result="pass"/><test-case name="37467schD10.v tokoe:valid" result="pass"/><test-case name="37468schD11 tokoe:valid" result="pass"/><test-case name="37469schE1 tokoe:valid" result="pass"/><test-case name="37470schE1i tokoe:invalid" result="pass"/><test-case name="37471schE2 tokoe:valid" result="pass"/><test-case name="37472schE3 tokoe:valid" result="pass"/><test-case name="37473schE4 tokoe:valid" result="pass"/><test-case name="37474schE4.v tokoe:valid" result="pass"/><test-case name="37475schE5 tokoe:invalid" result="pass"/><test-case name="37476schE6 tokoe:invalid" result="pass"/><test-case name="37477schE9 tokoe:valid" result="pass"/><test-case name="37478schE10 tokoe:invalid" result="pass"/><test-case name="37479schF1 tokoe:valid" result="pass"/><test-case name="37480schF1.v tokoe:valid" result="pass"/><test-case name="37481schF2 tokoe:valid" result="pass"/><test-case name="37482schF2.v tokoe:valid" result="pass"/><test-case name="37483schF3 tokoe:invalid" result="pass"/><test-case name="37484schF4 tokoe:invalid" result="pass"/><test-case name="37485schF5 tokoe:valid" result="pass"/><test-case name="37486schF5.v tokoe:valid" result="pass"/><test-case name="37487schF6 tokoe:invalid" result="pass"/><test-case name="37488schG1 tokoe:valid" result="pass"/><test-case name="37489schG1.v tokoe:valid" result="pass"/><test-case name="37490schG2 tokoe:valid" result="pass"/><test-case name="37491schG2.v tokoe:valid" result="pass"/><test-case name="37492schG4 tokoe:valid" result="fail"/><test-case name="37493schG4.v tokoe:valid" result="fail"/><test-case name="37494schG5 tokoe:valid" result="pass"/><test-case name="37495schG5.v tokoe:valid" result="pass"/><test-case name="37496schG7 tokoe:valid" result="fail"/><test-case name="37497schG7.v tokoe:valid" result="fail"/><test-case name="37498schG8 tokoe:valid" result="pass"/><test-case name="37499schG8.v tokoe:valid" result="pass"/><test-case name="37500schG10 tokoe:invalid" result="pass"/><test-case name="37501schG13 tokoe:invalid" result="pass"/><test-case name="37502schG14 tokoe:valid" result="fail"/><test-case name="37503schG15 tokoe:valid" result="pass"/><test-case name="37504schH1 tokoe:valid" result="pass"/><test-case name="37505schH2 tokoe:valid" result="pass"/><test-case name="37506schH3 tokoe:invalid" result="pass"/><test-case name="37507schH4 tokoe:invalid" result="pass"/><test-case name="37508schH5 tokoe:invalid" result="pass"/><test-case name="37509schH6 tokoe:invalid" result="pass"/><test-case name="37510schH9 tokoe:valid" result="pass"/><test-case name="37511schI2 tokoe:invalid" result="pass"/><test-case name="37512schI5 tokoe:invalid" result="pass"/><test-case name="37513schJ2 tokoe:invalid" result="pass"/><test-case name="37514schJ3 tokoe:invalid" result="pass"/><test-case name="37515schK2 tokoe:invalid" result="pass"/><test-case name="37516schK3 tokoe:invalid" result="pass"/><test-case name="37517schL1 tokoe:invalid" result="pass"/><test-case name="37518schL3 tokoe:invalid" result="pass"/><test-case name="37519schL6 tokoe:invalid" result="pass"/><test-case name="37520schL8 tokoe:invalid" result="pass"/><test-case name="37521schL10 tokoe:invalid" result="pass"/><test-case name="37522schM3 tokoe:invalid" result="pass"/><test-case name="37523schM4 tokoe:invalid" result="pass"/><test-case name="37524schM5 tokoe:invalid" result="pass"/><test-case name="37525schM8 tokoe:invalid" result="pass"/><test-case name="37526schM9 tokoe:valid" result="pass"/><test-case name="37527schM10 tokoe:invalid" result="pass"/><test-case name="37528schN4 tokoe:invalid" result="pass"/><test-case name="37529schN5 tokoe:invalid" result="pass"/><test-case name="37530schN6 tokoe:invalid" result="pass"/><test-case name="37531schN7 tokoe:invalid" result="pass"/><test-case name="37532schN10 tokoe:invalid" result="pass"/><test-case name="37533schN11 tokoe:valid" result="pass"/><test-case name="37534schN12 tokoe:invalid" result="pass"/><test-case name="37535schN13v tokoe:valid" result="pass"/><test-case name="37536schN13i tokoe:invalid" result="pass"/><test-case name="37537schO2 tokoe:invalid" result="pass"/><test-case name="37538schP1 tokoe:invalid" result="pass"/><test-case name="37539schP2 tokoe:valid" result="pass"/><test-case name="37540schP2.v tokoe:valid" result="pass"/><test-case name="37541schP3 tokoe:invalid" result="pass"/><test-case name="37542schQ1 tokoe:valid" result="pass"/><test-case name="37543schQ1.v tokoe:valid" result="pass"/><test-case name="37544schQ2 tokoe:invalid" result="pass"/><test-case name="37545schQ3 tokoe:valid" result="pass"/><test-case name="37546schQ3.v tokoe:valid" result="pass"/><test-case name="37547schQ4 tokoe:invalid" result="pass"/><test-case name="37548schR2 tokoe:valid" result="pass"/><test-case name="37549schR2.i tokoe:invalid" result="pass"/><test-case name="37550schR3 tokoe:invalid" result="pass"/><test-case name="37551schR4 tokoe:invalid" result="pass"/><test-case name="37552schR5 tokoe:invalid" result="pass"/><test-case name="37553schS1 tokoe:invalid" result="pass"/><test-case name="37554schT1 tokoe:invalid" result="pass"/><test-case name="37555schT2 tokoe:invalid" result="pass"/><test-case name="37556schT3 tokoe:valid" result="pass"/><test-case name="37557schT3.v tokoe:valid" result="pass"/><test-case name="37558schT6 tokoe:valid" result="pass"/><test-case name="37559schT6.i tokoe:invalid" result="pass"/><test-case name="37560schT9 tokoe:valid" result="pass"/><test-case name="37561schT9.v tokoe:valid" result="pass"/><test-case name="37562schT10 tokoe:valid" result="pass"/><test-case name="37563schT10.v tokoe:valid" result="pass"/><test-case name="37564schU2 tokoe:valid" result="pass"/><test-case name="37565schZ001_78029-a tokoe:invalid" result="pass"/><test-case name="37566schZ002_78029-b tokoe:invalid" result="pass"/><test-case name="37567schZ003_78029-c tokoe:invalid" result="pass"/><test-case name="37568schZ006 tokoe:invalid" result="pass"/><test-case name="37569schZ007 tokoe:valid" result="pass"/><test-case name="37570schZ008 tokoe:valid" result="pass"/><test-case name="37571schZ009 tokoe:valid" result="pass"/><test-case name="37572schZ010 tokoe:invalid" result="pass"/><test-case name="37573schZ011_a tokoe:invalid" result="pass"/><test-case name="37574schZ011_b tokoe:invalid" result="pass"/><test-case name="37575schZ011_c tokoe:invalid" result="pass"/><test-case name="37576schZ011_d tokoe:invalid" result="pass"/><test-case name="37577schZ012_b tokoe:valid" result="pass"/><test-case name="37578schZ012_c tokoe:valid" result="pass"/><test-case name="37579schZ013 tokoe:valid" result="pass"/><test-case name="37580schZ014_a tokoe:invalid" result="pass"/><test-case name="37581schZ014_b tokoe:invalid" result="pass"/><test-case name="37582schZ015 tokoe:valid" result="pass"/><test-case name="37583stA001 tokoe:valid" result="pass"/><test-case name="37584stA002 tokoe:invalid" result="pass"/><test-case name="37585stA003 tokoe:valid" result="pass"/><test-case name="37586stA004 tokoe:invalid" result="pass"/><test-case name="37587stA005 tokoe:invalid" result="pass"/><test-case name="37588stA006 tokoe:valid" result="pass"/><test-case name="37589stA007 tokoe:valid" result="pass"/><test-case name="37590stA008 tokoe:invalid" result="pass"/><test-case name="37591stA009 tokoe:invalid" result="pass"/><test-case name="37592stA010 tokoe:invalid" result="pass"/><test-case name="37593stA011 tokoe:invalid" result="pass"/><test-case name="37594stA012 tokoe:invalid" result="pass"/><test-case name="37595stA013 tokoe:invalid" result="pass"/><test-case name="37596stA014 tokoe:invalid" result="pass"/><test-case name="37597stA015 tokoe:invalid" result="pass"/><test-case name="37598stA016 tokoe:valid" result="pass"/><test-case name="37599stA017 tokoe:invalid" result="pass"/><test-case name="37600stA018 tokoe:valid" result="pass"/><test-case name="37601stA019 tokoe:valid" result="pass"/><test-case name="37602stA020 tokoe:valid" result="pass"/><test-case name="37603stB001 tokoe:invalid" result="pass"/><test-case name="37604stB002 tokoe:invalid" result="pass"/><test-case name="37605stB003 tokoe:valid" result="pass"/><test-case name="37606stB004 tokoe:invalid" result="pass"/><test-case name="37607stB005 tokoe:invalid" result="pass"/><test-case name="37608stB006 tokoe:valid" result="pass"/><test-case name="37609stB007 tokoe:invalid" result="pass"/><test-case name="37610stB008 tokoe:valid" result="pass"/><test-case name="37611stB009 tokoe:invalid" result="pass"/><test-case name="37612stB010 tokoe:invalid" result="pass"/><test-case name="37613stB011 tokoe:valid" result="pass"/><test-case name="37614stB012 tokoe:valid" result="pass"/><test-case name="37615stB013 tokoe:invalid" result="pass"/><test-case name="37616stB014 tokoe:invalid" result="pass"/><test-case name="37617stB015 tokoe:valid" result="pass"/><test-case name="37618stB016 tokoe:invalid" result="pass"/><test-case name="37619stB017 tokoe:invalid" result="pass"/><test-case name="37620stB018 tokoe:invalid" result="pass"/><test-case name="37621stB019 tokoe:invalid" result="pass"/><test-case name="37622stB020 tokoe:invalid" result="pass"/><test-case name="37623stB021 tokoe:invalid" result="pass"/><test-case name="37624stB022 tokoe:invalid" result="pass"/><test-case name="37625stB023 tokoe:invalid" result="pass"/><test-case name="37626stB024 tokoe:invalid" result="pass"/><test-case name="37627stC001 tokoe:valid" result="pass"/><test-case name="37628stC002 tokoe:invalid" result="pass"/><test-case name="37629stC003 tokoe:invalid" result="pass"/><test-case name="37630stC004 tokoe:invalid" result="pass"/><test-case name="37631stC005 tokoe:valid" result="pass"/><test-case name="37632stC006 tokoe:invalid" result="pass"/><test-case name="37633stC007 tokoe:valid" result="pass"/><test-case name="37634stC008 tokoe:invalid" result="pass"/><test-case name="37635stC009 tokoe:invalid" result="pass"/><test-case name="37636stC010 tokoe:valid" result="pass"/><test-case name="37637stC011 tokoe:invalid" result="pass"/><test-case name="37638stC012 tokoe:invalid" result="pass"/><test-case name="37639stC013 tokoe:invalid" result="pass"/><test-case name="37640stC014 tokoe:valid" result="pass"/><test-case name="37641stC015 tokoe:valid" result="pass"/><test-case name="37642stC016 tokoe:valid" result="pass"/><test-case name="37643stC017 tokoe:valid" result="pass"/><test-case name="37644stC018 tokoe:valid" result="pass"/><test-case name="37645stC019 tokoe:valid" result="pass"/><test-case name="37646stC020 tokoe:valid" result="pass"/><test-case name="37647stC021 tokoe:valid" result="pass"/><test-case name="37648stC022 tokoe:valid" result="pass"/><test-case name="37649stC023 tokoe:invalid" result="pass"/><test-case name="37650stC024 tokoe:valid" result="pass"/><test-case name="37651stC025 tokoe:valid" result="pass"/><test-case name="37652stC026 tokoe:valid" result="pass"/><test-case name="37653stC027 tokoe:invalid" result="pass"/><test-case name="37654stC028 tokoe:invalid" result="pass"/><test-case name="37655stC029 tokoe:invalid" result="pass"/><test-case name="37656stC030 tokoe:valid" result="pass"/><test-case name="37657stC031 tokoe:invalid" result="pass"/><test-case name="37658stC032 tokoe:invalid" result="pass"/><test-case name="37659stC033 tokoe:valid" result="pass"/><test-case name="37660stC034 tokoe:valid" result="pass"/><test-case name="37661stC034.i tokoe:invalid" result="pass"/><test-case name="37662stC035 tokoe:valid" result="pass"/><test-case name="37663stD001 tokoe:valid" result="pass"/><test-case name="37664stD002 tokoe:invalid" result="pass"/><test-case name="37665stD003 tokoe:valid" result="pass"/><test-case name="37666stD004 tokoe:invalid" result="pass"/><test-case name="37667stD005 tokoe:invalid" result="pass"/><test-case name="37668stD006 tokoe:valid" result="pass"/><test-case name="37669stD007 tokoe:valid" result="pass"/><test-case name="37670stD008 tokoe:valid" result="pass"/><test-case name="37671stD009 tokoe:invalid" result="pass"/><test-case name="37672stD010 tokoe:invalid" result="pass"/><test-case name="37673stD011 tokoe:valid" result="pass"/><test-case name="37674stD012 tokoe:valid" result="pass"/><test-case name="37675stD013 tokoe:valid" result="pass"/><test-case name="37676stD014 tokoe:valid" result="pass"/><test-case name="37677stD015 tokoe:invalid" result="pass"/><test-case name="37678stD016 tokoe:invalid" result="pass"/><test-case name="37679stD017 tokoe:invalid" result="pass"/><test-case name="37680stD018 tokoe:invalid" result="pass"/><test-case name="37681stD019 tokoe:invalid" result="pass"/><test-case name="37682stD020 tokoe:valid" result="pass"/><test-case name="37683stD021 tokoe:valid" result="pass"/><test-case name="37684stE001 tokoe:valid" result="pass"/><test-case name="37685stE002 tokoe:invalid" result="pass"/><test-case name="37686stE003 tokoe:valid" result="pass"/><test-case name="37687stE004 tokoe:invalid" result="pass"/><test-case name="37688stE005 tokoe:invalid" result="pass"/><test-case name="37689stE006 tokoe:valid" result="pass"/><test-case name="37690stE007 tokoe:valid" result="pass"/><test-case name="37691stE008 tokoe:invalid" result="pass"/><test-case name="37692stE009 tokoe:valid" result="pass"/><test-case name="37693stE010 tokoe:valid" result="pass"/><test-case name="37694stE011 tokoe:valid" result="pass"/><test-case name="37695stE012 tokoe:invalid" result="pass"/><test-case name="37696stE013 tokoe:valid" result="pass"/><test-case name="37697stE014 tokoe:valid" result="pass"/><test-case name="37698stE015 tokoe:invalid" result="pass"/><test-case name="37699stE016 tokoe:invalid" result="pass"/><test-case name="37700stE017 tokoe:valid" result="pass"/><test-case name="37701stE018 tokoe:invalid" result="pass"/><test-case name="37702stE050 tokoe:valid" result="pass"/><test-case name="37703stE050.v tokoe:valid" result="pass"/><test-case name="37704stE051 tokoe:valid" result="pass"/><test-case name="37705stE051.i tokoe:invalid" result="pass"/><test-case name="37706stE052 tokoe:valid" result="pass"/><test-case name="37707stE052.v tokoe:valid" result="pass"/><test-case name="37708stE053 tokoe:valid" result="pass"/><test-case name="37709stE053.i tokoe:invalid" result="pass"/><test-case name="37710stE054 tokoe:valid" result="pass"/><test-case name="37711stE054.i tokoe:invalid" result="fail"/><test-case name="37712stE055 tokoe:valid" result="pass"/><test-case name="37713stE055.v tokoe:valid" result="pass"/><test-case name="37714stE056 tokoe:valid" result="pass"/><test-case name="37715stE056.i tokoe:invalid" result="pass"/><test-case name="37716stE057 tokoe:valid" result="pass"/><test-case name="37717stE057.v tokoe:valid" result="pass"/><test-case name="37718stE058 tokoe:valid" result="pass"/><test-case name="37719stE058.v tokoe:valid" result="pass"/><test-case name="37720stE059 tokoe:valid" result="pass"/><test-case name="37721stE059.v tokoe:valid" result="pass"/><test-case name="37722stE060 tokoe:valid" result="pass"/><test-case name="37723stE060.v tokoe:valid" result="pass"/><test-case name="37724stE061 tokoe:valid" result="pass"/><test-case name="37725stE061.v tokoe:valid" result="pass"/><test-case name="37726stE062 tokoe:valid" result="pass"/><test-case name="37727stE062.v tokoe:valid" result="pass"/><test-case name="37728stE063 tokoe:valid" result="pass"/><test-case name="37729stE063.i tokoe:invalid" result="pass"/><test-case name="37730stE064 tokoe:valid" result="pass"/><test-case name="37731stE064.v tokoe:valid" result="pass"/><test-case name="37732stE065 tokoe:valid" result="pass"/><test-case name="37733stE065.v tokoe:valid" result="pass"/><test-case name="37734stE066 tokoe:valid" result="pass"/><test-case name="37735stE066.v tokoe:valid" result="pass"/><test-case name="37736stE067 tokoe:valid" result="pass"/><test-case name="37737stE067.v tokoe:valid" result="pass"/><test-case name="37738stE068 tokoe:valid" result="pass"/><test-case name="37739stE068.v tokoe:valid" result="pass"/><test-case name="37740stE069 tokoe:valid" result="pass"/><test-case name="37741stE069.v tokoe:valid" result="pass"/><test-case name="37742stE070 tokoe:valid" result="pass"/><test-case name="37743stE070.i tokoe:invalid" result="pass"/><test-case name="37744stE071 tokoe:valid" result="pass"/><test-case name="37745stE071.i tokoe:invalid" result="pass"/><test-case name="37746stE072 tokoe:valid" result="pass"/><test-case name="37747stE072.v tokoe:valid" result="pass"/><test-case name="37748stE073 tokoe:valid" result="pass"/><test-case name="37749stE073.i tokoe:invalid" result="pass"/><test-case name="37750stE073v tokoe:valid" result="pass"/><test-case name="37751stE073v.v tokoe:valid" result="pass"/><test-case name="37752stE074 tokoe:valid" result="pass"/><test-case name="37753stE074.i tokoe:invalid" result="pass"/><test-case name="37754ste074v tokoe:valid" result="pass"/><test-case name="37755ste074v.v tokoe:valid" result="pass"/><test-case name="37756stE075 tokoe:valid" result="fail"/><test-case name="37757stE075.i tokoe:invalid" result="pass"/><test-case name="37758stE076 tokoe:valid" result="pass"/><test-case name="37759stE076.i tokoe:invalid" result="pass"/><test-case name="37760stE077 tokoe:valid" result="pass"/><test-case name="37761stE077.v tokoe:valid" result="pass"/><test-case name="37762stE078 tokoe:valid" result="pass"/><test-case name="37763stE078.i tokoe:invalid" result="pass"/><test-case name="37764stE079 tokoe:valid" result="pass"/><test-case name="37765stE079.v tokoe:valid" result="pass"/><test-case name="37766stE080 tokoe:valid" result="pass"/><test-case name="37767stE080.v tokoe:valid" result="pass"/><test-case name="37768stE081 tokoe:valid" result="pass"/><test-case name="37769stE081.v tokoe:valid" result="pass"/><test-case name="37770stE082 tokoe:valid" result="pass"/><test-case name="37771stE082.i tokoe:invalid" result="pass"/><test-case name="37772stE090 tokoe:valid" result="pass"/><test-case name="37773stE090.v tokoe:valid" result="pass"/><test-case name="37774stE091 tokoe:valid" result="pass"/><test-case name="37775stE091.v tokoe:valid" result="pass"/><test-case name="37776stE092 tokoe:valid" result="pass"/><test-case name="37777stE092.v tokoe:valid" result="pass"/><test-case name="37778stE093 tokoe:valid" result="pass"/><test-case name="37779stE093.v tokoe:valid" result="pass"/><test-case name="37780stE094 tokoe:valid" result="pass"/><test-case name="37781stE094.v tokoe:valid" result="pass"/><test-case name="37782stE095 tokoe:valid" result="pass"/><test-case name="37783stE095.i tokoe:invalid" result="pass"/><test-case name="37784stE096 tokoe:valid" result="fail"/><test-case name="37785stE096.v tokoe:valid" result="fail"/><test-case name="37786stE097 tokoe:valid" result="fail"/><test-case name="37787stE097.i tokoe:invalid" result="pass"/><test-case name="37788ste098 tokoe:valid" result="pass"/><test-case name="37789ste098.i tokoe:invalid" result="pass"/><test-case name="37790ste099 tokoe:valid" result="pass"/><test-case name="37791ste099.v tokoe:valid" result="pass"/><test-case name="37792ste100 tokoe:valid" result="pass"/><test-case name="37793ste100.i tokoe:invalid" result="pass"/><test-case name="37794stF001 tokoe:valid" result="pass"/><test-case name="37795stF002 tokoe:valid" result="pass"/><test-case name="37796stF003 tokoe:valid" result="pass"/><test-case name="37797stF004 tokoe:valid" result="pass"/><test-case name="37798stF005 tokoe:invalid" result="pass"/><test-case name="37799stF006 tokoe:valid" result="pass"/><test-case name="37800stF007 tokoe:invalid" result="pass"/><test-case name="37801stF008 tokoe:invalid" result="pass"/><test-case name="37802stF009 tokoe:invalid" result="pass"/><test-case name="37803stF010 tokoe:invalid" result="pass"/><test-case name="37804stF011 tokoe:invalid" result="pass"/><test-case name="37805stF012 tokoe:invalid" result="pass"/><test-case name="37806stF013 tokoe:invalid" result="pass"/><test-case name="37807stF014 tokoe:invalid" result="pass"/><test-case name="37808stF015 tokoe:invalid" result="pass"/><test-case name="37809stF016 tokoe:valid" result="pass"/><test-case name="37810stF017 tokoe:valid" result="pass"/><test-case name="37811stF018 tokoe:invalid" result="pass"/><test-case name="37812stF019 tokoe:invalid" result="pass"/><test-case name="37813stF020 tokoe:invalid" result="pass"/><test-case name="37814stF021 tokoe:invalid" result="pass"/><test-case name="37815stF022 tokoe:invalid" result="pass"/><test-case name="37816stF023 tokoe:invalid" result="pass"/><test-case name="37817stF024 tokoe:invalid" result="pass"/><test-case name="37818stF025 tokoe:invalid" result="pass"/><test-case name="37819stF026 tokoe:invalid" result="pass"/><test-case name="37820stF027 tokoe:invalid" result="pass"/><test-case name="37821stF028 tokoe:invalid" result="pass"/><test-case name="37822stF029 tokoe:invalid" result="pass"/><test-case name="37823stF030 tokoe:invalid" result="pass"/><test-case name="37824stF031 tokoe:invalid" result="pass"/><test-case name="37825stF032 tokoe:valid" result="pass"/><test-case name="37826stF033 tokoe:invalid" result="pass"/><test-case name="37827stF034 tokoe:valid" result="pass"/><test-case name="37828stF035 tokoe:invalid" result="pass"/><test-case name="37829stF036 tokoe:valid" result="pass"/><test-case name="37830stF037 tokoe:invalid" result="pass"/><test-case name="37831stG001 tokoe:valid" result="pass"/><test-case name="37832stG001.v tokoe:valid" result="pass"/><test-case name="37833stG002 tokoe:valid" result="pass"/><test-case name="37834stG002.v tokoe:valid" result="pass"/><test-case name="37835stG003 tokoe:valid" result="pass"/><test-case name="37836stG003.i tokoe:invalid" result="pass"/><test-case name="37837stG004 tokoe:valid" result="pass"/><test-case name="37838stG004.v tokoe:valid" result="pass"/><test-case name="37839stG005 tokoe:valid" result="pass"/><test-case name="37840stG005.i tokoe:invalid" result="pass"/><test-case name="37841stG006 tokoe:valid" result="pass"/><test-case name="37842stG006.v tokoe:valid" result="pass"/><test-case name="37843stG007 tokoe:valid" result="pass"/><test-case name="37844stG007.i tokoe:invalid" result="pass"/><test-case name="37845stG008 tokoe:valid" result="pass"/><test-case name="37846stG008.v tokoe:valid" result="pass"/><test-case name="37847stG009 tokoe:valid" result="pass"/><test-case name="37848stG009.i tokoe:invalid" result="pass"/><test-case name="37849stG010 tokoe:valid" result="pass"/><test-case name="37850stG010.v tokoe:valid" result="pass"/><test-case name="37851stG011 tokoe:valid" result="pass"/><test-case name="37852stG011.i tokoe:invalid" result="pass"/><test-case name="37853stG012 tokoe:valid" result="pass"/><test-case name="37854stG012.v tokoe:valid" result="pass"/><test-case name="37855stG013 tokoe:valid" result="pass"/><test-case name="37856stG013.i tokoe:invalid" result="pass"/><test-case name="37857stH001 tokoe:valid" result="pass"/><test-case name="37858stH001.v tokoe:valid" result="pass"/><test-case name="37859stH002 tokoe:valid" result="pass"/><test-case name="37860stH002.i tokoe:invalid" result="pass"/><test-case name="37861stH003 tokoe:valid" result="pass"/><test-case name="37862stH003.v tokoe:valid" result="pass"/><test-case name="37863stH004 tokoe:valid" result="pass"/><test-case name="37864stH004.i tokoe:invalid" result="pass"/><test-case name="37865stH005 tokoe:valid" result="pass"/><test-case name="37866stH005.v tokoe:valid" result="pass"/><test-case name="37867stH006 tokoe:valid" result="pass"/><test-case name="37868stH006.i tokoe:invalid" result="pass"/><test-case name="37869stH007 tokoe:valid" result="pass"/><test-case name="37870stH007.v tokoe:valid" result="pass"/><test-case name="37871stH008 tokoe:valid" result="pass"/><test-case name="37872stH008.i tokoe:invalid" result="pass"/><test-case name="37873stI001 tokoe:valid" result="pass"/><test-case name="37874stI002 tokoe:valid" result="pass"/><test-case name="37875stI003 tokoe:valid" result="pass"/><test-case name="37876stI004 tokoe:invalid" result="pass"/><test-case name="37877stI005 tokoe:invalid" result="pass"/><test-case name="37878stJ001 tokoe:valid" result="pass"/><test-case name="37879stJ002 tokoe:valid" result="pass"/><test-case name="37880stJ003 tokoe:invalid" result="pass"/><test-case name="37881stJ004 tokoe:valid" result="pass"/><test-case name="37882stJ005 tokoe:valid" result="pass"/><test-case name="37883stJ006 tokoe:valid" result="pass"/><test-case name="37884stJ007 tokoe:valid" result="pass"/><test-case name="37885stJ008 tokoe:valid" result="pass"/><test-case name="37886stJ009 tokoe:invalid" result="pass"/><test-case name="37887stJ010 tokoe:invalid" result="pass"/><test-case name="37888stJ011 tokoe:invalid" result="pass"/><test-case name="37889stJ012 tokoe:invalid" result="pass"/><test-case name="37890stJ013 tokoe:invalid" result="pass"/><test-case name="37891stJ014 tokoe:invalid" result="pass"/><test-case name="37892stJ015 tokoe:invalid" result="pass"/><test-case name="37893stJ016 tokoe:invalid" result="pass"/><test-case name="37894stJ017 tokoe:invalid" result="pass"/><test-case name="37895stJ018 tokoe:invalid" result="pass"/><test-case name="37896stJ019 tokoe:invalid" result="pass"/><test-case name="37897stK001 tokoe:valid" result="pass"/><test-case name="37898stK002 tokoe:invalid" result="pass"/><test-case name="37899stK003 tokoe:invalid" result="pass"/><test-case name="37900stK004 tokoe:valid" result="pass"/><test-case name="37901stK005 tokoe:invalid" result="pass"/><test-case name="37902stK006 tokoe:invalid" result="pass"/><test-case name="37903stK007 tokoe:invalid" result="pass"/><test-case name="37904stK008 tokoe:valid" result="pass"/><test-case name="37905stK009 tokoe:valid" result="pass"/><test-case name="37906stK010 tokoe:invalid" result="pass"/><test-case name="37907stK011 tokoe:invalid" result="pass"/><test-case name="37908stK012 tokoe:invalid" result="pass"/><test-case name="37909stK013 tokoe:invalid" result="pass"/><test-case name="37910stK014 tokoe:invalid" result="pass"/><test-case name="37911stK015 tokoe:invalid" result="pass"/><test-case name="37912stK016 tokoe:invalid" result="pass"/><test-case name="37913stK017 tokoe:invalid" result="pass"/><test-case name="37914stK018 tokoe:invalid" result="pass"/><test-case name="37915stK019 tokoe:invalid" result="pass"/><test-case name="37916stZ001 tokoe:valid" result="pass"/><test-case name="37917stZ002 tokoe:invalid" result="pass"/><test-case name="37918stZ003 tokoe:invalid" result="pass"/><test-case name="37919stZ004 tokoe:valid" result="pass"/><test-case name="37920stZ004.v tokoe:valid" result="pass"/><test-case name="37921stZ005 tokoe:invalid" result="pass"/><test-case name="37922stZ006 tokoe:invalid" result="pass"/><test-case name="37923stZ008 tokoe:valid" result="pass"/><test-case name="37924stZ008.v tokoe:valid" result="pass"/><test-case name="37925stZ009 tokoe:invalid" result="pass"/><test-case name="37926stZ010 tokoe:invalid" result="pass"/><test-case name="37927stZ011 tokoe:invalid" result="pass"/><test-case name="37928stZ012 tokoe:invalid" result="pass"/><test-case name="37929stZ013 tokoe:invalid" result="pass"/><test-case name="37930stZ014 tokoe:invalid" result="pass"/><test-case name="37931stZ015 tokoe:valid" result="pass"/><test-case name="37932stZ015.v tokoe:valid" result="pass"/><test-case name="37933stZ016 tokoe:valid" result="pass"/><test-case name="37934stZ017 tokoe:valid" result="pass"/><test-case name="37935stZ018 tokoe:invalid" result="pass"/><test-case name="37936stZ019 tokoe:invalid" result="pass"/><test-case name="37937stZ020 tokoe:valid" result="pass"/><test-case name="37938stZ021 tokoe:valid" result="pass"/><test-case name="37939stZ022 tokoe:invalid" result="pass"/><test-case name="37940stZ023 tokoe:valid" result="pass"/><test-case name="37941stZ024 tokoe:valid" result="pass"/><test-case name="37942stZ025 tokoe:valid" result="pass"/><test-case name="37943stZ026 tokoe:invalid" result="pass"/><test-case name="37944stZ027 tokoe:invalid" result="pass"/><test-case name="37945stZ028 tokoe:invalid" result="pass"/><test-case name="37946stZ029 tokoe:valid" result="pass"/><test-case name="37947stZ030 tokoe:valid" result="pass"/><test-case name="37948stZ030.v tokoe:valid" result="pass"/><test-case name="37949stZ031 tokoe:valid" result="pass"/><test-case name="37950stZ031.v tokoe:valid" result="pass"/><test-case name="37951stZ032 tokoe:valid" result="pass"/><test-case name="37952stZ032.i tokoe:invalid" result="pass"/><test-case name="37953stZ033 tokoe:valid" result="pass"/><test-case name="37954stZ033.i tokoe:invalid" result="pass"/><test-case name="37955stZ034 tokoe:valid" result="pass"/><test-case name="37956stZ034.i tokoe:invalid" result="pass"/><test-case name="37957stZ035 tokoe:valid" result="pass"/><test-case name="37958stZ035.i tokoe:invalid" result="pass"/><test-case name="37959stZ036 tokoe:valid" result="pass"/><test-case name="37960stZ036.v tokoe:valid" result="pass"/><test-case name="37961stZ037 tokoe:valid" result="pass"/><test-case name="37962stZ037.i tokoe:invalid" result="fail"/><test-case name="37963stZ038 tokoe:invalid" result="pass"/><test-case name="37964stZ039 tokoe:valid" result="pass"/><test-case name="37965stZ039.i tokoe:invalid" result="pass"/><test-case name="37966stZ040 tokoe:valid" result="pass"/><test-case name="37967stZ040.v tokoe:valid" result="pass"/><test-case name="37968stZ042 tokoe:valid" result="pass"/><test-case name="37969stZ043 tokoe:valid" result="pass"/><test-case name="37970stZ043.v tokoe:valid" result="fail"/><test-case name="37971stZ044 tokoe:valid" result="pass"/><test-case name="37972stZ044.i tokoe:invalid" result="pass"/><test-case name="37973stZ045 tokoe:valid" result="pass"/><test-case name="37974stZ045.v tokoe:valid" result="pass"/><test-case name="37975stZ046 tokoe:valid" result="pass"/><test-case name="37976stZ046.v tokoe:valid" result="pass"/><test-case name="37977stZ048 tokoe:invalid" result="pass"/><test-case name="37978stZ049 tokoe:invalid" result="pass"/><test-case name="37979stZ050 tokoe:valid" result="pass"/><test-case name="37980stZ050.v tokoe:valid" result="pass"/><test-case name="37981stZ051 tokoe:valid" result="pass"/><test-case name="37982stZ051.i tokoe:invalid" result="pass"/><test-case name="37983stZ052 tokoe:valid" result="pass"/><test-case name="37984stZ052.v tokoe:valid" result="pass"/><test-case name="37985stZ053 tokoe:valid" result="pass"/><test-case name="37986stZ053.v tokoe:valid" result="pass"/><test-case name="37987stZ054 tokoe:valid" result="pass"/><test-case name="37988stZ054.v tokoe:valid" result="pass"/><test-case name="37989stZ056 tokoe:valid" result="pass"/><test-case name="37990stZ056.i tokoe:invalid" result="pass"/><test-case name="37991stZ057 tokoe:valid" result="pass"/><test-case name="37992stZ057.v tokoe:valid" result="pass"/><test-case name="37993stZ058.v tokoe:valid" result="pass"/><test-case name="37994stZ059.i tokoe:invalid" result="pass"/><test-case name="37995stZ060.i tokoe:invalid" result="pass"/><test-case name="37996stZ061.i tokoe:invalid" result="pass"/><test-case name="37997stZ062.v tokoe:valid" result="pass"/><test-case name="37998stZ063.v tokoe:valid" result="pass"/><test-case name="37999stZ064.i tokoe:invalid" result="pass"/><test-case name="38000stZ066.i tokoe:invalid" result="pass"/><test-case name="38001stZ067 tokoe:valid" result="pass"/><test-case name="38002stZ068 tokoe:valid" result="pass"/><test-case name="38003stZ069 tokoe:valid" result="pass"/><test-case name="38004stZ070 tokoe:invalid" result="pass"/><test-case name="38005stZ071 tokoe:valid" result="pass"/><test-case name="38006stZ071.v tokoe:valid" result="pass"/><test-case name="38007stZ072 tokoe:valid" result="pass"/><test-case name="38008stZ072.v tokoe:valid" result="pass"/><test-case name="38009stZ073b tokoe:valid" result="pass"/><test-case name="38010stZ073b.i tokoe:invalid" result="pass"/><test-case name="38011stZ074 tokoe:valid" result="pass"/><test-case name="38012stZ074.v tokoe:valid" result="pass"/><test-case name="38013stZ075 tokoe:valid" result="pass"/><test-case name="38014stZ075.v tokoe:valid" result="pass"/><test-case name="38015wildA001 tokoe:valid" result="pass"/><test-case name="38016wildA002 tokoe:valid" result="pass"/><test-case name="38017wildA003 tokoe:invalid" result="pass"/><test-case name="38018wildA004 tokoe:invalid" result="pass"/><test-case name="38019wildA005 tokoe:invalid" result="pass"/><test-case name="38020wildA006 tokoe:invalid" result="pass"/><test-case name="38021wildA007 tokoe:invalid" result="pass"/><test-case name="38022wildA008 tokoe:invalid" result="pass"/><test-case name="38023wildB010 tokoe:valid" result="pass"/><test-case name="38024wildB011 tokoe:valid" result="pass"/><test-case name="38025wildB012 tokoe:valid" result="pass"/><test-case name="38026wildB013 tokoe:valid" result="pass"/><test-case name="38027wildB014 tokoe:invalid" result="pass"/><test-case name="38028wildB015 tokoe:invalid" result="pass"/><test-case name="38029wildB016 tokoe:invalid" result="pass"/><test-case name="38030wildB017 tokoe:valid" result="pass"/><test-case name="38031wildB018 tokoe:valid" result="pass"/><test-case name="38032wildB019 tokoe:valid" result="pass"/><test-case name="38033wildB020 tokoe:invalid" result="pass"/><test-case name="38034wildB021 tokoe:valid" result="pass"/><test-case name="38035wildB022 tokoe:invalid" result="pass"/><test-case name="38036wildB023 tokoe:invalid" result="pass"/><test-case name="38037wildB024 tokoe:invalid" result="pass"/><test-case name="38038wildB025 tokoe:valid" result="pass"/><test-case name="38039wildB026 tokoe:valid" result="pass"/><test-case name="38040wildB027 tokoe:invalid" result="pass"/><test-case name="38041wildB028 tokoe:invalid" result="pass"/><test-case name="38042wildB029 tokoe:valid" result="pass"/><test-case name="38043wildC030 tokoe:valid" result="pass"/><test-case name="38044wildC031 tokoe:valid" result="pass"/><test-case name="38045wildC032 tokoe:valid" result="pass"/><test-case name="38046wildC033 tokoe:valid" result="pass"/><test-case name="38047wildC034 tokoe:valid" result="pass"/><test-case name="38048wildC035 tokoe:invalid" result="pass"/><test-case name="38049wildC036 tokoe:invalid" result="pass"/><test-case name="38050wildC037 tokoe:valid" result="pass"/><test-case name="38051wildC038 tokoe:valid" result="pass"/><test-case name="38052wildC039 tokoe:valid" result="pass"/><test-case name="38053wildC040 tokoe:valid" result="pass"/><test-case name="38054wildC041 tokoe:valid" result="pass"/><test-case name="38055wildC042 tokoe:valid" result="pass"/><test-case name="38056wildC043 tokoe:valid" result="pass"/><test-case name="38057wildC044 tokoe:valid" result="pass"/><test-case name="38058wildC045 tokoe:valid" result="pass"/><test-case name="38059wildC046 tokoe:valid" result="pass"/><test-case name="38060wildC047 tokoe:valid" result="pass"/><test-case name="38061wildC048 tokoe:valid" result="pass"/><test-case name="38062wildC049 tokoe:invalid" result="pass"/><test-case name="38063wildC050 tokoe:invalid" result="pass"/><test-case name="38064wildC051 tokoe:invalid" result="pass"/><test-case name="38065wildC052 tokoe:invalid" result="pass"/><test-case name="38066wildC053 tokoe:invalid" result="pass"/><test-case name="38067wildC054 tokoe:valid" result="pass"/><test-case name="38068wildC055 tokoe:invalid" result="pass"/><test-case name="38069wildC056 tokoe:invalid" result="pass"/><test-case name="38070wildC057 tokoe:invalid" result="pass"/><test-case name="38071wildC058 tokoe:invalid" result="pass"/><test-case name="38072wildC059 tokoe:valid" result="pass"/><test-case name="38073wildC060 tokoe:valid" result="pass"/><test-case name="38074wildC061 tokoe:valid" result="pass"/><test-case name="38075wildC062 tokoe:valid" result="pass"/><test-case name="38076wildC063 tokoe:valid" result="pass"/><test-case name="38077wildC064 tokoe:valid" result="pass"/><test-case name="38078wildC065 tokoe:valid" result="pass"/><test-case name="38079wildC066 tokoe:invalid" result="pass"/><test-case name="38080wildC067 tokoe:invalid" result="pass"/><test-case name="38081wildC068 tokoe:valid" result="pass"/><test-case name="38082wildC069 tokoe:valid" result="pass"/><test-case name="38083wildC070 tokoe:valid" result="pass"/><test-case name="38084wildD071 tokoe:invalid" result="pass"/><test-case name="38085wildD072 tokoe:valid" result="pass"/><test-case name="38086wildD073 tokoe:valid" result="pass"/><test-case name="38087wildD074 tokoe:valid" result="pass"/><test-case name="38088wildD075 tokoe:invalid" result="pass"/><test-case name="38089wildD076 tokoe:invalid" result="pass"/><test-case name="38090wildD077 tokoe:invalid" result="pass"/><test-case name="38091wildD078 tokoe:invalid" result="pass"/><test-case name="38092wildD079 tokoe:invalid" result="pass"/><test-case name="38093wildE001 tokoe:valid" result="pass"/><test-case name="38094wildE002 tokoe:invalid" result="pass"/><test-case name="38095wildF001 tokoe:valid" result="pass"/><test-case name="38096wildF002 tokoe:valid" result="pass"/><test-case name="38097wildF003 tokoe:valid" result="pass"/><test-case name="38098wildF004 tokoe:valid" result="pass"/><test-case name="38099wildF005 tokoe:valid" result="pass"/><test-case name="38100wildF006 tokoe:invalid" result="pass"/><test-case name="38101wildF007 tokoe:invalid" result="pass"/><test-case name="38102wildF008 tokoe:invalid" result="pass"/><test-case name="38103wildF009 tokoe:invalid" result="pass"/><test-case name="38104wildF010 tokoe:invalid" result="pass"/><test-case name="38105wildF011 tokoe:valid" result="pass"/><test-case name="38106wildF012 tokoe:invalid" result="pass"/><test-case name="38107wildF013 tokoe:invalid" result="pass"/><test-case name="38108wildF014 tokoe:invalid" result="pass"/><test-case name="38109wildF015 tokoe:invalid" result="pass"/><test-case name="38110wildF016 tokoe:invalid" result="pass"/><test-case name="38111wildF017 tokoe:valid" result="pass"/><test-case name="38112wildF018 tokoe:invalid" result="pass"/><test-case name="38113wildF019 tokoe:valid" result="pass"/><test-case name="38114wildF020 tokoe:valid" result="pass"/><test-case name="38115wildG001 tokoe:valid" result="pass"/><test-case name="38116wildG001.v tokoe:valid" result="pass"/><test-case name="38117wildG002 tokoe:valid" result="pass"/><test-case name="38118wildG002.v tokoe:valid" result="pass"/><test-case name="38119wildG003 tokoe:valid" result="pass"/><test-case name="38120wildG003.i tokoe:invalid" result="pass"/><test-case name="38121wildG004 tokoe:valid" result="pass"/><test-case name="38122wildG004.v tokoe:valid" result="pass"/><test-case name="38123wildG005 tokoe:valid" result="pass"/><test-case name="38124wildG005.i tokoe:invalid" result="pass"/><test-case name="38125wildG006 tokoe:valid" result="pass"/><test-case name="38126wildG006.v tokoe:valid" result="pass"/><test-case name="38127wildG007 tokoe:valid" result="pass"/><test-case name="38128wildG007.v tokoe:valid" result="pass"/><test-case name="38129wildG008 tokoe:valid" result="pass"/><test-case name="38130wildG008.i tokoe:invalid" result="pass"/><test-case name="38131wildG009 tokoe:valid" result="pass"/><test-case name="38132wildG009.i tokoe:invalid" result="pass"/><test-case name="38133wildG010 tokoe:valid" result="pass"/><test-case name="38134wildG010.v tokoe:valid" result="pass"/><test-case name="38135wildG011 tokoe:valid" result="pass"/><test-case name="38136wildG011.i tokoe:invalid" result="pass"/><test-case name="38137wildG012 tokoe:valid" result="pass"/><test-case name="38138wildG012.v tokoe:valid" result="pass"/><test-case name="38139wildG013 tokoe:valid" result="pass"/><test-case name="38140wildG013.v tokoe:valid" result="pass"/><test-case name="38141wildG014 tokoe:valid" result="pass"/><test-case name="38142wildG014.i tokoe:invalid" result="pass"/><test-case name="38143wildG015 tokoe:valid" result="pass"/><test-case name="38144wildG015.v tokoe:valid" result="pass"/><test-case name="38145wildG016 tokoe:valid" result="pass"/><test-case name="38146wildG016.v tokoe:valid" result="pass"/><test-case name="38147wildG017 tokoe:valid" result="pass"/><test-case name="38148wildG017.i tokoe:invalid" result="pass"/><test-case name="38149wildG018 tokoe:valid" result="pass"/><test-case name="38150wildG018.v tokoe:valid" result="pass"/><test-case name="38151wildG019 tokoe:valid" result="pass"/><test-case name="38152wildG019.i tokoe:invalid" result="pass"/><test-case name="38153wildG020 tokoe:valid" result="pass"/><test-case name="38154wildG020.i tokoe:invalid" result="pass"/><test-case name="38155wildG021 tokoe:valid" result="pass"/><test-case name="38156wildG021.v tokoe:valid" result="pass"/><test-case name="38157wildG022 tokoe:valid" result="pass"/><test-case name="38158wildG022.i tokoe:invalid" result="pass"/><test-case name="38159wildG023 tokoe:valid" result="pass"/><test-case name="38160wildG023.v tokoe:valid" result="pass"/><test-case name="38161wildG024 tokoe:valid" result="pass"/><test-case name="38162wildG024.i tokoe:invalid" result="pass"/><test-case name="38163wildG025 tokoe:valid" result="pass"/><test-case name="38164wildG025.i tokoe:invalid" result="pass"/><test-case name="38165wildG026 tokoe:valid" result="pass"/><test-case name="38166wildG026.v tokoe:valid" result="pass"/><test-case name="38167wildG027 tokoe:valid" result="pass"/><test-case name="38168wildG027.v tokoe:valid" result="pass"/><test-case name="38169wildG028 tokoe:valid" result="pass"/><test-case name="38170wildG028.i tokoe:invalid" result="pass"/><test-case name="38171wildG029 tokoe:valid" result="pass"/><test-case name="38172wildG029.i tokoe:invalid" result="pass"/><test-case name="38173wildG030 tokoe:valid" result="pass"/><test-case name="38174wildG030.i tokoe:invalid" result="pass"/><test-case name="38175wildG031 tokoe:valid" result="pass"/><test-case name="38176wildG031.v tokoe:valid" result="pass"/><test-case name="38177wildG032 tokoe:valid" result="pass"/><test-case name="38178wildG032.i tokoe:invalid" result="pass"/><test-case name="38179wildG033 tokoe:valid" result="pass"/><test-case name="38180wildG033.v tokoe:valid" result="pass"/><test-case name="38181wildG034 tokoe:valid" result="pass"/><test-case name="38182wildG034.i tokoe:invalid" result="pass"/><test-case name="38183wildG035 tokoe:valid" result="pass"/><test-case name="38184wildG035.v tokoe:valid" result="pass"/><test-case name="38185wildG036 tokoe:valid" result="pass"/><test-case name="38186wildG036.i tokoe:invalid" result="pass"/><test-case name="38187wildG037 tokoe:valid" result="pass"/><test-case name="38188wildG037.v tokoe:valid" result="pass"/><test-case name="38189wildG038 tokoe:valid" result="pass"/><test-case name="38190wildG038.v tokoe:valid" result="pass"/><test-case name="38191wildG039 tokoe:valid" result="pass"/><test-case name="38192wildG039.i tokoe:invalid" result="pass"/><test-case name="38193wildG040 tokoe:valid" result="pass"/><test-case name="38194wildG040.v tokoe:valid" result="pass"/><test-case name="38195wildH001 tokoe:valid" result="pass"/><test-case name="38196wildH001.i tokoe:invalid" result="pass"/><test-case name="38197wildH002 tokoe:valid" result="pass"/><test-case name="38198wildH002.i tokoe:invalid" result="pass"/><test-case name="38199wildH003 tokoe:valid" result="pass"/><test-case name="38200wildH003.v tokoe:valid" result="pass"/><test-case name="38201wildH004 tokoe:valid" result="pass"/><test-case name="38202wildH004.v tokoe:valid" result="pass"/><test-case name="38203wildH005 tokoe:valid" result="pass"/><test-case name="38204wildH005.v tokoe:valid" result="pass"/><test-case name="38205wildH006 tokoe:valid" result="pass"/><test-case name="38206wildH006.i tokoe:invalid" result="pass"/><test-case name="38207wildH007 tokoe:valid" result="pass"/><test-case name="38208wildH007.v tokoe:valid" result="pass"/><test-case name="38209wildH008 tokoe:valid" result="pass"/><test-case name="38210wildH008.i tokoe:invalid" result="pass"/><test-case name="38211wildH009 tokoe:valid" result="pass"/><test-case name="38212wildH009.v tokoe:valid" result="pass"/><test-case name="38213wildH010 tokoe:valid" result="pass"/><test-case name="38214wildH010.v tokoe:valid" result="pass"/><test-case name="38215wildH011 tokoe:valid" result="pass"/><test-case name="38216wildH011.v tokoe:valid" result="pass"/><test-case name="38217wildH012 tokoe:valid" result="pass"/><test-case name="38218wildH012.v tokoe:valid" result="pass"/><test-case name="38219wildI001 tokoe:valid" result="pass"/><test-case name="38220wildI002 tokoe:invalid" result="pass"/><test-case name="38221wildI003 tokoe:invalid" result="pass"/><test-case name="38222wildI004 tokoe:valid" result="pass"/><test-case name="38223wildI004.v tokoe:valid" result="pass"/><test-case name="38224wildI004i tokoe:valid" result="pass"/><test-case name="38225wildI004i.i tokoe:invalid" result="pass"/><test-case name="38226wildI005 tokoe:valid" result="pass"/><test-case name="38227wildI005.v tokoe:valid" result="pass"/><test-case name="38228wildI006 tokoe:valid" result="pass"/><test-case name="38229wildI006.v tokoe:valid" result="pass"/><test-case name="38230wildI007 tokoe:valid" result="pass"/><test-case name="38231wildI007.v tokoe:valid" result="pass"/><test-case name="38232wildI008 tokoe:valid" result="pass"/><test-case name="38233wildI009 tokoe:invalid" result="pass"/><test-case name="38234wildI010 tokoe:invalid" result="pass"/><test-case name="38235wildI011 tokoe:valid" result="pass"/><test-case name="38236wildI011.v tokoe:valid" result="pass"/><test-case name="38237wildI012 tokoe:valid" result="pass"/><test-case name="38238wildI012.v tokoe:valid" result="pass"/><test-case name="38239wildI013 tokoe:invalid" result="pass"/><test-case name="38240wildI014 tokoe:invalid" result="pass"/><test-case name="38241wildJ001 tokoe:valid" result="pass"/><test-case name="38242wildJ002 tokoe:valid" result="pass"/><test-case name="38243wildJ003 tokoe:invalid" result="pass"/><test-case name="38244wildJ004 tokoe:invalid" result="pass"/><test-case name="38245wildJ005 tokoe:invalid" result="pass"/><test-case name="38246wildJ006 tokoe:invalid" result="pass"/><test-case name="38247wildJ007 tokoe:invalid" result="pass"/><test-case name="38248wildJ008 tokoe:invalid" result="pass"/><test-case name="38249wildK001 tokoe:valid" result="pass"/><test-case name="38250wildK002 tokoe:invalid" result="pass"/><test-case name="38251wildK003 tokoe:valid" result="pass"/><test-case name="38252wildK004 tokoe:valid" result="pass"/><test-case name="38253wildK005 tokoe:valid" result="pass"/><test-case name="38254wildK006 tokoe:invalid" result="pass"/><test-case name="38255wildK007 tokoe:invalid" result="pass"/><test-case name="38256wildK008 tokoe:valid" result="pass"/><test-case name="38257wildK009 tokoe:valid" result="pass"/><test-case name="38258wildK010 tokoe:valid" result="pass"/><test-case name="38259wildK011 tokoe:valid" result="pass"/><test-case name="38260wildK012 tokoe:valid" result="pass"/><test-case name="38261wildK013 tokoe:valid" result="pass"/><test-case name="38262wildK014 tokoe:valid" result="pass"/><test-case name="38263wildK015 tokoe:valid" result="pass"/><test-case name="38264wildK016 tokoe:valid" result="pass"/><test-case name="38265wildK017 tokoe:valid" result="pass"/><test-case name="38266wildK018 tokoe:valid" result="pass"/><test-case name="38267wildK019 tokoe:valid" result="pass"/><test-case name="38268wildK020 tokoe:invalid" result="pass"/><test-case name="38269wildK021 tokoe:invalid" result="pass"/><test-case name="38270wildK022 tokoe:invalid" result="pass"/><test-case name="38271wildK023 tokoe:invalid" result="pass"/><test-case name="38272wildK024 tokoe:invalid" result="pass"/><test-case name="38273wildK025 tokoe:valid" result="pass"/><test-case name="38274wildK026 tokoe:invalid" result="pass"/><test-case name="38275wildK027 tokoe:invalid" result="pass"/><test-case name="38276wildK028 tokoe:invalid" result="pass"/><test-case name="38277wildK029 tokoe:invalid" result="pass"/><test-case name="38278wildK030 tokoe:valid" result="pass"/><test-case name="38279wildK031 tokoe:valid" result="pass"/><test-case name="38280wildK032 tokoe:valid" result="pass"/><test-case name="38281wildK033 tokoe:valid" result="pass"/><test-case name="38282wildK034 tokoe:valid" result="pass"/><test-case name="38283wildK035 tokoe:valid" result="pass"/><test-case name="38284wildK036 tokoe:valid" result="pass"/><test-case name="38285wildK037 tokoe:valid" result="pass"/><test-case name="38286wildK038 tokoe:invalid" result="pass"/><test-case name="38287wildK039 tokoe:valid" result="pass"/><test-case name="38288wildK040 tokoe:valid" result="pass"/><test-case name="38289wildK041 tokoe:valid" result="pass"/><test-case name="38290wildL001 tokoe:invalid" result="pass"/><test-case name="38291wildL002 tokoe:valid" result="pass"/><test-case name="38292wildL003 tokoe:valid" result="pass"/><test-case name="38293wildL004 tokoe:valid" result="pass"/><test-case name="38294wildL005 tokoe:invalid" result="pass"/><test-case name="38295wildL006 tokoe:invalid" result="pass"/><test-case name="38296wildL007 tokoe:invalid" result="pass"/><test-case name="38297wildL008 tokoe:invalid" result="pass"/><test-case name="38298wildL009 tokoe:invalid" result="pass"/><test-case name="38299wildM001 tokoe:valid" result="pass"/><test-case name="38300wildM002 tokoe:invalid" result="pass"/><test-case name="38301wildN001 tokoe:invalid" result="pass"/><test-case name="38302wildN002 tokoe:valid" result="pass"/><test-case name="38303wildN003 tokoe:valid" result="pass"/><test-case name="38304wildN004 tokoe:valid" result="pass"/><test-case name="38305wildN005 tokoe:valid" result="pass"/><test-case name="38306wildN006 tokoe:invalid" result="pass"/><test-case name="38307wildN007 tokoe:invalid" result="pass"/><test-case name="38308wildN008 tokoe:invalid" result="pass"/><test-case name="38309wildN009 tokoe:invalid" result="pass"/><test-case name="38310wildN010 tokoe:invalid" result="pass"/><test-case name="38311wildN011 tokoe:valid" result="pass"/><test-case name="38312wildN012 tokoe:invalid" result="pass"/><test-case name="38313wildN013 tokoe:invalid" result="pass"/><test-case name="38314wildN014 tokoe:invalid" result="pass"/><test-case name="38315wildN015 tokoe:invalid" result="pass"/><test-case name="38316wildN016 tokoe:invalid" result="pass"/><test-case name="38317wildN017 tokoe:valid" result="pass"/><test-case name="38318wildN018 tokoe:invalid" result="pass"/><test-case name="38319wildN019 tokoe:valid" result="pass"/><test-case name="38320wildN020 tokoe:valid" result="pass"/><test-case name="38321wildQ001 tokoe:invalid" result="pass"/><test-case name="38322wildQ002 tokoe:invalid" result="pass"/><test-case name="38323wildQ003 tokoe:invalid" result="pass"/><test-case name="38324wildQ004 tokoe:invalid" result="pass"/><test-case name="38325wildO001 tokoe:valid" result="pass"/><test-case name="38326wildO001.v tokoe:valid" result="pass"/><test-case name="38327wildO002 tokoe:valid" result="pass"/><test-case name="38328wildO002.v tokoe:valid" result="pass"/><test-case name="38329wildO003 tokoe:valid" result="pass"/><test-case name="38330wildO003.i tokoe:invalid" result="pass"/><test-case name="38331wildO004 tokoe:valid" result="pass"/><test-case name="38332wildO004.v tokoe:valid" result="pass"/><test-case name="38333wildO005 tokoe:valid" result="pass"/><test-case name="38334wildO005.v tokoe:valid" result="pass"/><test-case name="38335wildO006 tokoe:valid" result="pass"/><test-case name="38336wildO006.i tokoe:invalid" result="pass"/><test-case name="38337wildO007 tokoe:valid" result="pass"/><test-case name="38338wildO007.v tokoe:valid" result="pass"/><test-case name="38339wildO008 tokoe:valid" result="pass"/><test-case name="38340wildO008.i tokoe:invalid" result="pass"/><test-case name="38341wildO009 tokoe:valid" result="pass"/><test-case name="38342wildO009.i tokoe:invalid" result="pass"/><test-case name="38343wildO010 tokoe:valid" result="pass"/><test-case name="38344wildO010.v tokoe:valid" result="pass"/><test-case name="38345wildO011 tokoe:valid" result="pass"/><test-case name="38346wildO011.i tokoe:invalid" result="pass"/><test-case name="38347wildO012 tokoe:valid" result="pass"/><test-case name="38348wildO012.v tokoe:valid" result="pass"/><test-case name="38349wildO013 tokoe:valid" result="pass"/><test-case name="38350wildO013.v tokoe:valid" result="pass"/><test-case name="38351wildO014 tokoe:valid" result="pass"/><test-case name="38352wildO014.i tokoe:invalid" result="pass"/><test-case name="38353wildO015 tokoe:valid" result="pass"/><test-case name="38354wildO015.v tokoe:valid" result="pass"/><test-case name="38355wildO016 tokoe:valid" result="pass"/><test-case name="38356wildO016.v tokoe:valid" result="pass"/><test-case name="38357wildO017 tokoe:valid" result="pass"/><test-case name="38358wildO017.i tokoe:invalid" result="pass"/><test-case name="38359wildO018 tokoe:valid" result="pass"/><test-case name="38360wildO018.v tokoe:valid" result="pass"/><test-case name="38361wildO019 tokoe:valid" result="pass"/><test-case name="38362wildO019.v tokoe:valid" result="pass"/><test-case name="38363wildO020 tokoe:valid" result="pass"/><test-case name="38364wildO020.i tokoe:invalid" result="pass"/><test-case name="38365wildO021 tokoe:valid" result="pass"/><test-case name="38366wildO021.v tokoe:valid" result="pass"/><test-case name="38367wildO022 tokoe:valid" result="pass"/><test-case name="38368wildO022.i tokoe:invalid" result="pass"/><test-case name="38369wildO023 tokoe:valid" result="pass"/><test-case name="38370wildO023.v tokoe:valid" result="pass"/><test-case name="38371wildO024 tokoe:valid" result="pass"/><test-case name="38372wildO024.i tokoe:invalid" result="pass"/><test-case name="38373wildO025 tokoe:valid" result="pass"/><test-case name="38374wildO025.i tokoe:invalid" result="pass"/><test-case name="38375wildO026 tokoe:valid" result="pass"/><test-case name="38376wildO026.v tokoe:valid" result="pass"/><test-case name="38377wildO027 tokoe:valid" result="pass"/><test-case name="38378wildO027.v tokoe:valid" result="pass"/><test-case name="38379wildO028 tokoe:valid" result="pass"/><test-case name="38380wildO028.i tokoe:invalid" result="pass"/><test-case name="38381wildO029 tokoe:valid" result="pass"/><test-case name="38382wildO029.v tokoe:valid" result="pass"/><test-case name="38383wildO030 tokoe:valid" result="pass"/><test-case name="38384wildO030.i tokoe:invalid" result="pass"/><test-case name="38385wildO031 tokoe:valid" result="pass"/><test-case name="38386wildO031.v tokoe:valid" result="pass"/><test-case name="38387wildO032 tokoe:valid" result="pass"/><test-case name="38388wildO032.i tokoe:invalid" result="pass"/><test-case name="38389wildO033 tokoe:valid" result="pass"/><test-case name="38390wildO033.v tokoe:valid" result="pass"/><test-case name="38391wildO034 tokoe:valid" result="pass"/><test-case name="38392wildO034.i tokoe:invalid" result="pass"/><test-case name="38393wildO035 tokoe:valid" result="pass"/><test-case name="38394wildO035.i tokoe:invalid" result="pass"/><test-case name="38395wildO037 tokoe:valid" result="pass"/><test-case name="38396wildO037.v tokoe:valid" result="pass"/><test-case name="38397wildO038 tokoe:valid" result="pass"/><test-case name="38398wildO038.v tokoe:valid" result="pass"/><test-case name="38399wildO039 tokoe:valid" result="pass"/><test-case name="38400wildO039.i tokoe:invalid" result="pass"/><test-case name="38401wildO040 tokoe:valid" result="pass"/><test-case name="38402wildO040.v tokoe:valid" result="pass"/><test-case name="38403wildP001 tokoe:valid" result="pass"/><test-case name="38404wildP001.v tokoe:valid" result="pass"/><test-case name="38405wildP002 tokoe:valid" result="pass"/><test-case name="38406wildP002.i tokoe:invalid" result="pass"/><test-case name="38407wildP003 tokoe:valid" result="pass"/><test-case name="38408wildP003.v tokoe:valid" result="pass"/><test-case name="38409wildP004 tokoe:valid" result="pass"/><test-case name="38410wildP004.v tokoe:valid" result="pass"/><test-case name="38411wildP005 tokoe:valid" result="pass"/><test-case name="38412wildP005.v tokoe:valid" result="pass"/><test-case name="38413wildP006 tokoe:valid" result="pass"/><test-case name="38414wildP006.v tokoe:valid" result="pass"/><test-case name="38415wildZ001 tokoe:valid" result="pass"/><test-case name="38416wildZ001.i tokoe:invalid" result="pass"/><test-case name="38417wildZ002 tokoe:valid" result="pass"/><test-case name="38418wildZ002.v tokoe:valid" result="pass"/><test-case name="38419wildZ003 tokoe:valid" result="pass"/><test-case name="38420wildZ003.v tokoe:valid" result="fail"/><test-case name="38421wildZ004 tokoe:valid" result="pass"/><test-case name="38422wildZ004.v tokoe:valid" result="pass"/><test-case name="38423wildZ005 tokoe:valid" result="pass"/><test-case name="38424wildZ005.i tokoe:invalid" result="pass"/><test-case name="38425wildZ006 tokoe:valid" result="pass"/><test-case name="38426wildZ006.i tokoe:invalid" result="pass"/><test-case name="38427wildZ007 tokoe:valid" result="pass"/><test-case name="38428wildZ007.v tokoe:valid" result="pass"/><test-case name="38429wildZ008 tokoe:invalid" result="pass"/><test-case name="38430wildZ009 tokoe:invalid" result="pass"/><test-case name="38431wildZ009b tokoe:valid" result="pass"/><test-case name="38432wildZ011 tokoe:valid" result="pass"/><test-case name="38433wildZ011.i tokoe:invalid" result="pass"/><test-case name="38434wildZ013 tokoe:invalid" result="pass"/><test-case name="38435wildZ013a tokoe:valid" result="pass"/><test-case name="38436wildZ013a.i tokoe:invalid" result="pass"/><test-case name="38437wildZ013b tokoe:valid" result="pass"/><test-case name="38438wildZ013b.v tokoe:valid" result="pass"/><test-case name="38439wildZ013c tokoe:valid" result="pass"/><test-case name="38440wildZ013c.v tokoe:valid" result="pass"/><test-case name="38441wildZ013d tokoe:valid" result="pass"/><test-case name="38442wildZ013d.i tokoe:invalid" result="pass"/><test-case name="38443wildZ013e tokoe:valid" result="pass"/><test-case name="38444wildZ013e.i tokoe:invalid" result="pass"/><test-case name="38445wildZ013f tokoe:valid" result="pass"/><test-case name="38446wildZ013f.i tokoe:invalid" result="pass"/><test-case name="38447ipo1 tokoe:valid" result="pass"/><test-case name="38448ipo_1 tokoe:valid" result="pass"/><test-case name="38449ipo_2 tokoe:valid" result="pass"/><test-case name="38450ipo2 tokoe:valid" result="pass"/><test-case name="38451ipo_1 tokoe:valid" result="pass"/><test-case name="38452ipo_2 tokoe:valid" result="pass"/><test-case name="38453ipo3 tokoe:valid" result="pass"/><test-case name="38454ipo_1 tokoe:valid" result="pass"/><test-case name="38455ipo_2 tokoe:valid" result="pass"/><test-case name="38456ipo4 tokoe:valid" result="pass"/><test-case name="38457ipo_1 tokoe:valid" result="pass"/><test-case name="38458ipo_2 tokoe:valid" result="pass"/><test-case name="38459ipo5 tokoe:valid" result="pass"/><test-case name="38460ipo_1 tokoe:valid" result="pass"/><test-case name="38461ipo_2 tokoe:valid" result="pass"/><test-case name="38462ipo6 tokoe:valid" result="pass"/><test-case name="38463ipo_1 tokoe:valid" result="fail"/><test-case name="38464ipo_2 tokoe:valid" result="fail"/></test-suite-result>
\ No newline at end of file diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore b/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore new file mode 100644 index 0000000..35cb85e --- /dev/null +++ b/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore @@ -0,0 +1,3 @@ +testSuites.xml +xmlschema2006-11-06 +xmlschema2006-11-06-new diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl b/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl new file mode 100644 index 0000000..325f626 --- /dev/null +++ b/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl @@ -0,0 +1,21 @@ +<xsl:stylesheet version="2.0" + xmlns:ts="http://www.w3.org/XML/2004/xml-schema-test-suite/" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <xsl:template match="ts:testSetRef"> + <xsl:apply-templates select="document(@xlink:href)"/> + </xsl:template> + + <!-- We make all URI references absolute. --> + <xsl:template match="@xlink:href"> + <xsl:attribute name="xlink:href" select="resolve-uri(., base-uri())"/> + </xsl:template> + + <xsl:template match="@*|node()"> + <xsl:copy> + <xsl:apply-templates select="@*|node()"/> + </xsl:copy> + </xsl:template> + +</xsl:stylesheet> diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh b/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh new file mode 100755 index 0000000..1770f1e --- /dev/null +++ b/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# This script updates the suite from W3C's server. +# +# NOTE: the files checked out CANNOT be added to Trolltech's +# repository at the moment, due to legal complications. + +DIRECTORY_NAME="xmlschema2006-11-06" +ARCHIVE_NAME="xsts-2007-06-20.tar.gz" + +rm -Rf $DIRECTORY_NAME + +wget http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2006-11-06/$ARCHIVE_NAME +tar -xzf $ARCHIVE_NAME +rm $ARCHIVE_NAME + +CVSROOT=:pserver:anonymous@dev.w3.org:/sources/public cvs login +CVSROOT=:pserver:anonymous@dev.w3.org:/sources/public cvs checkout -d xmlschema2006-11-06-new XML/xml-schema-test-suite/2004-01-14/xmlschema2006-11-06 + +java net.sf.saxon.Transform -xsl:unifyCatalog.xsl $DIRECTORY_NAME/suite.xml > testSuites.xml diff --git a/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp b/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp new file mode 100644 index 0000000..7a6f4c8 --- /dev/null +++ b/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include "tst_suitetest.h" + +/*! + \internal + \brief Test QXsdSchemaParser against W3C's XSD test suite. + */ +class tst_XmlPatternsSchemaTS : public tst_SuiteTest +{ + Q_OBJECT +public: + tst_XmlPatternsSchemaTS(); +protected: + virtual void catalogPath(QString &write) const; +}; + +tst_XmlPatternsSchemaTS::tst_XmlPatternsSchemaTS() + : tst_SuiteTest(tst_SuiteTest::XsdSuite) +{ +} + +void tst_XmlPatternsSchemaTS::catalogPath(QString &write) const +{ + write = QLatin1String("TESTSUITE/testSuites.xml"); +} + +QTEST_MAIN(tst_XmlPatternsSchemaTS) + +#include "tst_xmlpatternsschemats.moc" +#else +QTEST_NOOP_MAIN +#endif + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro new file mode 100644 index 0000000..4978c35 --- /dev/null +++ b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro @@ -0,0 +1,23 @@ +load(qttest_p4) +SOURCES += tst_xmlpatternsschemats.cpp \ + ../qxmlquery/TestFundament.cpp + +include (../xmlpatterns.pri) + +contains(QT_CONFIG,xmlpatterns) { +HEADERS += ../xmlpatternsxqts/test/tst_suitetest.h +SOURCES += ../xmlpatternsxqts/test/tst_suitetest.cpp +} + +PATTERNIST_SDK = QtXmlPatternsSDK +if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { + win32:PATTERNIST_SDK = $${PATTERNIST_SDK}d + else: PATTERNIST_SDK = $${PATTERNIST_SDK}_debug +} +LIBS += -l$$PATTERNIST_SDK + +INCLUDEPATH += $$QT_SOURCE_TREE/tests/auto/xmlpatternsxqts/lib/ \ + $$QT_BUILD_TREE/include/QtXmlPatterns/private \ + $$QT_SOURCE_TREE/tests/auto/xmlpatternsxqts/test \ + ../xmlpatternsxqts/test \ + ../xmlpatternsxqts/lib diff --git a/tests/auto/xmlpatternsvalidator/files/instance.xml b/tests/auto/xmlpatternsvalidator/files/instance.xml new file mode 100644 index 0000000..544ff8c --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/instance.xml @@ -0,0 +1,3 @@ +<hello> + <world/> +</hello>
\ No newline at end of file diff --git a/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd new file mode 100644 index 0000000..99e3525 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:element name="hello"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="world" type="xsd:string" maxOccurs="-2345"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + +</xsd:schema> diff --git a/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd new file mode 100644 index 0000000..850ed92 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:element name="olleh"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="dlrow" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + +</xsd:schema> diff --git a/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml b/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml new file mode 100644 index 0000000..1804e88 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml @@ -0,0 +1,3 @@ +<hello xsi:noNamespaceSchemaLocation="valid_schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <dlrow/> +</hello> diff --git a/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml b/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml new file mode 100644 index 0000000..47c980e --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml @@ -0,0 +1,3 @@ +<hello xsi:noNamespaceSchemaLocation="valid_schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <world/> +</hello> diff --git a/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd new file mode 100644 index 0000000..a1b765a --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:element name="hello"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="world" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + +</xsd:schema> diff --git a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp new file mode 100644 index 0000000..9643e56 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +****************************************************************************/ + +#include <QFile> +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include "../qxmlquery/TestFundament.h" +#include "../network-settings.h" + +/*! + \class tst_XmlPatterns + \internal + \since 4.6 + \brief Tests the command line interface, \c xmlpatternsvalidator, for the XML validation code. + */ +class tst_XmlPatternsValidator : public QObject + , private TestFundament +{ + Q_OBJECT + +public: + tst_XmlPatternsValidator(); + +private Q_SLOTS: + void initTestCase(); + void xsdSupport(); + void xsdSupport_data() const; + +private: + const QString m_command; + bool m_dontRun; +}; + +tst_XmlPatternsValidator::tst_XmlPatternsValidator() + : m_command(QLatin1String("xmlpatternsvalidator")) + , m_dontRun(false) +{ +} + +void tst_XmlPatternsValidator::initTestCase() +{ + QProcess process; + process.start(m_command); + + if(!process.waitForFinished()) + { + m_dontRun = true; + QEXPECT_FAIL("", "The command line tool is not in the path, most likely because Qt " + "has been partically built, such as only the sub-src rule. No tests will be run.", Abort); + QVERIFY(false); + } +} + +void tst_XmlPatternsValidator::xsdSupport() +{ + if(m_dontRun) + QSKIP("The command line utility is not in the path.", SkipAll); + +#ifdef Q_OS_WINCE + QSKIP("WinCE: This test uses unsupported WinCE functionality", SkipAll); +#endif + + QFETCH(int, expectedExitCode); + QFETCH(QStringList, arguments); + QFETCH(QString, cwd); + + QProcess process; + + if(!cwd.isEmpty()) + process.setWorkingDirectory(inputFile(cwd)); + + process.start(m_command, arguments); + + QCOMPARE(process.exitStatus(), QProcess::NormalExit); + QVERIFY(process.waitForFinished()); + + if(process.exitCode() != expectedExitCode) + QTextStream(stderr) << "foo:" << process.readAllStandardError(); + + QCOMPARE(process.exitCode(), expectedExitCode); +} + +void tst_XmlPatternsValidator::xsdSupport_data() const +{ +#ifdef Q_OS_WINCE + return; +#endif + + QTest::addColumn<int>("expectedExitCode"); + QTest::addColumn<QStringList>("arguments"); + QTest::addColumn<QString>("cwd"); + + QTest::newRow("No arguments") + << 2 + << QStringList() + << QString(); + + QTest::newRow("A valid schema") + << 0 + << QStringList(QLatin1String("files/valid_schema.xsd")) + << QString(); + + QTest::newRow("An invalid schema") + << 1 + << QStringList(QLatin1String("files/invalid_schema.xsd")) + << QString(); + + QTest::newRow("An instance and valid schema") + << 0 + << (QStringList() << QLatin1String("files/instance.xml") + << QLatin1String("files/valid_schema.xsd")) + << QString(); + + QTest::newRow("An instance and invalid schema") + << 1 + << (QStringList() << QLatin1String("files/instance.xml") + << QLatin1String("files/invalid_schema.xsd")) + << QString(); + + QTest::newRow("An instance and not matching schema") + << 1 + << (QStringList() << QLatin1String("files/instance.xml") + << QLatin1String("files/other_valid_schema.xsd")) + << QString(); + + QTest::newRow("Two instance documents") + << 1 + << (QStringList() << QLatin1String("files/instance.xml") + << QLatin1String("files/instance.xml")) + << QString(); + + QTest::newRow("Three instance documents") + << 2 + << (QStringList() << QLatin1String("files/instance.xml") + << QLatin1String("files/instance.xml") + << QLatin1String("files/instance.xml")) + << QString(); + + QTest::newRow("Two schema documents") + << 1 + << (QStringList() << QLatin1String("files/valid_schema.xsd") + << QLatin1String("files/valid_schema.xsd")) + << QString(); + + QTest::newRow("A schema aware valid instance document") + << 0 + << (QStringList() << QLatin1String("files/sa_valid_instance.xml")) + << QString(); + + QTest::newRow("A schema aware invalid instance document") + << 1 + << (QStringList() << QLatin1String("files/sa_invalid_instance.xml")) + << QString(); + + QTest::newRow("A non-schema aware instance document") + << 1 + << (QStringList() << QLatin1String("files/instance.xml")) + << QString(); +} + +QTEST_MAIN(tst_XmlPatternsValidator) + +#include "tst_xmlpatternsvalidator.moc" +#else +QTEST_NOOP_MAIN +#endif + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro b/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro new file mode 100644 index 0000000..7091840 --- /dev/null +++ b/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro @@ -0,0 +1,5 @@ +load(qttest_p4) +SOURCES += tst_xmlpatternsvalidator.cpp \ + ../qxmlquery/TestFundament.cpp + +include (../xmlpatterns.pri) diff --git a/tests/auto/xmlpatternsview/view/MainWindow.cpp b/tests/auto/xmlpatternsview/view/MainWindow.cpp index 734c1be..2723b1d 100644 --- a/tests/auto/xmlpatternsview/view/MainWindow.cpp +++ b/tests/auto/xmlpatternsview/view/MainWindow.cpp @@ -220,7 +220,8 @@ void MainWindow::on_actionOpen_triggered() if(fileName.isNull()) return; - openCatalog(QUrl::fromLocalFile(fileName), true, false); + m_currentSuiteType = TestSuite::XQuerySuite; + openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XQuerySuite); } void MainWindow::on_actionOpenXSLTSCatalog_triggered() @@ -234,18 +235,34 @@ void MainWindow::on_actionOpenXSLTSCatalog_triggered() if(fileName.isNull()) return; - openCatalog(QUrl::fromLocalFile(fileName), true, true); + m_currentSuiteType = TestSuite::XsltSuite; + openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XsltSuite); +} + +void MainWindow::on_actionOpenXSDTSCatalog_triggered() +{ + const QString fileName(QFileDialog::getOpenFileName(this, + QLatin1String("Open Test Suite Catalog"), + m_previousOpenedCatalog.toLocalFile(), + QLatin1String("Test Suite Catalog file (*.xml)"))); + + /* "If the user presses Cancel, it returns a null string." */ + if(fileName.isNull()) + return; + + m_currentSuiteType = TestSuite::XsdSuite; + openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XsdSuite); } void MainWindow::openCatalog(const QUrl &fileName, const bool reportError, - const bool isXSLT) + const TestSuite::SuiteType suiteType) { setCurrentFile(fileName); m_previousOpenedCatalog = fileName; QString errorMsg; - TestSuite *const loadedSuite = TestSuite::openCatalog(fileName, errorMsg, false, isXSLT); + TestSuite *const loadedSuite = TestSuite::openCatalog(fileName, errorMsg, false, suiteType); if(!loadedSuite) { @@ -334,12 +351,12 @@ void MainWindow::readSettings() focusURI->setText(settings.value(QLatin1String("focusURI")).toString()); isXSLT20->setChecked(settings.value(QLatin1String("isXSLT20")).toBool()); compileOnly->setChecked(settings.value(QLatin1String("compileOnly")).toBool()); + m_currentSuiteType = (TestSuite::SuiteType)settings.value(QLatin1String("PreviousSuiteType"), isXSLT20->isChecked() ? TestSuite::XsltSuite : TestSuite::XQuerySuite).toInt(); /* Open the previously opened catalog. */ if(!m_previousOpenedCatalog.isEmpty()) { - /* We don't know what kind of catalog it is, so we just take a chance. */ - openCatalog(m_previousOpenedCatalog, false, isXSLT20->isChecked()); + openCatalog(m_previousOpenedCatalog, false, m_currentSuiteType); } sourceInput->setPlainText(settings.value(QLatin1String("sourceInput")).toString()); @@ -393,6 +410,7 @@ void MainWindow::writeSettings() settings.setValue(QLatin1String("size"), size()); settings.setValue(QLatin1String("sourceInput"), sourceInput->toPlainText()); settings.setValue(QLatin1String("PreviousOpenedCatalogFile"), m_previousOpenedCatalog); + settings.setValue(QLatin1String("PreviousSuiteType"), m_currentSuiteType); settings.setValue(QLatin1String("SelectedTab"), sourceTab->currentIndex()); settings.setValue(QLatin1String("ResultViewMethod"), testResultView->resultViewSelection->currentIndex()); @@ -470,7 +488,7 @@ void MainWindow::openRecentFile() { const QAction *const action = qobject_cast<QAction *>(sender()); if(action) - openCatalog(action->data().toUrl(), true, false); + openCatalog(action->data().toUrl(), true, TestSuite::XQuerySuite); } void MainWindow::closeEvent(QCloseEvent *ev) diff --git a/tests/auto/xmlpatternsview/view/MainWindow.h b/tests/auto/xmlpatternsview/view/MainWindow.h index a41ad77..21e1ecf 100644 --- a/tests/auto/xmlpatternsview/view/MainWindow.h +++ b/tests/auto/xmlpatternsview/view/MainWindow.h @@ -88,6 +88,7 @@ #include "ui_ui_MainWindow.h" #include "DebugExpressionFactory.h" +#include "TestSuite.h" QT_BEGIN_HEADER @@ -142,6 +143,8 @@ namespace QPatternistSDK void on_actionOpenXSLTSCatalog_triggered(); + void on_actionOpenXSDTSCatalog_triggered(); + /** * Executes the selected test case or test group. */ @@ -153,7 +156,7 @@ namespace QPatternistSDK * an informative message box will be displayed, if any errors occurred. */ void openCatalog(const QUrl &file, const bool reportError, - const bool isXSLT); + const TestSuite::SuiteType suitType); void openRecentFile(); @@ -205,6 +208,7 @@ namespace QPatternistSDK TestCaseView * testCaseView; TestResultView * testResultView; FunctionSignaturesView * functionView; + TestSuite::SuiteType m_currentSuiteType; }; } QT_END_NAMESPACE diff --git a/tests/auto/xmlpatternsview/view/ui_MainWindow.ui b/tests/auto/xmlpatternsview/view/ui_MainWindow.ui index 5d74331..0240350 100644 --- a/tests/auto/xmlpatternsview/view/ui_MainWindow.ui +++ b/tests/auto/xmlpatternsview/view/ui_MainWindow.ui @@ -234,6 +234,7 @@ </property> <addaction name="actionOpen"/> <addaction name="actionOpenXSLTSCatalog"/> + <addaction name="actionOpenXSDTSCatalog"/> <addaction name="actionExecute"/> <addaction name="separator"/> <addaction name="actionRestart"/> @@ -304,6 +305,14 @@ <string>Ctrl+L</string> </property> </action> + <action name="actionOpenXSDTSCatalog"> + <property name="text"> + <string>O&pen XSDTS Catalog...</string> + </property> + <property name="shortcut"> + <string>Ctrl+S</string> + </property> + </action> </widget> <resources/> <connections/> diff --git a/tests/auto/xmlpatternsview/xmlpatternsview.pro b/tests/auto/xmlpatternsview/xmlpatternsview.pro index 3544264..04ee4d0 100644 --- a/tests/auto/xmlpatternsview/xmlpatternsview.pro +++ b/tests/auto/xmlpatternsview/xmlpatternsview.pro @@ -6,3 +6,4 @@ SUBDIRS = ../xmlpatternsxqts test contains(QT_CONFIG,xmlpatterns) { SUBDIRS += view } +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp index 78b58c6..dd10b51 100644 --- a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp +++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp @@ -178,6 +178,7 @@ void TestBaseLine::toXML(XMLWriter &receiver) const { case XML: /* Fallthrough. */ case Fragment: /* Fallthrough. */ + case SchemaIsValid: /* Fallthrough. */ case Text: { QXmlAttributes inspectAtts; @@ -343,6 +344,8 @@ TestResult::Status TestBaseLine::verify(const QString &serializedInput) const { switch(m_type) { + case SchemaIsValid: + /* Fall through. */ case Text: { if(serializedInput == details()) @@ -491,6 +494,8 @@ QString TestBaseLine::displayName(const Type id) return QLatin1String("Inspect"); case ExpectedError: return QLatin1String("ExpectedError"); + case SchemaIsValid: + return QLatin1String("SchemaIsValid"); } Q_ASSERT(false); @@ -503,6 +508,8 @@ QString TestBaseLine::details() const return QString(); if(m_type == ExpectedError) /* We're an error code. */ return m_details; + if(m_type == SchemaIsValid) /* We're a schema validation information . */ + return m_details; if(m_details.isEmpty()) return m_details; diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h index 4e1df67..07d14de 100644 --- a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h +++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h @@ -168,7 +168,14 @@ namespace QPatternistSDK * because an implementation does not support the feature is not * considered a correct result. */ - ExpectedError + ExpectedError, + + /** + * A special comparison for the schema validation tests. The details + * can only be 'true' or 'false' depending on whether it is a valid + * schema or not. + */ + SchemaIsValid }; /** diff --git a/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp index 40a3a9d..458a553 100644 --- a/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp +++ b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp @@ -94,7 +94,7 @@ TestGroup::TestGroup(TreeItem *p) : m_parent(p) QVariant TestGroup::data(const Qt::ItemDataRole role, int column) const { - if(role != Qt::DisplayRole && role != Qt::BackgroundRole) + if(role != Qt::DisplayRole && role != Qt::BackgroundRole && role != Qt::ToolTipRole) return QVariant(); /* In ResultSummary, the first is the amount of passes and the second is the total. */ @@ -154,6 +154,10 @@ QVariant TestGroup::data(const Qt::ItemDataRole role, int column) const return QVariant(); } } + case Qt::ToolTipRole: + { + return description(); + } default: { Q_ASSERT_X(false, Q_FUNC_INFO, "This shouldn't be reached"); diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp index 34334ec..9122860 100644 --- a/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp +++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp @@ -91,6 +91,7 @@ #include "TestSuiteResult.h" #include "XMLWriter.h" #include "XSLTTestSuiteHandler.h" +#include "XSDTestSuiteHandler.h" #include "qdebug_p.h" #include "TestSuite.h" @@ -132,7 +133,7 @@ TestSuiteResult *TestSuite::runSuite() TestSuite *TestSuite::openCatalog(const QUrl &catalogURI, QString &errorMsg, const bool useExclusionList, - const bool isXSLTCatalog) + SuiteType suiteType) { pDebug() << "Opening catalog:" << catalogURI.toString(); QFile ts(catalogURI.toLocalFile()); @@ -167,14 +168,14 @@ TestSuite *TestSuite::openCatalog(const QUrl &catalogURI, return 0; } - return openCatalog(&ts, errorMsg, catalogURI, useExclusionList, isXSLTCatalog); + return openCatalog(&ts, errorMsg, catalogURI, useExclusionList, suiteType); } TestSuite *TestSuite::openCatalog(QIODevice *input, QString &errorMsg, const QUrl &fileName, const bool useExclusionList, - const bool isXSLTCatalog) + SuiteType suiteType) { Q_ASSERT(input); @@ -183,10 +184,12 @@ TestSuite *TestSuite::openCatalog(QIODevice *input, HandlerPtr loader; - if(isXSLTCatalog) - loader = HandlerPtr(new XSLTTestSuiteHandler(fileName)); - else - loader = HandlerPtr(new TestSuiteHandler(fileName, useExclusionList)); + switch (suiteType) { + case XQuerySuite: loader = HandlerPtr(new TestSuiteHandler(fileName, useExclusionList)); break; + case XsltSuite: loader = HandlerPtr(new XSLTTestSuiteHandler(fileName)); break; + case XsdSuite: loader = HandlerPtr(new XSDTestSuiteHandler(fileName)); break; + default: Q_ASSERT(false); break; + } reader.setContentHandler(loader.data()); @@ -198,8 +201,13 @@ TestSuite *TestSuite::openCatalog(QIODevice *input, return 0; } - TestSuite *const suite = isXSLTCatalog ? static_cast<XSLTTestSuiteHandler *>(loader.data())->testSuite() - : static_cast<TestSuiteHandler *>(loader.data())->testSuite(); + TestSuite *suite = 0; + switch (suiteType) { + case XQuerySuite: suite = static_cast<TestSuiteHandler *>(loader.data())->testSuite(); break; + case XsltSuite: suite = static_cast<XSLTTestSuiteHandler *>(loader.data())->testSuite(); break; + case XsdSuite: suite = static_cast<XSDTestSuiteHandler *>(loader.data())->testSuite(); break; + default: Q_ASSERT(false); break; + } if(suite) return suite; diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.h b/tests/auto/xmlpatternsxqts/lib/TestSuite.h index 4fc489b..7b057b8 100644 --- a/tests/auto/xmlpatternsxqts/lib/TestSuite.h +++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.h @@ -112,6 +112,16 @@ namespace QPatternistSDK class Q_PATTERNISTSDK_EXPORT TestSuite : public TestContainer { public: + /** + * Describes the type of test suite. + */ + enum SuiteType + { + XQuerySuite, ///< The test suite for XQuery + XsltSuite, ///< The test suite for XSLT + XsdSuite ///< The test suite for XML Schema + }; + TestSuite(); virtual QVariant data(const Qt::ItemDataRole role, int column) const; @@ -148,7 +158,7 @@ namespace QPatternistSDK static TestSuite *openCatalog(const QUrl &catalogFile, QString &errorMsg, const bool useExclusionList, - const bool isXSLTCatalog = false); + SuiteType type); void toXML(XMLWriter &receiver, TestCase *const tc) const; @@ -177,7 +187,7 @@ namespace QPatternistSDK QString &errorMsg, const QUrl &fileName, const bool useExclusionList, - const bool isXSLTCatalog); + SuiteType type); QString m_version; QDate m_designDate; }; diff --git a/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp index 172e68c..ff98b3e 100644 --- a/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp +++ b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp @@ -118,9 +118,14 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int rol return QVariant(); } -void TreeModel::childChanged(TreeItem *) +void TreeModel::childChanged(TreeItem *item) { - layoutChanged(); + if (item) { + const QModelIndex index = createIndex(item->row(), 0, item); + dataChanged(index, index); + } else { + layoutChanged(); + } } QModelIndex TreeModel::index(int row, int column, const QModelIndex &p) const diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp new file mode 100644 index 0000000..b19eb91 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp @@ -0,0 +1,346 @@ +/**************************************************************************** +** +** Copyright (C) 2008 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. +** +** $TROLLTECH_GPL_LICENSE$ +** +*************************************************************************** +*/ + +#include <QColor> +#include <QFile> +#include <QFileInfo> +#include <QVariant> +#include <QtDebug> + +#include "XSDTSTestCase.h" + +#include "qxmlschema.h" +#include "qxmlschemavalidator.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +XSDTSTestCase::XSDTSTestCase(const Scenario scen, TreeItem *p, TestType testType) + : m_scenario(scen) + , m_parent(p) + , m_testType(testType) +{ +} + +XSDTSTestCase::~XSDTSTestCase() +{ + qDeleteAll(m_baseLines); +} + +TestResult::List XSDTSTestCase::execute(const ExecutionStage, TestSuite*) +{ + ErrorHandler errHandler; + ErrorHandler::installQtMessageHandler(&errHandler); + + TestResult::List retval; + TestResult::Status resultStatus = TestResult::Unknown; + QString serialized; + + if (m_testType == SchemaTest) { + executeSchemaTest(resultStatus, serialized, &errHandler); + } else { + executeInstanceTest(resultStatus, serialized, &errHandler); + } + + resultStatus = TestBaseLine::scan(serialized, baseLines()); + Q_ASSERT(resultStatus != TestResult::Unknown); + + m_result = new TestResult(name(), resultStatus, 0, errHandler.messages(), + QPatternist::Item::List(), serialized); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; +} + +void XSDTSTestCase::executeSchemaTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler) +{ + QFile file(m_schemaUri.path()); + if (!file.open(QIODevice::ReadOnly)) { + resultStatus = TestResult::Fail; + serialized = QString(); + return; + } + + QXmlSchema schema; + schema.setMessageHandler(handler); + schema.load(&file, m_schemaUri); + + if (schema.isValid()) { + resultStatus = TestResult::Pass; + serialized = QString::fromLatin1("true"); + } else { + resultStatus = TestResult::Pass; + serialized = QString::fromLatin1("false"); + } +} + +void XSDTSTestCase::executeInstanceTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler) +{ + QFile instanceFile(m_instanceUri.path()); + if (!instanceFile.open(QIODevice::ReadOnly)) { + resultStatus = TestResult::Fail; + serialized = QString(); + return; + } + + QXmlSchema schema; + if (m_schemaUri.isValid()) { + QFile file(m_schemaUri.path()); + if (!file.open(QIODevice::ReadOnly)) { + resultStatus = TestResult::Fail; + serialized = QString(); + return; + } + + schema.setMessageHandler(handler); + schema.load(&file, m_schemaUri); + + if (!schema.isValid()) { + resultStatus = TestResult::Pass; + serialized = QString::fromLatin1("false"); + return; + } + } + + QXmlSchemaValidator validator(schema); + validator.setMessageHandler(handler); + + qDebug("check %s", qPrintable(m_instanceUri.path())); + if (validator.validate(&instanceFile, m_instanceUri)) { + resultStatus = TestResult::Pass; + serialized = QString::fromLatin1("true"); + } else { + resultStatus = TestResult::Pass; + serialized = QString::fromLatin1("false"); + } +} + +QVariant XSDTSTestCase::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 XSDTSTestCase::sourceCode(bool &ok) const +{ + QFile file((m_testType == SchemaTest ? m_schemaUri : m_instanceUri).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 XSDTSTestCase::columnCount() const +{ + return 2; +} + +void XSDTSTestCase::addBaseLine(TestBaseLine *line) +{ + m_baseLines.append(line); +} + +QString XSDTSTestCase::name() const +{ + return m_name; +} + +QString XSDTSTestCase::creator() const +{ + return m_creator; +} + +QString XSDTSTestCase::description() const +{ + return m_description; +} + +QDate XSDTSTestCase::lastModified() const +{ + return m_lastModified; +} + +bool XSDTSTestCase::isXPath() const +{ + return false; +} + +TestCase::Scenario XSDTSTestCase::scenario() const +{ + return m_scenario; +} + +void XSDTSTestCase::setName(const QString &n) +{ + m_name = n; +} + +void XSDTSTestCase::setCreator(const QString &ctor) +{ + m_creator = ctor; +} + +void XSDTSTestCase::setDescription(const QString &descriptionP) +{ + m_description = descriptionP; +} + +void XSDTSTestCase::setLastModified(const QDate &date) +{ + m_lastModified = date; +} + +void XSDTSTestCase::setSchemaUri(const QUrl &uri) +{ + m_schemaUri = uri; +} + +void XSDTSTestCase::setInstanceUri(const QUrl &uri) +{ + m_instanceUri = uri; +} + +TreeItem *XSDTSTestCase::parent() const +{ + return m_parent; +} + +QString XSDTSTestCase::title() const +{ + return m_name; +} + +TestBaseLine::List XSDTSTestCase::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 XSDTSTestCase::schemaUri() const +{ + return m_schemaUri; +} + +QUrl XSDTSTestCase::instanceUri() const +{ + return m_instanceUri; +} + +void XSDTSTestCase::setContextItemSource(const QUrl &uri) +{ + m_contextItemSource = uri; +} + +QUrl XSDTSTestCase::contextItemSource() const +{ + return m_contextItemSource; +} + +void XSDTSTestCase::setParent(TreeItem *const p) +{ + m_parent = p; +} + +QPatternist::ExternalVariableLoader::Ptr XSDTSTestCase::externalVariableLoader() const +{ + return QPatternist::ExternalVariableLoader::Ptr(); +} + +TestResult *XSDTSTestCase::testResult() const +{ + return m_result; +} + +TestItem::ResultSummary XSDTSTestCase::resultSummary() const +{ + if(m_result) + return ResultSummary(m_result->status() == TestResult::Pass ? 1 : 0, + 1); + + return ResultSummary(0, 1); +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h new file mode 100644 index 0000000..ce84988 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h @@ -0,0 +1,130 @@ +/**************************************************************************** +** +** Copyright (C) 2008 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. +** +** $TROLLTECH_GPL_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_XSDTSTestCase_H +#define PatternistSDK_XSDTSTestCase_H + +#include <QDate> +#include <QString> +#include <QUrl> + +#include "TestBaseLine.h" +#include "TestCase.h" + +QT_BEGIN_HEADER + +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 XSDTSTestCase : public TestCase + { + public: + enum TestType + { + SchemaTest, + InstanceTest + }; + + XSDTSTestCase(const Scenario scen, TreeItem *parent, TestType testType); + virtual ~XSDTSTestCase(); + + /** + * 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); + /** + * 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 schemaUri() const; + virtual QUrl instanceUri() const; + virtual QUrl testCasePath() const {return QUrl();} + 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 setName(const QString &name); + void setSchemaUri(const QUrl &uri); + void setInstanceUri(const QUrl &uri); + void setTestCasePath(const QUrl &uri) {} + void setContextItemSource(const QUrl &uri); + void addBaseLine(TestBaseLine *lines); + + 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; + + virtual QUrl contextItemSource() const; + void setParent(TreeItem *const parent); + virtual QPatternist::ExternalVariableLoader::Ptr externalVariableLoader() const; + virtual TestResult *testResult() const; + virtual ResultSummary resultSummary() const; + + private: + void executeSchemaTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler); + void executeInstanceTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler); + + QString m_name; + QString m_creator; + QString m_description; + QUrl m_schemaUri; + QUrl m_instanceUri; + QDate m_lastModified; + const Scenario m_scenario; + TreeItem * m_parent; + TestBaseLine::List m_baseLines; + QUrl m_contextItemSource; + TestType m_testType; + QPointer<TestResult> m_result; + }; +} + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp new file mode 100644 index 0000000..b6ee379 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp @@ -0,0 +1,881 @@ +/**************************************************************************** +** +** Copyright (C) 2008 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. +** +** $TROLLTECH_GPL_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "qacceltreeresourceloader_p.h" +#include "qnetworkaccessdelegator_p.h" + +#include "Global.h" +#include "TestBaseLine.h" +#include "TestGroup.h" + +#include "XSDTestSuiteHandler.h" +#include "XSDTSTestCase.h" + +using namespace QPatternistSDK; + +extern QNetworkAccessManager s_networkManager; + +XSDTestSuiteHandler::XSDTestSuiteHandler(const QUrl &catalogFile) : m_ts(0) + , m_catalogFile(catalogFile) + , m_inSchemaTest(false) + , m_inInstanceTest(false) + , m_inTestGroup(false) + , m_inDescription(false) + , m_schemaBlacklisted(false) + , m_counter(0) +{ + Q_ASSERT(!m_catalogFile.isRelative()); + m_ts = new TestSuite(); + m_topLevelGroup = new TestGroup(m_ts); + m_topLevelGroup->setTitle("XML Schema Test Suite"); + m_ts->appendChild(m_topLevelGroup); + + // exclude these test cases, as they break our current state machine + m_blackList << QLatin1String("addB099") + << QLatin1String("addB118") + << QLatin1String("elemJ003") + << QLatin1String("elemJ011") + << QLatin1String("elemZ004") + << QLatin1String("elemZ020") + << QLatin1String("groupH021v") + << QLatin1String("groupJ009v") + << QLatin1String("name00101m2") + << QLatin1String("schL5") + << QLatin1String("ste110") + << QLatin1String("stZ007") + << QLatin1String("stZ047") + << QLatin1String("stZ055") + << QLatin1String("addB049") + << QLatin1String("addB068") + << QLatin1String("addB078") + << QLatin1String("addB078A") + << QLatin1String("addB078B") + << QLatin1String("addB167") + << QLatin1String("addB191") + << QLatin1String("isDefault060_2") + << QLatin1String("isDefault069") + << QLatin1String("annotB025") + << QLatin1String("base64Binary_enumeration003_1321") + << QLatin1String("anyURI_a001_1336") + << QLatin1String("anyURI_a001_1336") + << QLatin1String("anyURI_a003_1338") + << QLatin1String("anyURI_a004_1339") + << QLatin1String("anyURI_b004_1354") + << QLatin1String("anyURI_b004_1354") + << QLatin1String("anyURI_b006_1356") + << QLatin1String("QName_length001_1357") + << QLatin1String("QName_length003_1359") + << QLatin1String("QName_minLength003_1362") + << QLatin1String("QName_maxLength001_1364") + << QLatin1String("NOTATION_length001_1372") + << QLatin1String("NOTATION_length003_1374") + << QLatin1String("NOTATION_minLength003_1377") + << QLatin1String("NOTATION_maxLength001_1379") + << QLatin1String("hexBinary003_2069") + << QLatin1String("QName009_2092") + << QLatin1String("dtZ107447_a_2245") + << QLatin1String("elemE001") + << QLatin1String("elemE002") + << QLatin1String("elemE003") + << QLatin1String("elemE004") + << QLatin1String("elemE005") + << QLatin1String("elemT026") + << QLatin1String("elemT027") + << QLatin1String("elemT028") + << QLatin1String("elemT029") + << QLatin1String("elemT054") + << QLatin1String("elemT055") + << QLatin1String("elemT056") + << QLatin1String("elemT057") + << QLatin1String("elemZ006") + << QLatin1String("elemZ007") + << QLatin1String("elemZ026") + << QLatin1String("elemZ027_c") + << QLatin1String("elemZ028c") + << QLatin1String("elemZ028d") + << QLatin1String("elemZ028f1") + << QLatin1String("elemZ028f1") + << QLatin1String("elemZ028f2") + << QLatin1String("elemZ028f2") + << QLatin1String("elemZ028f3") + << QLatin1String("elemZ028f3") + << QLatin1String("elemZ031") + << QLatin1String("errF001") + << QLatin1String("idC019") + << QLatin1String("idL100") + << QLatin1String("idZ011") + << QLatin1String("idZ015") + << QLatin1String("mgO013") + << QLatin1String("particlesA012") + << QLatin1String("particlesA013") + << QLatin1String("particlesA014") + << QLatin1String("particlesA015") + << QLatin1String("particlesHa161") + << QLatin1String("particlesHb008") + << QLatin1String("particlesHb011") + << QLatin1String("particlesIe003") + << QLatin1String("particlesIg003") + << QLatin1String("particlesIg004") + << QLatin1String("particlesJb003") + << QLatin1String("particlesJd003") + << QLatin1String("particlesJf003") + << QLatin1String("particlesJk003") + << QLatin1String("particlesOb001") + << QLatin1String("particlesOb002") + << QLatin1String("particlesOb004") + << QLatin1String("particlesOb008") + << QLatin1String("particlesOb009") + << QLatin1String("particlesOb013") + << QLatin1String("particlesOb018") + << QLatin1String("particlesQ005") + << QLatin1String("particlesS002") + << QLatin1String("particlesT002") + << QLatin1String("particlesT009") + << QLatin1String("particlesT014") + << QLatin1String("particlesV001") + << QLatin1String("particlesV002") + << QLatin1String("particlesV020") + << QLatin1String("particlesZ001") + << QLatin1String("particlesZ005") + << QLatin1String("particlesZ007") + << QLatin1String("particlesZ023") + << QLatin1String("particlesZ024") + << QLatin1String("particlesZ026") + << QLatin1String("particlesZ028") + << QLatin1String("particlesZ033_c") + << QLatin1String("particlesZ033_d") + << QLatin1String("particlesZ033_e") + << QLatin1String("particlesZ033_f") + << QLatin1String("particlesZ033_g") + << QLatin1String("particlesZ034_a1") + << QLatin1String("particlesZ034_a2") + << QLatin1String("particlesZ034_a3") + << QLatin1String("particlesZ034_b") + << QLatin1String("particlesZ035_a") + << QLatin1String("particlesZ035_b") + << QLatin1String("particlesZ036_a") + << QLatin1String("particlesZ036_b1") + << QLatin1String("particlesZ036_b2") + << QLatin1String("particlesZ036_c") +/* + << QLatin1String("reC65") + << QLatin1String("reC66") + << QLatin1String("reC67") + << QLatin1String("reC68") + << QLatin1String("reF58") + << QLatin1String("reG50") + << QLatin1String("reJ11") + << QLatin1String("reJ13") + << QLatin1String("reJ19") + << QLatin1String("reJ21") + << QLatin1String("reJ23") + << QLatin1String("reJ25") + << QLatin1String("reJ29") + << QLatin1String("reJ31") + << QLatin1String("reJ33") + << QLatin1String("reJ35") + << QLatin1String("reJ61") + << QLatin1String("reJ69") + << QLatin1String("reJ75") + << QLatin1String("reJ77") + << QLatin1String("reL98") + << QLatin1String("reL99") + << QLatin1String("reM98") + << QLatin1String("reN99") + << QLatin1String("reS21") + << QLatin1String("reS42") + << QLatin1String("reT63") + << QLatin1String("reT84") + << QLatin1String("reDG2") + << QLatin1String("RegexTest_9") + << QLatin1String("RegexTest_11") + << QLatin1String("RegexTest_14") + << QLatin1String("RegexTest_15") + << QLatin1String("RegexTest_16") + << QLatin1String("RegexTest_17") + << QLatin1String("RegexTest_23") + << QLatin1String("RegexTest_24") + << QLatin1String("RegexTest_25") + << QLatin1String("RegexTest_26") + << QLatin1String("RegexTest_27") + << QLatin1String("RegexTest_28") + << QLatin1String("RegexTest_30") + << QLatin1String("RegexTest_30") + << QLatin1String("RegexTest_33") + << QLatin1String("RegexTest_34") + << QLatin1String("RegexTest_34") + << QLatin1String("RegexTest_43") + << QLatin1String("RegexTest_44") + << QLatin1String("RegexTest_45") + << QLatin1String("RegexTest_46") + << QLatin1String("RegexTest_47") + << QLatin1String("RegexTest_48") + << QLatin1String("RegexTest_49") + << QLatin1String("RegexTest_50") + << QLatin1String("RegexTest_51") + << QLatin1String("RegexTest_52") + << QLatin1String("RegexTest_53") + << QLatin1String("RegexTest_54") + << QLatin1String("RegexTest_55") + << QLatin1String("RegexTest_56") + << QLatin1String("RegexTest_57") + << QLatin1String("RegexTest_57") + << QLatin1String("RegexTest_58") + << QLatin1String("RegexTest_58") + << QLatin1String("RegexTest_65") + << QLatin1String("RegexTest_113") + << QLatin1String("RegexTest_116") + << QLatin1String("RegexTest_119") + << QLatin1String("RegexTest_120") + << QLatin1String("RegexTest_121") + << QLatin1String("RegexTest_141") + << QLatin1String("RegexTest_142") + << QLatin1String("RegexTest_143") + << QLatin1String("RegexTest_145") + << QLatin1String("RegexTest_146") + << QLatin1String("RegexTest_147") + << QLatin1String("RegexTest_148") + << QLatin1String("RegexTest_149") + << QLatin1String("RegexTest_150") + << QLatin1String("RegexTest_151") + << QLatin1String("RegexTest_152") + << QLatin1String("RegexTest_154") + << QLatin1String("RegexTest_155") + << QLatin1String("RegexTest_156") + << QLatin1String("RegexTest_157") + << QLatin1String("RegexTest_158") + << QLatin1String("RegexTest_163") + << QLatin1String("RegexTest_164") + << QLatin1String("RegexTest_165") + << QLatin1String("RegexTest_166") + << QLatin1String("RegexTest_167") + << QLatin1String("RegexTest_168") + << QLatin1String("RegexTest_169") + << QLatin1String("RegexTest_170") + << QLatin1String("RegexTest_171") + << QLatin1String("RegexTest_172") + << QLatin1String("RegexTest_173") + << QLatin1String("RegexTest_174") + << QLatin1String("RegexTest_178") + << QLatin1String("RegexTest_194") + << QLatin1String("RegexTest_194") + << QLatin1String("RegexTest_195") + << QLatin1String("RegexTest_195") + << QLatin1String("RegexTest_196") + << QLatin1String("RegexTest_196") + << QLatin1String("RegexTest_197") + << QLatin1String("RegexTest_198") + << QLatin1String("RegexTest_199") + << QLatin1String("RegexTest_200") + << QLatin1String("RegexTest_200") + << QLatin1String("RegexTest_201") + << QLatin1String("RegexTest_201") + << QLatin1String("RegexTest_202") + << QLatin1String("RegexTest_202") + << QLatin1String("RegexTest_203") + << QLatin1String("RegexTest_204") + << QLatin1String("RegexTest_205") + << QLatin1String("RegexTest_206") + << QLatin1String("RegexTest_207") + << QLatin1String("RegexTest_208") + << QLatin1String("RegexTest_209") + << QLatin1String("RegexTest_209") + << QLatin1String("RegexTest_210") + << QLatin1String("RegexTest_210") + << QLatin1String("RegexTest_211") + << QLatin1String("RegexTest_211") + << QLatin1String("RegexTest_212") + << QLatin1String("RegexTest_213") + << QLatin1String("RegexTest_214") + << QLatin1String("RegexTest_215") + << QLatin1String("RegexTest_216") + << QLatin1String("RegexTest_217") + << QLatin1String("RegexTest_218") + << QLatin1String("RegexTest_220") + << QLatin1String("RegexTest_221") + << QLatin1String("RegexTest_222") + << QLatin1String("RegexTest_226") + << QLatin1String("RegexTest_230") + << QLatin1String("RegexTest_232") + << QLatin1String("RegexTest_233") + << QLatin1String("RegexTest_294") + << QLatin1String("RegexTest_294") + << QLatin1String("RegexTest_295") + << QLatin1String("RegexTest_295") + << QLatin1String("RegexTest_299") + << QLatin1String("RegexTest_300") + << QLatin1String("RegexTest_301") + << QLatin1String("RegexTest_302") + << QLatin1String("RegexTest_303") + << QLatin1String("RegexTest_304") + << QLatin1String("RegexTest_305") + << QLatin1String("RegexTest_306") + << QLatin1String("RegexTest_307") + << QLatin1String("RegexTest_308") + << QLatin1String("RegexTest_309") + << QLatin1String("RegexTest_310") + << QLatin1String("RegexTest_311") + << QLatin1String("RegexTest_312") + << QLatin1String("RegexTest_313") + << QLatin1String("RegexTest_314") + << QLatin1String("RegexTest_315") + << QLatin1String("RegexTest_315") + << QLatin1String("RegexTest_316") + << QLatin1String("RegexTest_316") + << QLatin1String("RegexTest_317") + << QLatin1String("RegexTest_317") + << QLatin1String("RegexTest_440") + << QLatin1String("RegexTest_441") + << QLatin1String("RegexTest_442") + << QLatin1String("RegexTest_443") + << QLatin1String("RegexTest_448") + << QLatin1String("RegexTest_449") + << QLatin1String("RegexTest_450") + << QLatin1String("RegexTest_451") + << QLatin1String("RegexTest_458") + << QLatin1String("RegexTest_464") + << QLatin1String("RegexTest_464") + << QLatin1String("RegexTest_465") + << QLatin1String("RegexTest_469") + << QLatin1String("RegexTest_470") + << QLatin1String("RegexTest_471") + << QLatin1String("RegexTest_472") + << QLatin1String("RegexTest_473") + << QLatin1String("RegexTest_477") + << QLatin1String("RegexTest_478") + << QLatin1String("RegexTest_478") + << QLatin1String("RegexTest_479") + << QLatin1String("RegexTest_480") + << QLatin1String("RegexTest_481") + << QLatin1String("RegexTest_482") + << QLatin1String("RegexTest_482") + << QLatin1String("RegexTest_483") + << QLatin1String("RegexTest_483") + << QLatin1String("RegexTest_484") + << QLatin1String("RegexTest_487") + << QLatin1String("RegexTest_516") + << QLatin1String("RegexTest_516") + << QLatin1String("RegexTest_517") + << QLatin1String("RegexTest_517") + << QLatin1String("RegexTest_518") + << QLatin1String("RegexTest_518") + << QLatin1String("RegexTest_519") + << QLatin1String("RegexTest_519") + << QLatin1String("RegexTest_521") + << QLatin1String("RegexTest_523") + << QLatin1String("RegexTest_524") + << QLatin1String("RegexTest_524") + << QLatin1String("RegexTest_586") + << QLatin1String("RegexTest_587") + << QLatin1String("RegexTest_592") + << QLatin1String("RegexTest_593") + << QLatin1String("RegexTest_594") + << QLatin1String("RegexTest_595") + << QLatin1String("RegexTest_596") + << QLatin1String("RegexTest_597") + << QLatin1String("RegexTest_598") + << QLatin1String("RegexTest_599") + << QLatin1String("RegexTest_600") + << QLatin1String("RegexTest_601") + << QLatin1String("RegexTest_602") + << QLatin1String("RegexTest_603") + << QLatin1String("RegexTest_604") + << QLatin1String("RegexTest_605") + << QLatin1String("RegexTest_648") + << QLatin1String("RegexTest_655") + << QLatin1String("RegexTest_688") + << QLatin1String("RegexTest_696") + << QLatin1String("RegexTest_697") + << QLatin1String("RegexTest_698") + << QLatin1String("RegexTest_700") + << QLatin1String("RegexTest_701") + << QLatin1String("RegexTest_702") + << QLatin1String("RegexTest_703") + << QLatin1String("RegexTest_704") + << QLatin1String("RegexTest_705") + << QLatin1String("RegexTest_706") + << QLatin1String("RegexTest_707") + << QLatin1String("RegexTest_717") + << QLatin1String("RegexTest_718") + << QLatin1String("RegexTest_719") + << QLatin1String("RegexTest_724") + << QLatin1String("RegexTest_725") + << QLatin1String("RegexTest_726") + << QLatin1String("RegexTest_727") + << QLatin1String("RegexTest_728") + << QLatin1String("RegexTest_729") + << QLatin1String("RegexTest_730") + << QLatin1String("RegexTest_731") + << QLatin1String("RegexTest_732") + << QLatin1String("RegexTest_733") + << QLatin1String("RegexTest_743") + << QLatin1String("RegexTest_755") + << QLatin1String("RegexTest_756") + << QLatin1String("RegexTest_761") + << QLatin1String("RegexTest_762") + << QLatin1String("RegexTest_781") + << QLatin1String("RegexTest_782") + << QLatin1String("RegexTest_783") + << QLatin1String("RegexTest_790") + << QLatin1String("RegexTest_791") + << QLatin1String("RegexTest_824") + << QLatin1String("RegexTest_826") + << QLatin1String("RegexTest_827") + << QLatin1String("RegexTest_836") + << QLatin1String("RegexTest_837") + << QLatin1String("RegexTest_841") + << QLatin1String("RegexTest_842") + << QLatin1String("RegexTest_843") + << QLatin1String("RegexTest_844") + << QLatin1String("RegexTest_845") + << QLatin1String("RegexTest_846") + << QLatin1String("RegexTest_847") + << QLatin1String("RegexTest_848") + << QLatin1String("RegexTest_851") + << QLatin1String("RegexTest_852") + << QLatin1String("RegexTest_853") + << QLatin1String("RegexTest_854") + << QLatin1String("RegexTest_855") + << QLatin1String("RegexTest_856") + << QLatin1String("RegexTest_857") + << QLatin1String("RegexTest_861") + << QLatin1String("RegexTest_862") + << QLatin1String("RegexTest_863") + << QLatin1String("RegexTest_864") + << QLatin1String("RegexTest_865") + << QLatin1String("RegexTest_866") + << QLatin1String("RegexTest_870") + << QLatin1String("RegexTest_879") + << QLatin1String("RegexTest_880") + << QLatin1String("RegexTest_888") + << QLatin1String("RegexTest_889") + << QLatin1String("RegexTest_890") + << QLatin1String("RegexTest_891") + << QLatin1String("RegexTest_892") + << QLatin1String("RegexTest_893") + << QLatin1String("RegexTest_894") + << QLatin1String("RegexTest_895") + << QLatin1String("RegexTest_896") + << QLatin1String("RegexTest_897") + << QLatin1String("RegexTest_898") + << QLatin1String("RegexTest_899") + << QLatin1String("RegexTest_900") + << QLatin1String("RegexTest_901") + << QLatin1String("RegexTest_902") + << QLatin1String("RegexTest_903") + << QLatin1String("RegexTest_904") + << QLatin1String("RegexTest_905") + << QLatin1String("RegexTest_906") + << QLatin1String("RegexTest_907") + << QLatin1String("RegexTest_908") + << QLatin1String("RegexTest_909") + << QLatin1String("RegexTest_910") + << QLatin1String("RegexTest_911") + << QLatin1String("RegexTest_912") + << QLatin1String("RegexTest_913") + << QLatin1String("RegexTest_914") + << QLatin1String("RegexTest_915") + << QLatin1String("RegexTest_916") + << QLatin1String("RegexTest_917") + << QLatin1String("RegexTest_918") + << QLatin1String("RegexTest_919") + << QLatin1String("RegexTest_920") + << QLatin1String("RegexTest_921") + << QLatin1String("RegexTest_922") + << QLatin1String("RegexTest_923") + << QLatin1String("RegexTest_924") + << QLatin1String("RegexTest_925") + << QLatin1String("RegexTest_926") + << QLatin1String("RegexTest_928") + << QLatin1String("RegexTest_929") + << QLatin1String("RegexTest_930") + << QLatin1String("RegexTest_936") + << QLatin1String("RegexTest_937") + << QLatin1String("RegexTest_938") + << QLatin1String("RegexTest_939") + << QLatin1String("RegexTest_940") + << QLatin1String("RegexTest_941") + << QLatin1String("RegexTest_942") + << QLatin1String("RegexTest_943") + << QLatin1String("RegexTest_944") + << QLatin1String("RegexTest_945") + << QLatin1String("RegexTest_946") + << QLatin1String("RegexTest_949") + << QLatin1String("RegexTest_950") + << QLatin1String("RegexTest_951") + << QLatin1String("RegexTest_952") + << QLatin1String("RegexTest_953") + << QLatin1String("RegexTest_954") + << QLatin1String("RegexTest_955") + << QLatin1String("RegexTest_956") + << QLatin1String("RegexTest_957") + << QLatin1String("RegexTest_958") + << QLatin1String("RegexTest_959") + << QLatin1String("RegexTest_960") + << QLatin1String("RegexTest_961") + << QLatin1String("RegexTest_962") + << QLatin1String("RegexTest_963") + << QLatin1String("RegexTest_964") + << QLatin1String("RegexTest_976") + << QLatin1String("RegexTest_977") + << QLatin1String("RegexTest_988") + << QLatin1String("RegexTest_989") + << QLatin1String("RegexTest_990") + << QLatin1String("RegexTest_991") + << QLatin1String("RegexTest_994") + << QLatin1String("RegexTest_995") + << QLatin1String("RegexTest_996") + << QLatin1String("RegexTest_997") + << QLatin1String("RegexTest_1000") + << QLatin1String("RegexTest_1001") + << QLatin1String("RegexTest_1002") + << QLatin1String("RegexTest_1003") + << QLatin1String("RegexTest_1004") + << QLatin1String("RegexTest_1007") + << QLatin1String("RegexTest_1008") + << QLatin1String("RegexTest_1009") + << QLatin1String("RegexTest_1010") + << QLatin1String("RegexTest_1011") + << QLatin1String("RegexTest_1012") + << QLatin1String("RegexTest_1013") + << QLatin1String("RegexTest_1014") + << QLatin1String("RegexTest_1015") + << QLatin1String("RegexTest_1016") + << QLatin1String("RegexTest_1017") + << QLatin1String("RegexTest_1018") + << QLatin1String("RegexTest_1019") + << QLatin1String("RegexTest_1070") + << QLatin1String("RegexTest_1071") + << QLatin1String("RegexTest_1076") + << QLatin1String("RegexTest_1077") + << QLatin1String("RegexTest_1078") + << QLatin1String("RegexTest_1079") + << QLatin1String("RegexTest_1080") + << QLatin1String("RegexTest_1081") + << QLatin1String("RegexTest_1082") + << QLatin1String("RegexTest_1083") + << QLatin1String("RegexTest_1084") + << QLatin1String("RegexTest_1085") + << QLatin1String("RegexTest_1086") + << QLatin1String("RegexTest_1087") + << QLatin1String("RegexTest_1088") + << QLatin1String("RegexTest_1089") + << QLatin1String("RegexTest_1132") + << QLatin1String("RegexTest_1139") + << QLatin1String("RegexTest_1172") + << QLatin1String("RegexTest_1180") + << QLatin1String("RegexTest_1181") + << QLatin1String("RegexTest_1182") + << QLatin1String("RegexTest_1184") + << QLatin1String("RegexTest_1185") + << QLatin1String("RegexTest_1186") + << QLatin1String("RegexTest_1187") + << QLatin1String("RegexTest_1188") + << QLatin1String("RegexTest_1189") + << QLatin1String("RegexTest_1190") + << QLatin1String("RegexTest_1191") + << QLatin1String("RegexTest_1201") + << QLatin1String("RegexTest_1202") + << QLatin1String("RegexTest_1203") + << QLatin1String("RegexTest_1208") + << QLatin1String("RegexTest_1209") + << QLatin1String("RegexTest_1210") + << QLatin1String("RegexTest_1211") + << QLatin1String("RegexTest_1212") + << QLatin1String("RegexTest_1213") + << QLatin1String("RegexTest_1214") + << QLatin1String("RegexTest_1215") + << QLatin1String("RegexTest_1216") + << QLatin1String("RegexTest_1217") + << QLatin1String("RegexTest_1227") + << QLatin1String("RegexTest_1239") + << QLatin1String("RegexTest_1240") + << QLatin1String("RegexTest_1245") + << QLatin1String("RegexTest_1246") + << QLatin1String("RegexTest_1265") + << QLatin1String("RegexTest_1266") + << QLatin1String("RegexTest_1267") + << QLatin1String("RegexTest_1274") + << QLatin1String("RegexTest_1275") + << QLatin1String("RegexTest_1308") + << QLatin1String("RegexTest_1310") + << QLatin1String("RegexTest_1311") + << QLatin1String("RegexTest_1320") + << QLatin1String("RegexTest_1321") + << QLatin1String("RegexTest_1322") + << QLatin1String("RegexTest_1323") + << QLatin1String("RegexTest_1324") + << QLatin1String("RegexTest_1325") + << QLatin1String("RegexTest_1326") + << QLatin1String("RegexTest_1327") + << QLatin1String("RegexTest_1328") + << QLatin1String("RegexTest_1329") + << QLatin1String("RegexTest_1330") + << QLatin1String("RegexTest_1331") + << QLatin1String("RegexTest_1332") + << QLatin1String("RegexTest_1335") + << QLatin1String("RegexTest_1336") + << QLatin1String("RegexTest_1337") + << QLatin1String("RegexTest_1338") + << QLatin1String("RegexTest_1339") + << QLatin1String("RegexTest_1340") + << QLatin1String("RegexTest_1341") + << QLatin1String("RegexTest_1345") + << QLatin1String("RegexTest_1346") + << QLatin1String("RegexTest_1347") + << QLatin1String("RegexTest_1348") + << QLatin1String("RegexTest_1349") + << QLatin1String("RegexTest_1350") + << QLatin1String("RegexTest_1354") + << QLatin1String("RegexTest_1363") + << QLatin1String("RegexTest_1364") + << QLatin1String("RegexTest_1365") + << QLatin1String("RegexTest_1372") + << QLatin1String("RegexTest_1373") + << QLatin1String("RegexTest_1374") + << QLatin1String("RegexTest_1375") + << QLatin1String("RegexTest_1376") + << QLatin1String("RegexTest_1377") + << QLatin1String("RegexTest_1378") + << QLatin1String("RegexTest_1379") + << QLatin1String("RegexTest_1380") + << QLatin1String("RegexTest_1381") + << QLatin1String("RegexTest_1382") + << QLatin1String("RegexTest_1383") + << QLatin1String("RegexTest_1384") + << QLatin1String("RegexTest_1385") + << QLatin1String("RegexTest_1386") + << QLatin1String("RegexTest_1387") + << QLatin1String("RegexTest_1388") + << QLatin1String("RegexTest_1389") + << QLatin1String("RegexTest_1390") + << QLatin1String("RegexTest_1391") + << QLatin1String("RegexTest_1392") + << QLatin1String("RegexTest_1393") + << QLatin1String("RegexTest_1394") + << QLatin1String("RegexTest_1395") + << QLatin1String("RegexTest_1396") + << QLatin1String("RegexTest_1397") + << QLatin1String("RegexTest_1398") + << QLatin1String("RegexTest_1399") + << QLatin1String("RegexTest_1400") + << QLatin1String("RegexTest_1401") + << QLatin1String("RegexTest_1402") + << QLatin1String("RegexTest_1403") + << QLatin1String("RegexTest_1404") + << QLatin1String("RegexTest_1405") + << QLatin1String("RegexTest_1406") + << QLatin1String("RegexTest_1407") + << QLatin1String("RegexTest_1408") + << QLatin1String("RegexTest_1409") + << QLatin1String("RegexTest_1410") + << QLatin1String("RegexTest_1412") + << QLatin1String("RegexTest_1413") + << QLatin1String("RegexTest_1414") + << QLatin1String("RegexTest_1420") + << QLatin1String("RegexTest_1421") + << QLatin1String("RegexTest_1422") + << QLatin1String("RegexTest_1423") + << QLatin1String("RegexTest_1424") + << QLatin1String("RegexTest_1425") + << QLatin1String("RegexTest_1426") + << QLatin1String("RegexTest_1427") + << QLatin1String("RegexTest_1428") + << QLatin1String("RegexTest_1429") + << QLatin1String("RegexTest_1430") + << QLatin1String("RegexTest_1433") + << QLatin1String("RegexTest_1434") + << QLatin1String("RegexTest_1435") + << QLatin1String("RegexTest_1436") + << QLatin1String("RegexTest_1437") + << QLatin1String("RegexTest_1438") + << QLatin1String("RegexTest_1439") + << QLatin1String("RegexTest_1440") + << QLatin1String("RegexTest_1441") + << QLatin1String("RegexTest_1442") + << QLatin1String("RegexTest_1443") + << QLatin1String("RegexTest_1444") + << QLatin1String("RegexTest_1445") + << QLatin1String("RegexTest_1446") + << QLatin1String("RegexTest_1447") + << QLatin1String("RegexTest_1448") + << QLatin1String("RegexTest_1451") + << QLatin1String("RegexTest_1452") + << QLatin1String("RegexTest_1453") + << QLatin1String("RegexTest_1454") + << QLatin1String("RegexTest_1455") + << QLatin1String("RegexTest_1456") + << QLatin1String("RegexTest_1472") + << QLatin1String("RegexTest_1473") + << QLatin1String("RegexTest_1474") + << QLatin1String("RegexTest_1475") + << QLatin1String("RegexTest_1478") + << QLatin1String("RegexTest_1479") + << QLatin1String("RegexTest_1480") + << QLatin1String("RegexTest_1481") + << QLatin1String("RegexTest_1484") + << QLatin1String("RegexTest_1485") + << QLatin1String("RegexTest_1486") + << QLatin1String("RegexTest_1487") + << QLatin1String("RegexTest_1488") + << QLatin1String("RegexTest_1491") + << QLatin1String("RegexTest_1492") + << QLatin1String("RegexTest_1493") + << QLatin1String("RegexTest_1494") + << QLatin1String("RegexTest_1495") + << QLatin1String("RegexTest_1496") + << QLatin1String("RegexTest_1497") + << QLatin1String("RegexTest_1498") + << QLatin1String("RegexTest_1499") + << QLatin1String("RegexTest_1500") + << QLatin1String("RegexTest_1501") + << QLatin1String("RegexTest_1502") + << QLatin1String("RegexTest_1503") + << QLatin1String("RegexTest_1543") + << QLatin1String("RegexTest_1544") + << QLatin1String("reZ001") +*/ + << QLatin1String("schA2") + << QLatin1String("schA5") + << QLatin1String("schA7") + << QLatin1String("schD8") + << QLatin1String("schG3") + << QLatin1String("schG6") + << QLatin1String("schG9") + << QLatin1String("schG11") + << QLatin1String("schG12") + << QLatin1String("schU1") + << QLatin1String("schU3") + << QLatin1String("schU4") + << QLatin1String("schU5") + << QLatin1String("schZ004") + << QLatin1String("schZ005") + << QLatin1String("schZ012_a") + << QLatin1String("stZ041") + << QLatin1String("wildZ010"); +} + +bool XSDTestSuiteHandler::startElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/, + const QXmlAttributes &atts) +{ + if(namespaceURI != QString::fromLatin1("http://www.w3.org/XML/2004/xml-schema-test-suite/")) + return true; + + if (localName == QLatin1String("testSet")) { + m_currentTestSet = new TestGroup(m_topLevelGroup); + Q_ASSERT(m_currentTestSet); + m_currentTestSet->setTitle(atts.value("name")); + m_topLevelGroup->appendChild(m_currentTestSet); + } else if (localName == QLatin1String("testGroup")) { + m_currentTestGroup = new TestGroup(m_currentTestSet); + Q_ASSERT(m_currentTestGroup); + m_currentTestGroup->setTitle(atts.value("name")); + m_currentTestSet->appendChild(m_currentTestGroup); + m_inTestGroup = true; + } else if (localName == QLatin1String("schemaTest")) { + if (m_blackList.contains(atts.value("name"))) { + m_currentTestCase = 0; + m_schemaBlacklisted = true; + return true; + } + m_schemaBlacklisted = false; + + m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::SchemaTest); + Q_ASSERT(m_currentTestCase); + m_counter++; + m_currentTestCase->setName(QString::number(m_counter) + atts.value("name")); + m_currentTestGroup->appendChild(m_currentTestCase); + m_currentTestCase->setParent(m_currentTestGroup); + + m_inSchemaTest = true; + } else if (localName == QLatin1String("instanceTest")) { + if (m_schemaBlacklisted) { + m_currentTestCase = 0; + return true; + } + + m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::InstanceTest); + Q_ASSERT(m_currentTestCase); + m_counter++; + m_currentTestCase->setName(QString::number(m_counter) + atts.value("name")); + m_currentTestGroup->appendChild(m_currentTestCase); + + m_inInstanceTest = true; + } else if (localName == QLatin1String("schemaDocument") || localName == QLatin1String("instanceDocument")) { + if (m_inSchemaTest) { + m_currentTestCase->setSchemaUri(QUrl(atts.value("xlink:href"))); + if (m_currentSchemaLink.isEmpty()) // we only use the first schema document for validation + m_currentSchemaLink = atts.value("xlink:href"); + } + if (m_inInstanceTest) { + m_currentTestCase->setInstanceUri(QUrl(atts.value("xlink:href"))); + m_currentTestCase->setSchemaUri(QUrl(m_currentSchemaLink)); + } + } else if (localName == QLatin1String("expected") && (m_inSchemaTest || m_inInstanceTest)) { + TestBaseLine *baseLine = new TestBaseLine(TestBaseLine::SchemaIsValid); + if (atts.value("validity") == QLatin1String("valid")) { + baseLine->setDetails(QLatin1String("true")); + m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:valid")); + } else { + baseLine->setDetails(QLatin1String("false")); + m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:invalid")); + } + + m_currentTestCase->addBaseLine(baseLine); + } else if (localName == QLatin1String("documentation") && m_inTestGroup) { + m_inDescription = true; + } + + return true; +} + +bool XSDTestSuiteHandler::endElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/) +{ + if (localName == QLatin1String("testGroup")) { + m_inTestGroup = false; + m_currentTestGroup->setDescription(m_documentation); + m_documentation.clear(); + m_currentSchemaLink.clear(); + + if (m_currentTestGroup->childCount() == 0) + m_currentTestSet->removeLast(); + } else if (localName == QLatin1String("schemaTest")) + m_inSchemaTest = false; + else if (localName == QLatin1String("instanceTest")) + m_inInstanceTest = false; + else if (localName == QLatin1String("documentation")) + m_inDescription = false; + + return true; +} + +bool XSDTestSuiteHandler::characters(const QString &ch) +{ + if (m_inDescription) + m_documentation += ch; + + return true; +} + +TestSuite *XSDTestSuiteHandler::testSuite() const +{ + return m_ts; +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h new file mode 100644 index 0000000..8c57e82 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2008 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. +** +** $TROLLTECH_GPL_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_XSDTestSuiteHandler_H +#define PatternistSDK_XSDTestSuiteHandler_H + +#include <QUrl> +#include <QXmlDefaultHandler> + +#include "ExternalSourceLoader.h" +#include "TestSuite.h" +#include "XQTSTestCase.h" + +QT_BEGIN_HEADER + +namespace QPatternistSDK +{ + class TestBaseLine; + class TestGroup; + class XSDTSTestCase; + + /** + * @short Creates a TestSuite from the XSD Test Suite. + * + * The created TestSuite can be retrieved via testSuite(). + * + * @note XSDTestSuiteHandler 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. + * + * @ingroup PatternistSDK + * @author Tobias Koenig <tobias.koenig@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT XSDTestSuiteHandler : 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 + */ + XSDTestSuiteHandler(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: + TestSuite* m_ts; + const QUrl m_catalogFile; + + TestGroup* m_topLevelGroup; + TestGroup* m_currentTestSet; + TestGroup* m_currentTestGroup; + XSDTSTestCase* m_currentTestCase; + bool m_inSchemaTest; + bool m_inInstanceTest; + bool m_inTestGroup; + bool m_inDescription; + bool m_schemaBlacklisted; + QString m_documentation; + QString m_currentSchemaLink; + int m_counter; + QSet<QString> m_blackList; + }; +} + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/lib.pro b/tests/auto/xmlpatternsxqts/lib/lib.pro index 5b12d63..cb9453a 100644 --- a/tests/auto/xmlpatternsxqts/lib/lib.pro +++ b/tests/auto/xmlpatternsxqts/lib/lib.pro @@ -50,6 +50,8 @@ HEADERS = ASTItem.h \ Worker.h \ XMLWriter.h \ XQTSTestCase.h \ + XSDTestSuiteHandler.h \ + XSDTSTestCase.h \ XSLTTestSuiteHandler.h SOURCES = ASTItem.cpp \ @@ -75,4 +77,6 @@ SOURCES = ASTItem.cpp \ Worker.cpp \ XMLWriter.cpp \ XQTSTestCase.cpp \ + XSDTestSuiteHandler.cpp \ + XSDTSTestCase.cpp \ XSLTTestSuiteHandler.cpp diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp index 5d61436..0f44058 100644 --- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp +++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp @@ -55,11 +55,11 @@ using namespace QPatternistSDK; -tst_SuiteTest::tst_SuiteTest(const bool isXSLT, +tst_SuiteTest::tst_SuiteTest(const SuiteType suiteType, 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) + , m_suiteType(suiteType) { } @@ -86,7 +86,16 @@ void tst_SuiteTest::runTestSuite() const QString errMsg; const QFileInfo fi(m_catalogPath); const QUrl catalogPath(QUrl::fromLocalFile(fi.absoluteFilePath())); - TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, m_isXSLT); + + TestSuite::SuiteType suiteType; + switch (m_suiteType) { + case XQuerySuite: suiteType = TestSuite::XQuerySuite; + case XsltSuite: suiteType = TestSuite::XsltSuite; + case XsdSuite: suiteType = TestSuite::XsdSuite; + default: break; + } + + TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, suiteType); QVERIFY2(ts, qPrintable(QString::fromLatin1("Failed to open the catalog, maybe it doesn't exist or is broken: %1").arg(errMsg))); diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h index effa887..fdf82d5 100644 --- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h +++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h @@ -50,13 +50,21 @@ \class tst_SuiteTest \internal \since 4.5 - \brief Base class for tst_XmlPatternsXQTS and tst_XmlPatternsXSLTS. + \brief Base class for tst_XmlPatternsXQTS, tst_XmlPatternsXSLTS and tst_XmlPatternsXSDTS. */ class tst_SuiteTest : public QObject , private TestFundament { Q_OBJECT +public: + enum SuiteType + { + XQuerySuite, + XsltSuite, + XsdSuite + }; + protected: /** * @p isXSLT is @c true if the catalog opened is an @@ -65,7 +73,7 @@ protected: * @p alwaysRun is @c true if the test should always be run, * regardless of if the file runTests exists. */ - tst_SuiteTest(const bool isXSLT, + tst_SuiteTest(SuiteType type, const bool alwaysRun = false); /** @@ -91,7 +99,7 @@ private: const QString m_existingBaseline; const QString m_candidateBaseline; const bool m_abortRun; - const bool m_isXSLT; + const SuiteType m_suiteType; }; #endif diff --git a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp index 6330784..4154b16 100644 --- a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp +++ b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp @@ -61,7 +61,7 @@ public: virtual void catalogPath(QString &write) const; }; -tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(false) +tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(tst_SuiteTest::XQuerySuite) { } diff --git a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro index 368a028..a3b13da 100644 --- a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro +++ b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro @@ -9,3 +9,6 @@ contains(QT_CONFIG,xmlpatterns) { # Needed on the win32-g++ setup and on the test machine arsia. INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private \ ../../../include/QtXmlPatterns/private + +requires(contains(QT_CONFIG,private_tests)) + diff --git a/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp b/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp index 16091f6..d89974c 100644 --- a/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp +++ b/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp @@ -61,7 +61,7 @@ protected: virtual void catalogPath(QString &write) const; }; -tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(true) +tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(tst_SuiteTest::XsltSuite) { } diff --git a/tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro b/tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro index 4a688c4..9b63a52 100644 --- a/tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro +++ b/tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro @@ -23,3 +23,4 @@ wince*: { DEPLOYMENT += testdata } +requires(contains(QT_CONFIG,private_tests)) diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro index 8e2c243..bf02731 100644 --- a/tests/benchmarks/benchmarks.pro +++ b/tests/benchmarks/benchmarks.pro @@ -1,13 +1,17 @@ TEMPLATE = subdirs SUBDIRS = containers-associative \ containers-sequential \ + qanimation \ qbytearray \ qpainter \ qtestlib-simple events \ qiodevice \ qpixmap \ blendbench \ - qstringlist \ + qstring \ + qstringlist \ + qmatrix4x4 \ + qnetworkreply \ qobject \ qrect \ qregexp \ diff --git a/tests/benchmarks/qanimation/dummyanimation.cpp b/tests/benchmarks/qanimation/dummyanimation.cpp new file mode 100644 index 0000000..6fb1d0a --- /dev/null +++ b/tests/benchmarks/qanimation/dummyanimation.cpp @@ -0,0 +1,20 @@ +#include "dummyanimation.h" +#include "dummyobject.h" + + +DummyAnimation::DummyAnimation(DummyObject *d) : m_dummy(d) +{ +} + +void DummyAnimation::updateCurrentValue(const QVariant &value) +{ + if (state() == Stopped) + return; + if (m_dummy) + m_dummy->setRect(value.toRect()); +} + +void DummyAnimation::updateState(State state) +{ + Q_UNUSED(state); +} diff --git a/tests/benchmarks/qanimation/dummyanimation.h b/tests/benchmarks/qanimation/dummyanimation.h new file mode 100644 index 0000000..fe6592b --- /dev/null +++ b/tests/benchmarks/qanimation/dummyanimation.h @@ -0,0 +1,19 @@ +#include <QtGui> + +#ifndef _DUMMYANIMATION_H__ + +class DummyObject; + +class DummyAnimation : public QVariantAnimation +{ +public: + DummyAnimation(DummyObject *d); + + void updateCurrentValue(const QVariant &value); + void updateState(State state); + +private: + DummyObject *m_dummy; +}; + +#endif
\ No newline at end of file diff --git a/tests/benchmarks/qanimation/dummyobject.cpp b/tests/benchmarks/qanimation/dummyobject.cpp new file mode 100644 index 0000000..bd76388 --- /dev/null +++ b/tests/benchmarks/qanimation/dummyobject.cpp @@ -0,0 +1,25 @@ +#include "dummyobject.h" + +DummyObject::DummyObject() +{ +} + +QRect DummyObject::rect() const +{ + return m_rect; +} + +void DummyObject::setRect(const QRect &r) +{ + m_rect = r; +} + +float DummyObject::opacity() const +{ + return m_opacity; +} + +void DummyObject::setOpacity(float o) +{ + m_opacity = o; +} diff --git a/tests/benchmarks/qanimation/dummyobject.h b/tests/benchmarks/qanimation/dummyobject.h new file mode 100644 index 0000000..c989662 --- /dev/null +++ b/tests/benchmarks/qanimation/dummyobject.h @@ -0,0 +1,23 @@ +#include <QtGui> + +#ifndef _DUMMYOBJECT_H__ + +class DummyObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QRect rect READ rect WRITE setRect) + Q_PROPERTY(float opacity READ opacity WRITE setOpacity) +public: + DummyObject(); + QRect rect() const; + void setRect(const QRect &r); + float opacity() const; + void setOpacity(float); + +private: + QRect m_rect; + float m_opacity; +}; + + +#endif
\ No newline at end of file diff --git a/tests/benchmarks/qanimation/main.cpp b/tests/benchmarks/qanimation/main.cpp new file mode 100644 index 0000000..7bb770f --- /dev/null +++ b/tests/benchmarks/qanimation/main.cpp @@ -0,0 +1,150 @@ +#include <QtGui> +#include <qtest.h> + +#include "dummyobject.h" +#include "dummyanimation.h" +#include "rectanimation.h" + +#define ITERATION_COUNT 10e3 + +class tst_qanimation : public QObject +{ + Q_OBJECT +private slots: + void itemPropertyAnimation(); + void itemPropertyAnimation_data() { data();} + void dummyAnimation(); + void dummyAnimation_data() { data();} + void dummyPropertyAnimation(); + void dummyPropertyAnimation_data() { data();} + void rectAnimation(); + void rectAnimation_data() { data();} + + void floatAnimation_data() { data(); } + void floatAnimation(); + +private: + void data(); +}; + + +void tst_qanimation::data() +{ + QTest::addColumn<bool>("started"); + QTest::newRow("NotRunning") << false; + QTest::newRow("Running") << true; +} + +void tst_qanimation::itemPropertyAnimation() +{ + QFETCH(bool, started); + QGraphicsWidget item; + + //then the property animation + { + QPropertyAnimation anim(&item, "pos"); + anim.setDuration(ITERATION_COUNT); + anim.setStartValue(QPointF(0,0)); + anim.setEndValue(QPointF(ITERATION_COUNT,ITERATION_COUNT)); + if (started) + anim.start(); + QBENCHMARK { + for(int i = 0; i < ITERATION_COUNT; ++i) { + anim.setCurrentTime(i); + } + } + } + +} + +void tst_qanimation::dummyAnimation() +{ + QFETCH(bool, started); + DummyObject dummy; + + //first the dummy animation + { + DummyAnimation anim(&dummy); + anim.setDuration(ITERATION_COUNT); + anim.setStartValue(QRect(0, 0, 0, 0)); + anim.setEndValue(QRect(0, 0, ITERATION_COUNT,ITERATION_COUNT)); + if (started) + anim.start(); + QBENCHMARK { + for(int i = 0; i < anim.duration(); ++i) { + anim.setCurrentTime(i); + } + } + } +} + +void tst_qanimation::dummyPropertyAnimation() +{ + QFETCH(bool, started); + DummyObject dummy; + + //then the property animation + { + QPropertyAnimation anim(&dummy, "rect"); + anim.setDuration(ITERATION_COUNT); + anim.setStartValue(QRect(0, 0, 0, 0)); + anim.setEndValue(QRect(0, 0, ITERATION_COUNT,ITERATION_COUNT)); + if (started) + anim.start(); + QBENCHMARK { + for(int i = 0; i < ITERATION_COUNT; ++i) { + anim.setCurrentTime(i); + } + } + } +} + +void tst_qanimation::rectAnimation() +{ + //this is the simplest animation you can do + QFETCH(bool, started); + DummyObject dummy; + + //then the property animation + { + RectAnimation anim(&dummy); + anim.setDuration(ITERATION_COUNT); + anim.setStartValue(QRect(0, 0, 0, 0)); + anim.setEndValue(QRect(0, 0, ITERATION_COUNT,ITERATION_COUNT)); + if (started) + anim.start(); + QBENCHMARK { + for(int i = 0; i < ITERATION_COUNT; ++i) { + anim.setCurrentTime(i); + } + } + } +} + +void tst_qanimation::floatAnimation() +{ + //this is the simplest animation you can do + QFETCH(bool, started); + DummyObject dummy; + + //then the property animation + { + QPropertyAnimation anim(&dummy, "opacity"); + anim.setDuration(ITERATION_COUNT); + anim.setStartValue(0.f); + anim.setEndValue(1.f); + if (started) + anim.start(); + QBENCHMARK { + for(int i = 0; i < ITERATION_COUNT; ++i) { + anim.setCurrentTime(i); + } + } + } +} + + + +QTEST_MAIN(tst_qanimation) + +#include "main.moc" diff --git a/tests/benchmarks/qanimation/qanimation.pro b/tests/benchmarks/qanimation/qanimation.pro new file mode 100644 index 0000000..55cd75e --- /dev/null +++ b/tests/benchmarks/qanimation/qanimation.pro @@ -0,0 +1,18 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qanimation +DEPENDPATH += . +INCLUDEPATH += . + +CONFIG += release +#CONFIG += debug + + +SOURCES += main.cpp \ + dummyobject.cpp \ + dummyanimation.cpp \ + rectanimation.cpp + +HEADERS += dummyobject.h \ + dummyanimation.h \ + rectanimation.h diff --git a/tests/benchmarks/qanimation/rectanimation.cpp b/tests/benchmarks/qanimation/rectanimation.cpp new file mode 100644 index 0000000..d60a943 --- /dev/null +++ b/tests/benchmarks/qanimation/rectanimation.cpp @@ -0,0 +1,58 @@ +#include "rectanimation.h" +#include "dummyobject.h" + +static inline int interpolateInteger(int from, int to, qreal progress) +{ + return from + (to - from) * progress; +} + + +RectAnimation::RectAnimation(DummyObject *obj) : m_object(obj), m_dura(250) +{ +} + +void RectAnimation::setEndValue(const QRect &rect) +{ + m_end = rect; +} + +void RectAnimation::setStartValue(const QRect &rect) +{ + m_start = rect; +} + +void RectAnimation::setDuration(int d) +{ + m_dura = d; +} + +int RectAnimation::duration() const +{ + return m_dura; +} + + +void RectAnimation::updateCurrentTime(int msecs) +{ + qreal progress = m_easing.valueForProgress( qreal(msecs) / qreal(m_dura) ); + QRect now; + now.setCoords(interpolateInteger(m_start.left(), m_end.left(), progress), + interpolateInteger(m_start.top(), m_end.top(), progress), + interpolateInteger(m_start.right(), m_end.right(), progress), + interpolateInteger(m_start.bottom(), m_end.bottom(), progress)); + + bool changed = (now != m_current); + if (changed) + m_current = now; + + if (state() == Stopped) + return; + + if (m_object) + m_object->setRect(m_current); +} + +void RectAnimation::updateState(QAbstractAnimation::State state) +{ + Q_UNUSED(state); +} diff --git a/tests/benchmarks/qanimation/rectanimation.h b/tests/benchmarks/qanimation/rectanimation.h new file mode 100644 index 0000000..99b82b4 --- /dev/null +++ b/tests/benchmarks/qanimation/rectanimation.h @@ -0,0 +1,30 @@ +#include <QtGui> + +#ifndef _RECTANIMATION_H__ + +class DummyObject; + +//this class is even simpler than the dummy +//and uses no QVariant at all +class RectAnimation : public QAbstractAnimation +{ +public: + RectAnimation(DummyObject *obj); + + void setEndValue(const QRect &rect); + void setStartValue(const QRect &rect); + + void setDuration(int d); + int duration() const; + + virtual void updateCurrentTime(int msecs); + virtual void updateState(QAbstractAnimation::State state); + +private: + DummyObject *m_object; + QEasingCurve m_easing; + QRect m_start, m_end, m_current; + int m_dura; +}; + +#endif diff --git a/tests/benchmarks/qdir/qdir.pro b/tests/benchmarks/qdir/qdir.pro new file mode 100644 index 0000000..2cdebfd --- /dev/null +++ b/tests/benchmarks/qdir/qdir.pro @@ -0,0 +1,8 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qdir +DEPENDPATH += . +INCLUDEPATH += . + +# Input +SOURCES += tst_qdir.cpp diff --git a/tests/benchmarks/qdir/tst_qdir.cpp b/tests/benchmarks/qdir/tst_qdir.cpp new file mode 100644 index 0000000..7977e28 --- /dev/null +++ b/tests/benchmarks/qdir/tst_qdir.cpp @@ -0,0 +1,121 @@ +#include <QtTest/QtTest> + +#ifdef Q_OS_WIN +# include <windows.h> +#else +# include <sys/stat.h> +# include <sys/types.h> +# include <dirent.h> +# include <unistd.h> +#endif + +class Test : public QObject{ + Q_OBJECT +public slots: + void initTestCase() { + QDir testdir = QDir::tempPath(); + + const QString subfolder_name = QLatin1String("test_speed"); + QVERIFY(testdir.mkdir(subfolder_name)); + QVERIFY(testdir.cd(subfolder_name)); + + for (uint i=0; i<10000; ++i) { + QFile file(testdir.absolutePath() + "/testfile_" + QString::number(i)); + file.open(QIODevice::WriteOnly); + } + } + void cleanupTestCase() { + { + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + + foreach (const QString &filename, testdir.entryList()) { + testdir.remove(filename); + } + } + const QDir temp = QDir(QDir::tempPath()); + temp.rmdir(QLatin1String("test_speed")); + } +private slots: + void sizeSpeed() { + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + QBENCHMARK { + QFileInfoList fileInfoList = testdir.entryInfoList(QDir::Files, QDir::Unsorted); + foreach (const QFileInfo &fileInfo, fileInfoList) { + fileInfo.isDir(); + fileInfo.size(); + } + } + } + void sizeSpeedWithoutFilter() { + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + QBENCHMARK { + QFileInfoList fileInfoList = testdir.entryInfoList(QDir::NoFilter, QDir::Unsorted); + foreach (const QFileInfo &fileInfo, fileInfoList) { + fileInfo.size(); + } + } + } + void sizeSpeedWithoutFileInfoList() { + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + testdir.setSorting(QDir::Unsorted); + QBENCHMARK { + QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted); + foreach (const QString &filename, fileList) { + QFileInfo fileInfo(filename); + fileInfo.size(); + } + } + } + void iDontWantAnyStat() { + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + testdir.setSorting(QDir::Unsorted); + testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden); + QBENCHMARK { + QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted); + foreach (const QString &filename, fileList) { + + } + } + } + + void testLowLevel() { +#ifdef Q_OS_WIN + const wchar_t *dirpath = (wchar_t*)testdir.absolutePath().utf16(); + wchar_t appendedPath[MAX_PATH]; + wcscpy(appendedPath, dirpath); + wcscat(appendedPath, L"\\*"); + + WIN32_FIND_DATA fd; + HANDLE hSearch = FindFirstFileW(appendedPath, &fd); + QVERIFY(hSearch == INVALID_HANDLE_VALUE); + + QBENCHMARK { + do { + + } while (FindNextFile(hSearch, &fd)); + } + FindClose(hSearch); +#else + QDir testdir(QDir::tempPath() + QLatin1String("/test_speed")); + DIR *dir = opendir(qPrintable(testdir.absolutePath())); + QVERIFY(dir); + + QVERIFY(!chdir(qPrintable(testdir.absolutePath()))); + QBENCHMARK { + struct dirent *item = readdir(dir); + while (item) { + char *fileName = item->d_name; + + struct stat fileStat; + QVERIFY(!stat(fileName, &fileStat)); + + item = readdir(dir); + } + } + closedir(dir); +#endif + } +}; + +QTEST_MAIN(Test) +#include "tst_qdir.moc" diff --git a/tests/benchmarks/qdiriterator/main.cpp b/tests/benchmarks/qdiriterator/main.cpp index 13128f7..1a5ffbb 100644 --- a/tests/benchmarks/qdiriterator/main.cpp +++ b/tests/benchmarks/qdiriterator/main.cpp @@ -107,7 +107,7 @@ static int posix_helper(const wchar_t *dirpath) wchar_t appendedPath[MAX_PATH]; wcscpy(appendedPath, dirpath); wcscat(appendedPath, L"\\*"); - hSearch = FindFirstFileW(appendedPath, &fd); + hSearch = FindFirstFile(appendedPath, &fd); appendedPath[origDirPathLength] = 0; if (hSearch == INVALID_HANDLE_VALUE) { diff --git a/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp b/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp index 1ef600b..47720f1 100644 --- a/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp +++ b/tests/benchmarks/qdiriterator/qfilesystemiterator.cpp @@ -108,17 +108,6 @@ QT_BEGIN_NAMESPACE -#ifdef Q_OS_WIN -inline QString convertString(TCHAR* sz) -{ -#ifdef UNICODE - return QString::fromUtf16(sz); -#else - return QString::fromLocal8Bit(sz); -#endif -} -#endif - class QFileSystemIteratorPrivate { public: @@ -202,7 +191,7 @@ QFileSystemIteratorPrivate::~QFileSystemIteratorPrivate() } #ifdef Q_OS_WIN -static bool isDotOrDotDot(const TCHAR* name) +static bool isDotOrDotDot(const wchar_t* name) { if (name[0] == L'.' && name[1] == 0) return true; @@ -339,7 +328,7 @@ bool QFileSystemIteratorPrivate::advanceHelper() if (m_entry->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { QByteArray ba = m_dirPaths.top(); ba += '\\'; - ba += convertString(m_entry->cFileName); + ba += QString::fromWCharArray(m_entry->cFileName); pushSubDirectory(ba); } #else @@ -634,7 +623,7 @@ QString QFileSystemIterator::fileName() const if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDotDotDir) return QLatin1String("@@"); #ifdef Q_OS_WIN - return convertString(d->m_entry->cFileName); + return QString::fromWCharArray(d->m_entry->cFileName); #else return QString::fromLocal8Bit(d->m_entry->d_name); #endif @@ -659,7 +648,7 @@ QString QFileSystemIterator::filePath() const else if (d->m_entry) { ba += '/'; #ifdef Q_OS_WIN - ba += convertString(d->m_entry->cFileName); + ba += QString::fromWCharArray(d->m_entry->cFileName); #else ba += d->m_entry->d_name; #endif diff --git a/tests/benchmarks/qfile/main.cpp b/tests/benchmarks/qfile/main.cpp index 2fa425d..5360eb5 100644 --- a/tests/benchmarks/qfile/main.cpp +++ b/tests/benchmarks/qfile/main.cpp @@ -275,11 +275,11 @@ void tst_qfile::readBigFile() HANDLE hndl; // ensure we don't account string conversion - TCHAR* cfilename = (TCHAR*)filename.utf16(); + wchar_t* cfilename = (wchar_t*)filename.utf16(); hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); Q_ASSERT(hndl); - TCHAR* nativeBuffer = new TCHAR[BUFSIZE]; + wchar_t* nativeBuffer = new wchar_t[BUFSIZE]; DWORD numberOfBytesRead; QBENCHMARK { @@ -358,7 +358,7 @@ void tst_qfile::seek() HANDLE hndl; // ensure we don't account string conversion - TCHAR* cfilename = (TCHAR*)filename.utf16(); + wchar_t* cfilename = (wchar_t*)filename.utf16(); hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); Q_ASSERT(hndl); @@ -441,7 +441,7 @@ void tst_qfile::open() HANDLE hndl; // ensure we don't account string conversion - TCHAR* cfilename = (TCHAR*)filename.utf16(); + wchar_t* cfilename = (wchar_t*)filename.utf16(); QBENCHMARK { hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); @@ -620,11 +620,11 @@ void tst_qfile::readSmallFiles() HANDLE hndl; // ensure we don't account string conversion - TCHAR* cfilename = (TCHAR*)filename.utf16(); + wchar_t* cfilename = (wchar_t*)filename.utf16(); hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); Q_ASSERT(hndl); - TCHAR* nativeBuffer = new TCHAR[BUFSIZE]; + wchar_t* nativeBuffer = new wchar_t[BUFSIZE]; DWORD numberOfBytesRead; QBENCHMARK { do { diff --git a/tests/benchmarks/qgraphicsitem/qgraphicsitem.pro b/tests/benchmarks/qgraphicsitem/qgraphicsitem.pro new file mode 100644 index 0000000..c8fc07b --- /dev/null +++ b/tests/benchmarks/qgraphicsitem/qgraphicsitem.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qgraphicsitem + +SOURCES += tst_qgraphicsitem.cpp + diff --git a/tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp new file mode 100644 index 0000000..d072d08 --- /dev/null +++ b/tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +****************************************************************************/ + +#include <qtest.h> +#include <QGraphicsItem> +#include <QGraphicsScene> +#include <QGraphicsView> + +//TESTED_FILES= + +class tst_QGraphicsItem : public QObject +{ + Q_OBJECT + +public: + tst_QGraphicsItem(); + virtual ~tst_QGraphicsItem(); + +public slots: + void init(); + void cleanup(); + +private slots: + void setPos_data(); + void setPos(); + void setTransform_data(); + void setTransform(); + void rotate(); + void scale(); + void shear(); + void translate(); + void setRotation(); + void setRotationXYZ(); +}; + +tst_QGraphicsItem::tst_QGraphicsItem() +{ +} + +tst_QGraphicsItem::~tst_QGraphicsItem() +{ +} + +void tst_QGraphicsItem::init() +{ +} + +void tst_QGraphicsItem::cleanup() +{ +} + +void tst_QGraphicsItem::setPos_data() +{ + QTest::addColumn<QPointF>("pos"); + + QTest::newRow("0, 0") << QPointF(0, 0); + QTest::newRow("10, 10") << QPointF(10, 10); + QTest::newRow("-10, -10") << QPointF(-10, -10); +} + +void tst_QGraphicsItem::setPos() +{ + QFETCH(QPointF, pos); + + QGraphicsScene scene; + QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + rect->setPos(10, 10); + rect->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::setTransform_data() +{ + QTest::addColumn<QTransform>("transform"); + + QTest::newRow("id") << QTransform(); + QTest::newRow("rotate 45z") << QTransform().rotate(45); + QTest::newRow("scale 2x2") << QTransform().scale(2, 2); + QTest::newRow("translate 100, 100") << QTransform().translate(100, 100); + QTest::newRow("rotate 45x 45y 45z") << QTransform().rotate(45, Qt::XAxis) + .rotate(45, Qt::YAxis).rotate(45, Qt::ZAxis); +} + +void tst_QGraphicsItem::setTransform() +{ + QFETCH(QTransform, transform); + + QGraphicsScene scene; + QGraphicsRectItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->setTransform(transform); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::rotate() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->rotate(45); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::scale() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->scale(2, 2); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::shear() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->shear(1.5, 1.5); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::translate() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->translate(100, 100); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::setRotation() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->setXRotation(45); + item->transform(); // prevent lazy optimizing + } +} + +void tst_QGraphicsItem::setRotationXYZ() +{ + QGraphicsScene scene; + QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); + + QBENCHMARK { + item->setRotation(45, 45, 45); + item->transform(); // prevent lazy optimizing + } +} + +QTEST_MAIN(tst_QGraphicsItem) +#include "tst_qgraphicsitem.moc" diff --git a/tests/benchmarks/qgraphicsview/images/wine-big.jpeg b/tests/benchmarks/qgraphicsview/images/wine-big.jpeg Binary files differnew file mode 100644 index 0000000..9900a50 --- /dev/null +++ b/tests/benchmarks/qgraphicsview/images/wine-big.jpeg diff --git a/tests/benchmarks/qgraphicsview/images/wine.jpeg b/tests/benchmarks/qgraphicsview/images/wine.jpeg Binary files differnew file mode 100644 index 0000000..8fe1d3a --- /dev/null +++ b/tests/benchmarks/qgraphicsview/images/wine.jpeg diff --git a/tests/benchmarks/qgraphicsview/qgraphicsview.qrc b/tests/benchmarks/qgraphicsview/qgraphicsview.qrc index 9f280dd..3681648 100644 --- a/tests/benchmarks/qgraphicsview/qgraphicsview.qrc +++ b/tests/benchmarks/qgraphicsview/qgraphicsview.qrc @@ -1,6 +1,8 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>images/designer.png</file> + <file>images/wine.jpeg</file> + <file>images/wine-big.jpeg</file> <file>random.data</file> </qresource> </RCC> diff --git a/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp b/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp index 2eb93c8..3a67e92 100644 --- a/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp @@ -122,6 +122,10 @@ private slots: void imageRiver(); void textRiver_data(); void textRiver(); + void moveItemCache_data(); + void moveItemCache(); + void paintItemCache_data(); + void paintItemCache(); }; tst_QGraphicsView::tst_QGraphicsView() @@ -688,5 +692,211 @@ void tst_QGraphicsView::textRiver() } } +class AnimatedPixmapCacheItem : public QGraphicsPixmapItem +{ +public: + AnimatedPixmapCacheItem(int x, int y, QGraphicsItem *parent = 0) + : QGraphicsPixmapItem(parent) + { + xspeed = x; + yspeed = y; + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) + { + QGraphicsPixmapItem::paint(painter,option,widget); + //We just want to wait, and we don't want to process the event loop with qWait + QTest::qSleep(3); + } +protected: + void advance(int i) + { + if (!i) + return; + int x = int(pos().x()) + pixmap().width(); + x += xspeed; + x = (x % (300 + pixmap().width() * 2)) - pixmap().width(); + int y = int(pos().y()) + pixmap().width(); + y += yspeed; + y = (y % (300 + pixmap().width() * 2)) - pixmap().width(); + setPos(x, y); + } + +private: + int xspeed; + int yspeed; +}; + +void tst_QGraphicsView::moveItemCache_data() +{ + QTest::addColumn<int>("direction"); + QTest::addColumn<bool>("rotation"); + QTest::addColumn<int>("cacheMode"); + QTest::newRow("Horizontal movement : ItemCoordinate Cache") << 0 << false << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Horizontal movement : DeviceCoordinate Cache") << 0 << false << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Horizontal movement : No Cache") << 0 << false << (int)QGraphicsItem::NoCache; + QTest::newRow("Vertical + Horizontal movement : ItemCoordinate Cache") << 2 << false << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Vertical + Horizontal movement : DeviceCoordinate Cache") << 2 << false << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Vertical + Horizontal movement : No Cache") << 2 << false << (int)QGraphicsItem::NoCache; + QTest::newRow("Horizontal movement + Rotation : ItemCoordinate Cache") << 0 << true << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Horizontal movement + Rotation : DeviceCoordinate Cache") << 0 << true << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Horizontal movement + Rotation : No Cache") << 0 << true << (int)QGraphicsItem::NoCache; +} + +void tst_QGraphicsView::moveItemCache() +{ + QFETCH(int, direction); + QFETCH(bool, rotation); + QFETCH(int, cacheMode); + + QGraphicsScene scene(0, 0, 300, 300); + + CountPaintEventView view(&scene); + view.resize(600, 600); + view.setFrameStyle(0); + view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.show(); + + QPixmap pix(":/images/wine.jpeg"); + QVERIFY(!pix.isNull()); + + QList<QGraphicsItem *> items; + QFile file(":/random.data"); + QVERIFY(file.open(QIODevice::ReadOnly)); + QDataStream str(&file); + for (int i = 0; i < 50; ++i) { + AnimatedPixmapCacheItem *item; + if (direction == 0) item = new AnimatedPixmapCacheItem((i % 4) + 1, 0); + if (direction == 1) item = new AnimatedPixmapCacheItem(0, (i % 4) + 1); + if (direction == 2) item = new AnimatedPixmapCacheItem((i % 4) + 1, (i % 4) + 1); + item->setPixmap(pix); + item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); + if (rotation) + item->setTransform(QTransform().rotate(45)); + int rnd1, rnd2; + str >> rnd1 >> rnd2; + item->setPos(-pix.width() + rnd1 % (view.width() + pix.width()), + -pix.height() + rnd2 % (view.height() + pix.height())); + scene.addItem(item); + } + + view.count = 0; + + QBENCHMARK { +#ifdef CALLGRIND_DEBUG + CALLGRIND_START_INSTRUMENTATION +#endif + for (int i = 0; i < 100; ++i) { + scene.advance(); + while (view.count < (i+1)) + qApp->processEvents(); + } +#ifdef CALLGRIND_DEBUG + CALLGRIND_STOP_INSTRUMENTATION +#endif + } +} + +class UpdatedPixmapCacheItem : public QGraphicsPixmapItem +{ +public: + UpdatedPixmapCacheItem(bool partial, QGraphicsItem *parent = 0) + : QGraphicsPixmapItem(parent), partial(partial) + { + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) + { + QGraphicsPixmapItem::paint(painter,option,widget); + } +protected: + void advance(int i) + { + if (partial) + update(QRectF(boundingRect().center().x(), boundingRect().center().x(), 30, 30)); + else + update(); + } + +private: + bool partial; +}; + +void tst_QGraphicsView::paintItemCache_data() +{ + QTest::addColumn<bool>("updatePartial"); + QTest::addColumn<bool>("rotation"); + QTest::addColumn<int>("cacheMode"); + QTest::newRow("Partial Update : ItemCoordinate Cache") << true << false << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Partial Update : DeviceCoordinate Cache") << true << false << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Partial Update : No Cache") << true << false << (int)QGraphicsItem::NoCache; + QTest::newRow("Full Update : ItemCoordinate Cache") << false << false << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Full Update : DeviceCoordinate Cache") << false << false << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Full Update : No Cache") << false << false << (int)QGraphicsItem::NoCache; + QTest::newRow("Partial Update : ItemCoordinate Cache item rotated") << true << true << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Partial Update : DeviceCoordinate Cache item rotated") << true << true << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Partial Update : No Cache item rotated") << true << true << (int)QGraphicsItem::NoCache; + QTest::newRow("Full Update : ItemCoordinate Cache item rotated") << false << true << (int)QGraphicsItem::ItemCoordinateCache; + QTest::newRow("Full Update : DeviceCoordinate Cache item rotated") << false << true << (int)QGraphicsItem::DeviceCoordinateCache; + QTest::newRow("Full Update : No Cache item rotated") << false << true <<(int)QGraphicsItem::NoCache; +} + +void tst_QGraphicsView::paintItemCache() +{ + QFETCH(bool, updatePartial); + QFETCH(bool, rotation); + QFETCH(int, cacheMode); + + QGraphicsScene scene(0, 0, 300, 300); + + CountPaintEventView view(&scene); + view.resize(600, 600); + view.setFrameStyle(0); + view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view.show(); + + QPixmap pix(":/images/wine.jpeg"); + QVERIFY(!pix.isNull()); + + QList<QGraphicsItem *> items; + QFile file(":/random.data"); + QVERIFY(file.open(QIODevice::ReadOnly)); + QDataStream str(&file); + UpdatedPixmapCacheItem *item = new UpdatedPixmapCacheItem(updatePartial); + item->setPixmap(pix); + item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); + if (rotation) + item->setTransform(QTransform().rotate(45)); + item->setPos(-100, -100); + scene.addItem(item); + + QPixmap pix2(":/images/wine-big.jpeg"); + item = new UpdatedPixmapCacheItem(updatePartial); + item->setPixmap(pix2); + item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); + if (rotation) + item->setTransform(QTransform().rotate(45)); + item->setPos(0, 0); + scene.addItem(item); + + view.count = 0; + + QBENCHMARK { +#ifdef CALLGRIND_DEBUG + CALLGRIND_START_INSTRUMENTATION +#endif + for (int i = 0; i < 50; ++i) { + scene.advance(); + while (view.count < (i+1)) + qApp->processEvents(); + } +#ifdef CALLGRIND_DEBUG + CALLGRIND_STOP_INSTRUMENTATION +#endif + } +} + QTEST_MAIN(tst_QGraphicsView) #include "tst_qgraphicsview.moc" diff --git a/tests/benchmarks/qmatrix4x4/qmatrix4x4.pro b/tests/benchmarks/qmatrix4x4/qmatrix4x4.pro new file mode 100644 index 0000000..e82d9de --- /dev/null +++ b/tests/benchmarks/qmatrix4x4/qmatrix4x4.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qmatrix4x4 + +SOURCES += tst_qmatrix4x4.cpp + diff --git a/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp b/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp new file mode 100644 index 0000000..5a74f07 --- /dev/null +++ b/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp @@ -0,0 +1,261 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtOpenGL module 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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtGui/qmatrix4x4.h> + +class tst_QMatrix4x4 : public QObject +{ + Q_OBJECT +public: + tst_QMatrix4x4() {} + ~tst_QMatrix4x4() {} + +private slots: + void multiply_data(); + void multiply(); + + void multiplyInPlace_data(); + void multiplyInPlace(); + + void multiplyDirect_data(); + void multiplyDirect(); + + void mapVector3D_data(); + void mapVector3D(); + + void mapVector2D_data(); + void mapVector2D(); + + void mapVectorDirect_data(); + void mapVectorDirect(); +}; + +static qreal const generalValues[16] = + {1.0f, 2.0f, 3.0f, 4.0f, + 5.0f, 6.0f, 7.0f, 8.0f, + 9.0f, 10.0f, 11.0f, 12.0f, + 13.0f, 14.0f, 15.0f, 16.0f}; + +void tst_QMatrix4x4::multiply_data() +{ + QTest::addColumn<QMatrix4x4>("m1"); + QTest::addColumn<QMatrix4x4>("m2"); + + QTest::newRow("identity * identity") + << QMatrix4x4() << QMatrix4x4(); + QTest::newRow("identity * general") + << QMatrix4x4() << QMatrix4x4(generalValues); + QTest::newRow("general * identity") + << QMatrix4x4(generalValues) << QMatrix4x4(); + QTest::newRow("general * general") + << QMatrix4x4(generalValues) << QMatrix4x4(generalValues); +} + +QMatrix4x4 mresult; + +void tst_QMatrix4x4::multiply() +{ + QFETCH(QMatrix4x4, m1); + QFETCH(QMatrix4x4, m2); + + QMatrix4x4 m3; + + QBENCHMARK { + m3 = m1 * m2; + } + + // Force the result to be stored so the compiler doesn't + // optimize away the contents of the benchmark loop. + mresult = m3; +} + +void tst_QMatrix4x4::multiplyInPlace_data() +{ + multiply_data(); +} + +void tst_QMatrix4x4::multiplyInPlace() +{ + QFETCH(QMatrix4x4, m1); + QFETCH(QMatrix4x4, m2); + + QMatrix4x4 m3; + + QBENCHMARK { + m3 = m1; + m3 *= m2; + } + + // Force the result to be stored so the compiler doesn't + // optimize away the contents of the benchmark loop. + mresult = m3; +} + +// Use a direct naive multiplication algorithm. This is used +// to compare against the optimized routines to see if they are +// actually faster than the naive implementation. +void tst_QMatrix4x4::multiplyDirect_data() +{ + multiply_data(); +} +void tst_QMatrix4x4::multiplyDirect() +{ + QFETCH(QMatrix4x4, m1); + QFETCH(QMatrix4x4, m2); + + QMatrix4x4 m3; + + const float *m1data = m1.constData(); + const float *m2data = m2.constData(); + float *m3data = m3.data(); + + QBENCHMARK { + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + m3data[col * 4 + row] = 0.0f; + for (int j = 0; j < 4; ++j) { + m3data[col * 4 + row] += + m1data[j * 4 + row] * m2data[col * 4 + j]; + } + } + } + } +} + +QVector3D vresult; + +void tst_QMatrix4x4::mapVector3D_data() +{ + QTest::addColumn<QMatrix4x4>("m1"); + + QTest::newRow("identity") << QMatrix4x4(); + QTest::newRow("general") << QMatrix4x4(generalValues); + + QMatrix4x4 t1; + t1.translate(-100.5f, 64.0f, 75.25f); + QTest::newRow("translate3D") << t1; + + QMatrix4x4 t2; + t2.translate(-100.5f, 64.0f); + QTest::newRow("translate2D") << t2; + + QMatrix4x4 s1; + s1.scale(-100.5f, 64.0f, 75.25f); + QTest::newRow("scale3D") << s1; + + QMatrix4x4 s2; + s2.scale(-100.5f, 64.0f); + QTest::newRow("scale2D") << s2; +} +void tst_QMatrix4x4::mapVector3D() +{ + QFETCH(QMatrix4x4, m1); + + QVector3D v(10.5f, -2.0f, 3.0f); + QVector3D result; + + m1.inferSpecialType(); + + QBENCHMARK { + result = m1 * v; + } + + // Force the result to be stored so the compiler doesn't + // optimize away the contents of the benchmark loop. + vresult = result; +} + +QPointF vresult2; + +void tst_QMatrix4x4::mapVector2D_data() +{ + mapVector3D_data(); +} +void tst_QMatrix4x4::mapVector2D() +{ + QFETCH(QMatrix4x4, m1); + + QPointF v(10.5f, -2.0f); + QPointF result; + + m1.inferSpecialType(); + + QBENCHMARK { + result = m1 * v; + } + + // Force the result to be stored so the compiler doesn't + // optimize away the contents of the benchmark loop. + vresult2 = result; +} + +// Use a direct naive multiplication algorithm. This is used +// to compare against the optimized routines to see if they are +// actually faster than the naive implementation. +void tst_QMatrix4x4::mapVectorDirect_data() +{ + mapVector3D_data(); +} +void tst_QMatrix4x4::mapVectorDirect() +{ + QFETCH(QMatrix4x4, m1); + + const float *m1data = m1.constData(); + float v[4] = {10.5f, -2.0f, 3.0f, 1.0f}; + float result[4]; + + QBENCHMARK { + for (int row = 0; row < 4; ++row) { + result[row] = 0.0f; + for (int col = 0; col < 4; ++col) { + result[row] += m1data[col * 4 + row] * v[col]; + } + } + result[0] /= result[3]; + result[1] /= result[3]; + result[2] /= result[3]; + } +} + +QTEST_MAIN(tst_QMatrix4x4) + +#include "tst_qmatrix4x4.moc" diff --git a/tests/benchmarks/qnetworkreply/main.cpp b/tests/benchmarks/qnetworkreply/main.cpp new file mode 100644 index 0000000..3f1e9f7 --- /dev/null +++ b/tests/benchmarks/qnetworkreply/main.cpp @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +// This file contains benchmarks for QNetworkReply functions. + +#include <QDebug> +#include <qtest.h> +#include <QtTest/QtTest> +#include <QtNetwork/qnetworkreply.h> +#include <QtNetwork/qnetworkrequest.h> +#include <QtNetwork/qnetworkaccessmanager.h> +#include "../../auto/network-settings.h" + +class tst_qnetworkreply : public QObject +{ + Q_OBJECT +private slots: + void httpLatency(); + +}; + +void tst_qnetworkreply::httpLatency() +{ + QNetworkAccessManager manager; + QBENCHMARK{ + QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/")); + QNetworkReply* reply = manager.get(request); + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); + QTestEventLoop::instance().enterLoop(5); + QVERIFY(!QTestEventLoop::instance().timeout()); + delete reply; + } +} + +QTEST_MAIN(tst_qnetworkreply) + +#include "main.moc" diff --git a/tests/benchmarks/qnetworkreply/qnetworkreply.pro b/tests/benchmarks/qnetworkreply/qnetworkreply.pro new file mode 100644 index 0000000..060acf5 --- /dev/null +++ b/tests/benchmarks/qnetworkreply/qnetworkreply.pro @@ -0,0 +1,13 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qnetworkreply +DEPENDPATH += . +INCLUDEPATH += . + +QT -= gui +QT += network + +CONFIG += release + +# Input +SOURCES += main.cpp diff --git a/tests/benchmarks/qpixmapcache/qpixmapcache.pro b/tests/benchmarks/qpixmapcache/qpixmapcache.pro new file mode 100644 index 0000000..e0d7543 --- /dev/null +++ b/tests/benchmarks/qpixmapcache/qpixmapcache.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qpixmapcache +TEMPLATE = app +# Input +SOURCES += tst_qpixmapcache.cpp diff --git a/tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp b/tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp new file mode 100644 index 0000000..cf20700 --- /dev/null +++ b/tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp @@ -0,0 +1,226 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qtest.h> +#include <QPixmapCache> +//TESTED_FILES= + +class tst_QPixmapCache : public QObject +{ + Q_OBJECT + +public: + tst_QPixmapCache(); + virtual ~tst_QPixmapCache(); + +public slots: + void init(); + void cleanup(); + +private slots: + void insert_data(); + void insert(); + void find_data(); + void find(); + void styleUseCaseComplexKey(); + void styleUseCaseComplexKey_data(); +}; + +tst_QPixmapCache::tst_QPixmapCache() +{ +} + +tst_QPixmapCache::~tst_QPixmapCache() +{ +} + +void tst_QPixmapCache::init() +{ +} + +void tst_QPixmapCache::cleanup() +{ +} + +void tst_QPixmapCache::insert_data() +{ + QTest::addColumn<bool>("cacheType"); + QTest::newRow("QPixmapCache") << true; + QTest::newRow("QPixmapCache (int API)") << false; +} + +QList<QPixmapCache::Key> keys; + +void tst_QPixmapCache::insert() +{ + QFETCH(bool, cacheType); + QPixmap p; + if (cacheType) { + QBENCHMARK { + for (int i = 0 ; i <= 10000 ; i++) + { + QString tmp; + tmp.sprintf("my-key-%d", i); + QPixmapCache::insert(tmp, p); + } + } + } else { + QBENCHMARK { + for (int i = 0 ; i <= 10000 ; i++) + keys.append(QPixmapCache::insert(p)); + } + } +} + +void tst_QPixmapCache::find_data() +{ + QTest::addColumn<bool>("cacheType"); + QTest::newRow("QPixmapCache") << true; + QTest::newRow("QPixmapCache (int API)") << false; +} + +void tst_QPixmapCache::find() +{ + QFETCH(bool, cacheType); + QPixmap p; + if (cacheType) { + QBENCHMARK { + QString tmp; + for (int i = 0 ; i <= 10000 ; i++) + { + tmp.sprintf("my-key-%d", i); + QPixmapCache::find(tmp, p); + } + } + } else { + QBENCHMARK { + for (int i = 0 ; i <= 10000 ; i++) + QPixmapCache::find(keys.at(i), &p); + } + } + +} + +void tst_QPixmapCache::styleUseCaseComplexKey_data() +{ + QTest::addColumn<bool>("cacheType"); + QTest::newRow("QPixmapCache") << true; + QTest::newRow("QPixmapCache (int API)") << false; +} + +struct styleStruct { + QString key; + uint state; + uint direction; + uint complex; + uint palette; + int width; + int height; + bool operator==(const styleStruct &str) const + { + return str.state == state && str.direction == direction + && str.complex == complex && str.palette == palette && str.width == width + && str.height == height && str.key == key; + } +}; + +uint qHash(const styleStruct &myStruct) +{ + return qHash(myStruct.state); +} + +void tst_QPixmapCache::styleUseCaseComplexKey() +{ + QFETCH(bool, cacheType); + QPixmap p; + if (cacheType) { + QBENCHMARK { + for (int i = 0 ; i <= 10000 ; i++) + { + QString tmp; + tmp.sprintf("%s-%d-%d-%d-%d-%d-%d", QString("my-progressbar-%1").arg(i).toLatin1().constData(), 5, 3, 0, 358, 100, 200); + QPixmapCache::insert(tmp, p); + } + + for (int i = 0 ; i <= 10000 ; i++) + { + QString tmp; + tmp.sprintf("%s-%d-%d-%d-%d-%d-%d", QString("my-progressbar-%1").arg(i).toLatin1().constData(), 5, 3, 0, 358, 100, 200); + QPixmapCache::find(tmp, p); + } + } + } else { + QHash<styleStruct, QPixmapCache::Key> hash; + QBENCHMARK { + for (int i = 0 ; i <= 10000 ; i++) + { + styleStruct myStruct; + myStruct.key = QString("my-progressbar-%1").arg(i); + myStruct.key = 5; + myStruct.key = 4; + myStruct.key = 3; + myStruct.palette = 358; + myStruct.width = 100; + myStruct.key = 200; + QPixmapCache::Key key = QPixmapCache::insert(p); + hash.insert(myStruct, key); + } + for (int i = 0 ; i <= 10000 ; i++) + { + styleStruct myStruct; + myStruct.key = QString("my-progressbar-%1").arg(i); + myStruct.key = 5; + myStruct.key = 4; + myStruct.key = 3; + myStruct.palette = 358; + myStruct.width = 100; + myStruct.key = 200; + QPixmapCache::Key key = hash.value(myStruct); + QPixmapCache::find(key, &p); + } + } + } + +} + + +QTEST_MAIN(tst_QPixmapCache) +#include "tst_qpixmapcache.moc" diff --git a/tests/benchmarks/qquaternion/qquaternion.pro b/tests/benchmarks/qquaternion/qquaternion.pro new file mode 100644 index 0000000..cd68423 --- /dev/null +++ b/tests/benchmarks/qquaternion/qquaternion.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qquaternion + +SOURCES += tst_qquaternion.cpp + diff --git a/tests/benchmarks/qquaternion/tst_qquaternion.cpp b/tests/benchmarks/qquaternion/tst_qquaternion.cpp new file mode 100644 index 0000000..eaacf74 --- /dev/null +++ b/tests/benchmarks/qquaternion/tst_qquaternion.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qtest.h> +#include <QQuaternion> + +//TESTED_FILES= + +class tst_QQuaternion : public QObject +{ + Q_OBJECT + +public: + tst_QQuaternion(); + virtual ~tst_QQuaternion(); + +public slots: + void init(); + void cleanup(); + +private slots: + void multiply_data(); + void multiply(); +}; + +tst_QQuaternion::tst_QQuaternion() +{ +} + +tst_QQuaternion::~tst_QQuaternion() +{ +} + +void tst_QQuaternion::init() +{ +} + +void tst_QQuaternion::cleanup() +{ +} + +void tst_QQuaternion::multiply_data() +{ + QTest::addColumn<qreal>("x1"); + QTest::addColumn<qreal>("y1"); + QTest::addColumn<qreal>("z1"); + QTest::addColumn<qreal>("w1"); + QTest::addColumn<qreal>("x2"); + QTest::addColumn<qreal>("y2"); + QTest::addColumn<qreal>("z2"); + QTest::addColumn<qreal>("w2"); + + QTest::newRow("null") + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + + QTest::newRow("unitvec") + << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + + QTest::newRow("complex") + << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)7.0f + << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)8.0f; +} + +void tst_QQuaternion::multiply() +{ + QFETCH(qreal, x1); + QFETCH(qreal, y1); + QFETCH(qreal, z1); + QFETCH(qreal, w1); + QFETCH(qreal, x2); + QFETCH(qreal, y2); + QFETCH(qreal, z2); + QFETCH(qreal, w2); + + QQuaternion q1(w1, x1, y1, z1); + QQuaternion q2(w2, x2, y2, z2); + + QBENCHMARK { + QQuaternion q3 = q1 * q2; + } +} + +QTEST_MAIN(tst_QQuaternion) +#include "tst_qquaternion.moc" diff --git a/tests/benchmarks/qstring/main.cpp b/tests/benchmarks/qstring/main.cpp new file mode 100644 index 0000000..b53b284 --- /dev/null +++ b/tests/benchmarks/qstring/main.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QStringList> +#include <QFile> +#include <qtest.h> + +class tst_QString: public QObject +{ + Q_OBJECT +private slots: + void equals() const; + void equals_data() const; + void fromUtf8() const; +}; + +void tst_QString::equals() const +{ + QFETCH(QString, a); + QFETCH(QString, b); + + QBENCHMARK { + a == b; + } +} + +void tst_QString::equals_data() const +{ + static const struct { + ushort data[80]; + int dummy; // just to ensure 4-byte alignment + } data = { + { + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, // 16 + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, // 32 + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, // 48 + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, // 64 + 64, 64, 64, 64, 96, 96, 96, 96, + 64, 64, 96, 96, 96, 96, 96, 96 // 80 + }, 0 + }; + const QChar *ptr = reinterpret_cast<const QChar *>(data.data); + + QTest::addColumn<QString>("a"); + QTest::addColumn<QString>("b"); + QString base = QString::fromRawData(ptr, 64); + + QTest::newRow("different-length") << base << QString::fromRawData(ptr, 4); + QTest::newRow("same-string") << base << base; + QTest::newRow("same-data") << base << QString::fromRawData(ptr, 64); + + // try to avoid crossing a cache line (that is, at ptr[64]) + QTest::newRow("aligned-aligned-4n") + << QString::fromRawData(ptr, 60) << QString::fromRawData(ptr + 2, 60); + QTest::newRow("aligned-unaligned-4n") + << QString::fromRawData(ptr, 60) << QString::fromRawData(ptr + 1, 60); + QTest::newRow("unaligned-unaligned-4n") + << QString::fromRawData(ptr + 1, 60) << QString::fromRawData(ptr + 3, 60); + + QTest::newRow("aligned-aligned-4n+1") + << QString::fromRawData(ptr, 61) << QString::fromRawData(ptr + 2, 61); + QTest::newRow("aligned-unaligned-4n+1") + << QString::fromRawData(ptr, 61) << QString::fromRawData(ptr + 1, 61); + QTest::newRow("unaligned-unaligned-4n+1") + << QString::fromRawData(ptr + 1, 61) << QString::fromRawData(ptr + 3, 61); + + QTest::newRow("aligned-aligned-4n-1") + << QString::fromRawData(ptr, 59) << QString::fromRawData(ptr + 2, 59); + QTest::newRow("aligned-unaligned-4n-1") + << QString::fromRawData(ptr, 59) << QString::fromRawData(ptr + 1, 59); + QTest::newRow("unaligned-unaligned-4n-1") + << QString::fromRawData(ptr + 1, 59) << QString::fromRawData(ptr + 3, 59); + + QTest::newRow("aligned-aligned-2n") + << QString::fromRawData(ptr, 58) << QString::fromRawData(ptr + 2, 58); + QTest::newRow("aligned-unaligned-2n") + << QString::fromRawData(ptr, 58) << QString::fromRawData(ptr + 1, 58); + QTest::newRow("unaligned-unaligned-2n") + << QString::fromRawData(ptr + 1, 58) << QString::fromRawData(ptr + 3, 58); +} + +void tst_QString::fromUtf8() const +{ + QFile file(SRCDIR "utf-8.txt"); + if (!file.open(QFile::ReadOnly)) { + qFatal("Cannot open input file"); + return; + } + QByteArray data = file.readAll(); + const char *d = data.constData(); + int size = data.size(); + + QBENCHMARK { + QString::fromUtf8(d, size); + } +} + +QTEST_MAIN(tst_QString) + +#include "main.moc" diff --git a/tests/benchmarks/qstring/qstring.pro b/tests/benchmarks/qstring/qstring.pro new file mode 100644 index 0000000..6aad1c0 --- /dev/null +++ b/tests/benchmarks/qstring/qstring.pro @@ -0,0 +1,12 @@ +load(qttest_p4) +TARGET = tst_qstring +QT -= gui +SOURCES += main.cpp + +wince*:{ + DEFINES += SRCDIR=\\\"\\\" +} else { + DEFINES += SRCDIR=\\\"$$PWD/\\\" +} + + diff --git a/tests/benchmarks/qstring/utf-8.txt b/tests/benchmarks/qstring/utf-8.txt new file mode 100644 index 0000000..a8a58de --- /dev/null +++ b/tests/benchmarks/qstring/utf-8.txt @@ -0,0 +1,72 @@ +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français +SprÃ¥k: Norsk +Γλώσσα: Ελληνικά +Язык: РуÑÑкий +언어 : í•œêµì–´ +言語: 日本語 +Langage : Français diff --git a/tests/benchmarks/qstringbuilder/main.cpp b/tests/benchmarks/qstringbuilder/main.cpp new file mode 100644 index 0000000..8b769a6 --- /dev/null +++ b/tests/benchmarks/qstringbuilder/main.cpp @@ -0,0 +1,424 @@ + +// Select one of the scenarios below +#define SCENARIO 1 + +#if SCENARIO == 1 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII +#endif + + +#if SCENARIO == 2 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#define QT_NO_CAST_FROM_ASCII +#define QT_NO_CAST_TO_ASCII +#endif + +#if SCENARIO == 3 +// this is the "no harm done" version. Only operator% is active, +// with NO_CAST * _not_ defined +#define P % +#undef QT_USE_FAST_OPERATOR_PLUS +#undef QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII +#endif + +#if SCENARIO == 4 +// this is the "full" version. Operator+ is replaced by a QStringBuilder +// based version +// with NO_CAST * _not_ defined +#define P + +#define QT_USE_FAST_OPERATOR_PLUS +#define QT_USE_FAST_CONCATENATION +#undef QT_NO_CAST_FROM_ASCII +#undef QT_NO_CAST_TO_ASCII +#endif + + +#include <qbytearray.h> +#include <qdebug.h> +#include <qstring.h> +#include <qstringbuilder.h> + +#include <qtest.h> + +#include <string> + +#define COMPARE(a, b) QCOMPARE(a, b) +//#define COMPARE(a, b) + +#define SEP(s) qDebug() << "\n\n-------- " s " ---------"; + +#define LITERAL "some string literal" + +class tst_qstringbuilder : public QObject +{ + Q_OBJECT + +public: + tst_qstringbuilder() + : l1literal(LITERAL), + l1string(LITERAL), + ba(LITERAL), + string(l1string), + stdstring(LITERAL), + stringref(&string, 2, 10), + achar('c'), + r2(QLatin1String(LITERAL LITERAL)), + r3(QLatin1String(LITERAL LITERAL LITERAL)), + r4(QLatin1String(LITERAL LITERAL LITERAL LITERAL)), + r5(QLatin1String(LITERAL LITERAL LITERAL LITERAL LITERAL)) + {} + + +public: + enum { N = 10000 }; + + int run_traditional() + { + int s = 0; + for (int i = 0; i < N; ++i) { +#if 0 + s += QString(l1string + l1string).size(); + s += QString(l1string + l1string + l1string).size(); + s += QString(l1string + l1string + l1string + l1string).size(); + s += QString(l1string + l1string + l1string + l1string + l1string).size(); +#endif + s += QString(achar + l1string + achar).size(); + } + return s; + } + + int run_builder() + { + int s = 0; + for (int i = 0; i < N; ++i) { +#if 0 + s += QString(l1literal P l1literal).size(); + s += QString(l1literal P l1literal P l1literal).size(); + s += QString(l1literal P l1literal P l1literal P l1literal).size(); + s += QString(l1literal P l1literal P l1literal P l1literal P l1literal).size(); +#endif + s += QString(achar % l1literal % achar).size(); + } + return s; + } + +private slots: + + void separator_0() { + qDebug() << "\nIn each block the QStringBuilder based result appear first " + "(with a 'b_' prefix), QStringBased second ('q_' prefix), std::string " + "last ('s_' prefix)\n"; + } + + void separator_1() { SEP("literal + literal (builder first)"); } + + void b_2_l1literal() { + QBENCHMARK { r = l1literal P l1literal; } + COMPARE(r, r2); + } + #ifndef QT_NO_CAST_FROM_ASCII + void b_l1literal_LITERAL() { + QBENCHMARK { r = l1literal P LITERAL; } + COMPARE(r, r2); + } + #endif + void q_2_l1string() { + QBENCHMARK { r = l1string + l1string; } + COMPARE(r, r2); + } + + + void separator_2() { SEP("2 strings"); } + + void b_2_string() { + QBENCHMARK { r = string P string; } + COMPARE(r, r2); + } + void q_2_string() { + QBENCHMARK { r = string + string; } + COMPARE(r, r2); + } + void s_2_string() { + QBENCHMARK { stdr = stdstring + stdstring; } + COMPARE(stdr, stdstring + stdstring); + } + + + void separator_2c() { SEP("2 string refs"); } + + void b_2_stringref() { + QBENCHMARK { r = stringref % stringref; } + COMPARE(r, QString(stringref.toString() + stringref.toString())); + } + void q_2_stringref() { + QBENCHMARK { r = stringref.toString() + stringref.toString(); } + COMPARE(r, QString(stringref % stringref)); + } + + + void separator_2b() { SEP("3 strings"); } + + void b_3_string() { + QBENCHMARK { r = string P string P string; } + COMPARE(r, r3); + } + void q_3_string() { + QBENCHMARK { r = string + string + string; } + COMPARE(r, r3); + } + void s_3_string() { + QBENCHMARK { stdr = stdstring + stdstring + stdstring; } + COMPARE(stdr, stdstring + stdstring + stdstring); + } + + void separator_2e() { SEP("4 strings"); } + + void b_4_string() { + QBENCHMARK { r = string P string P string P string; } + COMPARE(r, r4); + } + void q_4_string() { + QBENCHMARK { r = string + string + string + string; } + COMPARE(r, r4); + } + void s_4_string() { + QBENCHMARK { stdr = stdstring + stdstring + stdstring + stdstring; } + COMPARE(stdr, stdstring + stdstring + stdstring + stdstring); + } + + + + void separator_2a() { SEP("string + literal (builder first)"); } + + void b_string_l1literal() { + QBENCHMARK { r = string % l1literal; } + COMPARE(r, r2); + } + #ifndef QT_NO_CAST_FROM_ASCII + void b_string_LITERAL() { + QBENCHMARK { r = string P LITERAL; } + COMPARE(r, r2); + } + void b_LITERAL_string() { + QBENCHMARK { r = LITERAL P string; } + COMPARE(r, r2); + } + #endif + void b_string_l1string() { + QBENCHMARK { r = string P l1string; } + COMPARE(r, r2); + } + void q_string_l1literal() { + QBENCHMARK { r = string + l1string; } + COMPARE(r, r2); + } + void q_string_l1string() { + QBENCHMARK { r = string + l1string; } + COMPARE(r, r2); + } + void s_LITERAL_string() { + QBENCHMARK { stdr = LITERAL + stdstring; } + COMPARE(stdr, stdstring + stdstring); + } + + + void separator_3() { SEP("3 literals"); } + + void b_3_l1literal() { + QBENCHMARK { r = l1literal P l1literal P l1literal; } + COMPARE(r, r3); + } + void q_3_l1string() { + QBENCHMARK { r = l1string + l1string + l1string; } + COMPARE(r, r3); + } + void s_3_l1string() { + QBENCHMARK { stdr = stdstring + LITERAL + LITERAL; } + COMPARE(stdr, stdstring + stdstring + stdstring); + } + + + void separator_4() { SEP("4 literals"); } + + void b_4_l1literal() { + QBENCHMARK { r = l1literal P l1literal P l1literal P l1literal; } + COMPARE(r, r4); + } + void q_4_l1string() { + QBENCHMARK { r = l1string + l1string + l1string + l1string; } + COMPARE(r, r4); + } + + + void separator_5() { SEP("5 literals"); } + + void b_5_l1literal() { + QBENCHMARK { r = l1literal P l1literal P l1literal P l1literal P l1literal; } + COMPARE(r, r5); + } + + void q_5_l1string() { + QBENCHMARK { r = l1string + l1string + l1string + l1string + l1string; } + COMPARE(r, r5); + } + + + void separator_6() { SEP("4 chars"); } + + void b_string_4_char() { + QBENCHMARK { r = string + achar + achar + achar + achar; } + COMPARE(r, QString(string P achar P achar P achar P achar)); + } + + void q_string_4_char() { + QBENCHMARK { r = string + achar + achar + achar + achar; } + COMPARE(r, QString(string P achar P achar P achar P achar)); + } + + void s_string_4_char() { + QBENCHMARK { stdr = stdstring + 'c' + 'c' + 'c' + 'c'; } + COMPARE(stdr, stdstring + 'c' + 'c' + 'c' + 'c'); + } + + + void separator_7() { SEP("char + string + char"); } + + void b_char_string_char() { + QBENCHMARK { r = achar + string + achar; } + COMPARE(r, QString(achar P string P achar)); + } + + void q_char_string_char() { + QBENCHMARK { r = achar + string + achar; } + COMPARE(r, QString(achar P string P achar)); + } + + void s_char_string_char() { + QBENCHMARK { stdr = 'c' + stdstring + 'c'; } + COMPARE(stdr, 'c' + stdstring + 'c'); + } + + + void separator_8() { SEP("string.arg"); } + + void b_string_arg() { + const QString pattern = l1string + QString::fromLatin1("%1") + l1string; + QBENCHMARK { r = l1literal P string P l1literal; } + COMPARE(r, r3); + } + + void q_string_arg() { + const QString pattern = l1string + QLatin1String("%1") + l1string; + QBENCHMARK { r = pattern.arg(string); } + COMPARE(r, r3); + } + + void q_bytearray_arg() { + QByteArray result; + QBENCHMARK { result = ba + ba + ba; } + } + + + void separator_9() { SEP("QString::reserve()"); } + + void b_reserve() { + QBENCHMARK { + r.clear(); + r = string P string P string P string; + } + COMPARE(r, r4); + } + void b_reserve_lit() { + QBENCHMARK { + r.clear(); + r = string P l1literal P string P string; + } + COMPARE(r, r4); + } + void s_reserve() { + QBENCHMARK { + r.clear(); + r.reserve(string.size() + string.size() + string.size() + string.size()); + r += string; + r += string; + r += string; + r += string; + } + COMPARE(r, r4); + } + void s_reserve_lit() { + QBENCHMARK { + r.clear(); + //r.reserve(string.size() + qstrlen(l1string.latin1()) + // + string.size() + string.size()); + r.reserve(1024); + r += string; + r += l1string; + r += string; + r += string; + } + COMPARE(r, r4); + } + +private: + const QLatin1Literal l1literal; + const QLatin1String l1string; + const QByteArray ba; + const QString string; + const std::string stdstring; + const QStringRef stringref; + const QLatin1Char achar; + const QString r2, r3, r4, r5; + + // short cuts for results + QString r; + std::string stdr; +}; + + +//void operator%(QString, int) {} + +int main(int argc, char *argv[]) +{ + //qDebug() << (QString("xx") * QLatin1String("y")).toString(); + //42 % 3; // Sanity test, should always work. + //QString("x") % 2; // Sanity test, should only compile when the + // operator%(QString, int) is visible. + + if (argc == 2 && (QLatin1String(argv[1]) == QLatin1String("--run-builder") + || QLatin1String(argv[1]) == QLatin1String("-b"))) { + tst_qstringbuilder test; + return test.run_builder(); + } + + if (argc == 2 && (QLatin1String(argv[1]) == QLatin1String("--run-traditional") + || QLatin1String(argv[1]) == QLatin1String("-t"))) { + tst_qstringbuilder test; + return test.run_traditional(); + } + + if (argc == 1) { + QCoreApplication app(argc, argv); + QStringList args = app.arguments(); + tst_qstringbuilder test; + return QTest::qExec(&test, argc, argv); + } + + qDebug() << "Usage: " << argv[0] << " [--run-builder|-r|--run-traditional|-t]"; +} + + +#include "main.moc" diff --git a/tests/benchmarks/qstringbuilder/qstringbuilder.pro b/tests/benchmarks/qstringbuilder/qstringbuilder.pro new file mode 100644 index 0000000..79171b4 --- /dev/null +++ b/tests/benchmarks/qstringbuilder/qstringbuilder.pro @@ -0,0 +1,12 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qstringbuilder + +QMAKE_CXXFLAGS += -g +QMAKE_CFLAGS += -g + +QT -= gui + +CONFIG += release + +SOURCES += main.cpp diff --git a/tests/benchmarks/qtableview/qtableview.pro b/tests/benchmarks/qtableview/qtableview.pro new file mode 100644 index 0000000..02bc530 --- /dev/null +++ b/tests/benchmarks/qtableview/qtableview.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +TEMPLATE = app +TARGET = tst_qtableview + +SOURCES += tst_qtableview.cpp + diff --git a/tests/benchmarks/qtableview/tst_qtableview.cpp b/tests/benchmarks/qtableview/tst_qtableview.cpp new file mode 100644 index 0000000..1a0d4b4 --- /dev/null +++ b/tests/benchmarks/qtableview/tst_qtableview.cpp @@ -0,0 +1,193 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qtest.h> +#include <QDebug> +#include <QTableView> +#include <QImage> +#include <QPainter> + +//TESTED_FILES= + +class QtTestTableModel: public QAbstractTableModel +{ + Q_OBJECT + + +public: + QtTestTableModel(int rows = 0, int columns = 0, QObject *parent = 0) + : QAbstractTableModel(parent), + row_count(rows), + column_count(columns) {} + + int rowCount(const QModelIndex& = QModelIndex()) const { return row_count; } + int columnCount(const QModelIndex& = QModelIndex()) const { return column_count; } + bool isEditable(const QModelIndex &) const { return true; } + + QVariant data(const QModelIndex &idx, int role) const + { + if (!idx.isValid() || idx.row() >= row_count || idx.column() >= column_count) { + qWarning() << "Invalid modelIndex [%d,%d,%p]" << idx; + return QVariant(); + } + + if (role == Qt::DisplayRole || role == Qt::EditRole) + return QString("[%1,%2,%3]").arg(idx.row()).arg(idx.column()).arg(0); + + return QVariant(); + } + + int row_count; + int column_count; +}; + + + + +class tst_QTableView : public QObject +{ + Q_OBJECT + +public: + tst_QTableView(); + virtual ~tst_QTableView(); + +public slots: + void init(); + void cleanup(); + +private slots: + void spanInit(); + void spanDraw(); + void spanSelectColumn(); + void spanSelectAll(); +private: + static inline void spanInit_helper(QTableView *); +}; + +tst_QTableView::tst_QTableView() +{ +} + +tst_QTableView::~tst_QTableView() +{ +} + +void tst_QTableView::init() +{ +} + +void tst_QTableView::cleanup() +{ +} + +void tst_QTableView::spanInit_helper(QTableView *view) +{ + for (int i=0; i < 40; i++) { + view->setSpan(1+i%2, 1+4*i, 1+i%3, 2); + } + + for (int i=1; i < 40; i++) { + view->setSpan(6 + i*7, 4, 4, 50); + } +} + +void tst_QTableView::spanInit() +{ + QtTestTableModel model(500, 500); + QTableView v; + v.setModel(&model); + + QBENCHMARK { + spanInit_helper(&v); + } +} + +void tst_QTableView::spanDraw() +{ + QtTestTableModel model(500, 500); + QTableView v; + v.setModel(&model); + + spanInit_helper(&v); + v.show(); + v.resize(500,500); + QTest::qWait(30); + + QImage image(500, 500, QImage::Format_ARGB32_Premultiplied); + QPainter painter(&image); + QBENCHMARK { + v.render(&painter); + } +} + +void tst_QTableView::spanSelectAll() +{ + QtTestTableModel model(500, 500); + QTableView v; + v.setModel(&model); + + spanInit_helper(&v); + v.show(); + QTest::qWait(30); + + QBENCHMARK { + v.selectAll(); + } +} + +void tst_QTableView::spanSelectColumn() +{ + QtTestTableModel model(500, 500); + QTableView v; + v.setModel(&model); + + spanInit_helper(&v); + v.show(); + QTest::qWait(30); + + QBENCHMARK { + v.selectColumn(22); + } +} + +QTEST_MAIN(tst_QTableView) +#include "tst_qtableview.moc" diff --git a/tests/benchmarks/qvariant/qvariant.pro b/tests/benchmarks/qvariant/qvariant.pro index 68b4a97..63b5442 100644 --- a/tests/benchmarks/qvariant/qvariant.pro +++ b/tests/benchmarks/qvariant/qvariant.pro @@ -3,7 +3,6 @@ TEMPLATE = app TARGET = tst_qvariant DEPENDPATH += . INCLUDEPATH += . -QT -= gui CONFIG += release #CONFIG += debug diff --git a/tests/benchmarks/qvariant/tst_qvariant.cpp b/tests/benchmarks/qvariant/tst_qvariant.cpp index fb5e733..8ff2b6e 100644 --- a/tests/benchmarks/qvariant/tst_qvariant.cpp +++ b/tests/benchmarks/qvariant/tst_qvariant.cpp @@ -38,7 +38,9 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + #include <QtCore> +#include <QtGui/QPixmap> #include <qtest.h> #define ITERATION_COUNT 1e5 @@ -47,64 +49,73 @@ class tst_qvariant : public QObject { Q_OBJECT private slots: + void testBound(); + void doubleVariantCreation(); void floatVariantCreation(); void rectVariantCreation(); void stringVariantCreation(); + void pixmapVariantCreation(); + void doubleVariantSetValue(); void floatVariantSetValue(); void rectVariantSetValue(); void stringVariantSetValue(); + void doubleVariantAssignment(); void floatVariantAssignment(); void rectVariantAssignment(); void stringVariantAssignment(); }; - -void tst_qvariant::doubleVariantCreation() +void tst_qvariant::testBound() { - double d = 0; + qreal d = qreal(.5); QBENCHMARK { for(int i = 0; i < ITERATION_COUNT; ++i) { - QVariant v(d); + d = qBound<qreal>(0, d, 1); } } } -void tst_qvariant::floatVariantCreation() +template <typename T> +static void variantCreation(T val) { - float f = 0; QBENCHMARK { for(int i = 0; i < ITERATION_COUNT; ++i) { - QVariant v(f); + QVariant v(val); } } } +void tst_qvariant::doubleVariantCreation() +{ + variantCreation<double>(0.0); +} + +void tst_qvariant::floatVariantCreation() +{ + variantCreation<float>(0.0f); +} + void tst_qvariant::rectVariantCreation() { - QRect r(1,2,3,4); - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - QVariant v(r); - } - } + variantCreation<QRect>(QRect(1, 2, 3, 4)); } void tst_qvariant::stringVariantCreation() { - QString s; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - QVariant v(s); - } - } + variantCreation<QString>(QString()); } -void tst_qvariant::doubleVariantSetValue() +void tst_qvariant::pixmapVariantCreation() +{ + variantCreation<QPixmap>(QPixmap()); +} + +template <typename T> +static void variantSetValue(T d) { - double d = 0; QVariant v; QBENCHMARK { for(int i = 0; i < ITERATION_COUNT; ++i) { @@ -113,42 +124,29 @@ void tst_qvariant::doubleVariantSetValue() } } +void tst_qvariant::doubleVariantSetValue() +{ + variantSetValue<double>(0.0); +} + void tst_qvariant::floatVariantSetValue() { - float f = 0; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - qVariantSetValue(v, f); - } - } + variantSetValue<float>(0.0f); } void tst_qvariant::rectVariantSetValue() { - QRect r; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - qVariantSetValue(v, r); - } - } + variantSetValue<QRect>(QRect()); } void tst_qvariant::stringVariantSetValue() { - QString s; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - qVariantSetValue(v, s); - } - } + variantSetValue<QString>(QString()); } -void tst_qvariant::doubleVariantAssignment() +template <typename T> +static void variantAssignment(T d) { - double d = 0; QVariant v; QBENCHMARK { for(int i = 0; i < ITERATION_COUNT; ++i) { @@ -157,37 +155,24 @@ void tst_qvariant::doubleVariantAssignment() } } +void tst_qvariant::doubleVariantAssignment() +{ + variantAssignment<double>(0.0); +} + void tst_qvariant::floatVariantAssignment() { - float f = 0; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - v = f; - } - } + variantAssignment<float>(0.0f); } void tst_qvariant::rectVariantAssignment() { - QRect r; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - v = r; - } - } + variantAssignment<QRect>(QRect()); } void tst_qvariant::stringVariantAssignment() { - QString s; - QVariant v; - QBENCHMARK { - for(int i = 0; i < ITERATION_COUNT; ++i) { - v = s; - } - } + variantAssignment<QString>(QString()); } QTEST_MAIN(tst_qvariant) diff --git a/tests/manual/qdesktopwidget/main.cpp b/tests/manual/qdesktopwidget/main.cpp new file mode 100644 index 0000000..1afc82e --- /dev/null +++ b/tests/manual/qdesktopwidget/main.cpp @@ -0,0 +1,188 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (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 http://www.qtsoftware.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> + +class DesktopView : public QGraphicsView +{ + Q_OBJECT +public: + DesktopView() + : that(0) + { + scene = new QGraphicsScene; + setScene(scene); + + QDesktopWidget *desktop = QApplication::desktop(); + connect(desktop, SIGNAL(resized(int)), this, SLOT(updateScene())); + connect(desktop, SIGNAL(workAreaResized(int)), this, SLOT(updateScene())); + connect(desktop, SIGNAL(screenCountChanged(int)), this, SLOT(updateScene())); + + updateScene(); + + QTransform transform; + transform.scale(0.25, 0.25); + setTransform(transform); + + setBackgroundBrush(Qt::darkGray); + } + +protected: + void moveEvent(QMoveEvent *e) + { + if (that) { + that->setRect(appRect()); + scene->update(); + } + QGraphicsView::moveEvent(e); + } + void resizeEvent(QResizeEvent *e) + { + if (that) { + that->setRect(appRect()); + } + QGraphicsView::resizeEvent(e); + } + +private slots: + void updateScene() + { + scene->clear(); + + const QDesktopWidget *desktop = QApplication::desktop(); + const bool isVirtualDesktop = desktop->isVirtualDesktop(); + const int homeScreen = desktop->screenNumber(this); + + QRect sceneRect; + int screenCount = desktop->screenCount(); + for (int s = 0; s < screenCount; ++s) { + const bool isPrimary = desktop->primaryScreen() == s; + const QRect screenRect = desktop->screenGeometry(s); + const QRect workRect = desktop->availableGeometry(s); + const QBrush fillBrush = palette().brush(isPrimary ? QPalette::Active : QPalette::Inactive, QPalette::Highlight); + QGraphicsRectItem *screen = new QGraphicsRectItem(0, 0, screenRect.width(), screenRect.height()); + + if (isVirtualDesktop) { + thatRoot = QPoint(); + screen->setPos(screenRect.x(), screenRect.y()); + } else { + // for non-virtual desktops we assume that screens are + // simply next to each other + if (s) + screen->setPos(sceneRect.right(), 0); + if (s == homeScreen) + thatRoot = screen->pos().toPoint(); + } + + screen->setBrush(fillBrush); + scene->addItem(screen); + sceneRect.setLeft(qMin(sceneRect.left(), screenRect.left())); + sceneRect.setRight(qMax(sceneRect.right(), screenRect.right())); + sceneRect.setTop(qMin(sceneRect.top(), screenRect.top())); + sceneRect.setBottom(qMax(sceneRect.bottom(), screenRect.bottom())); + + QGraphicsRectItem *workArea = new QGraphicsRectItem(screen); + workArea->setRect(0, 0, workRect.width(), workRect.height()); + workArea->setPos(workRect.x() - screenRect.x(), workRect.y() - screenRect.y()); + workArea->setBrush(Qt::white); + + QGraphicsSimpleTextItem *screenNumber = new QGraphicsSimpleTextItem(workArea); + screenNumber->setText(QString::number(s)); + screenNumber->setPen(QPen(Qt::black, 1)); + screenNumber->setBrush(fillBrush); + screenNumber->setFont(QFont("Arial Black", 18)); + screenNumber->setTransform(QTransform().scale(10, 10)); + screenNumber->setTransformOrigin(screenNumber->boundingRect().center()); + QSizeF center = (workRect.size() - screenNumber->boundingRect().size()) / 2; + screenNumber->setPos(center.width(), center.height()); + + screen->show(); + screen->setZValue(1); + } + + if (isVirtualDesktop) { + QGraphicsRectItem *virtualDesktop = new QGraphicsRectItem; + virtualDesktop->setRect(sceneRect); + virtualDesktop->setPen(QPen(Qt::black)); + virtualDesktop->setBrush(Qt::DiagCrossPattern); + scene->addItem(virtualDesktop); + virtualDesktop->setZValue(-1); + virtualDesktop->show(); + } + + that = new QGraphicsRectItem; + that->setBrush(Qt::red); + that->setOpacity(0.5); + that->setZValue(2); + that->setRect(appRect()); + that->show(); + scene->addItem(that); + + scene->setSceneRect(sceneRect); + scene->update(); + } + + QRect appRect() const + { + QRect rect = frameGeometry(); + if (!QApplication::desktop()->isVirtualDesktop()) { + rect.translate(thatRoot); + } + return rect; + } + +private: + QGraphicsScene *scene; + QGraphicsRectItem *that; + QPoint thatRoot; +}; + +#include "main.moc" + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + DesktopView view; + view.show(); + + return app.exec(); +} diff --git a/tests/manual/qdesktopwidget/qdesktopwidget.pro b/tests/manual/qdesktopwidget/qdesktopwidget.pro new file mode 100644 index 0000000..93d56eb --- /dev/null +++ b/tests/manual/qdesktopwidget/qdesktopwidget.pro @@ -0,0 +1,2 @@ +TEMPLATE = app +SOURCES += main.cpp diff --git a/tests/manual/qtouchevent/form.ui b/tests/manual/qtouchevent/form.ui new file mode 100644 index 0000000..c7fbb78 --- /dev/null +++ b/tests/manual/qtouchevent/form.ui @@ -0,0 +1,1897 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>770</width> + <height>424</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="testNameLabel"> + <property name="font"> + <font> + <pointsize>16</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Test Name</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="testDescriptionLabel"> + <property name="font"> + <font> + <pointsize>16</pointsize> + </font> + </property> + <property name="text"> + <string>Test description</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="TouchWidget" name="greenWidget" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>255</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>212</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>113</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>127</red> + <green>212</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>255</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>212</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>113</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>127</red> + <green>212</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>255</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>212</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>113</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>85</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>170</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="1" column="0"> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="1"> + <widget class="TouchWidget" name="blueWidget" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>180</width> + <height>120</height> + </size> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>212</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>113</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>127</red> + <green>127</green> + <blue>212</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>212</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>113</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>127</red> + <green>127</green> + <blue>212</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>212</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>113</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>85</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>170</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="2"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="1"> + <spacer name="verticalSpacer_3"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="TouchWidget" name="redWidget" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>255</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>212</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>113</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>212</red> + <green>127</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>255</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>212</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>113</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>212</red> + <green>127</green> + <blue>127</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>255</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>212</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>113</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>85</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>170</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="1"> + <spacer name="verticalSpacer_4"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="1"> + <widget class="TouchWidget" name="greyWidget" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>180</width> + <height>120</height> + </size> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="159"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="WindowText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Light"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Midlight"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Dark"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Mid"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Text"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="BrightText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="ButtonText"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="Shadow"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="AlternateBase"> + <brush brushstyle="SolidPattern"> + <color alpha="63"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipBase"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>220</blue> + </color> + </brush> + </colorrole> + <colorrole role="ToolTipText"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="2"> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <customwidgets> + <customwidget> + <class>TouchWidget</class> + <extends>QWidget</extends> + <header>touchwidget.h</header> + <container>1</container> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/tests/manual/qtouchevent/main.cpp b/tests/manual/qtouchevent/main.cpp new file mode 100644 index 0000000..8097ab0 --- /dev/null +++ b/tests/manual/qtouchevent/main.cpp @@ -0,0 +1,554 @@ +#include <QtGui> +#include <QtTest> + +#include "ui_form.h" +#include "touchwidget.h" + +class MultitouchTestWidget : public QWidget, public Ui::Form +{ + Q_OBJECT + +public: + MultitouchTestWidget(QWidget *parent = 0) + : QWidget(parent) + { + setAttribute(Qt::WA_QuitOnClose, false); + setupUi(this); + } + + void closeEvent(QCloseEvent *event) + { + event->accept(); + QTimer::singleShot(1000, qApp, SLOT(quit())); + } +}; + +class tst_ManualMultitouch : public QObject +{ + Q_OBJECT + +public: + tst_ManualMultitouch(); + ~tst_ManualMultitouch(); + +private slots: + void ignoringTouchEventsEmulatesMouseEvents(); + void basicSingleTouchEventHandling(); + void basicMultiTouchEventHandling(); + void acceptingTouchBeginStopsPropagation(); + void ignoringTouchBeginPropagatesToParent(); + void secondTouchPointOnParentGoesToChild(); + void secondTouchPointOnChildGoesToParent(); + void secondTouchPointOnSiblingGoesToSibling(); + void secondTouchPointOnCousinGoesToCousin(); +}; + +tst_ManualMultitouch::tst_ManualMultitouch() +{ } + +tst_ManualMultitouch::~tst_ManualMultitouch() +{ } + +void tst_ManualMultitouch::ignoringTouchEventsEmulatesMouseEvents() +{ + // first, make sure that we get mouse events when not enabling touch events + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Mouse Event Emulation Test"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the green widget."); + testWidget.redWidget->hide(); + testWidget.blueWidget->hide(); + testWidget.greenWidget->closeWindowOnMouseRelease = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + // QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(testWidget.greenWidget->seenMousePress); + // QVERIFY(testWidget.greenWidget->seenMouseMove); + QVERIFY(testWidget.greenWidget->seenMouseRelease); + + // enable touch, but don't accept the events + testWidget.greenWidget->reset(); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->closeWindowOnMouseRelease = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(testWidget.greenWidget->seenMousePress); + // QVERIFY(testWidget.greenWidget->seenMouseMove); + QVERIFY(testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::basicSingleTouchEventHandling() +{ + // now enable touch and make sure we get the touch events + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Basic Single-Touch Event Handling Test"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the green widget."); + testWidget.redWidget->hide(); + testWidget.blueWidget->hide(); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchUpdate = true; + testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // again, ignoring the TouchEnd + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchUpdate = true; + // testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // again, ignoring TouchUpdates + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + // testWidget.greenWidget->acceptTouchUpdate = true; + testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // last time, ignoring TouchUpdates and TouchEnd + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + // testWidget.greenWidget->acceptTouchUpdate = true; + // testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::basicMultiTouchEventHandling() +{ + // repeat, this time looking for multiple fingers + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Basic Multi-Touch Event Handling Test"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release several fingers on the red widget."); + testWidget.greenWidget->hide(); + testWidget.greyWidget->hide(); + testWidget.redWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchUpdate = true; + testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.redWidget->seenTouchBegin); + QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(testWidget.redWidget->touchPointCount > 1); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + // testWidget.redWidget->acceptTouchUpdate = true; + testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.redWidget->seenTouchBegin); + QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(testWidget.redWidget->touchPointCount > 1); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchUpdate = true; + // testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.redWidget->seenTouchBegin); + QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(testWidget.redWidget->touchPointCount > 1); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + // testWidget.redWidget->acceptTouchUpdate = true; + // testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.redWidget->seenTouchBegin); + QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(testWidget.redWidget->touchPointCount > 1); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::acceptingTouchBeginStopsPropagation() +{ + // test that accepting the TouchBegin event on the + // blueWidget stops propagation to the greenWidget + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Touch Event Propagation Test: Accepting in Blue Blocks Green"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the blue widget."); + testWidget.redWidget->hide(); + testWidget.blueWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.blueWidget->acceptTouchBegin = true; + testWidget.blueWidget->acceptTouchUpdate = true; + testWidget.blueWidget->acceptTouchEnd = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // ignoring TouchEnd + testWidget.blueWidget->reset(); + testWidget.greenWidget->reset(); + testWidget.blueWidget->acceptTouchBegin = true; + testWidget.blueWidget->acceptTouchUpdate = true; + // testWidget.blueWidget->acceptTouchEnd = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // ignoring TouchUpdate + testWidget.blueWidget->reset(); + testWidget.greenWidget->reset(); + testWidget.blueWidget->acceptTouchBegin = true; + // testWidget.blueWidget->acceptTouchUpdate = true; + testWidget.blueWidget->acceptTouchEnd = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // ignoring TouchUpdate and TouchEnd + testWidget.blueWidget->reset(); + testWidget.greenWidget->reset(); + testWidget.blueWidget->acceptTouchBegin = true; + // testWidget.blueWidget->acceptTouchUpdate = true; + // testWidget.blueWidget->acceptTouchEnd = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::ignoringTouchBeginPropagatesToParent() +{ + // repeat the test above, now ignoring touch events in the + // greyWidget, they should be propagated to the redWidget + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Touch Event Propagation Test: Ignoring in Grey Propagates to Red"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the grey widget."); + testWidget.greenWidget->hide(); + testWidget.greyWidget->setAttribute(Qt::WA_AcceptTouchEvents, false); + testWidget.redWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greyWidget->reset(); + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchUpdate = true; + testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(!testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + + // again, but this time greyWidget should see the TouchBegin + testWidget.greyWidget->reset(); + testWidget.redWidget->reset(); + testWidget.greyWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchUpdate = true; + testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + + // again, ignoring the TouchEnd + testWidget.greyWidget->reset(); + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchUpdate = true; + // testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + + // again, ignoring TouchUpdates + testWidget.greyWidget->reset(); + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + // testWidget.redWidget->acceptTouchUpdate = true; + testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + + // last time, ignoring TouchUpdates and TouchEnd + testWidget.greyWidget->reset(); + testWidget.redWidget->reset(); + testWidget.redWidget->acceptTouchBegin = true; + // testWidget.redWidget->acceptTouchUpdate = true; + // testWidget.redWidget->acceptTouchEnd = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::secondTouchPointOnParentGoesToChild() +{ + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Additional Touch-Points Outside Child's Rect Go to Child"); + testWidget.testDescriptionLabel->setText("Press and hold a finger on the blue widget, then on the green one, and release."); + testWidget.redWidget->hide(); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.blueWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.blueWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(testWidget.blueWidget->touchPointCount > 1); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::secondTouchPointOnChildGoesToParent() +{ + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Additional Touch-Points Over Child's Rect Go to Parent"); + testWidget.testDescriptionLabel->setText("Press and hold a finger on the red widget, then on the grey one, and release."); + testWidget.greenWidget->hide(); + testWidget.redWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greyWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greyWidget->acceptTouchBegin = true; + testWidget.redWidget->acceptTouchBegin = true; + testWidget.redWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->touchPointCount > 1); + QVERIFY(!testWidget.greyWidget->seenTouchBegin); + QVERIFY(!testWidget.greyWidget->seenTouchUpdate); + QVERIFY(!testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::secondTouchPointOnSiblingGoesToSibling() +{ + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Multi-Touch Interaction Test, Unrelated Widgets Get Separate Events"); + testWidget.testDescriptionLabel->setText("Press and hold a finger on the green widget, then the red one, and release."); + testWidget.blueWidget->hide(); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.greyWidget->hide(); + testWidget.redWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.redWidget->acceptTouchBegin = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + // QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + QVERIFY(testWidget.redWidget->seenTouchBegin); + // QVERIFY(testWidget.redWidget->seenTouchUpdate); + QVERIFY(testWidget.redWidget->seenTouchEnd); + QVERIFY(!testWidget.redWidget->seenMousePress); + QVERIFY(!testWidget.redWidget->seenMouseMove); + QVERIFY(!testWidget.redWidget->seenMouseRelease); + QVERIFY(testWidget.greenWidget->touchPointCount == 1); + QVERIFY(testWidget.redWidget->touchPointCount == 1); +} + +void tst_ManualMultitouch::secondTouchPointOnCousinGoesToCousin() +{ + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Multi-Touch Interaction Test, Unrelated Widgets Get Separate Events"); + testWidget.testDescriptionLabel->setText("Press and hold a finger on the blue widget, then the grey one, and release."); + testWidget.blueWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.blueWidget->acceptTouchBegin = true; + testWidget.blueWidget->closeWindowOnTouchEnd = true; + testWidget.greyWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greyWidget->acceptTouchBegin = true; + testWidget.showMaximized(); + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + // QVERIFY(testWidget.blueWidget->seenTouchUpdate); + QVERIFY(testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(testWidget.greyWidget->seenTouchBegin); + // QVERIFY(testWidget.greyWidget->seenTouchUpdate); + QVERIFY(testWidget.greyWidget->seenTouchEnd); + QVERIFY(!testWidget.greyWidget->seenMousePress); + QVERIFY(!testWidget.greyWidget->seenMouseMove); + QVERIFY(!testWidget.greyWidget->seenMouseRelease); + QVERIFY(testWidget.blueWidget->touchPointCount == 1); + QVERIFY(testWidget.greyWidget->touchPointCount == 1); +} + +QTEST_MAIN(tst_ManualMultitouch) + +#include "main.moc" diff --git a/tests/manual/qtouchevent/multitouch.pro b/tests/manual/qtouchevent/multitouch.pro new file mode 100644 index 0000000..de1ee06 --- /dev/null +++ b/tests/manual/qtouchevent/multitouch.pro @@ -0,0 +1,5 @@ +QT += testlib +SOURCES = main.cpp \ + touchwidget.cpp +FORMS += form.ui +HEADERS += touchwidget.h diff --git a/tests/manual/qtouchevent/touchwidget.cpp b/tests/manual/qtouchevent/touchwidget.cpp new file mode 100644 index 0000000..a8141cc --- /dev/null +++ b/tests/manual/qtouchevent/touchwidget.cpp @@ -0,0 +1,94 @@ +#include "touchwidget.h" + +#include <QApplication> +#include <QtEvents> +#include <QTimer> +#include <QTouchEvent> + +void TouchWidget::reset() +{ + acceptTouchBegin + = acceptTouchUpdate + = acceptTouchEnd + = seenTouchBegin + = seenTouchUpdate + = seenTouchEnd + = closeWindowOnTouchEnd + + = acceptMousePress + = acceptMouseMove + = acceptMouseRelease + = seenMousePress + = seenMouseMove + = seenMouseRelease + = closeWindowOnMouseRelease + + = false; + touchPointCount = 0; +} + +bool TouchWidget::event(QEvent *event) +{ + switch (event->type()) { + case QEvent::TouchBegin: + if (seenTouchBegin) qWarning("TouchBegin: already seen a TouchBegin"); + if (seenTouchUpdate) qWarning("TouchBegin: TouchUpdate cannot happen before TouchBegin"); + if (seenTouchEnd) qWarning("TouchBegin: TouchEnd cannot happen before TouchBegin"); + seenTouchBegin = !seenTouchBegin && !seenTouchUpdate && !seenTouchEnd; + touchPointCount = qMax(touchPointCount, static_cast<QTouchEvent *>(event)->touchPoints().count()); + if (acceptTouchBegin) { + event->accept(); + return true; + } + break; + case QEvent::TouchUpdate: + if (!seenTouchBegin) qWarning("TouchUpdate: have not seen TouchBegin"); + if (seenTouchEnd) qWarning("TouchUpdate: TouchEnd cannot happen before TouchUpdate"); + seenTouchUpdate = seenTouchBegin && !seenTouchEnd; + touchPointCount = qMax(touchPointCount, static_cast<QTouchEvent *>(event)->touchPoints().count()); + if (acceptTouchUpdate) { + event->accept(); + return true; + } + break; + case QEvent::TouchEnd: + if (!seenTouchBegin) qWarning("TouchEnd: have not seen TouchBegin"); + if (seenTouchEnd) qWarning("TouchEnd: already seen a TouchEnd"); + seenTouchEnd = seenTouchBegin && !seenTouchEnd; + touchPointCount = qMax(touchPointCount, static_cast<QTouchEvent *>(event)->touchPoints().count()); + if (closeWindowOnTouchEnd) + window()->close(); + if (acceptTouchEnd) { + event->accept(); + return true; + } + break; + case QEvent::MouseButtonPress: + case QEvent::MouseButtonDblClick: + seenMousePress = true; + if (acceptMousePress) { + event->accept(); + return true; + } + break; + case QEvent::MouseMove: + seenMouseMove = true; + if (acceptMouseMove) { + event->accept(); + return true; + } + break; + case QEvent::MouseButtonRelease: + seenMouseRelease = true; + if (closeWindowOnMouseRelease) + window()->close(); + if (acceptMouseRelease) { + event->accept(); + return true; + } + break; + default: + break; + } + return QWidget::event(event); +} diff --git a/tests/manual/qtouchevent/touchwidget.h b/tests/manual/qtouchevent/touchwidget.h new file mode 100644 index 0000000..2726deb --- /dev/null +++ b/tests/manual/qtouchevent/touchwidget.h @@ -0,0 +1,31 @@ +#ifndef TOUCHWIDGET_H +#define TOUCHWIDGET_H + +#include <QWidget> + +class TouchWidget : public QWidget +{ + Q_OBJECT + +public: + bool acceptTouchBegin, acceptTouchUpdate, acceptTouchEnd; + bool seenTouchBegin, seenTouchUpdate, seenTouchEnd; + bool closeWindowOnTouchEnd; + int touchPointCount; + + bool acceptMousePress, acceptMouseMove, acceptMouseRelease; + bool seenMousePress, seenMouseMove, seenMouseRelease; + bool closeWindowOnMouseRelease; + + inline TouchWidget(QWidget *parent = 0) + : QWidget(parent) + { + reset(); + } + + void reset(); + + bool event(QEvent *event); +}; + +#endif // TOUCHWIDGET_H |