
/*
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 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.level2.core;
package dom.detailed.w3c;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.w3c.domts.level2.core.*;


/**
*  Test suite
*  @author W3C DOM Test Working Group
**/
@RunWith(Suite.class)
@Suite.SuiteClasses({
    // attrgetownerelement01.class,
    attrgetownerelement02.class,
    attrgetownerelement03.class,
    // attrgetownerelement04.class,
    attrgetownerelement05.class,
    documentcreateattributeNS01.class,
    documentcreateattributeNS02.class,
    documentcreateattributeNS03.class,
    documentcreateattributeNS04.class,
    documentcreateattributeNS05.class,
    documentcreateattributeNS06.class,
    documentcreateattributeNS07.class,
    documentcreateelementNS01.class,
    documentcreateelementNS02.class,
    documentcreateelementNS05.class,
    documentcreateelementNS06.class,
    domimplementationcreatedocument03.class,
    domimplementationcreatedocument04.class,
    domimplementationcreatedocument05.class,
    domimplementationcreatedocument07.class,
    domimplementationcreatedocumenttype02.class,
    domimplementationcreatedocumenttype04.class,
    domimplementationhasfeature01.class,
    domimplementationhasfeature02.class,
    //    documentgetelementbyid01.class,
    documentgetelementsbytagnameNS01.class,
    documentgetelementsbytagnameNS02.class,
    documentgetelementsbytagnameNS03.class,
    documentgetelementsbytagnameNS04.class,
    documentgetelementsbytagnameNS05.class,
    documentimportnode01.class,
    //    documentimportnode02.class,
    documentimportnode03.class,
    //   documentimportnode04.class,
    documentimportnode05.class,
    documentimportnode06.class,
    // documentimportnode07.class,
    documentimportnode08.class,
    documentimportnode09.class,
    //   documentimportnode10.class,
    documentimportnode11.class,
    documentimportnode12.class,
    documentimportnode13.class,
    documentimportnode14.class,
    documentimportnode15.class,
    documentimportnode17.class,
    documentimportnode18.class,
    //   documentimportnode19.class,
    //  documentimportnode20.class,
    //  documentimportnode21.class,
    // documentimportnode22.class,
    //    documenttypeinternalSubset01.class,
    //   documenttypepublicid01.class,
    //   documenttypesystemid01.class,
    elementgetattributens02.class,
    elementgetattributenodens01.class,
    elementgetattributenodens02.class,
    elementgetattributenodens03.class,
    elementgetelementsbytagnamens02.class,
    elementgetelementsbytagnamens04.class,
    elementgetelementsbytagnamens05.class,
    elementhasattribute01.class,
    elementhasattribute02.class,
    elementhasattribute03.class,
    elementhasattribute04.class,
    elementhasattributens01.class,
    elementhasattributens02.class,
    elementhasattributens03.class,
    elementremoveattributens01.class,
    elementsetattributens01.class,
    elementsetattributens02.class,
    elementsetattributens03.class,
    elementsetattributens04.class,
    elementsetattributens05.class,
    elementsetattributens08.class,
    elementsetattributenodens01.class,
    elementsetattributenodens02.class,
    elementsetattributenodens03.class,
    elementsetattributenodens04.class,
    elementsetattributenodens05.class,
    elementsetattributenodens06.class,
    namednodemapgetnameditemns01.class,
    namednodemapgetnameditemns02.class,
    namednodemapgetnameditemns03.class,
    namednodemapgetnameditemns04.class,
    namednodemapgetnameditemns05.class,
    namednodemapgetnameditemns06.class,
    namednodemapsetnameditemns01.class,
    namednodemapsetnameditemns02.class,
    namednodemapsetnameditemns03.class,
    namednodemapsetnameditemns04.class,
    namednodemapsetnameditemns05.class,
    namednodemapsetnameditemns06.class,
    namednodemapsetnameditemns07.class,
    namednodemapsetnameditemns08.class,
    namednodemapsetnameditemns09.class,
    namednodemapsetnameditemns10.class,
    namednodemapremovenameditemns01.class,
    namednodemapremovenameditemns02.class,
    namednodemapremovenameditemns03.class,
    namednodemapremovenameditemns04.class,
    namednodemapremovenameditemns05.class,
    namednodemapremovenameditemns06.class,
    namednodemapremovenameditemns07.class,
    namednodemapremovenameditemns08.class,
    namednodemapremovenameditemns09.class,
    nodegetlocalname03.class,
    nodegetnamespaceuri03.class,
    nodegetownerdocument01.class,
    nodegetownerdocument02.class,
    nodegetprefix03.class,
    nodesetprefix01.class,
    nodesetprefix02.class,
    nodesetprefix03.class,
    nodesetprefix04.class,
    nodesetprefix05.class,
    nodesetprefix06.class,
    nodesetprefix07.class,
    nodesetprefix08.class,
    nodesetprefix09.class,
    nodehasattributes01.class,
    nodehasattributes02.class,
    nodehasattributes03.class,
    nodehasattributes04.class,
    nodeissupported01.class,
    nodeissupported02.class,
    nodeissupported03.class,
    nodeissupported04.class,
    nodeissupported05.class
})
public class ibmtests {
}
