
/*
This Java source file was generated by test-to-java.xsl
and is a derived work from the source document.
The source document contained the following notice:


Copyright (c) 2001-2004 World Wide Web Consortium,
(Massachusetts Institute of Technology, Institut National de
Recherche en Informatique et en Automatique, Keio University). All
Rights Reserved. This program is distributed under the W3C's Software
Intellectual Property License. This program is distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
See W3C License http://www.w3.org/Consortium/Legal/ for more details.

*/

package org.w3c.domts.level1.core;

import org.w3c.domts.DOMTestCase;
import org.w3c.domts.DOMTestSuite;
import org.w3c.domts.DOMTestSink;
import org.w3c.domts.DOMTestDocumentBuilderFactory;


/**
 * 
* @author DOM Test Suite Project
*/
public class alltests extends DOMTestSuite {

    /**
    * Constructor
    * @param factory document factory, may not be null
    * @throws Exception Thrown if test is not compatible with settings
    */
   public alltests(DOMTestDocumentBuilderFactory factory) throws Exception {
      super(factory);

      setFactory(factory);
   }

   /**
    *   Build test suite by adding each test to the test sink
    *   @param sink test sink
    */
   public void build(DOMTestSink sink) {
      sink.addTest(attrcreatedocumentfragment.class);
      sink.addTest(attrcreatetextnode.class);
      sink.addTest(attrcreatetextnode2.class);
//      sink.addTest(attrdefaultvalue.class); //javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(attreffectivevalue.class);
//      sink.addTest(attrentityreplacement.class);
      sink.addTest(attrname.class);
      sink.addTest(attrnextsiblingnull.class);
//      sink.addTest(attrnotspecifiedvalue.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(attrparentnodenull.class);
      sink.addTest(attrprevioussiblingnull.class);
//      sink.addTest(attrsetvaluenomodificationallowederr.class);
//      sink.addTest(attrsetvaluenomodificationallowederrEE.class);
      sink.addTest(attrspecifiedvalue.class);
      sink.addTest(attrspecifiedvaluechanged.class);
//      sink.addTest(attrspecifiedvalueremove.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(cdatasectiongetdata.class);
//      sink.addTest(cdatasectionnormalize.class);
      sink.addTest(characterdataappenddata.class);
      sink.addTest(characterdataappenddatagetdata.class);
//      sink.addTest(characterdataappenddatanomodificationallowederr.class);
//      sink.addTest(characterdataappenddatanomodificationallowederrEE.class);
      sink.addTest(characterdatadeletedatabegining.class);
      sink.addTest(characterdatadeletedataend.class);
      sink.addTest(characterdatadeletedataexceedslength.class);
      sink.addTest(characterdatadeletedatagetlengthanddata.class);
      sink.addTest(characterdatadeletedatamiddle.class);
//      sink.addTest(characterdatadeletedatanomodificationallowederr.class);
//      sink.addTest(characterdatadeletedatanomodificationallowederrEE.class);
      sink.addTest(characterdatagetdata.class);
      sink.addTest(characterdatagetlength.class);
//      sink.addTest(characterdataindexsizeerrdeletedatacountnegative.class);
//      sink.addTest(characterdataindexsizeerrdeletedataoffsetgreater.class);
//      sink.addTest(characterdataindexsizeerrdeletedataoffsetnegative.class);
//      sink.addTest(characterdataindexsizeerrinsertdataoffsetgreater.class);
//      sink.addTest(characterdataindexsizeerrinsertdataoffsetnegative.class);
//      sink.addTest(characterdataindexsizeerrreplacedatacountnegative.class);
//      sink.addTest(characterdataindexsizeerrreplacedataoffsetgreater.class);
//      sink.addTest(characterdataindexsizeerrreplacedataoffsetnegative.class);
//      sink.addTest(characterdataindexsizeerrsubstringcountnegative.class);
//      sink.addTest(characterdataindexsizeerrsubstringnegativeoffset.class);
//      sink.addTest(characterdataindexsizeerrsubstringoffsetgreater.class);
      sink.addTest(characterdatainsertdatabeginning.class);
      sink.addTest(characterdatainsertdataend.class);
      sink.addTest(characterdatainsertdatamiddle.class);
//      sink.addTest(characterdatainsertdatanomodificationallowederr.class);
//      sink.addTest(characterdatainsertdatanomodificationallowederrEE.class);
      sink.addTest(characterdatareplacedatabegining.class);
      sink.addTest(characterdatareplacedataend.class);
      sink.addTest(characterdatareplacedataexceedslengthofarg.class);
      sink.addTest(characterdatareplacedataexceedslengthofdata.class);
      sink.addTest(characterdatareplacedatamiddle.class);
//      sink.addTest(characterdatareplacedatanomodificationallowederr.class);
//      sink.addTest(characterdatareplacedatanomodificationallowederrEE.class);
//      sink.addTest(characterdatasetdatanomodificationallowederr.class);
//      sink.addTest(characterdatasetdatanomodificationallowederrEE.class);
//      sink.addTest(characterdatasetnodevalue.class);
//      sink.addTest(characterdatasubstringexceedsvalue.class);
      sink.addTest(characterdatasubstringvalue.class);
      sink.addTest(commentgetcomment.class);
//      sink.addTest(documentcreateattribute.class);
      sink.addTest(documentcreatecdatasection.class);
      sink.addTest(documentcreatecomment.class);
      sink.addTest(documentcreatedocumentfragment.class);
      sink.addTest(documentcreateelement.class);
      sink.addTest(documentcreateelementcasesensitive.class);
//      sink.addTest(documentcreateelementdefaultattr.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(documentcreateentityreference.class);
//      sink.addTest(documentcreateentityreferenceknown.class);
      sink.addTest(documentcreateprocessinginstruction.class);
      sink.addTest(documentcreatetextnode.class);
      sink.addTest(documentgetdoctype.class);
      sink.addTest(documentgetdoctypenodtd.class);
      sink.addTest(documentgetelementsbytagnamelength.class);
//      sink.addTest(documentgetelementsbytagnametotallength.class);
      sink.addTest(documentgetelementsbytagnamevalue.class);
      sink.addTest(documentgetimplementation.class);
      sink.addTest(documentgetrootnode.class);
      sink.addTest(documentinvalidcharacterexceptioncreateattribute.class);
      sink.addTest(documentinvalidcharacterexceptioncreateelement.class);
//      sink.addTest(documentinvalidcharacterexceptioncreateentref.class);
//      sink.addTest(documentinvalidcharacterexceptioncreateentref1.class);
//      sink.addTest(documentinvalidcharacterexceptioncreatepi.class);
//      sink.addTest(documentinvalidcharacterexceptioncreatepi1.class);
      sink.addTest(documenttypegetdoctype.class);
//      sink.addTest(documenttypegetentities.class);
//      sink.addTest(documenttypegetentitieslength.class);
//      sink.addTest(documenttypegetentitiestype.class);
//      sink.addTest(documenttypegetnotations.class);
//      sink.addTest(documenttypegetnotationstype.class);
      sink.addTest(domimplementationfeaturenoversion.class);
      sink.addTest(domimplementationfeaturenull.class);
      sink.addTest(domimplementationfeaturexml.class);
      sink.addTest(elementaddnewattribute.class);
      sink.addTest(elementassociatedattribute.class);
      sink.addTest(elementchangeattributevalue.class);
//      sink.addTest(elementcreatenewattribute.class);
      sink.addTest(elementgetattributenode.class);
      sink.addTest(elementgetattributenodenull.class);
//      sink.addTest(elementgetelementempty.class);
      sink.addTest(elementgetelementsbytagname.class);
      sink.addTest(elementgetelementsbytagnameaccessnodelist.class);
      sink.addTest(elementgetelementsbytagnamenomatch.class);
//      sink.addTest(elementgetelementsbytagnamespecialvalue.class);
      sink.addTest(elementgettagname.class);
      sink.addTest(elementinuseattributeerr.class);
      sink.addTest(elementinvalidcharacterexception.class);
      sink.addTest(elementnormalize.class);
      sink.addTest(elementnotfounderr.class);
//      sink.addTest(elementremoveattribute.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(elementremoveattributeaftercreate.class);
      sink.addTest(elementremoveattributenode.class);
//      sink.addTest(elementremoveattributenodenomodificationallowederr.class);
//      sink.addTest(elementremoveattributenodenomodificationallowederrEE.class);
//      sink.addTest(elementremoveattributenomodificationallowederr.class);
//      sink.addTest(elementremoveattributenomodificationallowederrEE.class);
//      sink.addTest(elementremoveattributerestoredefaultvalue.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
//      sink.addTest(elementreplaceattributewithself.class);
//      sink.addTest(elementreplaceexistingattribute.class);
      sink.addTest(elementreplaceexistingattributegevalue.class);
//      sink.addTest(elementretrieveallattributes.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(elementretrieveattrvalue.class);
      sink.addTest(elementretrievetagname.class);
//      sink.addTest(elementsetattributenodenomodificationallowederr.class);
//      sink.addTest(elementsetattributenodenomodificationallowederrEE.class);
      sink.addTest(elementsetattributenodenull.class);
//      sink.addTest(elementsetattributenomodificationallowederr.class);
//      sink.addTest(elementsetattributenomodificationallowederrEE.class);
      sink.addTest(elementwrongdocumenterr.class);
//      sink.addTest(entitygetentityname.class);
//      sink.addTest(entitygetpublicid.class);
//      sink.addTest(entitygetpublicidnull.class);
      sink.addTest(namednodemapchildnoderange.class);
      sink.addTest(namednodemapgetnameditem.class);
      sink.addTest(namednodemapinuseattributeerr.class);
      sink.addTest(namednodemapnotfounderr.class);
      sink.addTest(namednodemapnumberofnodes.class);
//      sink.addTest(namednodemapremovenameditem.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
//      sink.addTest(namednodemapremovenameditemgetvalue.class); // javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available
      sink.addTest(namednodemapremovenameditemreturnnodevalue.class);
      sink.addTest(namednodemapreturnattrnode.class);
      sink.addTest(namednodemapreturnfirstitem.class);
      sink.addTest(namednodemapreturnlastitem.class);
      sink.addTest(namednodemapreturnnull.class);
      sink.addTest(namednodemapsetnameditem.class);
      sink.addTest(namednodemapsetnameditemreturnvalue.class);
//      sink.addTest(namednodemapsetnameditemthatexists.class);
      sink.addTest(namednodemapsetnameditemwithnewvalue.class);
      sink.addTest(namednodemapwrongdocumenterr.class);
      sink.addTest(nodeappendchild.class);
//      sink.addTest(nodeappendchildchildexists.class);
//      sink.addTest(nodeappendchilddocfragment.class);
      sink.addTest(nodeappendchildgetnodename.class);
//      sink.addTest(nodeappendchildinvalidnodetype.class);
      sink.addTest(nodeappendchildnewchilddiffdocument.class);
      sink.addTest(nodeappendchildnodeancestor.class);
//      sink.addTest(nodeappendchildnomodificationallowederr.class);
//      sink.addTest(nodeappendchildnomodificationallowederrEE.class);
      sink.addTest(nodeattributenodeattribute.class);
      sink.addTest(nodeattributenodename.class);
      sink.addTest(nodeattributenodetype.class);
      sink.addTest(nodeattributenodevalue.class);
      sink.addTest(nodecdatasectionnodeattribute.class);
      sink.addTest(nodecdatasectionnodename.class);
      sink.addTest(nodecdatasectionnodetype.class);
      sink.addTest(nodecdatasectionnodevalue.class);
      sink.addTest(nodechildnodes.class);
//      sink.addTest(nodechildnodesappendchild.class);
      sink.addTest(nodechildnodesempty.class);
//      sink.addTest(nodecloneattributescopied.class);
//      sink.addTest(nodeclonefalsenocopytext.class);
//      sink.addTest(nodeclonegetparentnull.class);
//      sink.addTest(nodeclonenodefalse.class);
//      sink.addTest(nodeclonenodetrue.class);
//      sink.addTest(nodeclonetruecopytext.class);
      sink.addTest(nodecommentnodeattributes.class);
      sink.addTest(nodecommentnodename.class);
      sink.addTest(nodecommentnodetype.class);
      sink.addTest(nodecommentnodevalue.class);
      sink.addTest(nodedocumentfragmentnodename.class);
      sink.addTest(nodedocumentfragmentnodetype.class);
      sink.addTest(nodedocumentfragmentnodevalue.class);
      sink.addTest(nodedocumentnodeattribute.class);
      sink.addTest(nodedocumentnodename.class);
      sink.addTest(nodedocumentnodetype.class);
      sink.addTest(nodedocumentnodevalue.class);
      sink.addTest(nodedocumenttypenodename.class);
      sink.addTest(nodedocumenttypenodetype.class);
      sink.addTest(nodedocumenttypenodevalue.class);
      sink.addTest(nodeelementnodeattributes.class);
      sink.addTest(nodeelementnodename.class);
      sink.addTest(nodeelementnodetype.class);
      sink.addTest(nodeelementnodevalue.class);
//      sink.addTest(nodeentitynodeattributes.class);
//      sink.addTest(nodeentitynodename.class);
//      sink.addTest(nodeentitynodetype.class);
//      sink.addTest(nodeentitynodevalue.class);
//      sink.addTest(nodeentitysetnodevalue.class);
      sink.addTest(nodeentityreferencenodeattributes.class);
      sink.addTest(nodeentityreferencenodename.class);
      sink.addTest(nodeentityreferencenodetype.class);
      sink.addTest(nodeentityreferencenodevalue.class);
      sink.addTest(nodegetfirstchild.class);
      sink.addTest(nodegetfirstchildnull.class);
      sink.addTest(nodegetlastchild.class);
      sink.addTest(nodegetlastchildnull.class);
      sink.addTest(nodegetnextsibling.class);
      sink.addTest(nodegetnextsiblingnull.class);
      sink.addTest(nodegetownerdocument.class);
      sink.addTest(nodegetownerdocumentnull.class);
      sink.addTest(nodegetprevioussibling.class);
      sink.addTest(nodegetprevioussiblingnull.class);
      sink.addTest(nodehaschildnodes.class);
      sink.addTest(nodehaschildnodesfalse.class);
//      sink.addTest(nodeinsertbefore.class);
//      sink.addTest(nodeinsertbeforedocfragment.class);
//      sink.addTest(nodeinsertbeforeinvalidnodetype.class);
      sink.addTest(nodeinsertbeforenewchilddiffdocument.class);
      sink.addTest(nodeinsertbeforenewchildexists.class);
      sink.addTest(nodeinsertbeforenodeancestor.class);
      sink.addTest(nodeinsertbeforenodename.class);
//      sink.addTest(nodeinsertbeforenomodificationallowederr.class);
//      sink.addTest(nodeinsertbeforenomodificationallowederrEE.class);
//      sink.addTest(nodeinsertbeforerefchildnonexistent.class);
//      sink.addTest(nodeinsertbeforerefchildnull.class);
      sink.addTest(nodelistindexequalzero.class);
      sink.addTest(nodelistindexgetlength.class);
      sink.addTest(nodelistindexgetlengthofemptylist.class);
      sink.addTest(nodelistindexnotzero.class);
      sink.addTest(nodelistreturnfirstitem.class);
      sink.addTest(nodelistreturnlastitem.class);
      sink.addTest(nodelisttraverselist.class);
//      sink.addTest(nodenotationnodeattributes.class);
//      sink.addTest(nodenotationnodename.class);
//      sink.addTest(nodenotationnodetype.class);
//      sink.addTest(nodenotationnodevalue.class);
      sink.addTest(nodeparentnode.class);
      sink.addTest(nodeparentnodenull.class);
      sink.addTest(nodeprocessinginstructionnodeattributes.class);
      sink.addTest(nodeprocessinginstructionnodename.class);
      sink.addTest(nodeprocessinginstructionnodetype.class);
      sink.addTest(nodeprocessinginstructionnodevalue.class);
//      sink.addTest(nodeprocessinginstructionsetnodevalue.class);
      sink.addTest(noderemovechild.class);
      sink.addTest(noderemovechildgetnodename.class);
//      sink.addTest(noderemovechildnode.class);
//      sink.addTest(noderemovechildnomodificationallowederr.class);
//      sink.addTest(noderemovechildnomodificationallowederrEE.class);
//      sink.addTest(noderemovechildoldchildnonexistent.class);
//      sink.addTest(nodereplacechild.class);
//      sink.addTest(nodereplacechildinvalidnodetype.class);
      sink.addTest(nodereplacechildnewchilddiffdocument.class);
//      sink.addTest(nodereplacechildnewchildexists.class);
      sink.addTest(nodereplacechildnodeancestor.class);
      sink.addTest(nodereplacechildnodename.class);
//      sink.addTest(nodereplacechildnomodificationallowederr.class);
//      sink.addTest(nodereplacechildnomodificationallowederrEE.class);
//      sink.addTest(nodereplacechildoldchildnonexistent.class);
//      sink.addTest(nodesetnodevaluenomodificationallowederr.class);
//      sink.addTest(nodesetnodevaluenomodificationallowederrEE.class);
      sink.addTest(nodetextnodeattribute.class);
      sink.addTest(nodetextnodename.class);
      sink.addTest(nodetextnodetype.class);
      sink.addTest(nodetextnodevalue.class);
//      sink.addTest(notationgetnotationname.class);
//      sink.addTest(notationgetpublicid.class);
//      sink.addTest(notationgetpublicidnull.class);
//      sink.addTest(notationgetsystemid.class);
//      sink.addTest(notationgetsystemidnull.class);
      sink.addTest(processinginstructiongetdata.class);
      sink.addTest(processinginstructiongettarget.class);
//      sink.addTest(processinginstructionsetdatanomodificationallowederr.class);
//      sink.addTest(processinginstructionsetdatanomodificationallowederrEE.class);
//      sink.addTest(textindexsizeerrnegativeoffset.class);
//      sink.addTest(textindexsizeerroffsetoutofbounds.class);
//      sink.addTest(textparseintolistofelements.class);
      sink.addTest(textsplittextfour.class);
//      sink.addTest(textsplittextnomodificationallowederr.class);
//      sink.addTest(textsplittextnomodificationallowederrEE.class);
      sink.addTest(textsplittextone.class);
      sink.addTest(textsplittextthree.class);
//      sink.addTest(textsplittexttwo.class);
      sink.addTest(textwithnomarkup.class);
      sink.addTest(nodevalue01.class);
//      sink.addTest(nodevalue02.class);
      sink.addTest(nodevalue03.class);
      sink.addTest(nodevalue04.class);
      sink.addTest(nodevalue05.class);
      sink.addTest(nodevalue06.class);
//      sink.addTest(nodevalue07.class);
//      sink.addTest(nodevalue08.class);
//      sink.addTest(nodevalue09.class);
      sink.addTest(hc_attrcreatedocumentfragment.class);
      sink.addTest(hc_attrcreatetextnode.class);
      sink.addTest(hc_attrcreatetextnode2.class);
      sink.addTest(hc_attreffectivevalue.class);
      sink.addTest(hc_attrname.class);
      sink.addTest(hc_attrnextsiblingnull.class);
      sink.addTest(hc_attrparentnodenull.class);
      sink.addTest(hc_attrprevioussiblingnull.class);
      sink.addTest(hc_attrspecifiedvalue.class);
      sink.addTest(hc_attrspecifiedvaluechanged.class);
      sink.addTest(hc_characterdataappenddata.class);
      sink.addTest(hc_characterdataappenddatagetdata.class);
      sink.addTest(hc_characterdatadeletedatabegining.class);
      sink.addTest(hc_characterdatadeletedataend.class);
      sink.addTest(hc_characterdatadeletedataexceedslength.class);
      sink.addTest(hc_characterdatadeletedatagetlengthanddata.class);
      sink.addTest(hc_characterdatadeletedatamiddle.class);
      sink.addTest(hc_characterdatagetdata.class);
      sink.addTest(hc_characterdatagetlength.class);
//      sink.addTest(hc_characterdataindexsizeerrdeletedatacountnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrdeletedataoffsetgreater.class);
//      sink.addTest(hc_characterdataindexsizeerrdeletedataoffsetnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrinsertdataoffsetgreater.class);
//      sink.addTest(hc_characterdataindexsizeerrinsertdataoffsetnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrreplacedatacountnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrreplacedataoffsetgreater.class);
//      sink.addTest(hc_characterdataindexsizeerrreplacedataoffsetnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrsubstringcountnegative.class);
//      sink.addTest(hc_characterdataindexsizeerrsubstringnegativeoffset.class);
//      sink.addTest(hc_characterdataindexsizeerrsubstringoffsetgreater.class);
      sink.addTest(hc_characterdatainsertdatabeginning.class);
      sink.addTest(hc_characterdatainsertdataend.class);
      sink.addTest(hc_characterdatainsertdatamiddle.class);
      sink.addTest(hc_characterdatareplacedatabegining.class);
      sink.addTest(hc_characterdatareplacedataend.class);
      sink.addTest(hc_characterdatareplacedataexceedslengthofarg.class);
      sink.addTest(hc_characterdatareplacedataexceedslengthofdata.class);
      sink.addTest(hc_characterdatareplacedatamiddle.class);
//      sink.addTest(hc_characterdatasetnodevalue.class);
//      sink.addTest(hc_characterdatasubstringexceedsvalue.class);
      sink.addTest(hc_characterdatasubstringvalue.class);
      sink.addTest(hc_commentgetcomment.class);
//      sink.addTest(hc_documentcreateattribute.class);
      sink.addTest(hc_documentcreatecomment.class);
      sink.addTest(hc_documentcreatedocumentfragment.class);
      sink.addTest(hc_documentcreateelement.class);
      sink.addTest(hc_documentcreateelementcasesensitive.class);
      sink.addTest(hc_documentcreatetextnode.class);
      sink.addTest(hc_documentgetdoctype.class);
      sink.addTest(hc_documentgetelementsbytagnamelength.class);
      sink.addTest(hc_documentgetelementsbytagnametotallength.class);
      sink.addTest(hc_documentgetelementsbytagnamevalue.class);
      sink.addTest(hc_documentgetimplementation.class);
      sink.addTest(hc_documentgetrootnode.class);
      sink.addTest(hc_documentinvalidcharacterexceptioncreateattribute.class);
      sink.addTest(hc_documentinvalidcharacterexceptioncreateattribute1.class);
      sink.addTest(hc_documentinvalidcharacterexceptioncreateelement.class);
      sink.addTest(hc_documentinvalidcharacterexceptioncreateelement1.class);
      sink.addTest(hc_domimplementationfeaturenoversion.class);
      sink.addTest(hc_domimplementationfeaturenull.class);
      sink.addTest(hc_domimplementationfeaturexml.class);
      sink.addTest(hc_elementaddnewattribute.class);
      sink.addTest(hc_elementassociatedattribute.class);
      sink.addTest(hc_elementchangeattributevalue.class);
//      sink.addTest(hc_elementcreatenewattribute.class);
      sink.addTest(hc_elementgetattributenode.class);
      sink.addTest(hc_elementgetattributenodenull.class);
//      sink.addTest(hc_elementgetelementempty.class);
      sink.addTest(hc_elementgetelementsbytagname.class);
      sink.addTest(hc_elementgetelementsbytagnameaccessnodelist.class);
      sink.addTest(hc_elementgetelementsbytagnamenomatch.class);
//      sink.addTest(hc_elementgetelementsbytagnamespecialvalue.class);
      sink.addTest(hc_elementgettagname.class);
      sink.addTest(hc_elementinuseattributeerr.class);
      sink.addTest(hc_elementinvalidcharacterexception.class);
      sink.addTest(hc_elementinvalidcharacterexception1.class);
      sink.addTest(hc_elementnormalize.class);
//      sink.addTest(hc_elementnormalize2.class);
      sink.addTest(hc_elementnotfounderr.class);
      sink.addTest(hc_elementremoveattribute.class);
      sink.addTest(hc_elementremoveattributeaftercreate.class);
      sink.addTest(hc_elementremoveattributenode.class);
//      sink.addTest(hc_elementreplaceattributewithself.class);
//      sink.addTest(hc_elementreplaceexistingattribute.class);
      sink.addTest(hc_elementreplaceexistingattributegevalue.class);
//      sink.addTest(hc_elementretrieveallattributes.class);
      sink.addTest(hc_elementretrieveattrvalue.class);
      sink.addTest(hc_elementretrievetagname.class);
      sink.addTest(hc_elementsetattributenodenull.class);
      sink.addTest(hc_elementwrongdocumenterr.class);
//      sink.addTest(hc_entitiesremovenameditem1.class);
//      sink.addTest(hc_entitiessetnameditem1.class);
//      sink.addTest(hc_namednodemapchildnoderange.class);
      sink.addTest(hc_namednodemapgetnameditem.class);
      sink.addTest(hc_namednodemapinuseattributeerr.class);
      sink.addTest(hc_namednodemapnotfounderr.class);
//      sink.addTest(hc_namednodemapnumberofnodes.class);
      sink.addTest(hc_namednodemapremovenameditem.class);
      sink.addTest(hc_namednodemapreturnattrnode.class);
//      sink.addTest(hc_namednodemapreturnfirstitem.class);
//      sink.addTest(hc_namednodemapreturnlastitem.class);
      sink.addTest(hc_namednodemapreturnnull.class);
      sink.addTest(hc_namednodemapsetnameditem.class);
      sink.addTest(hc_namednodemapsetnameditemreturnvalue.class);
//      sink.addTest(hc_namednodemapsetnameditemthatexists.class);
      sink.addTest(hc_namednodemapsetnameditemwithnewvalue.class);
      sink.addTest(hc_namednodemapwrongdocumenterr.class);
      sink.addTest(hc_nodeappendchild.class);
//      sink.addTest(hc_nodeappendchildchildexists.class);
//      sink.addTest(hc_nodeappendchilddocfragment.class);
      sink.addTest(hc_nodeappendchildgetnodename.class);
//      sink.addTest(hc_nodeappendchildinvalidnodetype.class);
      sink.addTest(hc_nodeappendchildnewchilddiffdocument.class);
      sink.addTest(hc_nodeappendchildnodeancestor.class);
      sink.addTest(hc_nodeattributenodeattribute.class);
      sink.addTest(hc_nodeattributenodename.class);
      sink.addTest(hc_nodeattributenodetype.class);
      sink.addTest(hc_nodeattributenodevalue.class);
      sink.addTest(hc_nodechildnodes.class);
//      sink.addTest(hc_nodechildnodesappendchild.class);
      sink.addTest(hc_nodechildnodesempty.class);
//      sink.addTest(hc_nodecloneattributescopied.class);
//      sink.addTest(hc_nodeclonefalsenocopytext.class);
//      sink.addTest(hc_nodeclonegetparentnull.class);
//      sink.addTest(hc_nodeclonenodefalse.class);
//      sink.addTest(hc_nodeclonenodetrue.class);
//      sink.addTest(hc_nodeclonetruecopytext.class);
      sink.addTest(hc_nodecommentnodeattributes.class);
      sink.addTest(hc_nodecommentnodename.class);
      sink.addTest(hc_nodecommentnodetype.class);
      sink.addTest(hc_nodecommentnodevalue.class);
      sink.addTest(hc_nodedocumentfragmentnodename.class);
      sink.addTest(hc_nodedocumentfragmentnodetype.class);
      sink.addTest(hc_nodedocumentfragmentnodevalue.class);
      sink.addTest(hc_nodedocumentnodeattribute.class);
      sink.addTest(hc_nodedocumentnodename.class);
      sink.addTest(hc_nodedocumentnodetype.class);
      sink.addTest(hc_nodedocumentnodevalue.class);
//      sink.addTest(hc_nodeelementnodeattributes.class);
      sink.addTest(hc_nodeelementnodename.class);
      sink.addTest(hc_nodeelementnodetype.class);
      sink.addTest(hc_nodeelementnodevalue.class);
      sink.addTest(hc_nodegetfirstchild.class);
      sink.addTest(hc_nodegetfirstchildnull.class);
      sink.addTest(hc_nodegetlastchild.class);
      sink.addTest(hc_nodegetlastchildnull.class);
      sink.addTest(hc_nodegetnextsibling.class);
      sink.addTest(hc_nodegetnextsiblingnull.class);
      sink.addTest(hc_nodegetownerdocument.class);
      sink.addTest(hc_nodegetownerdocumentnull.class);
      sink.addTest(hc_nodegetprevioussibling.class);
      sink.addTest(hc_nodegetprevioussiblingnull.class);
      sink.addTest(hc_nodehaschildnodes.class);
      sink.addTest(hc_nodehaschildnodesfalse.class);
//      sink.addTest(hc_nodeinsertbefore.class);
//      sink.addTest(hc_nodeinsertbeforedocfragment.class);
//      sink.addTest(hc_nodeinsertbeforeinvalidnodetype.class);
      sink.addTest(hc_nodeinsertbeforenewchilddiffdocument.class);
//      sink.addTest(hc_nodeinsertbeforenewchildexists.class);
      sink.addTest(hc_nodeinsertbeforenodeancestor.class);
      sink.addTest(hc_nodeinsertbeforenodename.class);
//      sink.addTest(hc_nodeinsertbeforerefchildnonexistent.class);
//      sink.addTest(hc_nodeinsertbeforerefchildnull.class);
      sink.addTest(hc_nodelistindexequalzero.class);
      sink.addTest(hc_nodelistindexgetlength.class);
      sink.addTest(hc_nodelistindexgetlengthofemptylist.class);
      sink.addTest(hc_nodelistindexnotzero.class);
      sink.addTest(hc_nodelistreturnfirstitem.class);
      sink.addTest(hc_nodelistreturnlastitem.class);
      sink.addTest(hc_nodelisttraverselist.class);
      sink.addTest(hc_nodeparentnode.class);
      sink.addTest(hc_nodeparentnodenull.class);
      sink.addTest(hc_noderemovechild.class);
      sink.addTest(hc_noderemovechildgetnodename.class);
//      sink.addTest(hc_noderemovechildnode.class);
//      sink.addTest(hc_noderemovechildoldchildnonexistent.class);
//      sink.addTest(hc_nodereplacechild.class);
//      sink.addTest(hc_nodereplacechildinvalidnodetype.class);
      sink.addTest(hc_nodereplacechildnewchilddiffdocument.class);
//      sink.addTest(hc_nodereplacechildnewchildexists.class);
      sink.addTest(hc_nodereplacechildnodeancestor.class);
      sink.addTest(hc_nodereplacechildnodename.class);
//      sink.addTest(hc_nodereplacechildoldchildnonexistent.class);
      sink.addTest(hc_nodetextnodeattribute.class);
      sink.addTest(hc_nodetextnodename.class);
      sink.addTest(hc_nodetextnodetype.class);
      sink.addTest(hc_nodetextnodevalue.class);
      sink.addTest(hc_nodevalue01.class);
//      sink.addTest(hc_nodevalue02.class);
      sink.addTest(hc_nodevalue03.class);
      sink.addTest(hc_nodevalue04.class);
      sink.addTest(hc_nodevalue05.class);
      sink.addTest(hc_nodevalue06.class);
//      sink.addTest(hc_nodevalue07.class);
//      sink.addTest(hc_nodevalue08.class);
//      sink.addTest(hc_notationsremovenameditem1.class);
//      sink.addTest(hc_notationssetnameditem1.class);
//      sink.addTest(hc_textindexsizeerrnegativeoffset.class);
//      sink.addTest(hc_textindexsizeerroffsetoutofbounds.class);
//      sink.addTest(hc_textparseintolistofelements.class);
      sink.addTest(hc_textsplittextfour.class);
      sink.addTest(hc_textsplittextone.class);
      sink.addTest(hc_textsplittextthree.class);
//      sink.addTest(hc_textsplittexttwo.class);
      sink.addTest(hc_textwithnomarkup.class);
//      sink.addTest(hc_attrappendchild1.class);
      sink.addTest(hc_attrappendchild2.class);
//      sink.addTest(hc_attrappendchild3.class);
      sink.addTest(hc_attrappendchild4.class);
//      sink.addTest(hc_attrappendchild5.class);
//      sink.addTest(hc_attrappendchild6.class);
//      sink.addTest(hc_attrchildnodes1.class);
//      sink.addTest(hc_attrchildnodes2.class);
//      sink.addTest(hc_attrclonenode1.class);
//      sink.addTest(hc_attrfirstchild.class);
//      sink.addTest(hc_attrgetvalue1.class);
//      sink.addTest(hc_attrgetvalue2.class);
//      sink.addTest(hc_attrhaschildnodes.class);
//      sink.addTest(hc_attrinsertbefore1.class);
//      sink.addTest(hc_attrinsertbefore2.class);
//      sink.addTest(hc_attrinsertbefore3.class);
//      sink.addTest(hc_attrinsertbefore4.class);
      sink.addTest(hc_attrinsertbefore5.class);
//      sink.addTest(hc_attrinsertbefore6.class);
      sink.addTest(hc_attrinsertbefore7.class);
//      sink.addTest(hc_attrlastchild.class);
//      sink.addTest(hc_attrnormalize.class);
//      sink.addTest(hc_attrremovechild1.class);
//      sink.addTest(hc_attrremovechild2.class);
//      sink.addTest(hc_attrreplacechild1.class);
//      sink.addTest(hc_attrreplacechild2.class);
//      sink.addTest(hc_attrsetvalue1.class);
//      sink.addTest(hc_attrsetvalue2.class);
//      sink.addTest(attrremovechild1.class);
//      sink.addTest(attrreplacechild1.class);

   }
   /**
    *  Gets URI that identifies the test suite
    *  @return uri identifier of test suite
    */
   public String getTargetURI() {
      return "http://www.w3.org/2001/DOM-Test-Suite/level1/core/alltests";
   }

   /**
    * Runs individual test
    * @param args command line arguments
    */
   public static void main(String[] args) {
        DOMTestCase.doMain(alltests.class, args);
   }

}
