summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/arthur/common/qengines.cpp1
-rw-r--r--tests/auto/auto.pro34
-rw-r--r--tests/auto/bic/bic.pro6
-rw-r--r--tests/auto/bic/tst_bic.cpp76
-rw-r--r--tests/auto/compilerwarnings/tst_compilerwarnings.cpp12
-rw-r--r--tests/auto/gestures/customgesturerecognizer.cpp167
-rw-r--r--tests/auto/gestures/customgesturerecognizer.h187
-rw-r--r--tests/auto/gestures/gestures.pro3
-rw-r--r--tests/auto/gestures/tst_gestures.cpp962
-rw-r--r--tests/auto/headers/tst_headers.cpp3
-rw-r--r--tests/auto/linguist/lrelease/tst_lrelease.cpp13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt8
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp31
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result39
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt7
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp24
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp28
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp42
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro12
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui2
-rw-r--r--tests/auto/math3d/math3d.pro2
-rw-r--r--tests/auto/math3d/qmatrixnxn/qmatrixnxn.pro5
-rw-r--r--tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp3336
-rw-r--r--tests/auto/math3d/qquaternion/qquaternion.pro5
-rw-r--r--tests/auto/math3d/qquaternion/tst_qquaternion.cpp830
-rw-r--r--tests/auto/math3d/qvectornd/qvectornd.pro5
-rw-r--r--tests/auto/math3d/qvectornd/tst_qvectornd.cpp2045
-rw-r--r--tests/auto/math3d/shared/math3dincludes.h52
-rw-r--r--tests/auto/mediaobject/dummy/README1
-rw-r--r--tests/auto/mediaobject/dummy/audiooutput.cpp53
-rw-r--r--tests/auto/mediaobject/dummy/audiooutput.h41
-rw-r--r--tests/auto/mediaobject/dummy/backend.cpp149
-rw-r--r--tests/auto/mediaobject/dummy/backend.h55
-rw-r--r--tests/auto/mediaobject/dummy/dummy.pro23
-rw-r--r--tests/auto/mediaobject/dummy/mediaobject.cpp397
-rw-r--r--tests/auto/mediaobject/dummy/mediaobject.h169
-rw-r--r--tests/auto/mediaobject/dummy/videowidget.cpp205
-rw-r--r--tests/auto/mediaobject/dummy/videowidget.h70
-rw-r--r--tests/auto/mediaobject/tst_mediaobject.cpp23
-rw-r--r--tests/auto/moc/tst_moc.cpp42
-rw-r--r--tests/auto/modeltest/modeltest.cpp4
-rw-r--r--tests/auto/patternistheaders/tst_patternistheaders.cpp8
-rw-r--r--tests/auto/q3filedialog/tst_q3filedialog.cpp12
-rw-r--r--tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp15
-rw-r--r--tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp2
-rw-r--r--tests/auto/q3tabdialog/tst_q3tabdialog.cpp28
-rw-r--r--tests/auto/qabstractitemview/tst_qabstractitemview.cpp102
-rw-r--r--tests/auto/qabstractscrollarea/tst_qabstractscrollarea.cpp35
-rw-r--r--tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp8
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp13
-rw-r--r--tests/auto/qaccessibility_mac/tst_qaccessibility_mac.cpp18
-rw-r--r--tests/auto/qaction/tst_qaction.cpp57
-rw-r--r--tests/auto/qanimationgroup/qanimationgroup.pro5
-rw-r--r--tests/auto/qanimationgroup/tst_qanimationgroup.cpp413
-rw-r--r--tests/auto/qapplication/tst_qapplication.cpp169
-rw-r--r--tests/auto/qboxlayout/tst_qboxlayout.cpp79
-rw-r--r--tests/auto/qbrush/tst_qbrush.cpp11
-rw-r--r--tests/auto/qbuttongroup/tst_qbuttongroup.cpp49
-rw-r--r--tests/auto/qbytearray/tst_qbytearray.cpp6
-rw-r--r--tests/auto/qchar/tst_qchar.cpp3
-rw-r--r--tests/auto/qclipboard/tst_qclipboard.cpp2
-rw-r--r--tests/auto/qcolumnview/tst_qcolumnview.cpp42
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp6
-rw-r--r--tests/auto/qcompleter/tst_qcompleter.cpp149
-rw-r--r--tests/auto/qcontiguouscache/qcontiguouscache.pro8
-rw-r--r--tests/auto/qcontiguouscache/tst_qcontiguouscache.cpp479
-rw-r--r--tests/auto/qcopchannel/tst_qcopchannel.cpp2
-rw-r--r--tests/auto/qcssparser/qcssparser.pro1
-rw-r--r--tests/auto/qcssparser/tst_cssparser.cpp45
-rw-r--r--tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp2
-rw-r--r--tests/auto/qdbusabstractadaptor/tst_qdbusabstractadaptor.cpp21
-rw-r--r--tests/auto/qdbusabstractinterface/com.trolltech.QtDBus.Pinger.xml30
-rw-r--r--tests/auto/qdbusabstractinterface/interface.cpp48
-rw-r--r--tests/auto/qdbusabstractinterface/interface.h113
-rw-r--r--tests/auto/qdbusabstractinterface/pinger.cpp67
-rw-r--r--tests/auto/qdbusabstractinterface/pinger.h145
-rw-r--r--tests/auto/qdbusabstractinterface/qdbusabstractinterface.pro15
-rw-r--r--tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp576
-rw-r--r--tests/auto/qdbusinterface/tst_qdbusinterface.cpp194
-rw-r--r--tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp121
-rw-r--r--tests/auto/qdir/tst_qdir.cpp17
-rw-r--r--tests/auto/qdirectpainter/tst_qdirectpainter.cpp4
-rw-r--r--tests/auto/qeasingcurve/qeasingcurve.pro3
-rw-r--r--tests/auto/qeasingcurve/tst_qeasingcurve.cpp493
-rw-r--r--tests/auto/qfile/tst_qfile.cpp178
-rw-r--r--tests/auto/qfiledialog/tst_qfiledialog.cpp39
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp105
-rw-r--r--tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp2
-rw-r--r--tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp80
-rw-r--r--tests/auto/qfontcombobox/tst_qfontcombobox.cpp6
-rw-r--r--tests/auto/qfontdialog/tst_qfontdialog.cpp30
-rw-r--r--tests/auto/qformlayout/tst_qformlayout.cpp30
-rw-r--r--tests/auto/qgl/qgl.pro3
-rw-r--r--tests/auto/qgl/tst_qgl.cpp23
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp121
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp1278
-rw-r--r--tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp1
-rw-r--r--tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp93
-rw-r--r--tests/auto/qgraphicsobject/qgraphicsobject.pro2
-rw-r--r--tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp255
-rw-r--r--tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp151
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp156
-rw-r--r--tests/auto/qgraphicssceneindex/qgraphicssceneindex.pro3
-rw-r--r--tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp305
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp590
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp522
-rw-r--r--tests/auto/qgroupbox/tst_qgroupbox.cpp11
-rw-r--r--tests/auto/qhelpgenerator/data/test.qhp7
-rw-r--r--tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro3
-rw-r--r--tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp24
-rw-r--r--tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro3
-rw-r--r--tests/auto/qicoimageformat/icons/valid/Qt.icobin0 -> 31371 bytes
-rw-r--r--tests/auto/qicoimageformat/tst_qticoimageformat.cpp33
-rw-r--r--tests/auto/qimage/images/image.tifbin0 -> 2242 bytes
-rw-r--r--tests/auto/qimage/tst_qimage.cpp31
-rw-r--r--tests/auto/qimagereader/baseline/35floppy.icobin0 -> 4286 bytes
-rw-r--r--tests/auto/qimagereader/baseline/kde_favicon.icobin0 -> 1150 bytes
-rw-r--r--tests/auto/qimagereader/baseline/semitransparent.icobin0 -> 9662 bytes
-rw-r--r--tests/auto/qimagereader/images/image_100dpi.tifbin0 -> 2242 bytes
-rw-r--r--tests/auto/qimagereader/qimagereader.pro2
-rw-r--r--tests/auto/qimagereader/qimagereader.qrc1
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp477
-rw-r--r--tests/auto/qimagewriter/tst_qimagewriter.cpp70
-rw-r--r--tests/auto/qitemeditorfactory/tst_qitemeditorfactory.cpp10
-rw-r--r--tests/auto/qitemmodel/qitemmodel.pro3
-rw-r--r--tests/auto/qitemview/tst_qitemview.cpp2
-rw-r--r--tests/auto/qkeysequence/tst_qkeysequence.cpp2
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp13
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp167
-rw-r--r--tests/auto/qlistwidget/tst_qlistwidget.cpp39
-rw-r--r--tests/auto/qlocale/tst_qlocale.cpp31
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp77
-rw-r--r--tests/auto/qmainwindow/tst_qmainwindow.cpp11
-rw-r--r--tests/auto/qmake/testdata/bundle-spaces/some-file6
-rw-r--r--tests/auto/qmap/tst_qmap.cpp17
-rw-r--r--tests/auto/qmenu/tst_qmenu.cpp54
-rw-r--r--tests/auto/qmenubar/tst_qmenubar.cpp106
-rw-r--r--tests/auto/qnativesocketengine/qnativesocketengine.pro2
-rw-r--r--tests/auto/qnetworkreply/qnetworkreply.pro2
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp759
-rw-r--r--tests/auto/qobject/tst_qobject.cpp112
-rw-r--r--tests/auto/qobjectrace/tst_qobjectrace.cpp24
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp45
-rw-r--r--tests/auto/qpainterpath/tst_qpainterpath.cpp40
-rw-r--r--tests/auto/qparallelanimationgroup/qparallelanimationgroup.pro5
-rw-r--r--tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp832
-rw-r--r--tests/auto/qpathclipper/qpathclipper.pro2
-rw-r--r--tests/auto/qpicture/tst_qpicture.cpp38
-rw-r--r--tests/auto/qpixmap/images/designer.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-10_dy_-10_50_50_100_100.pngbin0 -> 4385 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-10_dy_-10_x_y_w_h.pngbin0 -> 4104 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-10_dy_0_50_50_100_100.pngbin0 -> 4243 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-10_dy_0_x_y_w_h.pngbin0 -> 4116 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-128_dy_-128_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_-128_dy_0_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_-10_50_50_100_100.pngbin0 -> 4367 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_-10_x_y_w_h.pngbin0 -> 4157 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_-128_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_0_50_50_100_100.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_0_null.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_0_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_10_50_50_100_100.pngbin0 -> 4271 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_10_x_y_w_h.pngbin0 -> 4188 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_128_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_0_dy_1_null.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_10_dy_0_50_50_100_100.pngbin0 -> 4248 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_10_dy_0_x_y_w_h.pngbin0 -> 4196 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_10_dy_10_50_50_100_100.pngbin0 -> 4243 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_10_dy_10_x_y_w_h.pngbin0 -> 4220 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_128_dy_0_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_128_dy_128_64_64_128_128.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_128_dy_128_x_y_w_h.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/images/dx_1_dy_0_null.pngbin0 -> 4282 bytes
-rw-r--r--tests/auto/qpixmap/qpixmap.pro3
-rw-r--r--tests/auto/qpixmap/qpixmap.qrc29
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp204
-rw-r--r--tests/auto/qpixmapcache/tst_qpixmapcache.cpp266
-rw-r--r--tests/auto/qplaintextedit/tst_qplaintextedit.cpp2
-rw-r--r--tests/auto/qpoint/tst_qpoint.cpp20
-rw-r--r--tests/auto/qprocess/qprocess.pro1
-rw-r--r--tests/auto/qprocess/testProcessEnvironment/main.cpp61
-rw-r--r--tests/auto/qprocess/testProcessEnvironment/testProcessEnvironment.pro12
-rw-r--r--tests/auto/qprocess/tst_qprocess.cpp111
-rw-r--r--tests/auto/qprogressbar/tst_qprogressbar.cpp32
-rw-r--r--tests/auto/qpropertyanimation/qpropertyanimation.pro5
-rw-r--r--tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp1015
-rw-r--r--tests/auto/qpushbutton/tst_qpushbutton.cpp76
-rw-r--r--tests/auto/qregion/tst_qregion.cpp6
-rw-r--r--tests/auto/qringbuffer/qringbuffer.pro6
-rw-r--r--tests/auto/qringbuffer/tst_qringbuffer.cpp200
-rw-r--r--tests/auto/qscriptable/tst_qscriptable.cpp18
-rw-r--r--tests/auto/qscriptcontext/tst_qscriptcontext.cpp18
-rw-r--r--tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp20
-rw-r--r--tests/auto/qscriptengine/qscriptengine.pro1
-rw-r--r--tests/auto/qscriptengine/script/com/__init__.js4
-rw-r--r--tests/auto/qscriptengine/script/com/trolltech/__init__.js4
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp179
-rw-r--r--tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp22
-rw-r--r--tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro1
-rw-r--r--tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp2
-rw-r--r--tests/auto/qscriptqobject/tst_qscriptqobject.cpp155
-rw-r--r--tests/auto/qscriptv8testsuite/qscriptv8testsuite.pro1
-rw-r--r--tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp2
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.cpp55
-rw-r--r--tests/auto/qsequentialanimationgroup/qsequentialanimationgroup.pro5
-rw-r--r--tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp1648
-rw-r--r--tests/auto/qset/tst_qset.cpp35
-rw-r--r--tests/auto/qsettings/tst_qsettings.cpp34
-rw-r--r--tests/auto/qsharedmemory/src/qsystemlock_win.cpp26
-rw-r--r--tests/auto/qsharedpointer/externaltests.cpp20
-rw-r--r--tests/auto/qsharedpointer/externaltests.h4
-rw-r--r--tests/auto/qsharedpointer/externaltests.pri1
-rw-r--r--tests/auto/qsharedpointer/forwarddeclaration.cpp52
-rw-r--r--tests/auto/qsharedpointer/forwarddeclared.cpp53
-rw-r--r--tests/auto/qsharedpointer/forwarddeclared.h54
-rw-r--r--tests/auto/qsharedpointer/qsharedpointer.pro10
-rw-r--r--tests/auto/qsharedpointer/tst_qsharedpointer.cpp178
-rw-r--r--tests/auto/qsocketnotifier/qsocketnotifier.pro2
-rw-r--r--tests/auto/qsocks5socketengine/qsocks5socketengine.pro1
-rw-r--r--tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp109
-rw-r--r--tests/auto/qspinbox/tst_qspinbox.cpp50
-rw-r--r--tests/auto/qsplitter/qsplitter.pro3
-rw-r--r--tests/auto/qsplitter/tst_qsplitter.cpp2
-rw-r--r--tests/auto/qsqldatabase/qsqldatabase.pro5
-rw-r--r--tests/auto/qsqldatabase/tst_databases.h71
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp79
-rw-r--r--tests/auto/qsqldriver/qsqldriver.pro17
-rw-r--r--tests/auto/qsqldriver/tst_qsqldriver.cpp214
-rw-r--r--tests/auto/qsqlquery/qsqlquery.pro3
-rw-r--r--tests/auto/qsqlquery/tst_qsqlquery.cpp67
-rw-r--r--tests/auto/qsqlquerymodel/qsqlquerymodel.pro1
-rw-r--r--tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro1
-rw-r--r--tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp487
-rw-r--r--tests/auto/qsqltablemodel/qsqltablemodel.pro3
-rw-r--r--tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp17
-rw-r--r--tests/auto/qsqlthread/qsqlthread.pro3
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp111
-rw-r--r--tests/auto/qstandarditemmodel/tst_qstandarditemmodel.cpp53
-rw-r--r--tests/auto/qstate/qstate.pro5
-rw-r--r--tests/auto/qstate/tst_qstate.cpp340
-rw-r--r--tests/auto/qstatemachine/qstatemachine.pro4
-rw-r--r--tests/auto/qstatemachine/tst_qstatemachine.cpp3904
-rw-r--r--tests/auto/qstring/tst_qstring.cpp8
-rw-r--r--tests/auto/qstringbuilder/qstringbuilder.pro5
-rw-r--r--tests/auto/qstringbuilder/scenario1.cpp1
-rw-r--r--tests/auto/qstringbuilder/scenario1.pro8
-rw-r--r--tests/auto/qstringbuilder/scenario2.cpp1
-rw-r--r--tests/auto/qstringbuilder/scenario2.pro7
-rw-r--r--tests/auto/qstringbuilder/scenario3.cpp1
-rw-r--r--tests/auto/qstringbuilder/scenario3.pro7
-rw-r--r--tests/auto/qstringbuilder/scenario4.cpp1
-rw-r--r--tests/auto/qstringbuilder/scenario4.pro7
-rw-r--r--tests/auto/qstringbuilder/tst_qstringbuilder.cpp142
-rw-r--r--tests/auto/qstyle/tst_qstyle.cpp44
-rw-r--r--tests/auto/qstylesheetstyle/qstylesheetstyle.pro1
-rw-r--r--tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp54
-rw-r--r--tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp552
-rw-r--r--tests/auto/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp29
-rw-r--r--tests/auto/qtabbar/tst_qtabbar.cpp2
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp61
-rw-r--r--tests/auto/qtcpserver/tst_qtcpserver.cpp120
-rw-r--r--tests/auto/qtextcodec/test/test.pro6
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp129
-rw-r--r--tests/auto/qtextdocument/tst_qtextdocument.cpp50
-rw-r--r--tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp10
-rw-r--r--tests/auto/qtextedit/tst_qtextedit.cpp4
-rw-r--r--tests/auto/qtextlist/tst_qtextlist.cpp76
-rw-r--r--tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp2
-rw-r--r--tests/auto/qtextpiecetable/qtextpiecetable.pro5
-rw-r--r--tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp32
-rw-r--r--tests/auto/qtextstream/tst_qtextstream.cpp21
-rw-r--r--tests/auto/qtimer/tst_qtimer.cpp2
-rw-r--r--tests/auto/qtoolbar/tst_qtoolbar.cpp4
-rw-r--r--tests/auto/qtoolbutton/tst_qtoolbutton.cpp47
-rw-r--r--tests/auto/qtouchevent/qtouchevent.pro3
-rw-r--r--tests/auto/qtouchevent/tst_qtouchevent.cpp798
-rw-r--r--tests/auto/qtransform/tst_qtransform.cpp9
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp129
-rw-r--r--tests/auto/qtreewidget/tst_qtreewidget.cpp24
-rw-r--r--tests/auto/qurl/tst_qurl.cpp131
-rw-r--r--tests/auto/qvariant/tst_qvariant.cpp81
-rw-r--r--tests/auto/qvector/qvector.pro1
-rw-r--r--tests/auto/qwebelement/.gitignore1
-rw-r--r--tests/auto/qwebelement/dummy.cpp44
-rw-r--r--tests/auto/qwebelement/qwebelement.pro14
-rw-r--r--tests/auto/qwebhistory/.gitignore1
-rw-r--r--tests/auto/qwebhistory/dummy.cpp44
-rw-r--r--tests/auto/qwebhistory/qwebhistory.pro14
-rw-r--r--tests/auto/qwebhistoryinterface/.gitignore1
-rw-r--r--tests/auto/qwebhistoryinterface/dummy.cpp44
-rw-r--r--tests/auto/qwebhistoryinterface/qwebhistoryinterface.pro14
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp195
-rw-r--r--tests/auto/qwineventnotifier/tst_qwineventnotifier.cpp7
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp210
-rw-r--r--tests/auto/qxmlschema/.gitignore1
-rw-r--r--tests/auto/qxmlschema/qxmlschema.pro4
-rw-r--r--tests/auto/qxmlschema/tst_qxmlschema.cpp372
-rw-r--r--tests/auto/qxmlschemavalidator/.gitignore1
-rw-r--r--tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro4
-rw-r--r--tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp445
-rw-r--r--tests/auto/qxmlstream/tst_qxmlstream.cpp52
-rwxr-xr-xtests/auto/runQtXmlPatternsTests.sh2
-rw-r--r--tests/auto/selftests/badxml/badxml.pro11
-rw-r--r--tests/auto/selftests/badxml/tst_badxml.cpp206
-rw-r--r--tests/auto/selftests/exceptionthrow/exceptionthrow.pro (renamed from tests/auto/selftests/exception/exception.pro)4
-rw-r--r--tests/auto/selftests/exceptionthrow/tst_exceptionthrow.cpp (renamed from tests/auto/selftests/exception/tst_exception.cpp)2
-rw-r--r--tests/auto/selftests/expected_crashes_3.txt8
-rw-r--r--tests/auto/selftests/expected_exceptionthrow.txt (renamed from tests/auto/selftests/expected_exception.txt)0
-rw-r--r--tests/auto/selftests/expected_maxwarnings.txt4
-rw-r--r--tests/auto/selftests/expected_skip.txt8
-rw-r--r--tests/auto/selftests/expected_xunit.txt40
-rw-r--r--tests/auto/selftests/selftests.pro4
-rw-r--r--tests/auto/selftests/selftests.qrc4
-rw-r--r--tests/auto/selftests/tst_selftests.cpp107
-rwxr-xr-xtests/auto/selftests/xunit/tst_xunitbin0 -> 11624 bytes
-rw-r--r--tests/auto/selftests/xunit/tst_xunit.cpp115
-rw-r--r--tests/auto/selftests/xunit/xunit.pro8
-rwxr-xr-xtests/auto/test.pl4
-rw-r--r--tests/auto/uic/baseline/addtorrentform.ui.h6
-rw-r--r--tests/auto/uic/baseline/batchtranslation.ui.h12
-rw-r--r--tests/auto/uic/baseline/bookwindow.ui.h4
-rw-r--r--tests/auto/uic/baseline/browserwidget.ui.h6
-rw-r--r--tests/auto/uic/baseline/calculatorform.ui.h10
-rw-r--r--tests/auto/uic/baseline/chatdialog.ui.h6
-rw-r--r--tests/auto/uic/baseline/chatmainwindow.ui.h6
-rw-r--r--tests/auto/uic/baseline/chatsetnickname.ui.h6
-rw-r--r--tests/auto/uic/baseline/config.ui.h8
-rw-r--r--tests/auto/uic/baseline/controller.ui.h2
-rw-r--r--tests/auto/uic/baseline/default.ui.h2
-rw-r--r--tests/auto/uic/baseline/downloaditem.ui.h2
-rw-r--r--tests/auto/uic/baseline/downloads.ui.h2
-rw-r--r--tests/auto/uic/baseline/filternamedialog.ui.h2
-rw-r--r--tests/auto/uic/baseline/finddialog.ui.h10
-rw-r--r--tests/auto/uic/baseline/form.ui.h8
-rw-r--r--tests/auto/uic/baseline/formwindowsettings.ui.h14
-rw-r--r--tests/auto/uic/baseline/helpdialog.ui.h16
-rw-r--r--tests/auto/uic/baseline/imagedialog.ui.h6
-rw-r--r--tests/auto/uic/baseline/listwidgeteditor.ui.h2
-rw-r--r--tests/auto/uic/baseline/mainwindow.ui.h18
-rw-r--r--tests/auto/uic/baseline/mainwindowbase.ui.h40
-rw-r--r--tests/auto/uic/baseline/mydialog.ui.h2
-rw-r--r--tests/auto/uic/baseline/myform.ui.h4
-rw-r--r--tests/auto/uic/baseline/newform.ui.h4
-rw-r--r--tests/auto/uic/baseline/pagefold.ui.h4
-rw-r--r--tests/auto/uic/baseline/paletteeditor.ui.h6
-rw-r--r--tests/auto/uic/baseline/paletteeditoradvancedbase.ui.h18
-rw-r--r--tests/auto/uic/baseline/phrasebookbox.ui.h2
-rw-r--r--tests/auto/uic/baseline/previewdialogbase.ui.h8
-rw-r--r--tests/auto/uic/baseline/previewwidget.ui.h10
-rw-r--r--tests/auto/uic/baseline/previewwidgetbase.ui.h14
-rw-r--r--tests/auto/uic/baseline/qpagesetupwidget.ui.h2
-rw-r--r--tests/auto/uic/baseline/qprintpropertieswidget.ui.h2
-rw-r--r--tests/auto/uic/baseline/qprintsettingsoutput.ui.h6
-rw-r--r--tests/auto/uic/baseline/qprintwidget.ui.h2
-rw-r--r--tests/auto/uic/baseline/qsqlconnectiondialog.ui.h8
-rw-r--r--tests/auto/uic/baseline/qttoolbardialog.ui.h6
-rw-r--r--tests/auto/uic/baseline/querywidget.ui.h6
-rw-r--r--tests/auto/uic/baseline/remotecontrol.ui.h4
-rw-r--r--tests/auto/uic/baseline/signalslotdialog.ui.h6
-rw-r--r--tests/auto/uic/baseline/statistics.ui.h4
-rw-r--r--tests/auto/uic/baseline/stringlisteditor.ui.h12
-rw-r--r--tests/auto/uic/baseline/stylesheeteditor.ui.h4
-rw-r--r--tests/auto/uic/baseline/tabbedbrowser.ui.h6
-rw-r--r--tests/auto/uic/baseline/tablewidgeteditor.ui.h2
-rw-r--r--tests/auto/uic/baseline/tetrixwindow.ui.h4
-rw-r--r--tests/auto/uic/baseline/textfinder.ui.h4
-rw-r--r--tests/auto/uic/baseline/topicchooser.ui.h4
-rw-r--r--tests/auto/uic/baseline/translatedialog.ui.h4
-rw-r--r--tests/auto/uic/baseline/translationsettings.ui.h4
-rw-r--r--tests/auto/uic/baseline/trpreviewtool.ui.h2
-rw-r--r--tests/auto/uic/baseline/validators.ui.h22
-rw-r--r--tests/auto/uiloader/baseline/css_borderimage.ui125
-rw-r--r--tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui210
-rw-r--r--tests/auto/uiloader/baseline/css_scrollarea_base.ui197
-rw-r--r--tests/auto/uiloader/baseline/css_splitter.ui63
-rw-r--r--tests/auto/uiloader/baseline/css_task255849_downarrow.ui144
-rw-r--r--tests/auto/uiloader/baseline/images/arrow-down.pngbin0 -> 1006 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/arrow-up.pngbin0 -> 927 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/borderimage.pngbin0 -> 1672 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/splitter_horizontal.pngbin0 -> 199 bytes
-rw-r--r--tests/auto/uiloader/baseline/images/splitter_vertical.pngbin0 -> 193 bytes
-rw-r--r--tests/auto/windowsmobile/test/tst_windowsmobile.cpp4
-rw-r--r--tests/auto/xmlpatterns.pri14
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp2
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/xmlpatternsdiagnosticsts.pro1
-rw-r--r--tests/auto/xmlpatternsschema/.gitignore1
-rw-r--r--tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp988
-rw-r--r--tests/auto/xmlpatternsschema/xmlpatternsschema.pro6
-rw-r--r--tests/auto/xmlpatternsschemats/.gitignore4
-rw-r--r--tests/auto/xmlpatternsschemats/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore3
-rw-r--r--tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl21
-rwxr-xr-xtests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh20
-rw-r--r--tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp44
-rw-r--r--tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro23
-rw-r--r--tests/auto/xmlpatternsvalidator/files/instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/valid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp174
-rw-r--r--tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro5
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.cpp32
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.h6
-rw-r--r--tests/auto/xmlpatternsview/view/ui_MainWindow.ui9
-rw-r--r--tests/auto/xmlpatternsview/xmlpatternsview.pro1
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp7
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.h9
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestGroup.cpp6
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.cpp26
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.h14
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeModel.cpp9
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp346
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h130
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp881
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h90
-rw-r--r--tests/auto/xmlpatternsxqts/lib/lib.pro4
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp15
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.h14
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp2
-rw-r--r--tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro3
-rw-r--r--tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp2
-rw-r--r--tests/auto/xmlpatternsxslts/xmlpatternsxslts.pro1
-rw-r--r--tests/benchmarks/benchmarks.pro6
-rw-r--r--tests/benchmarks/qanimation/dummyanimation.cpp20
-rw-r--r--tests/benchmarks/qanimation/dummyanimation.h19
-rw-r--r--tests/benchmarks/qanimation/dummyobject.cpp25
-rw-r--r--tests/benchmarks/qanimation/dummyobject.h23
-rw-r--r--tests/benchmarks/qanimation/main.cpp150
-rw-r--r--tests/benchmarks/qanimation/qanimation.pro18
-rw-r--r--tests/benchmarks/qanimation/rectanimation.cpp58
-rw-r--r--tests/benchmarks/qanimation/rectanimation.h30
-rw-r--r--tests/benchmarks/qdir/qdir.pro8
-rw-r--r--tests/benchmarks/qdir/tst_qdir.cpp121
-rw-r--r--tests/benchmarks/qdiriterator/main.cpp2
-rw-r--r--tests/benchmarks/qdiriterator/qfilesystemiterator.cpp19
-rw-r--r--tests/benchmarks/qfile/main.cpp12
-rw-r--r--tests/benchmarks/qgraphicsitem/qgraphicsitem.pro6
-rw-r--r--tests/benchmarks/qgraphicsitem/tst_qgraphicsitem.cpp170
-rw-r--r--tests/benchmarks/qgraphicsview/images/wine-big.jpegbin0 -> 12249 bytes
-rw-r--r--tests/benchmarks/qgraphicsview/images/wine.jpegbin0 -> 2265 bytes
-rw-r--r--tests/benchmarks/qgraphicsview/qgraphicsview.qrc2
-rw-r--r--tests/benchmarks/qgraphicsview/tst_qgraphicsview.cpp210
-rw-r--r--tests/benchmarks/qmatrix4x4/qmatrix4x4.pro6
-rw-r--r--tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp261
-rw-r--r--tests/benchmarks/qnetworkreply/main.cpp74
-rw-r--r--tests/benchmarks/qnetworkreply/qnetworkreply.pro13
-rw-r--r--tests/benchmarks/qpixmapcache/qpixmapcache.pro6
-rw-r--r--tests/benchmarks/qpixmapcache/tst_qpixmapcache.cpp226
-rw-r--r--tests/benchmarks/qquaternion/qquaternion.pro6
-rw-r--r--tests/benchmarks/qquaternion/tst_qquaternion.cpp124
-rw-r--r--tests/benchmarks/qstring/main.cpp141
-rw-r--r--tests/benchmarks/qstring/qstring.pro12
-rw-r--r--tests/benchmarks/qstring/utf-8.txt72
-rw-r--r--tests/benchmarks/qstringbuilder/main.cpp424
-rw-r--r--tests/benchmarks/qstringbuilder/qstringbuilder.pro12
-rw-r--r--tests/benchmarks/qtableview/qtableview.pro6
-rw-r--r--tests/benchmarks/qtableview/tst_qtableview.cpp193
-rw-r--r--tests/benchmarks/qvariant/qvariant.pro1
-rw-r--r--tests/benchmarks/qvariant/tst_qvariant.cpp115
-rw-r--r--tests/manual/qdesktopwidget/main.cpp188
-rw-r--r--tests/manual/qdesktopwidget/qdesktopwidget.pro2
-rw-r--r--tests/manual/qtouchevent/form.ui1897
-rw-r--r--tests/manual/qtouchevent/main.cpp554
-rw-r--r--tests/manual/qtouchevent/multitouch.pro5
-rw-r--r--tests/manual/qtouchevent/touchwidget.cpp94
-rw-r--r--tests/manual/qtouchevent/touchwidget.h31
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 &quot; 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&lt;int&gt;\"/>\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&lt;int&gt;\"/>\n"
+" <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"QList&lt;int&gt;\"/>\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
new file mode 100644
index 0000000..fef1dee
--- /dev/null
+++ b/tests/auto/qicoimageformat/icons/valid/Qt.ico
Binary files differ
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
new file mode 100644
index 0000000..ee0637c
--- /dev/null
+++ b/tests/auto/qimage/images/image.tif
Binary files differ
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
new file mode 100644
index 0000000..59fd37e
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/35floppy.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/kde_favicon.ico b/tests/auto/qimagereader/baseline/kde_favicon.ico
new file mode 100644
index 0000000..15bcdbb
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/kde_favicon.ico
Binary files differ
diff --git a/tests/auto/qimagereader/baseline/semitransparent.ico b/tests/auto/qimagereader/baseline/semitransparent.ico
new file mode 100644
index 0000000..dd23de9
--- /dev/null
+++ b/tests/auto/qimagereader/baseline/semitransparent.ico
Binary files differ
diff --git a/tests/auto/qimagereader/images/image_100dpi.tif b/tests/auto/qimagereader/images/image_100dpi.tif
new file mode 100644
index 0000000..fcf3cd8
--- /dev/null
+++ b/tests/auto/qimagereader/images/image_100dpi.tif
Binary files differ
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(&notTimeDriven);
+ 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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/designer.png
Binary files differ
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
new file mode 100644
index 0000000..a4a1924
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-10_dy_-10_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..1506af5
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-10_dy_-10_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..8500ab1
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-10_dy_0_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..2145c61
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-10_dy_0_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-128_dy_-128_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_-128_dy_0_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..728ee79
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_-10_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..e9d5850
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_-10_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_-128_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_0_50_50_100_100.png
Binary files differ
diff --git a/tests/auto/qpixmap/images/dx_0_dy_0_null.png b/tests/auto/qpixmap/images/dx_0_dy_0_null.png
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_0_null.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_0_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..7c09b17
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_10_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..70a6340
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_10_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_128_x_y_w_h.png
Binary files differ
diff --git a/tests/auto/qpixmap/images/dx_0_dy_1_null.png b/tests/auto/qpixmap/images/dx_0_dy_1_null.png
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_0_dy_1_null.png
Binary files differ
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
new file mode 100644
index 0000000..85abada
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_10_dy_0_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..3e03450
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_10_dy_0_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..315fbe0
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_10_dy_10_50_50_100_100.png
Binary files differ
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
new file mode 100644
index 0000000..d91dc71
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_10_dy_10_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_128_dy_0_x_y_w_h.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_128_dy_128_64_64_128_128.png
Binary files differ
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
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_128_dy_128_x_y_w_h.png
Binary files differ
diff --git a/tests/auto/qpixmap/images/dx_1_dy_0_null.png b/tests/auto/qpixmap/images/dx_1_dy_0_null.png
new file mode 100644
index 0000000..bca471d
--- /dev/null
+++ b/tests/auto/qpixmap/images/dx_1_dy_0_null.png
Binary files differ
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 &region);
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(&notTimeDriven);
+ 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&#x002D;ending stuff &#x002D;&#x002D;&gt;" 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="&apos;true&apos; 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
new file mode 100755
index 0000000..31d03a8
--- /dev/null
+++ b/tests/auto/selftests/xunit/tst_xunit
Binary files differ
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(&quot;images/borderimage.png&quot;) 28 repeat repeat;
+}
+
+#label_stretch_repeat {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch repeat;
+}
+
+#label_round_repeat {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 round repeat;
+}
+
+
+#label_repeat_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 repeat round;
+}
+
+#label_stretch_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch round;
+}
+
+#label_round_round {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 round round;
+}
+
+#label_repeat_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 repeat stretch;
+}
+
+#label_stretch_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 28 stretch stretch;
+}
+
+#label_round_stretch {
+ border-image: url(&quot;images/borderimage.png&quot;) 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(&quot;images/pushbutton.png&quot;) 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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;x&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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(&quot;images/arrow-down.png&quot;) }
+*::up-arrow { image: url(&quot;images/arrow-up.png&quot;) }
+
+
+</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
new file mode 100644
index 0000000..7c9274f
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/arrow-down.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/arrow-up.png b/tests/auto/uiloader/baseline/images/arrow-up.png
new file mode 100644
index 0000000..758a0d1
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/arrow-up.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/borderimage.png b/tests/auto/uiloader/baseline/images/borderimage.png
new file mode 100644
index 0000000..199fc89
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/borderimage.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_horizontal.png b/tests/auto/uiloader/baseline/images/splitter_horizontal.png
new file mode 100644
index 0000000..66107cf
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/splitter_horizontal.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_vertical.png b/tests/auto/uiloader/baseline/images/splitter_vertical.png
new file mode 100644
index 0000000..f907c0b
--- /dev/null
+++ b/tests/auto/uiloader/baseline/images/splitter_vertical.png
Binary files differ
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&amp;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
new file mode 100644
index 0000000..9900a50
--- /dev/null
+++ b/tests/benchmarks/qgraphicsview/images/wine-big.jpeg
Binary files differ
diff --git a/tests/benchmarks/qgraphicsview/images/wine.jpeg b/tests/benchmarks/qgraphicsview/images/wine.jpeg
new file mode 100644
index 0000000..8fe1d3a
--- /dev/null
+++ b/tests/benchmarks/qgraphicsview/images/wine.jpeg
Binary files differ
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