You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by sl...@apache.org on 2019/03/15 16:20:31 UTC

[incubator-daffodil] branch master updated: Changes to support building in IntelliJ

This is an automated email from the ASF dual-hosted git repository.

slawrence pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-daffodil.git


The following commit(s) were added to refs/heads/master by this push:
     new 9db5146  Changes to support building in IntelliJ
9db5146 is described below

commit 9db5146504d8195f7503cf4fca066b9a7083d6d1
Author: Steve Lawrence <sl...@apache.org>
AuthorDate: Tue Mar 12 17:34:02 2019 -0400

    Changes to support building in IntelliJ
    
    - IntelliJ gets confused by our custom scala-debug configuration. Since
      scala-debug isn't all that useful and causes confusions, just remove
      it altogether and move all scala-debug tests to the scala tests
      directory but commented out.
    - Fix bug where trying to get the classpath. This doesn't work on
      IntelliJ, so just return an empy classpath.
    - Rename dpaext1.tdml since the name was the same as in another jar,
      which cause IntelliJ to pick up the wrong tdml file.
    
    DAFFODIL-2093
---
 .travis.yml                                        |    2 +-
 build.sbt                                          |   51 +-
 daffodil-core/src/test/scala-debug/.keep           |    0
 .../src/test/scala-debug/org/apache/daffodil/.keep |    0
 .../org/apache/daffodil/api/TestForMemLeak.scala   |   51 -
 .../apache/daffodil/dsom/TestDsomCompiler2.scala   |  396 ----
 .../apache/daffodil/dsom/TestDsomCompilerNew.scala | 1686 ----------------
 .../infoset/TestInfosetDefaultingInUnparser.scala  |   97 -
 .../apache/daffodil/dsom/TestDsomCompiler.scala    | 2010 ++++++++++++++++++++
 .../main/scala/org/apache/daffodil/util/Misc.scala |    9 +-
 daffodil-lib/src/test/scala-debug/.keep            |    0
 .../org/apache/daffodil/api/TestForMemLeak.scala   |   60 -
 .../src/test/scala-debug/.keep                     |    0
 daffodil-runtime1/src/test/scala-debug/.keep       |    0
 .../{dpaext1.tdml => dpaext1-2.tdml}               |    0
 daffodil-tdml-lib/src/test/scala-debug/.keep       |    0
 .../org/apache/daffodil/tdml/TestTDMLRunner3.scala |   59 -
 .../apache/daffodil/tdml/UnitTestTDMLRunner.scala  |    2 +-
 .../org/apache/daffodil/tdml/TestTDMLRunner4.scala |   38 -
 .../org/apache/daffodil/tdml/TestTDMLRunner.scala  |   25 +
 .../src/main/scala-debug/org/apache/daffodil/.keep |    0
 .../src/test/scala-debug/org/apache/daffodil/.keep |    0
 .../org/apache/daffodil/IBMTests2.scala            |   44 -
 .../org/apache/daffodil/TresysTests.scala          |   40 -
 .../org/apache/daffodil/TresysTests2.scala         |   81 -
 .../test/scala/org/apache/daffodil/IBMTests.scala  |   12 +
 .../scala/org/apache/daffodil/TresysTests.scala    |   63 +-
 .../general/TestUnparserGeneralDebug.scala         |   43 -
 .../processing_errors/TestProcessingErrors.scala   |   48 -
 .../validation_errors/TestValidationErrDebug.scala |   32 -
 .../simple_types/TestSimpleTypesDebug.scala        |  105 -
 .../simple_types/TestSimpleTypesUnparseDebug.scala |   40 -
 .../section06/entities/TestEntitiesDebug.scala     |   57 -
 .../section06/namespaces/TestNamespacesDebug.scala |   55 -
 .../section07/assertions/TestAssertionsDebug.scala |   51 -
 .../defineFormat/defineFormatTestsDebug.scala      |   44 -
 .../discriminators/TestDiscriminators3.scala       |   40 -
 .../escapeScheme/TestEscapeSchemeDebug.scala       |   53 -
 .../section07/variables/TestVariablesDebug.scala   |   46 -
 .../TestPropertyScopingDebug.scala                 |   52 -
 .../TestContentFramingPropertiesDebug.scala        |   53 -
 .../aligned_data/TestAlignedDataDebug.scala        |   41 -
 .../TestDelimiterPropertiesUnparseDebug.scala      |   50 -
 .../lengthKind/TestLengthKindDelimitedDebug.scala  |   48 -
 .../lengthKind/TestLengthKindExplicitDebug.scala   |   39 -
 .../lengthKind/TestLengthKindPatternDebug.scala    |   39 -
 .../TestLengthPropertiesDebug.scala                |   51 -
 .../TestTextNumberPropsDebug.scala                 |   52 -
 .../occursCountKind/TestOCKImplicitDebug.scala     |   37 -
 .../sequence_groups/TestSequenceGroupsDebug.scala  |   47 -
 .../TestUnorderedSequences.scala                   |   57 -
 .../section15/choice_groups/TestChoiceDebug.scala  |   41 -
 .../TestArrayOptionalElemDebug.scala               |   46 -
 .../TestUnparseArrayOptionalElemDebug.scala        |   45 -
 .../TestInputValueCalcDebug.scala                  |   56 -
 .../TestOutputValueCalcDebug.scala                 |   37 -
 .../TestDFDLExpressionsDebug.scala                 |  155 --
 .../TestRegularExpressionsDebug.scala              |   44 -
 .../org/apache/daffodil/usertests/TestLeaks.scala  |   54 -
 .../usertests/TestUserSubmittedTestsDebug.scala    |   68 -
 .../section05/simple_types/TestSimpleTypes.scala   |    8 +
 .../section05/simple_types/TestSimpleTypes2.scala  |    7 +
 .../section06/namespaces/TestNamespaces.scala      |    1 +
 .../section07/assertions/TestAssertions.scala      |    3 +
 .../section07/escapeScheme/TestEscapeScheme.scala  |    4 +
 .../TestDelimiterPropertiesUnparse.scala           |    2 +-
 .../lengthKind/TestLengthKindPattern.scala         |    2 +
 .../TestUnorderedSequencesNew.scala                |   20 +
 .../section15/choice_groups/TestChoice.scala       |    2 +
 .../calc_value_properties/TestInputValueCalc.scala |   10 +
 .../dfdl_expressions/TestDFDLExpressions.scala     |   14 +-
 .../TestRegularExpressions.scala                   |    1 +
 .../usertests/TestUserSubmittedTestsNew.scala      |   28 -
 73 files changed, 2195 insertions(+), 4359 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 4a0a01e..9b4abc3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,7 +30,7 @@ dist: trusty
 before_script:
   - unset _JAVA_OPTIONS
 script:
-  - sbt -J-Xms1g -J-Xmx5g ++$TRAVIS_SCALA_VERSION compile test:compile it:compile debug:compile || travis_terminate 1
+  - sbt -J-Xms1g -J-Xmx5g ++$TRAVIS_SCALA_VERSION compile test:compile it:compile || travis_terminate 1
   - sbt -J-Xms1g -J-Xmx5g ++$TRAVIS_SCALA_VERSION coverage test
   - sbt -J-Xms1g -J-Xmx5g ++$TRAVIS_SCALA_VERSION coverage it:test
   - sbt -J-Xms1g -J-Xmx5g ++$TRAVIS_SCALA_VERSION daffodil-cli/universal:packageBin
diff --git a/build.sbt b/build.sbt
index aa58dc2..fabe48f 100644
--- a/build.sbt
+++ b/build.sbt
@@ -19,63 +19,60 @@ lazy val genManaged = taskKey[Unit]("Generate managed sources and resources")
 lazy val genProps = taskKey[Seq[File]]("Generate properties scala source")
 lazy val genSchemas = taskKey[Seq[File]]("Generated DFDL schemas")
 
-lazy val TestDebug = config("debug") extend(Test)
-lazy val IntegrationTestDebug = config("debugIt") extend(Test)
 
-
-lazy val daffodil         = Project("daffodil", file(".")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val daffodil         = Project("daffodil", file(".")).configs(IntegrationTest)
                               .aggregate(macroLib, propgen, lib, io, runtime1, runtime1Unparser, core, japi, sapi, tdmlLib, tdmlProc, cli, test, testIBM1, tutorials, testStdLayout)
                               .settings(commonSettings, nopublish, ratSettings)
 
-lazy val macroLib         = Project("daffodil-macro-lib", file("daffodil-macro-lib")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val macroLib         = Project("daffodil-macro-lib", file("daffodil-macro-lib")).configs(IntegrationTest)
                               .settings(commonSettings, nopublish)
                               .settings(libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value)
 
-lazy val propgen          = Project("daffodil-propgen", file("daffodil-propgen")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val propgen          = Project("daffodil-propgen", file("daffodil-propgen")).configs(IntegrationTest)
                               .settings(commonSettings, nopublish)
 
-lazy val lib              = Project("daffodil-lib", file("daffodil-lib")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val lib              = Project("daffodil-lib", file("daffodil-lib")).configs(IntegrationTest)
                               .dependsOn(macroLib % "compile-internal, test-internal")
                               .settings(commonSettings, libManagedSettings, usesMacros)
 
-lazy val io               = Project("daffodil-io", file("daffodil-io")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val io               = Project("daffodil-io", file("daffodil-io")).configs(IntegrationTest)
                               .dependsOn(lib, macroLib % "compile-internal, test-internal")
                               .settings(commonSettings, usesMacros)
 
-lazy val runtime1         = Project("daffodil-runtime1", file("daffodil-runtime1")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val runtime1         = Project("daffodil-runtime1", file("daffodil-runtime1")).configs(IntegrationTest)
                               .dependsOn(io, lib % "test->test")
                               .settings(commonSettings)
 
-lazy val runtime1Unparser = Project("daffodil-runtime1-unparser", file("daffodil-runtime1-unparser")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val runtime1Unparser = Project("daffodil-runtime1-unparser", file("daffodil-runtime1-unparser")).configs(IntegrationTest)
                               .dependsOn(runtime1, lib % "test->test", runtime1 % "test->test")
                               .settings(commonSettings)
 
-lazy val core             = Project("daffodil-core", file("daffodil-core")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val core             = Project("daffodil-core", file("daffodil-core")).configs(IntegrationTest)
                               .dependsOn(runtime1Unparser, lib % "test->test", runtime1 % "test->test")
                               .settings(commonSettings)
 
-lazy val japi             = Project("daffodil-japi", file("daffodil-japi")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val japi             = Project("daffodil-japi", file("daffodil-japi")).configs(IntegrationTest)
                               .dependsOn(core)
                               .settings(commonSettings)
 
-lazy val sapi             = Project("daffodil-sapi", file("daffodil-sapi")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val sapi             = Project("daffodil-sapi", file("daffodil-sapi")).configs(IntegrationTest)
                               .dependsOn(core)
                               .settings(commonSettings)
 
-lazy val tdmlLib             = Project("daffodil-tdml-lib", file("daffodil-tdml-lib")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val tdmlLib             = Project("daffodil-tdml-lib", file("daffodil-tdml-lib")).configs(IntegrationTest)
                               .dependsOn(macroLib % "compile-internal", lib, io, io % "test->test")
                               .settings(commonSettings)
 
-lazy val tdmlProc         = Project("daffodil-tdml-processor", file("daffodil-tdml-processor")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val tdmlProc         = Project("daffodil-tdml-processor", file("daffodil-tdml-processor")).configs(IntegrationTest)
                               .dependsOn(tdmlLib, core)
                               .settings(commonSettings)
 
-lazy val cli              = Project("daffodil-cli", file("daffodil-cli")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val cli              = Project("daffodil-cli", file("daffodil-cli")).configs(IntegrationTest)
                               .dependsOn(tdmlProc, sapi, japi) // causes sapi/japi to be pulled in to the helper zip/tar
                               .settings(commonSettings, nopublish)
                               .settings(libraryDependencies ++= Dependencies.cli) 
 
-lazy val test             = Project("daffodil-test", file("daffodil-test")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val test             = Project("daffodil-test", file("daffodil-test")).configs(IntegrationTest)
                               .dependsOn(tdmlProc)
                               .settings(commonSettings, nopublish)
                               //
@@ -85,7 +82,7 @@ lazy val test             = Project("daffodil-test", file("daffodil-test")).conf
                               //.settings(IBMDFDLCrossTesterPlugin.settings)
 
 
-lazy val testIBM1         = Project("daffodil-test-ibm1", file("daffodil-test-ibm1")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val testIBM1         = Project("daffodil-test-ibm1", file("daffodil-test-ibm1")).configs(IntegrationTest)
                               .dependsOn(tdmlProc)
                               .settings(commonSettings, nopublish)
                               //
@@ -94,11 +91,11 @@ lazy val testIBM1         = Project("daffodil-test-ibm1", file("daffodil-test-ib
                               //
                               //.settings(IBMDFDLCrossTesterPlugin.settings)
 
-lazy val tutorials        = Project("daffodil-tutorials", file("tutorials")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val tutorials        = Project("daffodil-tutorials", file("tutorials")).configs(IntegrationTest)
                               .dependsOn(tdmlProc)
                               .settings(commonSettings, nopublish)
 
-lazy val testStdLayout    = Project("daffodil-test-stdLayout", file("test-stdLayout")).configs(IntegrationTest, TestDebug, IntegrationTestDebug)
+lazy val testStdLayout    = Project("daffodil-test-stdLayout", file("test-stdLayout")).configs(IntegrationTest)
                               .dependsOn(tdmlProc)
                               .settings(commonSettings, nopublish)
 
@@ -139,19 +136,7 @@ lazy val commonSettings = Seq(
   resourceManaged := baseDirectory.value / "resource_managed",
   libraryDependencies ++= Dependencies.common,
   parallelExecution in IntegrationTest := false
-) ++ Defaults.itSettings ++ debugTestSettings ++ debugIntegrationTestSettings
-
-lazy val debugTestSettings = inConfig(TestDebug)(Defaults.testSettings ++ Seq(
-  sourceDirectory := baseDirectory.value / "src" / "test",
-  scalaSource := sourceDirectory.value / "scala-debug",
-  exportJars := false,
-))
-
-lazy val debugIntegrationTestSettings = inConfig(IntegrationTestDebug)(Defaults.itSettings ++ Seq(
-  sourceDirectory := baseDirectory.value / "src" / "it",
-  scalaSource := sourceDirectory.value / "scala-debug",
-  exportJars := false,
-))
+) ++ Defaults.itSettings
 
 lazy val nopublish = Seq(
   publish := {},
diff --git a/daffodil-core/src/test/scala-debug/.keep b/daffodil-core/src/test/scala-debug/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-core/src/test/scala-debug/org/apache/daffodil/.keep b/daffodil-core/src/test/scala-debug/org/apache/daffodil/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-core/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala b/daffodil-core/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala
deleted file mode 100644
index 747d7d8..0000000
--- a/daffodil-core/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.api
-import scala.xml._
-import org.junit.Test
-import org.apache.daffodil.Implicits._; object INoWarnAPI1 { ImplicitsSuppressUnusedImportWarning() }
-import org.apache.daffodil.util.SchemaUtils
-import org.apache.daffodil.util.TestUtils
-
-class TestForMemLeak {
-
-  @Test def testParseSimpleLeakChecking() {
-    val sch = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="e1" type="xs:string" dfdl:lengthKind="explicit" dfdl:length="{ 4 }"/>)
-    val (_, actual) = TestUtils.testString(sch, "5678")
-    val expected: Node = <e1>5678</e1>
-    TestUtils.assertEqualsXMLElements(expected, actual)
-  }
-
-  @Test def testLeak() {
-    1 to 100 foreach { _ =>
-      // println("")
-      1 to 100 foreach { _ =>
-        // print(".")
-        1 to 100 foreach { _ =>
-          System.gc()
-          Thread.sleep(100)
-          testParseSimpleLeakChecking()
-        }
-      }
-    }
-  }
-
-}
diff --git a/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompiler2.scala b/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompiler2.scala
deleted file mode 100644
index 8aa8b0d..0000000
--- a/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompiler2.scala
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.dsom
-
-import org.apache.daffodil.xml.XMLUtils
-import org.apache.daffodil.util._
-import org.apache.daffodil.Implicits._
-import org.junit.Test
-
-class TestDsomCompiler2 extends Logging {
-
-  val xsd = XMLUtils.XSD_NAMESPACE
-  val dfdl = XMLUtils.dfdlAppinfoSource
-  val xsi = XMLUtils.XSI_NAMESPACE
-  val example = XMLUtils.EXAMPLE_NAMESPACE
-
-  val dummyGroupRef = null // just because otherwise we have to construct too many things.
-
-  def FindValue(collection: Map[String, String], key: String, value: String): Boolean = {
-    val found: Boolean = Option(collection.find(x => x._1 == key && x._2 == value)) match {
-      case Some(_) => true
-      case None => false
-    }
-    found
-  }
-
-  @Test def testInitiator() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="data" type="xs:string" dfdl:initiator="*" dfdl:lengthKind="explicit" dfdl:length="{ 4 }"/>)
-    //    val actual = TestUtils.testString(testSchema, "*word")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<data"))
-    //    assertTrue(actualString.endsWith(">word</data>"))
-
-    val infoset = <data xmlns={ example }>word</data>
-    TestUtils.testUnparsing(testSchema, infoset, "*word")
-  }
-
-  @Test def testTerminator() = {
-    // LoggingDefaults.setLoggingLevel(LogLevel.Debug)
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="data" type="xs:string" dfdl:terminator="!" dfdl:lengthKind="explicit" dfdl:length="{ 2 }"/>)
-    //    val actual = TestUtils.testString(testSchema, "37!")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<data"))
-    //    assertTrue(actualString.endsWith(">37</data>"))
-
-    val infoset = <data xmlns={ example }>37</data>
-    TestUtils.testUnparsing(testSchema, infoset, "37!")
-  }
-
-  @Test def testDelims() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="data" type="xs:string" dfdl:initiator="*" dfdl:terminator="! $" dfdl:lengthKind="explicit" dfdl:length="{ 2 }"/>)
-    //    val actual = TestUtils.testString(testSchema, "*37$")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<data"))
-    //    assertTrue(actualString.endsWith(">37</data>"))
-
-    val infoset = <data xmlns={ example }>37</data>
-    TestUtils.testUnparsing(testSchema, infoset, "*37!")
-  }
-
-  @Test def testUnparseMultiElem1() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence>
-          <xs:element name="somedata" type="xs:float" dfdl:length="6" dfdl:lengthKind="explicit"/>
-          <xs:element name="moredata" type="xs:int" dfdl:length="2" dfdl:lengthKind="explicit"/>
-        </xs:sequence>
-      </xs:complexType>)
-    //    val actual = TestUtils.testString(testSchema, "943.2801")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<list"))
-    //    assertTrue(actualString.endsWith("><somedata>943.28</somedata><moredata>1</moredata></list>"))
-
-    val infoset = <list xmlns={ example }><somedata>943.28</somedata><moredata>1</moredata></list>
-    // TODO: unparse needs to restore leading zeros removed in parse?
-    //testUnparsing(testSchema, infoset, "943.2801")
-    TestUtils.testUnparsing(testSchema, infoset, "943.281")
-  }
-
-  @Test def testUnparseMultiElem2() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator="^">
-          <xs:element name="somedata" type="xs:double" dfdl:length="5" dfdl:lengthKind="explicit"/>
-          <xs:element name="moredata" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit" dfdl:initiator="%"/>
-          <xs:element name="anddata" type="xs:int" dfdl:length="2" dfdl:lengthKind="explicit"/>
-        </xs:sequence>
-      </xs:complexType>)
-    //    val actual = TestUtils.testString(testSchema, "50.93^%XYZ^42")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<list"))
-    //    assertTrue(actualString.endsWith("><somedata>50.93</somedata><moredata>XYZ</moredata><anddata>42</anddata></list>"))
-
-    val infoset = <list xmlns={ example }><somedata>50.93</somedata><moredata>XYZ</moredata><anddata>42</anddata></list>
-    TestUtils.testUnparsing(testSchema, infoset, "50.93^%XYZ^42")
-  }
-
-  @Test def testUnparseNested() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence>
-          <xs:element name="somedata" type="tns:example2">
-            <xs:annotation>
-              <xs:appinfo source={ dfdl }>
-                <dfdl:element alignmentUnits="bytes"/>
-              </xs:appinfo>
-            </xs:annotation>
-          </xs:element>
-        </xs:sequence>
-      </xs:complexType>
-      <xs:complexType name="example2">
-        <xs:sequence>
-          <xs:element name="moredata" type="xs:double" dfdl:length="7" dfdl:lengthKind="explicit"/>
-          <xs:element name="anddata" type="xs:string" dfdl:length="6" dfdl:lengthKind="explicit"/>
-        </xs:sequence>
-      </xs:complexType>)
-    //    val actual = TestUtils.testString(testSchema, "11235.8qwerty")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<list"))
-    //    assertTrue(actualString.endsWith("><somedata><moredata>11235.8</moredata><anddata>qwerty</anddata></somedata></list>"))
-
-    val infoset = <list xmlns={ example }><somedata><moredata>11235.8</moredata><anddata>qwerty</anddata></somedata></list>
-    TestUtils.testUnparsing(testSchema, infoset, "11235.8qwerty")
-  }
-
-  @Test def testUnparseNestedChildren() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence>
-          <xs:element name="data" type="tns:example2">
-            <xs:annotation>
-              <xs:appinfo source={ dfdl }>
-                <dfdl:element alignmentUnits="bytes"/>
-              </xs:appinfo>
-            </xs:annotation>
-          </xs:element>
-        </xs:sequence>
-      </xs:complexType>
-      <xs:complexType name="example2">
-        <xs:sequence>
-          <xs:element name="somedata" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit"/>
-          <xs:element name="moredata" type="xs:int" dfdl:length="8" dfdl:lengthKind="explicit"/>
-        </xs:sequence>
-      </xs:complexType>)
-    //    val actual = TestUtils.testString(testSchema, "abc87654321")
-    //    val actualString = actual.result.toString
-    //    assertTrue(actualString.startsWith("<list"))
-    //    assertTrue(actualString.endsWith("><data><somedata>abc</somedata><moredata>87654321</moredata></data></list>"))
-
-    val infoset = <list xmlns={ example }><data><somedata>abc</somedata><moredata>87654321</moredata></data></list>
-    TestUtils.testUnparsing(testSchema, infoset, "abc87654321")
-  }
-
-  @Test def testUnparseDelimited() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator=",">
-          <xs:element name="a" type="xs:int" dfdl:lengthKind="delimited"/>
-          <xs:element name="b" type="xs:double" dfdl:lengthKind="delimited"/>
-          <xs:element name="c" type="xs:string" dfdl:lengthKind="delimited"/>
-          <xs:element name="d" type="xs:int" dfdl:lengthKind="delimited"/>
-        </xs:sequence>
-      </xs:complexType>)
-    //        val actual = TestUtils.testString(testSchema, "246813579,90.3761,hello,100")
-    //        val actualString = actual.result.toString
-    //        assertTrue(actualString.startsWith("<list"))
-    //        assertTrue(actualString.endsWith("><a>246813579</a><b>90.3761</b><c>hello</c><d>100</d></list>"))
-
-    val infoset = <list xmlns={ example }><a>246813579</a><b>90.3761</b><c>hello</c><d>100</d></list>
-    TestUtils.testUnparsing(testSchema, infoset, "246813579,90.3761,hello,100")
-  }
-
-  @Test def testUnparseAlignmentBits() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bits"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator=",">
-          <xs:element name="a" type="xs:int" dfdl:lengthKind="delimited"/>
-          <xs:element name="b" type="xs:double" dfdl:lengthKind="delimited"/>
-          <xs:element name="c" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit"/>
-          <xs:element name="d" type="xs:int" dfdl:length="8" dfdl:lengthKind="explicit"/>
-        </xs:sequence>
-      </xs:complexType>)
-
-    val infoset = <list xmlns={ example }><a>246813579</a><b>90.3761</b><c>abc</c><d>10034567</d></list>
-    TestUtils.testUnparsing(testSchema, infoset, "246813579,90.3761,abc,10034567")
-  }
-
-  @Test def testUnparseChoice1() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bits"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator=",">
-          <xs:element name="a" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="3"/>
-          <xs:element name="b" type="xs:string" dfdl:lengthKind="explicit" dfdl:length="4"/>
-          <xs:element name="choice">
-            <xs:complexType>
-              <xs:choice dfdl:choiceLengthKind="implicit">
-                <xs:element name="c" type="xs:int" dfdl:initiator="choice1:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
-                <xs:element name="d" type="xs:double" dfdl:initiator="choice2:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
-              </xs:choice>
-            </xs:complexType>
-          </xs:element>
-        </xs:sequence>
-      </xs:complexType>)
-    //        val actual = TestUtils.testString(testSchema, "567,word,choice1:203867")
-    //        val actualString = actual.result.toString
-    //        assertTrue(actualString.startsWith("<list"))
-    //        assertTrue(actualString.endsWith("><a>567</a><b>word</b><choice><c>203867</c></choice></list>"))
-
-    val infoset = <list xmlns={ example }><a>567</a><b>word</b><choice><c>203867</c></choice></list>
-    TestUtils.testUnparsing(testSchema, infoset, "567,word,choice1:203867")
-  }
-
-  @Test def testUnparseChoice2() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bits"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator=",">
-          <xs:element name="a" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="3"/>
-          <xs:element name="b" type="xs:string" dfdl:lengthKind="explicit" dfdl:length="4"/>
-          <xs:element name="choice">
-            <xs:complexType>
-              <xs:choice dfdl:choiceLengthKind="implicit">
-                <xs:element name="c" type="xs:int" dfdl:initiator="choice1:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
-                <xs:element name="d" type="xs:double" dfdl:initiator="choice2:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
-              </xs:choice>
-            </xs:complexType>
-          </xs:element>
-        </xs:sequence>
-      </xs:complexType>)
-    //        val actual = TestUtils.testString(testSchema, "567,word,choice2:2038.67")
-    //        val actualString = actual.result.toString
-    //        assertTrue(actualString.startsWith("<list"))
-    //        assertTrue(actualString.endsWith("><a>567</a><b>word</b><choice><d>2038.67</d></choice></list>"))
-
-    val infoset = <list xmlns={ example }><a>567</a><b>word</b><choice><d>2038.67</d></choice></list>
-    TestUtils.testUnparsing(testSchema, infoset, "567,word,choice2:2038.67")
-  }
-
-  @Test def testUnparseBinaryIntBE() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="data" type="xs:int" dfdl:representation="binary"/>)
-    //        val actual = TestUtils.testBinary(testSchema, "0000000F")
-    //        val actualString = actual.result.toString
-    //        assertTrue(actualString.startsWith("<data"))
-    //        assertTrue(actualString.endsWith(">15</data>"))
-
-    val infoset = <data xmlns={ example }>15</data>
-    val bytes = List[Byte](0, 0, 0, 15).toArray
-    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
-  }
-
-  @Test def testUnparseBinaryIntLE() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="data" type="xs:int" dfdl:representation="binary" dfdl:byteOrder='littleEndian'/>)
-    //        val actual = TestUtils.testBinary(testSchema, "0F000000")
-    //        val actualString = actual.result.toString
-    //        assertTrue(actualString.startsWith("<data"))
-    //        assertTrue(actualString.endsWith(">15</data>"))
-
-    val infoset = <data xmlns={ example }>15</data>
-    val bytes = List[Byte](15, 0, 0, 0).toArray
-    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
-  }
-
-  @Test def testUnparseBinary1() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-
-      <xs:element name="list" type="tns:example1">
-        <xs:annotation>
-          <xs:appinfo source={ dfdl }>
-            <dfdl:element alignmentUnits="bytes"/>
-          </xs:appinfo>
-        </xs:annotation>
-      </xs:element>
-      <xs:complexType name="example1">
-        <xs:sequence dfdl:separator="">
-          <xs:element name="byte" type="xs:byte" dfdl:length="2" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
-          <xs:element name="short" type="xs:short" dfdl:length="4" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
-          <xs:element name="long" type="xs:long" dfdl:length="4" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
-        </xs:sequence>
-      </xs:complexType>)
-
-    val infoset = <list xmlns={ example }><byte>31</byte><short>-112</short><long>1030</long></list>
-    val bytes = List[Byte](31, -1, -112, 0, 0, 0, 0, 0, 0, 4, 6).toArray
-    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
-  }
-}
diff --git a/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompilerNew.scala b/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompilerNew.scala
deleted file mode 100644
index e67b47e..0000000
--- a/daffodil-core/src/test/scala-debug/org/apache/daffodil/dsom/TestDsomCompilerNew.scala
+++ /dev/null
@@ -1,1686 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.dsom
-
-import org.apache.daffodil.xml.XMLUtils
-import org.apache.daffodil.util._
-import org.apache.daffodil.compiler._
-import junit.framework.Assert.assertEquals
-import org.junit.Test
-
-class TestDsomCompilerNew extends Logging {
-  val xsd = XMLUtils.XSD_NAMESPACE
-  val dfdl = XMLUtils.DFDL_NAMESPACE
-  val xsi = XMLUtils.XSI_NAMESPACE
-  val example = XMLUtils.EXAMPLE_NAMESPACE
-
-  val dummyGroupRef = null // just because otherwise we have to construct too many things.
-
-  def FindValue(collection: Map[String, String], key: String, value: String): Boolean = {
-    val found: Boolean = Option(collection.find(x => x._1 == key && x._2 == value)) match {
-      case Some(_) => true
-      case None => false
-    }
-    found
-  }
-
-  @Test def testHasPatternFacets() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="e1" type="tns:st1" dfdl:lengthKind="explicit" dfdl:length="1"/>
-      <xs:simpleType name="st1">
-        <xs:restriction base="xs:string">
-          <xs:pattern value="1"/>
-          <xs:pattern value="2"/>
-          <xs:pattern value="3"/>
-        </xs:restriction>
-      </xs:simpleType>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val decl = declf.forRoot()
-
-    assertEquals(1, decl.patternValues.length)
-    val (_, pattern) = decl.patternValues(0)
-    assertEquals("1|2|3", pattern.toString())
-  }
-
-  @Test def testPatternFacetsInheritance() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="e1" type="tns:st1" dfdl:lengthKind="explicit" dfdl:length="1"/>
-      <xs:simpleType name="st1">
-        <xs:restriction base="tns:st2">
-          <xs:pattern value="1"/>
-          <xs:pattern value="2"/>
-          <xs:pattern value="3"/>
-        </xs:restriction>
-      </xs:simpleType>
-      <xs:simpleType name="st2">
-        <xs:restriction base="tns:st3">
-          <xs:pattern value="4"/>
-          <xs:pattern value="5"/>
-          <xs:pattern value="6"/>
-        </xs:restriction>
-      </xs:simpleType>
-      <xs:simpleType name="st3">
-        <xs:restriction base="xs:string">
-          <xs:pattern value="7"/>
-          <xs:pattern value="8"/>
-          <xs:pattern value="9"/>
-        </xs:restriction>
-      </xs:simpleType>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val decl = declf.forRoot()
-
-    assertEquals(3, decl.patternValues.length)
-    val (_, st1) = decl.patternValues(0)
-    val (_, st2) = decl.patternValues(1)
-    val (_, st3) = decl.patternValues(2)
-
-    assertEquals("1|2|3", st1.toString())
-    assertEquals("4|5|6", st2.toString())
-    assertEquals("7|8|9", st3.toString())
-  }
-
-  /**
-   * Here we just want to test that we can detect next
-   * elements across sequences.  All elements are 'required'.
-   */
-  @Test def test_could_be_next_method_01() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(1, elemsFollowingOne.length)
-    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(1, elemsFollowingTwo.length)
-    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(1, elemsFollowingThree.length)
-    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
-
-    val Seq(four: ElementBase) = seqFollowingThree.allSelfContainedTermsTerminatedByRequiredElement
-    assertEquals("four", four.name)
-
-  }
-
-  /**
-   * Here we want to detect that element 'three' is optional.
-   * As such, the list of possible elements after 'two' should
-   * contain 'three' and 'four'.
-   */
-  @Test def test_could_be_next_method_02() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(1, elemsFollowingOne.length)
-    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-    val seqFollowingThree = elemsFollowingTwo(1).asInstanceOf[Sequence]
-    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
-    assertEquals("four", four.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(1, elemsFollowingThree.length)
-    val seqFollowingThree2 = elemsFollowingThree(0).asInstanceOf[Sequence]
-    val Seq(four2: ElementBase) = seqFollowingThree2.groupMembers
-    assertEquals("four", four2.name)
-  }
-
-  /**
-   * Here because 'two' is optional, we expect to see
-   * 'two' and 'three' in 'one's possibleNextTerms list.
-   */
-  @Test def test_could_be_next_method_03() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(2, elemsFollowingOne.length)
-    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(1, elemsFollowingTwo.length)
-    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(1, elemsFollowingThree.length)
-    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
-    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
-    assertEquals("four", four.name)
-
-  }
-
-  /**
-   * Here because 'one' is optional, we expect to see
-   * 'two' in 'one's possibleNextTerms list.
-   */
-  @Test def test_could_be_next_method_04() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(1, elemsFollowingOne.length)
-    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(1, elemsFollowingTwo.length)
-    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(1, elemsFollowingThree.length)
-    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
-    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
-    assertEquals("four", four.name)
-
-  }
-
-  /**
-   * Here because 'two', 'three', and 'four' are optional...
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one    two, three, four
-   * two    three, four
-   * three  four
-   * four   -empty-
-   */
-  @Test def test_could_be_next_method_05() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: ElementBase) = seq.groupMembers
-
-    val elemsFollowingOne = one.possibleNextTerms
-    val Seq(eTwo: ElementBase, eThree: ElementBase, seqFollowingThree: Sequence) = one.possibleNextTerms
-    assertEquals(3, elemsFollowingOne.length)
-    assertEquals("two", eTwo.name)
-    assertEquals("three", eThree.name)
-    val Seq(eFour: ElementBase) = seqFollowingThree.groupMembers
-    assertEquals("four", eFour.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(eThree_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", eThree_2.name)
-    val Seq(eFour_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals("four", eFour_2.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
-    assertEquals(1, elemsFollowingThree.length)
-    val Seq(eFour_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals("four", eFour_3.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here because 'two', and 'three' are optional...
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one   two, three, four
-   * two   three, four
-   * three four
-   * four  -empty-
-   */
-  @Test def test_could_be_next_method_06() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: ElementBase) = seq.groupMembers
-
-    val elemsFollowingOne = one.possibleNextTerms
-    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = one.possibleNextTerms
-    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
-    assertEquals(3, elemsFollowingOne.length)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-    assertEquals("four", four_1.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(three_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
-    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", three_2.name)
-    assertEquals("four", four_2.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
-    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals(1, elemsFollowingThree.length)
-    assertEquals("four", four_3.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here because 'two', and 'three' are optional...
-   *
-   * name   possibleNextTerms
-   * =======================
-   * one    two, three, four
-   * a      b
-   * b      c
-   * c      two, three, four
-   * two    three, four
-   * three  four
-   * four   -empty-
-   */
-  @Test def test_could_be_next_method_07() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: LocalElementDecl) = seq.groupMembers
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
-    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-    assertEquals("four", four_1.name)
-
-    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    assertEquals(1, elemsFollowingA.length)
-    assertEquals("b", elemsFollowingA(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    assertEquals(1, elemsFollowingB.length)
-    assertEquals("c", elemsFollowingB(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = c.possibleNextTerms
-    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals(3, elemsFollowingC.length)
-    assertEquals("two", two_2.name)
-    assertEquals("three", three_2.name)
-    assertEquals("four", four_2.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(three_3: ElementBase, seqFollowingThree_3: Sequence) = two.possibleNextTerms
-    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", three_3.name)
-    assertEquals("four", four_3.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_4: Sequence) = three.possibleNextTerms
-    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
-    assertEquals(1, elemsFollowingThree.length)
-    assertEquals("four", four_4.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here we've added three levels of sequences
-   * that contain optional elements.
-   *
-   * The innermost sequence is in the last position.
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one  two, three, four
-   * a    b, c, s-1, s-2, s-3
-   * b    c, s-1, s-2, s-3
-   * c    s-1, s-2, s-3
-   * two  three, four
-   * three  four
-   * four  -empty-
-   */
-  @Test def test_could_be_next_method_08() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                  <xs:sequence dfdl:separator="-">
-                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-3" type="xs:string"/>
-                  </xs:sequence>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: LocalElementDecl) = seq.groupMembers
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
-    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-    assertEquals("four", four_1.name)
-
-    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl, _: Sequence) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    val Seq(b_1: ElementBase, c_1: ElementBase, seqFollowingC_1: Sequence) = a.possibleNextTerms
-    val Seq(s1_1: ElementBase, s2_1: ElementBase, s3_1: ElementBase) = seqFollowingC_1.groupMembers
-    assertEquals(3, elemsFollowingA.length)
-    assertEquals("b", b_1.name)
-    assertEquals("c", c_1.name)
-    assertEquals("s-1", s1_1.name)
-    assertEquals("s-2", s2_1.name)
-    assertEquals("s-3", s3_1.name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    val Seq(c_2: ElementBase, seqFollowingC_2: Sequence) = b.possibleNextTerms
-    val Seq(s1_2: ElementBase, s2_2: ElementBase, s3_2: ElementBase) = seqFollowingC_2.groupMembers
-    assertEquals(2, elemsFollowingB.length)
-    assertEquals("c", c_2.name)
-    assertEquals("s-1", s1_2.name)
-    assertEquals("s-2", s2_2.name)
-    assertEquals("s-3", s3_2.name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(seqFollowingC_3: Sequence) = c.possibleNextTerms
-    val Seq(s1_3: ElementBase, s2_3: ElementBase, s3_3: ElementBase) = seqFollowingC_3.groupMembers
-    assertEquals(1, elemsFollowingC.length)
-    assertEquals("s-1", s1_3.name)
-    assertEquals("s-2", s2_3.name)
-    assertEquals("s-3", s3_3.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(three_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
-    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", three_2.name)
-    assertEquals("four", four_2.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
-    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals(1, elemsFollowingThree.length)
-    assertEquals("four", four_3.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here we've added three levels of sequences
-   * that contain optional elements.
-   *
-   * The inner most sequence is in the middle.
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one  two, three, four
-   * a    b, s-1, s-2, s-3
-   * b    s-1, s-2, s-3
-   * c    two, three, four
-   * two  three, four
-   * three  four
-   * four  -empty-
-   */
-  @Test def test_could_be_next_method_09() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                  <xs:sequence dfdl:separator="-">
-                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-3" type="xs:string"/>
-                  </xs:sequence>
-                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: LocalElementDecl) = seq.groupMembers
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
-    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-    assertEquals("four", four_1.name)
-
-    val Seq(a: LocalElementDecl, b: LocalElementDecl, _: Sequence, c: LocalElementDecl) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    val Seq(b_1: ElementBase, seqFollowingA: Sequence) = a.possibleNextTerms
-    val Seq(s1_1: ElementBase, s2_1: ElementBase, s3_1: ElementBase) = seqFollowingA.groupMembers
-    assertEquals(2, elemsFollowingA.length)
-    assertEquals("b", b_1.name)
-    assertEquals("s-1", s1_1.name)
-    assertEquals("s-2", s2_1.name)
-    assertEquals("s-3", s3_1.name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    val Seq(seqFollowingB: Sequence) = b.possibleNextTerms
-    val Seq(s1_2: ElementBase, s2_2: ElementBase, s3_2: ElementBase) = seqFollowingB.groupMembers
-    assertEquals(1, elemsFollowingB.length)
-    assertEquals("s-1", s1_2.name)
-    assertEquals("s-2", s2_2.name)
-    assertEquals("s-3", s3_2.name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = c.possibleNextTerms
-    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals(3, elemsFollowingC.length)
-    assertEquals("two", two_2.name)
-    assertEquals("three", three_2.name)
-    assertEquals("four", four_2.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(three_3: ElementBase, seqFollowingThree_3: Sequence) = two.possibleNextTerms
-    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", three_3.name)
-    assertEquals("four", four_3.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_4: Sequence) = three.possibleNextTerms
-    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
-    assertEquals(1, elemsFollowingThree.length)
-    assertEquals("four", four_4.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here we've added three levels of sequences
-   * that contain optional elements.
-   *
-   * The inner most sequence is in the beginning.
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one  two, three, four
-   * a    b
-   * b    c
-   * c    two, three, four
-   * two  three, four
-   * three  four
-   * four  -empty-
-   */
-  @Test def test_could_be_next_method_10() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:sequence dfdl:separator="-">
-                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                    <xs:element name="s-3" type="xs:string"/>
-                  </xs:sequence>
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:sequence>
-              <xs:element name="four" dfdl:terminator=":">
-                <xs:complexType>
-                  <xs:sequence dfdl:separator=",">
-                    <xs:element name="j" type="xs:string"/>
-                    <xs:element name="k" type="xs:string"/>
-                    <xs:element name="l" type="xs:string"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val Seq(four: LocalElementDecl) = seq.groupMembers
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
-    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-    assertEquals("four", four_1.name)
-
-    val Seq(_: Sequence, a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    val Seq(b_2: ElementBase, c_2: ElementBase, two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = a.possibleNextTerms
-    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
-    assertEquals(5, elemsFollowingA.length)
-    assertEquals("b", b_2.name)
-    assertEquals("c", c_2.name)
-    assertEquals("two", two_2.name)
-    assertEquals("three", three_2.name)
-    assertEquals("four", four_2.name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    val Seq(c_3: ElementBase, two_3: ElementBase, three_3: ElementBase, seqFollowingThree_3: Sequence) = b.possibleNextTerms
-    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
-    assertEquals(4, elemsFollowingB.length)
-    assertEquals("c", c_3.name)
-    assertEquals("two", two_3.name)
-    assertEquals("three", three_3.name)
-    assertEquals("four", four_3.name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(two_4: ElementBase, three_4: ElementBase, seqFollowingThree_4: Sequence) = c.possibleNextTerms
-    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
-    assertEquals(3, elemsFollowingC.length)
-    assertEquals("two", two_4.name)
-    assertEquals("three", three_4.name)
-    assertEquals("four", four_4.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(three_5: ElementBase, seqFollowingThree_5: Sequence) = two.possibleNextTerms
-    val Seq(four_5: ElementBase) = seqFollowingThree_5.groupMembers
-    assertEquals(2, elemsFollowingTwo.length)
-    assertEquals("three", three_5.name)
-    assertEquals("four", four_5.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(seqFollowingThree_6: Sequence) = three.possibleNextTerms
-    val Seq(four_6: ElementBase) = seqFollowingThree_6.groupMembers
-    assertEquals(1, elemsFollowingThree.length)
-    assertEquals("four", four_6.name)
-
-    val elemsFollowingFour = four.possibleNextTerms
-    assertEquals(0, elemsFollowingFour.length)
-
-  }
-
-  /**
-   * Here we just want to test that we can detect next
-   * elements across sequences (unordered).  All elements are 'required'.
-   * However, because these are unordered sequences optionality doesn't matter.
-   */
-  @Test def test_could_be_next_method_11() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence dfdl:sequenceKind="unordered">
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator=",">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(3, elemsFollowingOne.length)
-    assertEquals("one", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingOne(2).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(3, elemsFollowingTwo.length)
-    assertEquals("one", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingTwo(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingTwo(2).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(3, elemsFollowingThree.length)
-    assertEquals("one", elemsFollowingThree(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingThree(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingThree(2).asInstanceOf[ElementBase].name)
-  }
-
-  /**
-   * Unordered Sequences
-   *
-   * Here the fact that 'three' is optional doesn't matter.  The
-   * elements are in an unordered sequence, so any of the elements:
-   * one, two or three could be next.
-   */
-  @Test def test_could_be_next_method_12() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence dfdl:sequenceKind="unordered">
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: ElementBase, two: ElementBase, three: ElementBase) =
-      rootCTSeq.groupMembers
-
-    val elemsFollowingOne = one.possibleNextTerms
-    assertEquals(3, elemsFollowingOne.length)
-    assertEquals("one", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingOne(2).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    assertEquals(3, elemsFollowingTwo.length)
-    assertEquals("one", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingTwo(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingTwo(2).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    assertEquals(3, elemsFollowingThree.length)
-    assertEquals("one", elemsFollowingThree(0).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingThree(1).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingThree(2).asInstanceOf[ElementBase].name)
-  }
-
-  /**
-   * Unordered Sequences
-   *
-   * Here because 'two', and 'three' are optional...
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one   two, three
-   * a     b, c
-   * b     a, c
-   * c     a, b, one, two, three
-   * two   one, three
-   * three  one, two
-   */
-  @Test def test_could_be_next_method_13() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence dfdl:sequenceKind="unordered">
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(one_1: ElementBase, two_1: ElementBase, three_1: ElementBase) = oneCTSeq.possibleNextTerms
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("one", one_1.name)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-
-    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    assertEquals(6, elemsFollowingA.length)
-    assertEquals("a", elemsFollowingA(0).asInstanceOf[ElementBase].name)
-    assertEquals("b", elemsFollowingA(1).asInstanceOf[ElementBase].name)
-    assertEquals("c", elemsFollowingA(2).asInstanceOf[ElementBase].name)
-    assertEquals("one", elemsFollowingA(3).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingA(4).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingA(5).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    assertEquals(6, elemsFollowingB.length)
-    assertEquals("a", elemsFollowingB(0).asInstanceOf[ElementBase].name)
-    assertEquals("b", elemsFollowingB(1).asInstanceOf[ElementBase].name)
-    assertEquals("c", elemsFollowingB(2).asInstanceOf[ElementBase].name)
-    assertEquals("one", elemsFollowingB(3).asInstanceOf[ElementBase].name)
-    assertEquals("two", elemsFollowingB(4).asInstanceOf[ElementBase].name)
-    assertEquals("three", elemsFollowingB(5).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(a_2: ElementBase, b_2: ElementBase, c_2: ElementBase, one_2: ElementBase, two_2: ElementBase, three_2: ElementBase) = c.possibleNextTerms
-    assertEquals(6, elemsFollowingC.length)
-    assertEquals("a", a_2.name)
-    assertEquals("b", b_2.name)
-    assertEquals("c", c_2.name)
-    assertEquals("one", one_2.name)
-    assertEquals("two", two_2.name)
-    assertEquals("three", three_2.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(one_3: ElementBase, two_3: ElementBase, three_3: ElementBase) = two.possibleNextTerms
-    assertEquals(3, elemsFollowingTwo.length)
-    assertEquals("one", one_3.name)
-    assertEquals("two", two_3.name)
-    assertEquals("three", three_3.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(one_4: ElementBase, two_4: ElementBase, three_4: ElementBase) = three.possibleNextTerms
-    assertEquals(3, elemsFollowingThree.length)
-    assertEquals("one", one_4.name)
-    assertEquals("two", two_4.name)
-    assertEquals("three", three_4.name)
-  }
-
-  /**
-   * Unordered Sequences
-   *
-   * Here because 'two', and 'three' are optional...
-   *
-   * name  possibleNextTerms
-   * =======================
-   * one   two, three
-   * a     b
-   * b     c
-   * c     one, two, three
-   * two   one, three
-   * three one, two
-   */
-  @Test def test_could_be_next_method_13_1() {
-    val testSchema = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="root">
-        <xs:complexType>
-          <xs:sequence dfdl:sequenceKind="unordered">
-            <xs:element name="one" dfdl:terminator=":">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="ordered">
-                  <xs:element name="a" type="xs:string"/>
-                  <xs:element name="b" type="xs:string"/>
-                  <xs:element name="c" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="d" type="xs:string"/>
-                  <xs:element name="e" type="xs:string"/>
-                  <xs:element name="f" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
-              <xs:complexType>
-                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
-                  <xs:element name="g" type="xs:string"/>
-                  <xs:element name="h" type="xs:string"/>
-                  <xs:element name="i" type="xs:string"/>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-
-    val compiler = Compiler()
-    val sset = compiler.compileNode(testSchema).sset
-    val Seq(schema) = sset.schemas
-    val Seq(schemaDoc, _) = schema.schemaDocuments
-    val Seq(declf) = schemaDoc.globalElementDecls
-    val root = declf.forRoot()
-    val rootCT = root.complexType
-
-    // Verify that nothing follows the root, as it is the root.
-    val elemsFollowingRoot = root.possibleNextTerms
-    assertEquals(0, elemsFollowingRoot.length)
-
-    val rootCTSeq = rootCT.sequence //... which is a sequence
-
-    // Verify that nothing follows the sequence of the root.
-    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
-    assertEquals(0, elemsFollowingRootSeq.length)
-
-    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl) =
-      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
-
-    val oneCT = one.complexType
-    val oneCTSeq = oneCT.sequence
-    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
-
-    val Seq(one_1: ElementBase, two_1: ElementBase, three_1: ElementBase) = oneCTSeq.possibleNextTerms
-    assertEquals(3, elemsFollowingOneCTSeq.length)
-    assertEquals("one", one_1.name)
-    assertEquals("two", two_1.name)
-    assertEquals("three", three_1.name)
-
-    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
-
-    val elemsFollowingA = a.possibleNextTerms
-    assertEquals(1, elemsFollowingA.length)
-    assertEquals("b", elemsFollowingA(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingB = b.possibleNextTerms
-    assertEquals(1, elemsFollowingB.length)
-    assertEquals("c", elemsFollowingB(0).asInstanceOf[ElementBase].name)
-
-    val elemsFollowingC = c.possibleNextTerms
-    val Seq(one_2: ElementBase, two_2: ElementBase, three_2: ElementBase) = c.possibleNextTerms
-    assertEquals(3, elemsFollowingC.length)
-    assertEquals("one", one_2.name)
-    assertEquals("two", two_2.name)
-    assertEquals("three", three_2.name)
-
-    val elemsFollowingTwo = two.possibleNextTerms
-    val Seq(one_3: ElementBase, two_3: ElementBase, three_3: ElementBase) = two.possibleNextTerms
-    assertEquals(3, elemsFollowingTwo.length)
-    assertEquals("one", one_3.name)
-    assertEquals("two", two_3.name)
-    assertEquals("three", three_3.name)
-
-    val elemsFollowingThree = three.possibleNextTerms
-    val Seq(one_4: ElementBase, two_4: ElementBase, three_4: ElementBase) = three.possibleNextTerms
-    assertEquals(3, elemsFollowingThree.length)
-    assertEquals("one", one_4.name)
-    assertEquals("two", two_4.name)
-    assertEquals("three", three_4.name)
-  }
-
-}
diff --git a/daffodil-core/src/test/scala-debug/org/apache/daffodil/infoset/TestInfosetDefaultingInUnparser.scala b/daffodil-core/src/test/scala-debug/org/apache/daffodil/infoset/TestInfosetDefaultingInUnparser.scala
deleted file mode 100644
index f61f57a..0000000
--- a/daffodil-core/src/test/scala-debug/org/apache/daffodil/infoset/TestInfosetDefaultingInUnparser.scala
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.infoset
-
-import org.junit.Test
-import org.junit.Assert._
-import org.apache.daffodil.xml.XMLUtils
-import org.apache.daffodil.Implicits._
-import org.apache.daffodil.equality._; object ENoWarnU1 { EqualitySuppressUnusedImportWarning() }
-import org.apache.daffodil.util.SchemaUtils
-import org.apache.daffodil.processors.DataProcessor
-import org.apache.daffodil.compiler.Compiler
-import org.apache.daffodil.xml._
-
-/*
- * These are all tests of default-value insertion.
- * But I determined that the approach to defaulting,
- * which was a schema-aware separate pass, can't really work
- * and isn't worth a whole pass on its own.
- *
- * So these tests will have to be revisited someday when we
- * have defaulting working.
- *
- * The way these tests work is broken. They are assuming that
- * defaulting is being inserted by the XMLEventCursor. It will
- * not be there. Defaulting will be done as part of Unparsing.
- */
-class TestInfosetDefaultingInUnparser {
-
-  val xsd = XMLUtils.XSD_NAMESPACE
-  val dfdl = XMLUtils.dfdlAppinfoSource // XMLUtils.DFDL_NAMESPACE
-  val xsi = XMLUtils.XSI_NAMESPACE
-  val example = XMLUtils.EXAMPLE_NAMESPACE
-
-  @Test def testDefaultable = {
-    val sch = SchemaUtils.dfdlTestSchema(
-      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
-      <dfdl:format ref="tns:GeneralFormat"/>,
-      <xs:element name="bar" dfdl:lengthKind="implicit">
-        <xs:complexType>
-          <xs:sequence dfdl:separator=",">
-            <xs:element name="foo" dfdl:lengthKind="delimited" type="xs:string" default="abcde"/>
-            <xs:element name="afterFoo" dfdl:lengthKind="explicit" dfdl:length="5" type="xs:string"/>
-          </xs:sequence>
-        </xs:complexType>
-      </xs:element>)
-    val compiler = Compiler()
-    val pf = compiler.compileNode(sch)
-    if (pf.isError) {
-      val msgs = pf.getDiagnostics.map(_.getMessage()).mkString("\n")
-      throw new Exception(msgs)
-    }
-    val u = pf.onPath("/").asInstanceOf[DataProcessor]
-    if (u.isError) {
-      val msgs = u.getDiagnostics.map(_.getMessage()).mkString("\n")
-      throw new Exception(msgs)
-    }
-
-    val xml = <bar xmlns={ XMLUtils.EXAMPLE_NAMESPACE }><afterFoo>Hello</afterFoo></bar>
-
-    val rootERD = u.ssrd.elementRuntimeData
-
-    val inputter = new ScalaXMLInfosetInputter(xml)
-    inputter.initialize(rootERD, u.getTunables())
-    val is = Adapter(inputter)
-
-    val Start(bar_s: DIComplex) = is.next
-    assertNotNull(bar_s)
-    val Start(foo_s: DISimple) = is.next
-    val End(foo_e: DISimple) = is.next
-    assertNotNull(foo_e)
-    val Start(afterFoo_s: DISimple) = is.next
-    val End(afterFoo_e: DISimple) = is.next
-    assertNotNull(afterFoo_e)
-    val End(bar_e: DIComplex) = is.next
-    assertNotNull(bar_e)
-
-    assertEquals("abcde", foo_s.dataValue)
-    assertEquals("Hello", afterFoo_s.dataValue)
-  }
-
-}
diff --git a/daffodil-core/src/test/scala/org/apache/daffodil/dsom/TestDsomCompiler.scala b/daffodil-core/src/test/scala/org/apache/daffodil/dsom/TestDsomCompiler.scala
index a27fbc5..79f039e 100644
--- a/daffodil-core/src/test/scala/org/apache/daffodil/dsom/TestDsomCompiler.scala
+++ b/daffodil-core/src/test/scala/org/apache/daffodil/dsom/TestDsomCompiler.scala
@@ -672,4 +672,2014 @@ class TestDsomCompiler extends Logging {
     assertTrue(ese.path.contains("sequence[3]"))
   }
 
+
+  val dummyGroupRef = null // just because otherwise we have to construct too many things.
+
+  def FindValue(collection: Map[String, String], key: String, value: String): Boolean = {
+    val found: Boolean = Option(collection.find(x => x._1 == key && x._2 == value)) match {
+      case Some(_) => true
+      case None => false
+    }
+    found
+  }
+
+  //  @Test def testInitiator() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="data" type="xs:string" dfdl:initiator="*" dfdl:lengthKind="explicit" dfdl:length="{ 4 }"/>)
+  //    //    val actual = TestUtils.testString(testSchema, "*word")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<data"))
+  //    //    assertTrue(actualString.endsWith(">word</data>"))
+  //
+  //    val infoset = <data xmlns={ example }>word</data>
+  //    TestUtils.testUnparsing(testSchema, infoset, "*word")
+  //  }
+
+  //  @Test def testTerminator() {
+  //    // LoggingDefaults.setLoggingLevel(LogLevel.Debug)
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="data" type="xs:string" dfdl:terminator="!" dfdl:lengthKind="explicit" dfdl:length="{ 2 }"/>)
+  //    //    val actual = TestUtils.testString(testSchema, "37!")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<data"))
+  //    //    assertTrue(actualString.endsWith(">37</data>"))
+  //
+  //    val infoset = <data xmlns={ example }>37</data>
+  //    TestUtils.testUnparsing(testSchema, infoset, "37!")
+  //  }
+
+  //  @Test def testDelims() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="data" type="xs:string" dfdl:initiator="*" dfdl:terminator="! $" dfdl:lengthKind="explicit" dfdl:length="{ 2 }"/>)
+  //    //    val actual = TestUtils.testString(testSchema, "*37$")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<data"))
+  //    //    assertTrue(actualString.endsWith(">37</data>"))
+  //
+  //    val infoset = <data xmlns={ example }>37</data>
+  //    TestUtils.testUnparsing(testSchema, infoset, "*37!")
+  //  }
+
+  //  @Test def testUnparseMultiElem1() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence>
+  //          <xs:element name="somedata" type="xs:float" dfdl:length="6" dfdl:lengthKind="explicit"/>
+  //          <xs:element name="moredata" type="xs:int" dfdl:length="2" dfdl:lengthKind="explicit"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //    val actual = TestUtils.testString(testSchema, "943.2801")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<list"))
+  //    //    assertTrue(actualString.endsWith("><somedata>943.28</somedata><moredata>1</moredata></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><somedata>943.28</somedata><moredata>1</moredata></list>
+  //    // TODO: unparse needs to restore leading zeros removed in parse?
+  //    //testUnparsing(testSchema, infoset, "943.2801")
+  //    TestUtils.testUnparsing(testSchema, infoset, "943.281")
+  //  }
+
+  //  @Test def testUnparseMultiElem2() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator="^">
+  //          <xs:element name="somedata" type="xs:double" dfdl:length="5" dfdl:lengthKind="explicit"/>
+  //          <xs:element name="moredata" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit" dfdl:initiator="%"/>
+  //          <xs:element name="anddata" type="xs:int" dfdl:length="2" dfdl:lengthKind="explicit"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //    val actual = TestUtils.testString(testSchema, "50.93^%XYZ^42")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<list"))
+  //    //    assertTrue(actualString.endsWith("><somedata>50.93</somedata><moredata>XYZ</moredata><anddata>42</anddata></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><somedata>50.93</somedata><moredata>XYZ</moredata><anddata>42</anddata></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "50.93^%XYZ^42")
+  //  }
+
+  //  @Test def testUnparseNested() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence>
+  //          <xs:element name="somedata" type="tns:example2">
+  //            <xs:annotation>
+  //              <xs:appinfo source={ dfdl }>
+  //                <dfdl:element alignmentUnits="bytes"/>
+  //              </xs:appinfo>
+  //            </xs:annotation>
+  //          </xs:element>
+  //        </xs:sequence>
+  //      </xs:complexType>
+  //      <xs:complexType name="example2">
+  //        <xs:sequence>
+  //          <xs:element name="moredata" type="xs:double" dfdl:length="7" dfdl:lengthKind="explicit"/>
+  //          <xs:element name="anddata" type="xs:string" dfdl:length="6" dfdl:lengthKind="explicit"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //    val actual = TestUtils.testString(testSchema, "11235.8qwerty")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<list"))
+  //    //    assertTrue(actualString.endsWith("><somedata><moredata>11235.8</moredata><anddata>qwerty</anddata></somedata></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><somedata><moredata>11235.8</moredata><anddata>qwerty</anddata></somedata></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "11235.8qwerty")
+  //  }
+
+  //  //  @Test def testUnparseNestedChildren() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence>
+  //          <xs:element name="data" type="tns:example2">
+  //            <xs:annotation>
+  //              <xs:appinfo source={ dfdl }>
+  //                <dfdl:element alignmentUnits="bytes"/>
+  //              </xs:appinfo>
+  //            </xs:annotation>
+  //          </xs:element>
+  //        </xs:sequence>
+  //      </xs:complexType>
+  //      <xs:complexType name="example2">
+  //        <xs:sequence>
+  //          <xs:element name="somedata" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit"/>
+  //          <xs:element name="moredata" type="xs:int" dfdl:length="8" dfdl:lengthKind="explicit"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //    val actual = TestUtils.testString(testSchema, "abc87654321")
+  //    //    val actualString = actual.result.toString
+  //    //    assertTrue(actualString.startsWith("<list"))
+  //    //    assertTrue(actualString.endsWith("><data><somedata>abc</somedata><moredata>87654321</moredata></data></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><data><somedata>abc</somedata><moredata>87654321</moredata></data></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "abc87654321")
+  //  }
+
+  //  @Test def testUnparseDelimited() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator=",">
+  //          <xs:element name="a" type="xs:int" dfdl:lengthKind="delimited"/>
+  //          <xs:element name="b" type="xs:double" dfdl:lengthKind="delimited"/>
+  //          <xs:element name="c" type="xs:string" dfdl:lengthKind="delimited"/>
+  //          <xs:element name="d" type="xs:int" dfdl:lengthKind="delimited"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //        val actual = TestUtils.testString(testSchema, "246813579,90.3761,hello,100")
+  //    //        val actualString = actual.result.toString
+  //    //        assertTrue(actualString.startsWith("<list"))
+  //    //        assertTrue(actualString.endsWith("><a>246813579</a><b>90.3761</b><c>hello</c><d>100</d></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><a>246813579</a><b>90.3761</b><c>hello</c><d>100</d></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "246813579,90.3761,hello,100")
+  //  }
+
+  //  @Test def testUnparseAlignmentBits() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bits"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator=",">
+  //          <xs:element name="a" type="xs:int" dfdl:lengthKind="delimited"/>
+  //          <xs:element name="b" type="xs:double" dfdl:lengthKind="delimited"/>
+  //          <xs:element name="c" type="xs:string" dfdl:length="3" dfdl:lengthKind="explicit"/>
+  //          <xs:element name="d" type="xs:int" dfdl:length="8" dfdl:lengthKind="explicit"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //
+  //    val infoset = <list xmlns={ example }><a>246813579</a><b>90.3761</b><c>abc</c><d>10034567</d></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "246813579,90.3761,abc,10034567")
+  //  }
+
+  //  @Test def testUnparseChoice1() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bits"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator=",">
+  //          <xs:element name="a" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="3"/>
+  //          <xs:element name="b" type="xs:string" dfdl:lengthKind="explicit" dfdl:length="4"/>
+  //          <xs:element name="choice">
+  //            <xs:complexType>
+  //              <xs:choice dfdl:choiceLengthKind="implicit">
+  //                <xs:element name="c" type="xs:int" dfdl:initiator="choice1:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
+  //                <xs:element name="d" type="xs:double" dfdl:initiator="choice2:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
+  //              </xs:choice>
+  //            </xs:complexType>
+  //          </xs:element>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //        val actual = TestUtils.testString(testSchema, "567,word,choice1:203867")
+  //    //        val actualString = actual.result.toString
+  //    //        assertTrue(actualString.startsWith("<list"))
+  //    //        assertTrue(actualString.endsWith("><a>567</a><b>word</b><choice><c>203867</c></choice></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><a>567</a><b>word</b><choice><c>203867</c></choice></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "567,word,choice1:203867")
+  //  }
+
+  //  @Test def testUnparseChoice2() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bits"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator=",">
+  //          <xs:element name="a" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="3"/>
+  //          <xs:element name="b" type="xs:string" dfdl:lengthKind="explicit" dfdl:length="4"/>
+  //          <xs:element name="choice">
+  //            <xs:complexType>
+  //              <xs:choice dfdl:choiceLengthKind="implicit">
+  //                <xs:element name="c" type="xs:int" dfdl:initiator="choice1:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
+  //                <xs:element name="d" type="xs:double" dfdl:initiator="choice2:" dfdl:lengthKind="explicit" dfdl:length="{ 7 }"/>
+  //              </xs:choice>
+  //            </xs:complexType>
+  //          </xs:element>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //    //        val actual = TestUtils.testString(testSchema, "567,word,choice2:2038.67")
+  //    //        val actualString = actual.result.toString
+  //    //        assertTrue(actualString.startsWith("<list"))
+  //    //        assertTrue(actualString.endsWith("><a>567</a><b>word</b><choice><d>2038.67</d></choice></list>"))
+  //
+  //    val infoset = <list xmlns={ example }><a>567</a><b>word</b><choice><d>2038.67</d></choice></list>
+  //    TestUtils.testUnparsing(testSchema, infoset, "567,word,choice2:2038.67")
+  //  }
+
+  //  @Test def testUnparseBinaryIntBE() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="data" type="xs:int" dfdl:representation="binary"/>)
+  //    //        val actual = TestUtils.testBinary(testSchema, "0000000F")
+  //    //        val actualString = actual.result.toString
+  //    //        assertTrue(actualString.startsWith("<data"))
+  //    //        assertTrue(actualString.endsWith(">15</data>"))
+  //
+  //    val infoset = <data xmlns={ example }>15</data>
+  //    val bytes = List[Byte](0, 0, 0, 15).toArray
+  //    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
+  //  }
+
+  //  @Test def testUnparseBinaryIntLE() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="data" type="xs:int" dfdl:representation="binary" dfdl:byteOrder='littleEndian'/>)
+  //    //        val actual = TestUtils.testBinary(testSchema, "0F000000")
+  //    //        val actualString = actual.result.toString
+  //    //        assertTrue(actualString.startsWith("<data"))
+  //    //        assertTrue(actualString.endsWith(">15</data>"))
+  //
+  //    val infoset = <data xmlns={ example }>15</data>
+  //    val bytes = List[Byte](15, 0, 0, 0).toArray
+  //    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
+  //  }
+
+  //  @Test def testUnparseBinary1() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //
+  //      <xs:element name="list" type="tns:example1">
+  //        <xs:annotation>
+  //          <xs:appinfo source={ dfdl }>
+  //            <dfdl:element alignmentUnits="bytes"/>
+  //          </xs:appinfo>
+  //        </xs:annotation>
+  //      </xs:element>
+  //      <xs:complexType name="example1">
+  //        <xs:sequence dfdl:separator="">
+  //          <xs:element name="byte" type="xs:byte" dfdl:length="2" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
+  //          <xs:element name="short" type="xs:short" dfdl:length="4" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
+  //          <xs:element name="long" type="xs:long" dfdl:length="4" dfdl:lengthKind="explicit" dfdl:representation="binary"/>
+  //        </xs:sequence>
+  //      </xs:complexType>)
+  //
+  //    val infoset = <list xmlns={ example }><byte>31</byte><short>-112</short><long>1030</long></list>
+  //    val bytes = List[Byte](31, -1, -112, 0, 0, 0, 0, 0, 0, 4, 6).toArray
+  //    TestUtils.testUnparsingBinary(testSchema, infoset, bytes)
+  //  }
+
+  //  @Test def testHasPatternFacets() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="e1" type="tns:st1" dfdl:lengthKind="explicit" dfdl:length="1"/>
+  //      <xs:simpleType name="st1">
+  //        <xs:restriction base="xs:string">
+  //          <xs:pattern value="1"/>
+  //          <xs:pattern value="2"/>
+  //          <xs:pattern value="3"/>
+  //        </xs:restriction>
+  //      </xs:simpleType>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val decl = declf.forRoot()
+  //
+  //    assertEquals(1, decl.patternValues.length)
+  //    val (_, pattern) = decl.patternValues(0)
+  //    assertEquals("1|2|3", pattern.toString())
+  //  }
+
+  //  @Test def testPatternFacetsInheritance() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="e1" type="tns:st1" dfdl:lengthKind="explicit" dfdl:length="1"/>
+  //      <xs:simpleType name="st1">
+  //        <xs:restriction base="tns:st2">
+  //          <xs:pattern value="1"/>
+  //          <xs:pattern value="2"/>
+  //          <xs:pattern value="3"/>
+  //        </xs:restriction>
+  //      </xs:simpleType>
+  //      <xs:simpleType name="st2">
+  //        <xs:restriction base="tns:st3">
+  //          <xs:pattern value="4"/>
+  //          <xs:pattern value="5"/>
+  //          <xs:pattern value="6"/>
+  //        </xs:restriction>
+  //      </xs:simpleType>
+  //      <xs:simpleType name="st3">
+  //        <xs:restriction base="xs:string">
+  //          <xs:pattern value="7"/>
+  //          <xs:pattern value="8"/>
+  //          <xs:pattern value="9"/>
+  //        </xs:restriction>
+  //      </xs:simpleType>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val decl = declf.forRoot()
+  //
+  //    assertEquals(3, decl.patternValues.length)
+  //    val (_, st1) = decl.patternValues(0)
+  //    val (_, st2) = decl.patternValues(1)
+  //    val (_, st3) = decl.patternValues(2)
+  //
+  //    assertEquals("1|2|3", st1.toString())
+  //    assertEquals("4|5|6", st2.toString())
+  //    assertEquals("7|8|9", st3.toString())
+  //  }
+
+  //  /**
+  //   * Here we just want to test that we can detect next
+  //   * elements across sequences.  All elements are 'required'.
+  //   */
+  //  @Test def test_could_be_next_method_01() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(1, elemsFollowingOne.length)
+  //    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(1, elemsFollowingTwo.length)
+  //    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
+  //
+  //    val Seq(four: ElementBase) = seqFollowingThree.allSelfContainedTermsTerminatedByRequiredElement
+  //    assertEquals("four", four.name)
+  //
+  //  }
+
+  //  /**
+  //   * Here we want to detect that element 'three' is optional.
+  //   * As such, the list of possible elements after 'two' should
+  //   * contain 'three' and 'four'.
+  //   */
+  //  @Test def test_could_be_next_method_02() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(1, elemsFollowingOne.length)
+  //    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //    val seqFollowingThree = elemsFollowingTwo(1).asInstanceOf[Sequence]
+  //    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
+  //    assertEquals("four", four.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    val seqFollowingThree2 = elemsFollowingThree(0).asInstanceOf[Sequence]
+  //    val Seq(four2: ElementBase) = seqFollowingThree2.groupMembers
+  //    assertEquals("four", four2.name)
+  //  }
+
+  //  /**
+  //   * Here because 'two' is optional, we expect to see
+  //   * 'two' and 'three' in 'one's possibleNextTerms list.
+  //   */
+  //  @Test def test_could_be_next_method_03() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(2, elemsFollowingOne.length)
+  //    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(1, elemsFollowingTwo.length)
+  //    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
+  //    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
+  //    assertEquals("four", four.name)
+  //
+  //  }
+
+  //  /**
+  //   * Here because 'one' is optional, we expect to see
+  //   * 'two' in 'one's possibleNextTerms list.
+  //   */
+  //  @Test def test_could_be_next_method_04() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, _: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(1, elemsFollowingOne.length)
+  //    assertEquals("two", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(1, elemsFollowingTwo.length)
+  //    assertEquals("three", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    val seqFollowingThree = elemsFollowingThree(0).asInstanceOf[Sequence]
+  //    val Seq(four: ElementBase) = seqFollowingThree.groupMembers
+  //    assertEquals("four", four.name)
+  //
+  //  }
+
+  //  /**
+  //   * Here because 'two', 'three', and 'four' are optional...
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one    two, three, four
+  //   * two    three, four
+  //   * three  four
+  //   * four   -empty-
+  //   */
+  //  @Test def test_could_be_next_method_05() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: ElementBase) = seq.groupMembers
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    val Seq(eTwo: ElementBase, eThree: ElementBase, seqFollowingThree: Sequence) = one.possibleNextTerms
+  //    assertEquals(3, elemsFollowingOne.length)
+  //    assertEquals("two", eTwo.name)
+  //    assertEquals("three", eThree.name)
+  //    val Seq(eFour: ElementBase) = seqFollowingThree.groupMembers
+  //    assertEquals("four", eFour.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(eThree_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", eThree_2.name)
+  //    val Seq(eFour_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals("four", eFour_2.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    val Seq(eFour_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals("four", eFour_3.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here because 'two', and 'three' are optional...
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one   two, three, four
+  //   * two   three, four
+  //   * three four
+  //   * four  -empty-
+  //   */
+  //  @Test def test_could_be_next_method_06() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: ElementBase) = seq.groupMembers
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = one.possibleNextTerms
+  //    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
+  //    assertEquals(3, elemsFollowingOne.length)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //    assertEquals("four", four_1.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(three_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
+  //    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", three_2.name)
+  //    assertEquals("four", four_2.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
+  //    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    assertEquals("four", four_3.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here because 'two', and 'three' are optional...
+  //   *
+  //   * name   possibleNextTerms
+  //   * =======================
+  //   * one    two, three, four
+  //   * a      b
+  //   * b      c
+  //   * c      two, three, four
+  //   * two    three, four
+  //   * three  four
+  //   * four   -empty-
+  //   */
+  //  @Test def test_could_be_next_method_07() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: LocalElementDecl) = seq.groupMembers
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
+  //    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //    assertEquals("four", four_1.name)
+  //
+  //    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    assertEquals(1, elemsFollowingA.length)
+  //    assertEquals("b", elemsFollowingA(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    assertEquals(1, elemsFollowingB.length)
+  //    assertEquals("c", elemsFollowingB(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = c.possibleNextTerms
+  //    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals(3, elemsFollowingC.length)
+  //    assertEquals("two", two_2.name)
+  //    assertEquals("three", three_2.name)
+  //    assertEquals("four", four_2.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(three_3: ElementBase, seqFollowingThree_3: Sequence) = two.possibleNextTerms
+  //    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", three_3.name)
+  //    assertEquals("four", four_3.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_4: Sequence) = three.possibleNextTerms
+  //    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    assertEquals("four", four_4.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here we've added three levels of sequences
+  //   * that contain optional elements.
+  //   *
+  //   * The innermost sequence is in the last position.
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one  two, three, four
+  //   * a    b, c, s-1, s-2, s-3
+  //   * b    c, s-1, s-2, s-3
+  //   * c    s-1, s-2, s-3
+  //   * two  three, four
+  //   * three  four
+  //   * four  -empty-
+  //   */
+  //  @Test def test_could_be_next_method_08() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                  <xs:sequence dfdl:separator="-">
+  //                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-3" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: LocalElementDecl) = seq.groupMembers
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
+  //    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //    assertEquals("four", four_1.name)
+  //
+  //    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl, _: Sequence) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    val Seq(b_1: ElementBase, c_1: ElementBase, seqFollowingC_1: Sequence) = a.possibleNextTerms
+  //    val Seq(s1_1: ElementBase, s2_1: ElementBase, s3_1: ElementBase) = seqFollowingC_1.groupMembers
+  //    assertEquals(3, elemsFollowingA.length)
+  //    assertEquals("b", b_1.name)
+  //    assertEquals("c", c_1.name)
+  //    assertEquals("s-1", s1_1.name)
+  //    assertEquals("s-2", s2_1.name)
+  //    assertEquals("s-3", s3_1.name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    val Seq(c_2: ElementBase, seqFollowingC_2: Sequence) = b.possibleNextTerms
+  //    val Seq(s1_2: ElementBase, s2_2: ElementBase, s3_2: ElementBase) = seqFollowingC_2.groupMembers
+  //    assertEquals(2, elemsFollowingB.length)
+  //    assertEquals("c", c_2.name)
+  //    assertEquals("s-1", s1_2.name)
+  //    assertEquals("s-2", s2_2.name)
+  //    assertEquals("s-3", s3_2.name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(seqFollowingC_3: Sequence) = c.possibleNextTerms
+  //    val Seq(s1_3: ElementBase, s2_3: ElementBase, s3_3: ElementBase) = seqFollowingC_3.groupMembers
+  //    assertEquals(1, elemsFollowingC.length)
+  //    assertEquals("s-1", s1_3.name)
+  //    assertEquals("s-2", s2_3.name)
+  //    assertEquals("s-3", s3_3.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(three_2: ElementBase, seqFollowingThree_2: Sequence) = two.possibleNextTerms
+  //    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", three_2.name)
+  //    assertEquals("four", four_2.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_3: Sequence) = three.possibleNextTerms
+  //    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    assertEquals("four", four_3.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here we've added three levels of sequences
+  //   * that contain optional elements.
+  //   *
+  //   * The inner most sequence is in the middle.
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one  two, three, four
+  //   * a    b, s-1, s-2, s-3
+  //   * b    s-1, s-2, s-3
+  //   * c    two, three, four
+  //   * two  three, four
+  //   * three  four
+  //   * four  -empty-
+  //   */
+  //  @Test def test_could_be_next_method_09() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                  <xs:sequence dfdl:separator="-">
+  //                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-3" type="xs:string"/>
+  //                  </xs:sequence>
+  //                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: LocalElementDecl) = seq.groupMembers
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
+  //    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //    assertEquals("four", four_1.name)
+  //
+  //    val Seq(a: LocalElementDecl, b: LocalElementDecl, _: Sequence, c: LocalElementDecl) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    val Seq(b_1: ElementBase, seqFollowingA: Sequence) = a.possibleNextTerms
+  //    val Seq(s1_1: ElementBase, s2_1: ElementBase, s3_1: ElementBase) = seqFollowingA.groupMembers
+  //    assertEquals(2, elemsFollowingA.length)
+  //    assertEquals("b", b_1.name)
+  //    assertEquals("s-1", s1_1.name)
+  //    assertEquals("s-2", s2_1.name)
+  //    assertEquals("s-3", s3_1.name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    val Seq(seqFollowingB: Sequence) = b.possibleNextTerms
+  //    val Seq(s1_2: ElementBase, s2_2: ElementBase, s3_2: ElementBase) = seqFollowingB.groupMembers
+  //    assertEquals(1, elemsFollowingB.length)
+  //    assertEquals("s-1", s1_2.name)
+  //    assertEquals("s-2", s2_2.name)
+  //    assertEquals("s-3", s3_2.name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = c.possibleNextTerms
+  //    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals(3, elemsFollowingC.length)
+  //    assertEquals("two", two_2.name)
+  //    assertEquals("three", three_2.name)
+  //    assertEquals("four", four_2.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(three_3: ElementBase, seqFollowingThree_3: Sequence) = two.possibleNextTerms
+  //    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", three_3.name)
+  //    assertEquals("four", four_3.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_4: Sequence) = three.possibleNextTerms
+  //    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    assertEquals("four", four_4.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here we've added three levels of sequences
+  //   * that contain optional elements.
+  //   *
+  //   * The inner most sequence is in the beginning.
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one  two, three, four
+  //   * a    b
+  //   * b    c
+  //   * c    two, three, four
+  //   * two  three, four
+  //   * three  four
+  //   * four  -empty-
+  //   */
+  //  @Test def test_could_be_next_method_10() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence>
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:sequence dfdl:separator="-">
+  //                    <xs:element name="s-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                    <xs:element name="s-3" type="xs:string"/>
+  //                  </xs:sequence>
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                  <xs:element name="c" type="xs:string" minOccurs="0" maxOccurs="1"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:sequence>
+  //              <xs:element name="four" dfdl:terminator=":">
+  //                <xs:complexType>
+  //                  <xs:sequence dfdl:separator=",">
+  //                    <xs:element name="j" type="xs:string"/>
+  //                    <xs:element name="k" type="xs:string"/>
+  //                    <xs:element name="l" type="xs:string"/>
+  //                  </xs:sequence>
+  //                </xs:complexType>
+  //              </xs:element>
+  //            </xs:sequence>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl, seq: Sequence) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val Seq(four: LocalElementDecl) = seq.groupMembers
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(two_1: ElementBase, three_1: ElementBase, seqFollowingThree_1: Sequence) = oneCTSeq.possibleNextTerms
+  //    val Seq(four_1: ElementBase) = seqFollowingThree_1.groupMembers
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //    assertEquals("four", four_1.name)
+  //
+  //    val Seq(_: Sequence, a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    val Seq(b_2: ElementBase, c_2: ElementBase, two_2: ElementBase, three_2: ElementBase, seqFollowingThree_2: Sequence) = a.possibleNextTerms
+  //    val Seq(four_2: ElementBase) = seqFollowingThree_2.groupMembers
+  //    assertEquals(5, elemsFollowingA.length)
+  //    assertEquals("b", b_2.name)
+  //    assertEquals("c", c_2.name)
+  //    assertEquals("two", two_2.name)
+  //    assertEquals("three", three_2.name)
+  //    assertEquals("four", four_2.name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    val Seq(c_3: ElementBase, two_3: ElementBase, three_3: ElementBase, seqFollowingThree_3: Sequence) = b.possibleNextTerms
+  //    val Seq(four_3: ElementBase) = seqFollowingThree_3.groupMembers
+  //    assertEquals(4, elemsFollowingB.length)
+  //    assertEquals("c", c_3.name)
+  //    assertEquals("two", two_3.name)
+  //    assertEquals("three", three_3.name)
+  //    assertEquals("four", four_3.name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(two_4: ElementBase, three_4: ElementBase, seqFollowingThree_4: Sequence) = c.possibleNextTerms
+  //    val Seq(four_4: ElementBase) = seqFollowingThree_4.groupMembers
+  //    assertEquals(3, elemsFollowingC.length)
+  //    assertEquals("two", two_4.name)
+  //    assertEquals("three", three_4.name)
+  //    assertEquals("four", four_4.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(three_5: ElementBase, seqFollowingThree_5: Sequence) = two.possibleNextTerms
+  //    val Seq(four_5: ElementBase) = seqFollowingThree_5.groupMembers
+  //    assertEquals(2, elemsFollowingTwo.length)
+  //    assertEquals("three", three_5.name)
+  //    assertEquals("four", four_5.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(seqFollowingThree_6: Sequence) = three.possibleNextTerms
+  //    val Seq(four_6: ElementBase) = seqFollowingThree_6.groupMembers
+  //    assertEquals(1, elemsFollowingThree.length)
+  //    assertEquals("four", four_6.name)
+  //
+  //    val elemsFollowingFour = four.possibleNextTerms
+  //    assertEquals(0, elemsFollowingFour.length)
+  //
+  //  }
+
+  //  /**
+  //   * Here we just want to test that we can detect next
+  //   * elements across sequences (unordered).  All elements are 'required'.
+  //   * However, because these are unordered sequences optionality doesn't matter.
+  //   */
+  //  @Test def test_could_be_next_method_11() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence dfdl:sequenceKind="unordered">
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator=",">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(3, elemsFollowingOne.length)
+  //    assertEquals("one", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingOne(2).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(3, elemsFollowingTwo.length)
+  //    assertEquals("one", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingTwo(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingTwo(2).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(3, elemsFollowingThree.length)
+  //    assertEquals("one", elemsFollowingThree(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingThree(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingThree(2).asInstanceOf[ElementBase].name)
+  //  }
+
+  //  /**
+  //   * Unordered Sequences
+  //   *
+  //   * Here the fact that 'three' is optional doesn't matter.  The
+  //   * elements are in an unordered sequence, so any of the elements:
+  //   * one, two or three could be next.
+  //   */
+  //  @Test def test_could_be_next_method_12() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence dfdl:sequenceKind="unordered">
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: ElementBase, two: ElementBase, three: ElementBase) =
+  //      rootCTSeq.groupMembers
+  //
+  //    val elemsFollowingOne = one.possibleNextTerms
+  //    assertEquals(3, elemsFollowingOne.length)
+  //    assertEquals("one", elemsFollowingOne(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingOne(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingOne(2).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    assertEquals(3, elemsFollowingTwo.length)
+  //    assertEquals("one", elemsFollowingTwo(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingTwo(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingTwo(2).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    assertEquals(3, elemsFollowingThree.length)
+  //    assertEquals("one", elemsFollowingThree(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingThree(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingThree(2).asInstanceOf[ElementBase].name)
+  //  }
+
+  //  /**
+  //   * Unordered Sequences
+  //   *
+  //   * Here because 'two', and 'three' are optional...
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one   two, three
+  //   * a     b, c
+  //   * b     a, c
+  //   * c     a, b, one, two, three
+  //   * two   one, three
+  //   * three  one, two
+  //   */
+  //  @Test def test_could_be_next_method_13() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence dfdl:sequenceKind="unordered">
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(one_1: ElementBase, two_1: ElementBase, three_1: ElementBase) = oneCTSeq.possibleNextTerms
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("one", one_1.name)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //
+  //    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    assertEquals(6, elemsFollowingA.length)
+  //    assertEquals("a", elemsFollowingA(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("b", elemsFollowingA(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("c", elemsFollowingA(2).asInstanceOf[ElementBase].name)
+  //    assertEquals("one", elemsFollowingA(3).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingA(4).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingA(5).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    assertEquals(6, elemsFollowingB.length)
+  //    assertEquals("a", elemsFollowingB(0).asInstanceOf[ElementBase].name)
+  //    assertEquals("b", elemsFollowingB(1).asInstanceOf[ElementBase].name)
+  //    assertEquals("c", elemsFollowingB(2).asInstanceOf[ElementBase].name)
+  //    assertEquals("one", elemsFollowingB(3).asInstanceOf[ElementBase].name)
+  //    assertEquals("two", elemsFollowingB(4).asInstanceOf[ElementBase].name)
+  //    assertEquals("three", elemsFollowingB(5).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(a_2: ElementBase, b_2: ElementBase, c_2: ElementBase, one_2: ElementBase, two_2: ElementBase, three_2: ElementBase) = c.possibleNextTerms
+  //    assertEquals(6, elemsFollowingC.length)
+  //    assertEquals("a", a_2.name)
+  //    assertEquals("b", b_2.name)
+  //    assertEquals("c", c_2.name)
+  //    assertEquals("one", one_2.name)
+  //    assertEquals("two", two_2.name)
+  //    assertEquals("three", three_2.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(one_3: ElementBase, two_3: ElementBase, three_3: ElementBase) = two.possibleNextTerms
+  //    assertEquals(3, elemsFollowingTwo.length)
+  //    assertEquals("one", one_3.name)
+  //    assertEquals("two", two_3.name)
+  //    assertEquals("three", three_3.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(one_4: ElementBase, two_4: ElementBase, three_4: ElementBase) = three.possibleNextTerms
+  //    assertEquals(3, elemsFollowingThree.length)
+  //    assertEquals("one", one_4.name)
+  //    assertEquals("two", two_4.name)
+  //    assertEquals("three", three_4.name)
+  //  }
+
+  //  /**
+  //   * Unordered Sequences
+  //   *
+  //   * Here because 'two', and 'three' are optional...
+  //   *
+  //   * name  possibleNextTerms
+  //   * =======================
+  //   * one   two, three
+  //   * a     b
+  //   * b     c
+  //   * c     one, two, three
+  //   * two   one, three
+  //   * three one, two
+  //   */
+  //  @Test def test_could_be_next_method_13_1() {
+  //    val testSchema = SchemaUtils.dfdlTestSchema(
+  //      <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>,
+  //      <dfdl:format ref="tns:GeneralFormat"/>,
+  //      <xs:element name="root">
+  //        <xs:complexType>
+  //          <xs:sequence dfdl:sequenceKind="unordered">
+  //            <xs:element name="one" dfdl:terminator=":">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="ordered">
+  //                  <xs:element name="a" type="xs:string"/>
+  //                  <xs:element name="b" type="xs:string"/>
+  //                  <xs:element name="c" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="two" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="d" type="xs:string"/>
+  //                  <xs:element name="e" type="xs:string"/>
+  //                  <xs:element name="f" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //            <xs:element name="three" dfdl:terminator=":" minOccurs="0" maxOccurs="1">
+  //              <xs:complexType>
+  //                <xs:sequence dfdl:separator="," dfdl:sequenceKind="unordered">
+  //                  <xs:element name="g" type="xs:string"/>
+  //                  <xs:element name="h" type="xs:string"/>
+  //                  <xs:element name="i" type="xs:string"/>
+  //                </xs:sequence>
+  //              </xs:complexType>
+  //            </xs:element>
+  //          </xs:sequence>
+  //        </xs:complexType>
+  //      </xs:element>)
+  //
+  //    val compiler = Compiler()
+  //    val sset = compiler.compileNode(testSchema).sset
+  //    val Seq(schema) = sset.schemas
+  //    val Seq(schemaDoc, _) = schema.schemaDocuments
+  //    val Seq(declf) = schemaDoc.globalElementDecls
+  //    val root = declf.forRoot()
+  //    val rootCT = root.complexType
+  //
+  //    // Verify that nothing follows the root, as it is the root.
+  //    val elemsFollowingRoot = root.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRoot.length)
+  //
+  //    val rootCTSeq = rootCT.sequence //... which is a sequence
+  //
+  //    // Verify that nothing follows the sequence of the root.
+  //    val elemsFollowingRootSeq = rootCTSeq.possibleNextTerms
+  //    assertEquals(0, elemsFollowingRootSeq.length)
+  //
+  //    val Seq(one: LocalElementDecl, two: LocalElementDecl, three: LocalElementDecl) =
+  //      rootCTSeq.groupMembers // has an element and a sub-sequence as its children.
+  //
+  //    val oneCT = one.complexType
+  //    val oneCTSeq = oneCT.sequence
+  //    val elemsFollowingOneCTSeq = oneCTSeq.possibleNextTerms
+  //
+  //    val Seq(one_1: ElementBase, two_1: ElementBase, three_1: ElementBase) = oneCTSeq.possibleNextTerms
+  //    assertEquals(3, elemsFollowingOneCTSeq.length)
+  //    assertEquals("one", one_1.name)
+  //    assertEquals("two", two_1.name)
+  //    assertEquals("three", three_1.name)
+  //
+  //    val Seq(a: LocalElementDecl, b: LocalElementDecl, c: LocalElementDecl) = oneCTSeq.groupMembers
+  //
+  //    val elemsFollowingA = a.possibleNextTerms
+  //    assertEquals(1, elemsFollowingA.length)
+  //    assertEquals("b", elemsFollowingA(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingB = b.possibleNextTerms
+  //    assertEquals(1, elemsFollowingB.length)
+  //    assertEquals("c", elemsFollowingB(0).asInstanceOf[ElementBase].name)
+  //
+  //    val elemsFollowingC = c.possibleNextTerms
+  //    val Seq(one_2: ElementBase, two_2: ElementBase, three_2: ElementBase) = c.possibleNextTerms
+  //    assertEquals(3, elemsFollowingC.length)
+  //    assertEquals("one", one_2.name)
+  //    assertEquals("two", two_2.name)
+  //    assertEquals("three", three_2.name)
+  //
+  //    val elemsFollowingTwo = two.possibleNextTerms
+  //    val Seq(one_3: ElementBase, two_3: ElementBase, three_3: ElementBase) = two.possibleNextTerms
+  //    assertEquals(3, elemsFollowingTwo.length)
+  //    assertEquals("one", one_3.name)
+  //    assertEquals("two", two_3.name)
+  //    assertEquals("three", three_3.name)
+  //
+  //    val elemsFollowingThree = three.possibleNextTerms
+  //    val Seq(one_4: ElementBase, two_4: ElementBase, three_4: ElementBase) = three.possibleNextTerms
+  //    assertEquals(3, elemsFollowingThree.length)
+  //    assertEquals("one", one_4.name)
+  //    assertEquals("two", two_4.name)
+  //    assertEquals("three", three_4.name)
+  //  }
+
 }
diff --git a/daffodil-lib/src/main/scala/org/apache/daffodil/util/Misc.scala b/daffodil-lib/src/main/scala/org/apache/daffodil/util/Misc.scala
index d210c16..fbb01a6 100644
--- a/daffodil-lib/src/main/scala/org/apache/daffodil/util/Misc.scala
+++ b/daffodil-lib/src/main/scala/org/apache/daffodil/util/Misc.scala
@@ -142,15 +142,18 @@ object Misc {
     //    val lines = cp.split(":").toSeq
     //    lines
     val cl = this.getClass().getClassLoader()
-    val urls = cl.asInstanceOf[URLClassLoader].getURLs()
-    urls.toList
+    val urls = cl match {
+      case url: URLClassLoader => url.getURLs().toSeq
+      case _  => Seq.empty
+    }
+    urls
   }
 
   def getRequiredResource(resourcePath: String): URI = {
     getResourceOption(resourcePath) match {
       case (None, resPath) => {
         val msg = "Required resource " + resPath + " was not found.\nClasspath is " +
-          (if (classPath.length == 0) "empty."
+          (if (classPath.length == 0) "unknown."
           else ": " + classPath.mkString("\n"))
         // System.err.println(msg)
         throw new java.io.FileNotFoundException(msg)
diff --git a/daffodil-lib/src/test/scala-debug/.keep b/daffodil-lib/src/test/scala-debug/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-lib/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala b/daffodil-lib/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala
deleted file mode 100644
index b0ab24d..0000000
--- a/daffodil-lib/src/test/scala-debug/org/apache/daffodil/api/TestForMemLeak.scala
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
-* This code commented out because sbt was crashing.
-*
-* It might be useful in the future so we should keep it around like this.
-*/
-//package org.apache.daffodil.api
-//
-//import junit.framework.Assert._
-//import org.junit.Test
-//
-//class Delay(v: => Any) {
-//  lazy val value = { v }
-//}
-//
-//class L {
-//  var list: Seq[Delay] = Nil
-//}
-//
-//class H(l: L) {
-//  def R(a0: => Any): Unit = {
-//    l.list :+= new Delay(a0)
-//  }
-//}
-//
-//class Q(body: => String) {
-//  val wasteSomeMemory = new Array[Byte](500000) // makes the memory leak obvious
-//  def value = body
-//}
-//
-//class TestForMemLeak {
-//
-//  @Test def testLeak() {
-//    1 to 100000 foreach { _ =>
-//      System.gc()
-//      Thread.sleep(10) // lets jvisualvm get a timeslice so it can open the vm quickly
-//      new H(new L) {
-//        (attrib.value)
-//        val attrib = new Q("foobar")
-//      } // Make them, and discard them. 
-//    }
-//  }
-//}
-
diff --git a/daffodil-runtime1-unparser/src/test/scala-debug/.keep b/daffodil-runtime1-unparser/src/test/scala-debug/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-runtime1/src/test/scala-debug/.keep b/daffodil-runtime1/src/test/scala-debug/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-tdml-lib/src/test/resources/test-suite/ibm-contributed/dpaext1.tdml b/daffodil-tdml-lib/src/test/resources/test-suite/ibm-contributed/dpaext1-2.tdml
similarity index 100%
rename from daffodil-tdml-lib/src/test/resources/test-suite/ibm-contributed/dpaext1.tdml
rename to daffodil-tdml-lib/src/test/resources/test-suite/ibm-contributed/dpaext1-2.tdml
diff --git a/daffodil-tdml-lib/src/test/scala-debug/.keep b/daffodil-tdml-lib/src/test/scala-debug/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-tdml-lib/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner3.scala b/daffodil-tdml-lib/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner3.scala
deleted file mode 100644
index 227425c..0000000
--- a/daffodil-tdml-lib/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner3.scala
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.tdml
-
-import org.apache.daffodil.xml.XMLUtils
-import junit.framework.Assert.assertEquals
-import org.apache.daffodil.util._
-import org.junit.Test
-
-class TestTDMLRunner3 {
-
-  val tdml = XMLUtils.TDML_NAMESPACE
-  val dfdl = XMLUtils.DFDL_NAMESPACE
-  val xsi = XMLUtils.XSI_NAMESPACE
-  val xsd = XMLUtils.XSD_NAMESPACE
-  val example = XMLUtils.EXAMPLE_NAMESPACE
-  val tns = example
-
-  /**
-   * Test illustrates problem with multiple document parts having a RTL byte order
-   * not being assembled properly.
-   *
-   * That or the document bitOrder is causing the parts bitOrders to be assembled incorrectly.
-   *
-   * There are many other tests that use RTL byte order to assemble bits together, so it is
-   * something about mixing byteOrder RTL with LTR that is causing the problem.
-   *
-   * Bug DAFFODIL-1898
-   */
-  @Test def testMixedBigEndianMSBFWithLittleEndianLSBF() {
-    val xml = <document bitOrder="MSBFirst" xmlns="http://www.ibm.com/xmlns/dfdl/testData">
-                <documentPart type="byte" bitOrder="MSBFirst" byteOrder="LTR">AA                  </documentPart>
-                <documentPart type="bits" bitOrder="LSBFirst" byteOrder="RTL">XXXX X001</documentPart>
-                <documentPart type="bits" bitOrder="LSBFirst" byteOrder="RTL">1111 1XXX</documentPart>
-                <!-- The above is AAF9 -->
-              </document>
-    val doc = new Document(xml, null)
-    val bytes = doc.documentBytes
-    val hexDigits = Misc.bytes2Hex(bytes)
-    val expected = "AAF9".replace(" ", "")
-    assertEquals(expected, hexDigits)
-  }
-
-}
diff --git a/daffodil-tdml-lib/src/test/scala/org/apache/daffodil/tdml/UnitTestTDMLRunner.scala b/daffodil-tdml-lib/src/test/scala/org/apache/daffodil/tdml/UnitTestTDMLRunner.scala
index a5f8d3f..af39e42 100644
--- a/daffodil-tdml-lib/src/test/scala/org/apache/daffodil/tdml/UnitTestTDMLRunner.scala
+++ b/daffodil-tdml-lib/src/test/scala/org/apache/daffodil/tdml/UnitTestTDMLRunner.scala
@@ -220,7 +220,7 @@ class UnitTestTDMLRunner {
   }
   /////////////////////////////////////////////////////////////////////////////////////////////////////
   @Test def testTDMLResource() {
-    lazy val res = Misc.getRequiredResource("/test-suite/ibm-contributed/dpaext1.tdml")
+    lazy val res = Misc.getRequiredResource("/test-suite/ibm-contributed/dpaext1-2.tdml")
     lazy val ts = new DFDLTestSuite(new File(res))
     val mf = ts.findTDMLResource("./fvt/ext/dpa/dpaspc121_01.dfdl.xsd")
     val file = new File(mf.get)
diff --git a/daffodil-tdml-processor/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner4.scala b/daffodil-tdml-processor/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner4.scala
deleted file mode 100644
index 4ef32b3..0000000
--- a/daffodil-tdml-processor/src/test/scala-debug/org/apache/daffodil/tdml/TestTDMLRunner4.scala
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.tdml
-
-import org.apache.daffodil.util._
-import org.junit.Test
-
-class TestTDMLRunner4 {
-
-  val testDir = "/test/tdml/"
-  val runner = Runner(testDir, "tdmlQuoting.tdml", validateTDMLFile = false)
-
-  /**
-   * Test illustrates problem with tdml runner correctly processes apostrophes (')
-   * in the html format (&apos;) within the document or infoset data. The aposrophes are
-   * stripped out of actual or expected values causing the comparison to fail.
-   *
-   * Bug DAFFODIL-1928
-   */
-  @Test def test_apos_test1() { runner.runOneTest("apos_test1") }
-  @Test def test_apos_test2() { runner.runOneTest("apos_test2") }
-
-}
diff --git a/daffodil-tdml-processor/src/test/scala/org/apache/daffodil/tdml/TestTDMLRunner.scala b/daffodil-tdml-processor/src/test/scala/org/apache/daffodil/tdml/TestTDMLRunner.scala
index 9c0b18a..aafba86 100644
--- a/daffodil-tdml-processor/src/test/scala/org/apache/daffodil/tdml/TestTDMLRunner.scala
+++ b/daffodil-tdml-processor/src/test/scala/org/apache/daffodil/tdml/TestTDMLRunner.scala
@@ -689,4 +689,29 @@ f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
     assertTrue(msg.contains("1995-03-24T01:30:00+00:00"))
   }
 
+  /**
+   * Test illustrates problem with multiple document parts having a RTL byte order
+   * not being assembled properly.
+   *
+   * That or the document bitOrder is causing the parts bitOrders to be assembled incorrectly.
+   *
+   * There are many other tests that use RTL byte order to assemble bits together, so it is
+   * something about mixing byteOrder RTL with LTR that is causing the problem.
+   *
+   * Bug DAFFODIL-1898
+   */
+  //  @Test def testMixedBigEndianMSBFWithLittleEndianLSBF() {
+  //    val xml = <document bitOrder="MSBFirst" xmlns="http://www.ibm.com/xmlns/dfdl/testData">
+  //                <documentPart type="byte" bitOrder="MSBFirst" byteOrder="LTR">AA                  </documentPart>
+  //                <documentPart type="bits" bitOrder="LSBFirst" byteOrder="RTL">XXXX X001</documentPart>
+  //                <documentPart type="bits" bitOrder="LSBFirst" byteOrder="RTL">1111 1XXX</documentPart>
+  //                <!-- The above is AAF9 -->
+  //              </document>
+  //    val doc = new Document(xml, null)
+  //    val bytes = doc.documentBytes
+  //    val hexDigits = Misc.bytes2Hex(bytes)
+  //    val expected = "AAF9".replace(" ", "")
+  //    assertEquals(expected, hexDigits)
+  //  }
+
 }
diff --git a/daffodil-test-ibm1/src/main/scala-debug/org/apache/daffodil/.keep b/daffodil-test-ibm1/src/main/scala-debug/org/apache/daffodil/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/.keep b/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/IBMTests2.scala b/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/IBMTests2.scala
deleted file mode 100644
index f40b68e..0000000
--- a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/IBMTests2.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil
-
-import org.junit.Test
-import org.apache.daffodil.tdml.DFDLTestSuite
-import org.apache.daffodil.util.Misc
-import org.junit.Test
-
-class IBMTestsThatFail {
-
-  val testDir = "/test-suite/ibm-contributed/"
-  val tdml1 = testDir + "dpaext1.tdml"
-  val tdml2 = testDir + "dpaext2.tdml"
-  lazy val runner1 = new DFDLTestSuite(Misc.getRequiredResource(tdml1))
-  lazy val runner2 = new DFDLTestSuite(Misc.getRequiredResource(tdml2))
-
-  // DAFFODIL-1541 Need support for handling delimited data with encoding other than ISO-8859-1
-  @Test def test_length_delimited_12_05() { runner1.runOneTest("length_delimited_12_05") }
-
-  // DAFFODIL-853 text number advanced props (V Symbol)
-  @Test def test_simple_type_properties_text_number_13_01() { runner2.runOneTest("simple_type_properties_text_number_13_01") }
-
-  // DAFFODIL-840 textStandardBase (base 16)
-  @Test def test_simple_type_properties_text_number_13_03() { runner2.runOneTest("simple_type_properties_text_number_13_03") }
-
-  // DAFFODIL-551 Needs dfdl:utf16Width='variable' implementation
-  @Test def test_syntax_entities_6_03() { runner1.runOneTest("syntax_entities_6_03") }
-}
diff --git a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests.scala b/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests.scala
deleted file mode 100644
index 67a6523..0000000
--- a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests.scala
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil
-
-import org.junit.Test
-import org.apache.daffodil.tdml.DFDLTestSuite
-import org.apache.daffodil.util.Misc
-
-class TresysTestsDebug {
-
-  // Debug Template
-  // @Test def test_name() = Debugger.withDebugger {
-  // LoggingDefaults.setLoggingLevel(LogLevel.Debug)
-  // runner.runOneTest("test_name")
-  // }
-
-  val testDir = "/test-suite/tresys-contributed/"
-
-  // Jira DFDL-1392 - Issue with escapeEscape character that is first and precedes an escape-block start.
-  // Is being removed, but should be preserved as it does not precede an escape character, nor an escape block end.
-  val ba = testDir + "BA.tdml"
-  lazy val runnerBA = new DFDLTestSuite(Misc.getRequiredResource(ba))
-  @Test def test_BA000() { runnerBA.runOneTest("BA000") } // escape schemes and delimiters
-
-}
diff --git a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests2.scala b/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests2.scala
deleted file mode 100644
index 771b334..0000000
--- a/daffodil-test-ibm1/src/test/scala-debug/org/apache/daffodil/TresysTests2.scala
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil
-
-import org.apache.daffodil.util.Misc
-import org.junit.Test
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-class TresysTests2 {
-  val testDir = "/test-suite/tresys-contributed/"
-
-  // This test passes now. Left this here to cut/paste for running other tests.
-  //  val ai = testDir + "AI.tdml"
-  //  lazy val runnerAI = new DFDLTestSuite(Misc.getRequiredResource(ai))
-  //
-  //  @Test def test_AI000() { runnerAI.runOneTest("AI000") }
-
-  //  lazy val runnerMB = new DFDLTestSuite(Misc.getRequiredResource(testDir + "mixed-binary-text.tdml"))
-  //
-  //  @Test def test_codingErrorAction() { runnerMB.runOneTest("codingErrorAction") }
-
-  //  val ab = testDir + "ABLargeData.tdml.dat"
-  //  lazy val runnerAB = new DFDLTestSuite(Misc.getRequiredResource(ab))
-  // Too slow to use in regression. So slow it's a bug.
-
-  val ap = testDir + "AP.tdml"
-  lazy val runnerAP = new DFDLTestSuite(Misc.getRequiredResource(ap))
-  @Test def test_AP000() { runnerAP.runOneTest("AP000") } // lengthKind endOfParent
-
-  val at = testDir + "AT.tdml"
-  lazy val runnerAT = new DFDLTestSuite(Misc.getRequiredResource(at))
-  @Test def test_AT000() { runnerAT.runOneTest("AT000") } // needs newVariableInstance
-  @Test def test_AT001() { runnerAT.runOneTest("AT001") } // needs newVariableInstance
-
-  val bb = testDir + "BB.tdml"
-  lazy val runnerBB = new DFDLTestSuite(Misc.getRequiredResource(bb))
-  @Test def test_BB000() { runnerBB.runOneTest("BB000") } // occursCountKind stopValue
-
-  val be = testDir + "BE.tdml"
-  lazy val runnerBE = new DFDLTestSuite(Misc.getRequiredResource(be))
-  //DFDL-1010
-  @Test def test_BE000() { runnerBE.runOneTest("BE000") } // unordered sequences
-  @Test def test_BE001() { runnerBE.runOneTest("BE001") }
-
-  val bf = testDir + "BF.tdml"
-  lazy val runnerBF1 = new DFDLTestSuite(Misc.getRequiredResource(bf))
-  //DFDL-1010
-  @Test def test_BF000() { runnerBF1.runOneTest("BF000") } // unordered sequences
-  @Test def test_BF001() { runnerBF1.runOneTest("BF001") }
-
-  val bg = testDir + "BG.tdml"
-  lazy val runnerBG = new DFDLTestSuite(Misc.getRequiredResource(bg))
-  @Test def test_BG000() { runnerBG.runOneTest("BG000") } // needs text numbers: advanced properties (DFDL-452)
-
-  val sq = testDir + "sequence.tdml"
-  lazy val runnerSQ = new DFDLTestSuite(Misc.getRequiredResource(sq))
-  @Test def test_seq1() { runnerSQ.runOneTest("seq1") }
-
-  lazy val runnerMB = new DFDLTestSuite(Misc.getRequiredResource(testDir + "mixed-binary-text.tdml"))
-
-  // DFDL-935
-  @Test def test_t1() { runnerMB.runOneTest("t1") }
-  @Test def test_t2() { runnerMB.runOneTest("t2") }
-  @Test def test_t3() { runnerMB.runOneTest("t3") }
-  @Test def test_encodingErrorPolicy_error() { runnerMB.runOneTest("encodingErrorPolicy_error") }
-}
diff --git a/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/IBMTests.scala b/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/IBMTests.scala
index f5ac34c..adfb500 100644
--- a/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/IBMTests.scala
+++ b/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/IBMTests.scala
@@ -88,4 +88,16 @@ class IBMTestsThatPass {
   @Test def test_sequences_separated_14_08() { runner2.runOneTest("sequences_separated_14_08") }
 
   @Test def test_delimiter_12_02() { runner1.runOneTest("delimiter_12_02") }
+  
+  // DAFFODIL-1541 Need support for handling delimited data with encoding other than ISO-8859-1
+  //@Test def test_length_delimited_12_05() { runner1.runOneTest("length_delimited_12_05") }
+
+  // DAFFODIL-853 text number advanced props (V Symbol)
+  //@Test def test_simple_type_properties_text_number_13_01() { runner2.runOneTest("simple_type_properties_text_number_13_01") }
+
+  // DAFFODIL-840 textStandardBase (base 16)
+  //@Test def test_simple_type_properties_text_number_13_03() { runner2.runOneTest("simple_type_properties_text_number_13_03") }
+
+  // DAFFODIL-551 Needs dfdl:utf16Width='variable' implementation
+  //@Test def test_syntax_entities_6_03() { runner1.runOneTest("syntax_entities_6_03") }
 }
diff --git a/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/TresysTests.scala b/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/TresysTests.scala
index 1e48eae..7b5ff21 100644
--- a/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/TresysTests.scala
+++ b/daffodil-test-ibm1/src/test/scala/org/apache/daffodil/TresysTests.scala
@@ -36,7 +36,22 @@ object TresysTests {
 
   lazy val runnerMD = Runner(testDir, "multiple-diagnostics.tdml", compileAllTopLevel = true)
   lazy val runnerMD_NV = Runner(testDir, "multiple-diagnostics.tdml", compileAllTopLevel = true, validateDFDLSchemas = false)
-
+  
+  val bb = testDir + "BB.tdml"
+  lazy val runnerBB = new DFDLTestSuite(Misc.getRequiredResource(bb))
+  val be = testDir + "BE.tdml"
+  lazy val runnerBE = new DFDLTestSuite(Misc.getRequiredResource(be))
+  val bf = testDir + "BF.tdml"
+  lazy val runnerBF1 = new DFDLTestSuite(Misc.getRequiredResource(bf))
+  val bg = testDir + "BG.tdml"
+  lazy val runnerBG = new DFDLTestSuite(Misc.getRequiredResource(bg))
+  val mb = testDir + "mixed-binary-text.tdml"
+  lazy val runnerMB = new DFDLTestSuite(Misc.getRequiredResource(mb))
+
+  val ap = testDir + "AP.tdml"
+  lazy val runnerAP = new DFDLTestSuite(Misc.getRequiredResource(ap))
+  val at = testDir + "AT.tdml"
+  lazy val runnerAT = new DFDLTestSuite(Misc.getRequiredResource(at))
   val ax = testDir + "AX.tdml"
   lazy val runnerAX = new DFDLTestSuite(Misc.getRequiredResource(ax))
   val av0 = testDir + "AV000.tdml"
@@ -50,6 +65,7 @@ object TresysTests {
   val nsd = testDir + "nested-separator-delimited.tdml"
   lazy val runnerNSD = new DFDLTestSuite(Misc.getRequiredResource(nsd))
 
+
   /* Very big test data files, so each is in its own TDML file */
 
   //  val ab7 = testDir + "ABLargeData.tdml.dat"
@@ -64,7 +80,6 @@ object TresysTests {
   val sq = testDir + "sequence.tdml"
   lazy val runnerSQ = new DFDLTestSuite(Misc.getRequiredResource(sq))
 
-  lazy val runnerMB = new DFDLTestSuite(Misc.getRequiredResource(testDir + "mixed-binary-text.tdml"))
   lazy val runnerNG = new DFDLTestSuite(Misc.getRequiredResource(testDir + "nested_group_ref.tdml"))
   val af = testDir + "AF.tdml"
   lazy val runnerAF = new DFDLTestSuite(Misc.getRequiredResource(af))
@@ -80,11 +95,13 @@ object TresysTests {
   val az = testDir + "AZ.tdml"
   lazy val runnerAZ = new DFDLTestSuite(Misc.getRequiredResource(az))
 
-  //  val ba = testDir + "BA.tdml"
-  //  lazy val runnerBA = new DFDLTestSuite(Misc.getRequiredResource(ba))
+  val ba = testDir + "BA.tdml"
+  lazy val runnerBA = new DFDLTestSuite(Misc.getRequiredResource(ba))
 
-  lazy val runnerBC = Runner(testDir, "BC.tdml")
-  lazy val runnerBD = Runner(testDir, "BD.tdml")
+  val bc = testDir + "BC.tdml"
+  lazy val runnerBC = Runner(testDir, bc)
+  val bd = testDir + "BD.tdml"
+  lazy val runnerBD = Runner(testDir, bd)
 }
 
 class TresysTests {
@@ -158,9 +175,35 @@ class TresysTests {
 
   @Test def test_AZ000() { runnerAZ.runOneTest("AZ000") } // escape schemes
 
-  // Jira DFDL-1392
-  //  @Test def test_BA000() { runnerBA.runOneTest("BA000") } // escape schemes and delimiters
+  // Jira DFDL-1392 - Issue with escapeEscape character that is first and precedes an escape-block start.
+  // Is being removed, but should be preserved as it does not precede an escape character, nor an escape block end.
+  //@Test def test_BA000() { runnerBA.runOneTest("BA000") } // escape schemes and delimiters
+  //@Test def test_BB000() { runnerBB.runOneTest("BB000") } // occursCountKind stopValue
+
+  //DFDL-1010
+  //@Test def test_BE000() { runnerBE.runOneTest("BE000") } // unordered sequences
+  //@Test def test_BE001() { runnerBE.runOneTest("BE001") }
+
+  //DFDL-1010
+  //@Test def test_BF000() { runnerBF1.runOneTest("BF000") } // unordered sequences
+  //@Test def test_BF001() { runnerBF1.runOneTest("BF001") }
+
+  //@Test def test_BG000() { runnerBG.runOneTest("BG000") } // needs text numbers: advanced properties (DFDL-452)
+
+  //@Test def test_BC000() { runnerBC.runOneTest("BC000") } // text boolean type
+  //@Test def test_BD000() { runnerBD.runOneTest("BD000") } // binary boolean type
+
+  //@Test def test_AP000() { runnerAP.runOneTest("AP000") } // lengthKind endOfParent
+
+  //@Test def test_AT000() { runnerAT.runOneTest("AT000") } // needs newVariableInstance
+  //@Test def test_AT001() { runnerAT.runOneTest("AT001") } // needs newVariableInstance
+
+  //@Test def test_seq1() { runnerSQ.runOneTest("seq1") }
+
+  // DFDL-935
+  //@Test def test_t1() { runnerMB.runOneTest("t1") }
+  //@Test def test_t2() { runnerMB.runOneTest("t2") }
+  //@Test def test_t3() { runnerMB.runOneTest("t3") }
+  //@Test def test_encodingErrorPolicy_error() { runnerMB.runOneTest("encodingErrorPolicy_error") }
 
-  @Test def test_BC000() { runnerBC.runOneTest("BC000") } // text boolean type
-  @Test def test_BD000() { runnerBD.runOneTest("BD000") } // binary boolean type
 }
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section00/general/TestUnparserGeneralDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section00/general/TestUnparserGeneralDebug.scala
deleted file mode 100644
index 7839e64..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section00/general/TestUnparserGeneralDebug.scala
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section00.general
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestUnparserGeneralDebug {
-  val testDir = "/org/apache/daffodil/section00/general/"
-  val runner = Runner(testDir, "testUnparserGeneral.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-}
-
-class TestUnparserGeneralDebug {
-
-  import TestUnparserGeneralDebug._
-
-  //DFDL-1420
-  @Test def test_apostrophe_01() { runner.runOneTest("apostrophe_01") }
-
-  //DFDL-1395
-  @Test def test_puaInfosetChars_03() { runner.runOneTest("puaInfosetChars_03") }
-  @Test def test_puaInfosetChars_04() { runner.runOneTest("puaInfosetChars_04") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/processing_errors/TestProcessingErrors.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/processing_errors/TestProcessingErrors.scala
deleted file mode 100644
index f864dc6..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/processing_errors/TestProcessingErrors.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section02.processing_errors
-
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-import org.junit.AfterClass
-import org.apache.daffodil.tdml.Runner
-
-object TestProcessingErrorsDebug {
-  val testDir = "/org/apache/daffodil/section02/processing_errors/"
-  val aa = testDir + "dfdl-schema-validation-diagnostics.tdml"
-  var runner = new DFDLTestSuite(Misc.getRequiredResource(aa), validateTDMLFile = false, validateDFDLSchemas = false)
-
-  val runner02 = Runner(testDir, "ProcessingErrors.tdml", validateTDMLFile = false, validateDFDLSchemas = false)
-  val runner02Validate = Runner(testDir, "ProcessingErrors.tdml", validateTDMLFile = true, validateDFDLSchemas = true)
-
-  @AfterClass def shutDown {
-    runner = null
-    runner02.reset
-    runner02Validate.reset
-  }
-
-}
-
-class TestProcessingErrorsDebug {
-
-  import TestProcessingErrorsDebug._
-
-  @Test def test_delimiterNotFound01() { runner02.runOneTest("delimiterNotFound01") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/validation_errors/TestValidationErrDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/validation_errors/TestValidationErrDebug.scala
deleted file mode 100644
index 1af5104..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section02/validation_errors/TestValidationErrDebug.scala
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section02.validation_errors
-
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-class TestValidationErrDebug {
-  val testDir = "/org/apache/daffodil/section02/validation_errors/"
-  val aa = testDir + "Validation.tdml"
-  lazy val runner = new DFDLTestSuite(Misc.getRequiredResource(aa))
-
-  // DFDL-903
-  @Test def test_choice_errorNotSuppressed_validationErrorCheck() { runner.runOneTest("choice_errorNotSuppressed_validationErrorCheck") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesDebug.scala
deleted file mode 100644
index a2ea14a..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesDebug.scala
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section05.simple_types
-
-import junit.framework.Assert._
-import org.junit.Test
-import org.apache.daffodil.Implicits._
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestSimpleTypesDebug {
-
-  val testDir = "/org/apache/daffodil/section05/simple_types/"
-
-  val runner = Runner(testDir, "SimpleTypes.tdml")
-  val runnerAL = Runner(testDir, "AL.tdml")
-  val runner2 = Runner(testDir, "WhiteSpace.tdml")
-  val runnerAJ = Runner(testDir, "AJ.tdml")
-  val runnerAK = Runner(testDir, "AK.tdml")
-  val runner1 = Runner(testDir, "BitOrder.tdml")
-  val runnerST = Runner(testDir, "simple-type-bases.tdml")
-  val runner3 = Runner(testDir, "BitOrderInvalid.tdml")
-
-  @AfterClass def shutDown() {
-    runner.reset
-    runnerAL.reset
-    runner2.reset
-    runnerAJ.reset
-    runnerAK.reset
-    runner1.reset
-    runnerST.reset
-  }
-}
-
-class TestSimpleTypesDebug {
-
-  import TestSimpleTypesDebug._
-
-  @Test def test_warning_exercise() {
-    val exc = intercept[Exception] {
-      runner.runOneTest("warning_exercise")
-    }
-    assertTrue(exc.getMessage().contains("Did not find"))
-  }
-
-  //////////////////////// DFDL-529 /////////////////////////////
-
-  @Test def test_dateCalendarCenturyStart() { runner.runOneTest("dateCalendarCenturyStart") }
-  @Test def test_dateCalendarCenturyStart2() { runner.runOneTest("dateCalendarCenturyStart2") }
-
-  //////////////////////// DFDL-845 ////////////////////////////
-
-  @Test def test_whiteSpaceDuringValidShort() { runner.runOneTest("whiteSpaceDuringValidShort") }
-  @Test def test_whiteSpaceDuringValidInteger() { runner.runOneTest("whiteSpaceDuringValidInteger") }
-  @Test def test_whiteSpaceDuringValidUnsignedLong() { runner.runOneTest("whiteSpaceDuringValidUnsignedLong") }
-  @Test def test_whiteSpaceDuringValidUnsignedShort() { runner.runOneTest("whiteSpaceDuringValidUnsignedShort") }
-  @Test def test_whiteSpaceDuringValidUnsignedByte() { runner.runOneTest("whiteSpaceDuringValidUnsignedByte") }
-  @Test def test_whiteSpaceDuringValidUnsignedInt() { runner.runOneTest("whiteSpaceDuringValidUnsignedInt") }
-  @Test def test_whiteSpaceDuringValidInt() { runner.runOneTest("whiteSpaceDuringValidInt") }
-  @Test def test_whiteSpaceDuringValidLong() { runner.runOneTest("whiteSpaceDuringValidLong") }
-  @Test def test_whiteSpaceDuringValidByte() { runner.runOneTest("whiteSpaceDuringValidByte") }
-
-  /////////////////////// DFDL-1042 /////////////////////////////////////////////
-
-  @Test def test_dateStrictCheckPolicy01() { runner.runOneTest("dateStrictCheckPolicy01") }
-  @Test def test_timeStrictCheckPolicy01() { runner.runOneTest("timeStrictCheckPolicy01") }
-  @Test def test_timeStrictCheckPolicy02() { runner.runOneTest("timeStrictCheckPolicy02") }
-  @Test def test_timeFormatting5() { runner.runOneTest("timeFormatting5") }
-
-  ///////////////////////////////////////////////////////////////////////////////////
-
-  @Test def test_posinteger_binary_01() { runner.runOneTest("nonNegInt_binary_01") }
-
-  @Test def test_whiteSpaceAfterLax() { runner2.runOneTest("whiteSpaceAfterLax") }
-  @Test def test_redefinedFormat() { runner2.runOneTest("redefinedFormat") }
-
-  @Test def test_bitOrderChange() { runner1.runOneTest("bitOrderChange") }
-  @Test def test_bitOrderDocument() { runner1.runOneTest("bitOrderDocument") }
-  @Test def test_bitOrderTypeByte() { runner1.runOneTest("bitOrderTypeByte") }
-  @Test def test_bitOrderChangeInvalid3() { runner1.runOneTest("bitOrderChangeInvalid3") }
-
-  @Test def test_bitOrderChangeInvalid() { runner3.runOneTest("bitOrderChangeInvalid") }
-
-  //////////////////////// DAFFODIL-1945 /////////////////////////////
-  @Test def test_dateCalendarDaysInFirstWeek3() { runner.runOneTest("dateCalendarDaysInFirstWeek3") }
-  @Test def test_dateCalendarDaysInFirstWeek5() { runner.runOneTest("dateCalendarDaysInFirstWeek5") }
-
-  @Test def test_dateCalendarFirstDayOfWeek03() { runner.runOneTest("dateCalendarFirstDayOfWeek03") }
-  @Test def test_dateCalendarFirstDayOfWeek04() { runner.runOneTest("dateCalendarFirstDayOfWeek04") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesUnparseDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesUnparseDebug.scala
deleted file mode 100644
index 65523a3..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section05/simple_types/TestSimpleTypesUnparseDebug.scala
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section05.simple_types
-
-import org.apache.daffodil.tdml.Runner
-import org.junit._
-
-object TestSimpleTypesUnparseDebug {
-
-  val testDir = "/org/apache/daffodil/section05/simple_types/"
-
-  val runner = Runner(testDir, "SimpleTypesUnparse.tdml")
-
-  @AfterClass def shutDown() {
-    runner.reset
-  }
-}
-
-class TestSimpleTypesUnparseDebug {
-  import TestSimpleTypesUnparseDebug._
- 
-  //DFDL-1454
-  //dfdl:hexBinary not behaving like xs:hexBinary 
-  @Test def test_hexBinary_unparse_13() { runner.runOneTest("hexBinary_unparse_13") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/entities/TestEntitiesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/entities/TestEntitiesDebug.scala
deleted file mode 100644
index 504c012..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/entities/TestEntitiesDebug.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section06.entities
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestEntitiesDebug {
-  private val testDir = "/org/apache/daffodil/section06/entities/"
-
-  val runner = Runner(testDir, "charClassEntities.tdml")
-  val runner_01 = Runner(testDir, "Entities.tdml")
-  val runnerEntity = Runner(testDir, "entities_01.tdml")
-  val runnerInvalid = Runner(testDir, "InvalidEntities.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runner_01.reset
-    runnerEntity.reset
-    runnerInvalid.reset
-  }
-}
-
-class TestEntitiesDebug {
-
-  import TestEntitiesDebug._
-
-  // DFDL-378
-  @Test def test_dataDumpEncoding() { runner_01.runOneTest("dataDumpEncoding") }
-
-  // JIRA DFDL-1400 - separator in different encoding than terms being separated.
-  @Test def test_text_entities_6_03b() { runner_01.runOneTest("text_entities_6_03b") }
-
-  //DFDL-258 - raw byte entities
-  @Test def test_byte_entities_6_10() { runner_01.runOneTest("byte_entities_6_10") }
-
-  // Regression - we used to just reject %ES; in terminators. Now we accept it, but it doesn't work
-  // right. JIRA DFDL-1477
-   @Test def test_entity_fail_03() { runnerEntity.runOneTest("entity_fail_03") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/namespaces/TestNamespacesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/namespaces/TestNamespacesDebug.scala
deleted file mode 100644
index f4b819d..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section06/namespaces/TestNamespacesDebug.scala
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section06.namespaces
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestNamespacesDebug {
-  val testDir = "/org/apache/daffodil/section06/namespaces/"
-
-  val runner = Runner(testDir, "namespaces.tdml", validateTDMLFile = true, validateDFDLSchemas = false)
-  val runner2 = Runner(testDir, "multiFile.tdml", validateTDMLFile = false, validateDFDLSchemas = false)
-  val runner3 = Runner(testDir, "includeImport.tdml")
-  val runnerWithSchemaValidation = Runner(testDir, "multiFile.tdml", validateTDMLFile = true, validateDFDLSchemas = true)
-
-  @AfterClass def shutDown {
-    runner.reset
-    runner2.reset
-    runner3.reset
-    runnerWithSchemaValidation.reset
-  }
-}
-
-class TestNamespacesDebug {
-
-  import TestNamespacesDebug._
-
-  @Test def test_multi_encoding_04() { runner.runOneTest("multi_encoding_04") }
-  @Test def test_multi_encoding_05() { runner.runOneTest("multi_encoding_05") }
-  @Test def test_indexOutOfBounds_01() { runner.runOneTest("indexOutOfBounds_01") }
-
-  // DFDL-1204 - this test no longer works. New loader won't accept character U+00B7 as a character
-  // in a prefix name.
-  @Test def test_namespaceSpecialChars() { runner.runOneTest("namespaceSpecialChars") }
-
-  // DFDL-1663
-  @Test def test_namespaceLimitParse() { runner.runOneTest("namespaceLimitParse") }
-  @Test def test_namespaceLimitUnparse() { runner.runOneTest("namespaceLimitUnparse") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/assertions/TestAssertionsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/assertions/TestAssertionsDebug.scala
deleted file mode 100644
index ada7304..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/assertions/TestAssertionsDebug.scala
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section07.assertions
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestAssertionsDebug {
-  val testDir = "/org/apache/daffodil/section07/assertions/"
-  val runner = Runner(testDir, "assert.tdml", validateTDMLFile = false)
-
-  @AfterClass def tearDown {
-    runner.reset
-  }
-
-}
-
-class TestAssertionsDebug {
-
-  import TestAssertionsDebug._
-
-  //DFDL-474
-  @Test def test_assertExpressionEmpty() { runner.runOneTest("assertExpressionEmpty") }
-
-  // DFDL-1043
-  @Test def test_assertFailShowsValue2() { runner.runOneTest("assertFailShowsValue2") }
-  
-  //DFDL-1210: This test should be removed, an assert failing will no longer show the value
-  @Test def test_assertFailShowsValue() { runner.runOneTest("assertFailShowsValue") }
-
-  //DFDL-2001
-  @Test def test_testPatternX() { runner.runOneTest("testPatternX") }
-  @Test def test_testPatternUnicode() { runner.runOneTest("testPatternUnicode") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/defineFormat/defineFormatTestsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/defineFormat/defineFormatTestsDebug.scala
deleted file mode 100644
index 3a4d294..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/defineFormat/defineFormatTestsDebug.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section07.defineFormat
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object defineFormatTestsDebug {
-  val testDir = "/org/apache/daffodil/section07/defineFormat/"
-  val runner = Runner(testDir, "defineFormat.tdml")
-
-  @AfterClass def tearDown() {
-    runner.reset
-  }
-
-}
-
-class defineFormatTestsDebug {
-
-  import defineFormatTestsDebug._
-
-  //DFDL-1276
-  @Test def test_format_with_comment() { runner.runOneTest("format_with_comment") }
-
-  //DFDL-478
-  @Test def test_nameCollision() { runner.runOneTest("nameCollision") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/discriminators/TestDiscriminators3.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/discriminators/TestDiscriminators3.scala
deleted file mode 100644
index c913451..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/discriminators/TestDiscriminators3.scala
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section07.discriminators
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestDiscriminators3 {
-  val testDir = "/org/apache/daffodil/section07/discriminators/"
-  val runner = Runner(testDir, "discriminator.tdml")
-
-  @AfterClass def shutDown() {
-    runner.reset
-  }
-
-}
-
-class TestDiscriminators3 {
-
-  import TestDiscriminators3._
-
-  // DAFFODIL-1971
-  @Test def test_discrimExpression_04() = { runner.runOneTest("discrimExpression_04") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/escapeScheme/TestEscapeSchemeDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/escapeScheme/TestEscapeSchemeDebug.scala
deleted file mode 100644
index 7cf4b27..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/escapeScheme/TestEscapeSchemeDebug.scala
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section07.escapeScheme
-
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestEscapeSchemeDebug {
-  val testDir = "/org/apache/daffodil/section07/escapeScheme/"
-  val runner = Runner(testDir, "escapeScheme.tdml", validateTDMLFile = false)
-  val runnerNeg = Runner(testDir, "escapeSchemeNeg.tdml", validateTDMLFile = false)
-  val runner2 = Runner(testDir, "escapeScenarios.tdml", validateTDMLFile = false)
-
-  @AfterClass def shutDown() {
-    runner.reset
-    runnerNeg.reset
-    runner2.reset
-  }
-}
-
-class TestEscapeSchemeDebug {
-
-  import TestEscapeSchemeDebug._
-
-  @Test def test_escapeSchemeNonUnique() { runner.runOneTest("escapeSchemeNonUnique") }
-
-  val bb = testDir + "escapeScenarios.tdml"
-  lazy val runner2 = new DFDLTestSuite(Misc.getRequiredResource(bb), validateTDMLFile = false)
-
-  //DFDL-961
-  @Test def test_scenario3_11_postfix() { runner2.runOneTest("scenario3_11_postfix") }
-
-  @Test def test_escBlkMultipleEEC() { runner.runOneTest("escBlkMultipleEEC") } // DAFFODIL-1972
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/variables/TestVariablesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/variables/TestVariablesDebug.scala
deleted file mode 100644
index 588d819..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section07/variables/TestVariablesDebug.scala
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section07.variables
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestVariablesDebug {
-  val testDir = "/org/apache/daffodil/section07/variables/"
-  val runner = Runner(testDir, "variables.tdml")
-  val runner_01 = Runner(testDir, "variables_01.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runner_01.reset
-  }
-
-}
-
-class TestVariablesDebug {
-
-  import TestVariablesDebug._
-
-  @Test def test_varInstance() { runner.runOneTest("varInstance") }
-
-  // DFDL-1443 & DFDL-1448 - workaround for too-early variable evaluation
-  @Test def test_setAfterReadErr_d() { runner_01.runOneTest("setAfterReadErr_d") }
-  @Test def test_setAfterReadErr() { runner.runOneTest("setAfterReadErr") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section08/property_scoping/TestPropertyScopingDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section08/property_scoping/TestPropertyScopingDebug.scala
deleted file mode 100644
index 05e80b8..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section08/property_scoping/TestPropertyScopingDebug.scala
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section08.property_scoping
-
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestPropertyScopingDebug {
-  val testDir = "/org/apache/daffodil/section08/property_scoping/"
-  val runner = Runner(testDir, "PropertyScoping.tdml")
-  val runner_01 = Runner(testDir, "PropertyScoping_01.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runner_01.reset
-  }
-}
-
-class TestPropertyScopingDebug {
-
-  import TestPropertyScopingDebug._
-
-  //DFDL-1036 (was fixed) now DFDL-1159
-  @Test def test_localAnnotation_05() { runner.runOneTest("localAnnotation_05") }
-
-  val tdml = testDir + "PropertyScoping_01.tdml"
-  lazy val runner_01 = new DFDLTestSuite(Misc.getRequiredResource(tdml))
-
-  // See DFDL-1337
-  @Test def test_unparse_property_scoping_02() { runner_01.runOneTest("unparse_property_scoping_02") }
-  // See DFDL-1342
-  @Test def test_unparse_property_scoping_04() { runner_01.runOneTest("unparse_property_scoping_04") }
-  @Test def test_unparse_property_scoping_05() { runner_01.runOneTest("unparse_property_scoping_05") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section11/content_framing_properties/TestContentFramingPropertiesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section11/content_framing_properties/TestContentFramingPropertiesDebug.scala
deleted file mode 100644
index 7764756..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section11/content_framing_properties/TestContentFramingPropertiesDebug.scala
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section11.content_framing_properties
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestContentFramingPropertiesDebug {
-
-  private val testDir_02 = "/org/apache/daffodil/section11/content_framing_properties/"
-  lazy val runner2 = Runner(testDir_02, "ContentFramingProps.tdml")
-
-  @AfterClass def shutdown {
-    runner2.reset
-  }
-}
-
-class TestContentFramingPropertiesDebug {
-
-  import TestContentFramingPropertiesDebug._
-
-  //  DFDL-751 - 7-bit ASCII alignment should be 1 bit, complains that it needs to be 8 bits
-  @Test def test_alignmentPacked7BitASCII_02() { runner2.runOneTest("alignmentPacked7BitASCII_02") }
-  @Test def test_alignmentPacked7BitASCII_05() { runner2.runOneTest("alignmentPacked7BitASCII_05") }
-
-  // Implementing DFDL-951 caused regression - see DFDL-965
-  @Test def test_xml_utf8_4byte_chars() { runner2.runOneTest("xml_utf8_4byte_chars") }
-  @Test def test_xml_utf8_4byte_chars_01() { runner2.runOneTest("xml_utf8_4byte_chars_01") }
-
-  // JIRA Ticket DFDL-1386 - 4-byte utf-8 characters/surrogate-pair issue.
-  @Test def test_encodingNoError() { runner2.runOneTest("encodingNoError") }
-
-  // DFDL-935 to re-enable, needs encodingErrorPolicy="error"
-  @Test def test_packed7BitASCII_unparse3() { runner2.runOneTest("packed7BitASCII_unparse3") }
-  @Test def test_octalLSBF_unparse_error() { runner2.runOneTest("octalLSBF_unparse_error") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/aligned_data/TestAlignedDataDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/aligned_data/TestAlignedDataDebug.scala
deleted file mode 100644
index 6c44e41..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/aligned_data/TestAlignedDataDebug.scala
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.aligned_data
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestAlignedDataDebug {
-  val testDir_01 = "/org/apache/daffodil/section12/aligned_data/"
-  val runner1 = Runner(testDir_01, "Aligned_Data.tdml")
-  val runner2 = Runner(testDir_01, "BinaryInput_01.tdml")
-
-  @AfterClass def shutDown {
-    runner1.reset
-    runner2.reset
-  }
-}
-
-class TestAlignedDataDebug {
-
-  import TestAlignedDataDebug._
-
-  // DFDL-1217
-  @Test def test_alignmentOptionalElem03() = { runner1.runOneTest("alignmentOptionalElem03") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparseDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparseDebug.scala
deleted file mode 100644
index 7446a26..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparseDebug.scala
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.delimiter_properties
-
-import org.junit.Test
-import org.junit.AfterClass
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-object TestDelimiterPropertiesUnparseDebug {
-
-  val testDir_02 = "/org/apache/daffodil/section12/delimiter_properties/"
-  val tdml_02 = testDir_02 + "DelimiterPropertiesUnparse.tdml"
-  var runner = new DFDLTestSuite(Misc.getRequiredResource(tdml_02))
-
-  @AfterClass def shutDown {
-    runner = null
-  }
-
-}
-
-class TestDelimiterPropertiesUnparseDebug {
-
-  import TestDelimiterPropertiesUnparseDebug._
-
-  //DFDL-1287, DFDL-947
-  @Test def test_unparseSeparatorLeadingSpace() { runner.runOneTest("unparseSeparatorLeadingSpace") }
-
-  //DFDL-1213
-  @Test def test_unparseMultipleInitiators04() { runner.runOneTest("unparseMultipleInitiators04") }
-  @Test def test_unparseMultipleInitiators05() { runner.runOneTest("unparseMultipleInitiators05") }
-  @Test def test_unparseMultipleInitiators06() { runner.runOneTest("unparseMultipleInitiators06") }
-  @Test def test_unparseMultipleTerminators03() { runner.runOneTest("unparseMultipleTerminators03") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindDelimitedDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindDelimitedDebug.scala
deleted file mode 100644
index 2f6f0bd..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindDelimitedDebug.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.lengthKind
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestLengthKindDelimitedDebug {
-  private val testDir = "/org/apache/daffodil/section12/lengthKind/"
-
-  val runner = Runner(testDir, "DelimitedTests.tdml")
-  val runnerAB = Runner(testDir, "AB.tdml")
-  val runnerAN = Runner(testDir, "AN.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runnerAB.reset
-    runnerAN.reset
-  }
-
-}
-
-class TestLengthKindDelimitedDebug {
-
-  import TestLengthKindDelimitedDebug._
-
-  // DAFFODIL-230 dfdl:documentFinalTerminatorCanBeMissing
-  @Test def test_NumSeq_10() { runner.runOneTest("NumSeq_10") }
-
-  // DAFFODIL-1975
-  @Test def test_NumSeq_13a() { runner.runOneTest("NumSeq_13a") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindExplicitDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindExplicitDebug.scala
deleted file mode 100644
index 0df74fd..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindExplicitDebug.scala
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.lengthKind
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestLengthKindExplicitDebug {
-  val testDir = "/org/apache/daffodil/section12/lengthKind/"
-  val runner = Runner(testDir, "ExplicitTests.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-
-}
-
-class TestLengthKindExplicitDebug {
-
-  import TestLengthKindExplicitDebug._
-
-  @Test def test_lengthRuntimeSDENaN() = { runner.runOneTest("test_lengthRuntimeSDENaN") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindPatternDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindPatternDebug.scala
deleted file mode 100644
index c57841a..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/lengthKind/TestLengthKindPatternDebug.scala
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.lengthKind
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestLengthKindPatternDebug {
-  val testDir = "/org/apache/daffodil/section12/lengthKind/"
-
-  val runner = Runner(testDir, "PatternTests.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-}
-
-class TestLengthKindPatternDebug {
-  import TestLengthKindPatternDebug._
-
-  // DFDL-935 dfdl:encodingErrorPolicy='error'
-  @Test def test_LengthPatternIllegalBits_02_EncodingErrorPolicy_Error() { runner.runOneTest("LengthPatternIllegalBits_02_EncodingErrorPolicy_Error") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/length_properties/TestLengthPropertiesDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/length_properties/TestLengthPropertiesDebug.scala
deleted file mode 100644
index e60c9e1..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section12/length_properties/TestLengthPropertiesDebug.scala
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section12.length_properties
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestLengthPropertiesDebug {
-  val testDir_02 = "/org/apache/daffodil/section12/length_properties/"
-
-  val runner_02 = Runner(testDir_02, "LengthProperties.tdml")
-
-  @AfterClass def shutDown {
-    runner_02.reset
-  }
-
-}
-
-class TestLengthPropertiesDebug {
-
-  import TestLengthPropertiesDebug._
-
-  // DFDL-931 Uses lengthUnits bytes with utf-8 encoding and explicit lengthKind
-  @Test def test_LengthProp_02() { runner_02.runOneTest("LengthProp_02") }
-  @Test def test_LengthProp_charVsBytes() { runner_02.runOneTest("LengthProp_charVsBytes") }
-  @Test def test_LengthProp_charVsBytes2() { runner_02.runOneTest("LengthProp_charVsBytes2") }
-  @Test def test_LengthProp_longByteLength() { runner_02.runOneTest("LengthProp_longByteLength") }
-
-  // should just skip the 2 excess bytes
-  @Test def test_LengthProp_06() { runner_02.runOneTest("LengthProp_06") }
-
-  //DFDL-460
-  @Test def test_LengthProp_floatBits() { runner_02.runOneTest("LengthProp_floatBits") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section13/text_number_props/TestTextNumberPropsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section13/text_number_props/TestTextNumberPropsDebug.scala
deleted file mode 100644
index 9c11f69..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section13/text_number_props/TestTextNumberPropsDebug.scala
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section13.text_number_props
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestTextNumberPropsDebug {
-  val testDir = "/org/apache/daffodil/section13/text_number_props/"
-  val runner = Runner(testDir, "TextNumberProps.tdml")
-
-  @AfterClass def shutDown() {
-    runner.reset
-  }
-}
-
-class TestTextNumberPropsDebug {
-
-  import TestTextNumberPropsDebug._
-
-  // DFDL-847
-  @Test def test_textStandardDecimalSeparator10() { runner.runOneTest("textStandardDecimalSeparator10") }
-  @Test def test_textStandardDecimalSeparator11() { runner.runOneTest("textStandardDecimalSeparator11") }
-
-  // DFDL-853
-  @Test def test_textNumberPattern_pSymbol01() { runner.runOneTest("textNumberPattern_pSymbol01") }
-  @Test def test_textNumberPattern_pSymbol02() { runner.runOneTest("textNumberPattern_pSymbol02") }
-
-  // DFDL-861
-  @Test def test_infnanCaseInsensitive() { runner.runOneTest("infnanCaseInsensitive") }
-  @Test def test_expCaseSensitive() { runner.runOneTest("expCaseSensitive") }
-
-  // DAFFODIL-1981
-  @Test def test_expEmptyString() { runner.runOneTest("expEmptyString") }
-  @Test def test_expEmptyString2() { runner.runOneTest("expEmptyString2") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/occursCountKind/TestOCKImplicitDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/occursCountKind/TestOCKImplicitDebug.scala
deleted file mode 100644
index 7d7b86c..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/occursCountKind/TestOCKImplicitDebug.scala
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section14.occursCountKind
-
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestOCKImplicitDebug {
-  val testDir = "/org/apache/daffodil/section14/occursCountKind/"
-  val runner = Runner(testDir, "ockImplicit.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-
-}
-
-class TestOCKImplicitDebug {
-
-  // Waiting on DFDL-823 for clearer error message
-  // @Test def test_ockImplicit7() { runner.runOneTest("ockImplicit7") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/sequence_groups/TestSequenceGroupsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/sequence_groups/TestSequenceGroupsDebug.scala
deleted file mode 100644
index 2c52cd2..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/sequence_groups/TestSequenceGroupsDebug.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section14.sequence_groups
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestSequenceGroupsDebug {
-
-  val testDir_01 = "/org/apache/daffodil/section14/sequence_groups/"
-
-  val runner_01 = Runner(testDir_01, "SequenceGroupDelimiters.tdml")
-  var runner_02 = Runner(testDir_01, "SequenceGroup.tdml", validateTDMLFile = false)
-
-  @AfterClass def shutDown {
-    runner_01.reset
-    runner_02.reset
-  }
-
-}
-
-class TestSequenceGroupsDebug {
-
-  import TestSequenceGroupsDebug._
-
-  //DFDL-284
-  @Test def test_hiddenGroupLoop() { runner_02.runOneTest("hiddenGroupLoop") }
-
-  @Test def test_emptySequenceSDE() { runner_02.runOneTest("emptySequenceSDE") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequences.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequences.scala
deleted file mode 100644
index 94cd24f..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequences.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section14.unordered_sequences
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestUnorderedSequencesDebug {
-  val testDir = "/org/apache/daffodil/section14/unordered_sequences/"
-  val runner = Runner(testDir, "UnorderedSequences.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-
-}
-
-class TestUnorderedSequencesDebug {
-
-  import TestUnorderedSequencesDebug._
-
-  //DFDL-1010
-  @Test def test_simple = { runner.runOneTest("test_simple") }
-  @Test def test_simple_fail_scalar = { runner.runOneTest("test_simple_fail_scalar") }
-  @Test def test_simple_min_max_occurs = { runner.runOneTest("test_simple_min_max_occurs") }
-  @Test def test_simple_min_max_occurs_fail = { runner.runOneTest("test_simple_min_max_occurs_fail") }
-  @Test def test_simple_delimited = { runner.runOneTest("test_simple_delimited") }
-  @Test def test_simple_nil = { runner.runOneTest("test_simple_nil") }
-  @Test def test_simple_invalid_path_to_branch = { runner.runOneTest("test_simple_invalid_path_to_branch") }
-  @Test def test_simple_invalid_path_to_branch_does_not_exist = { runner.runOneTest("test_simple_invalid_path_to_branch_does_not_exist") }
-  @Test def test_nested_valid_path_to_branch = { runner.runOneTest("test_nested_valid_path_to_branch") }
-  @Test def test_nested_multiple_valid_paths_to_branch = { runner.runOneTest("test_nested_multiple_valid_paths_to_branch") }
-  @Test def test_nested_multiple_invalid_paths_to_branch = { runner.runOneTest("test_nested_multiple_invalid_paths_to_branch") }
-  @Test def test_nested_path_evaluates_to_nodelist = { runner.runOneTest("test_nested_path_evaluates_to_nodelist") }
-  @Test def test_nested_invalid_path_to_branch = { runner.runOneTest("test_nested_invalid_path_to_branch") }
-  @Test def test_nested_invalid_path_to_branch_2 = { runner.runOneTest("test_nested_invalid_path_to_branch_2") }
-  @Test def test_nested_invalid_path_to_branch_3 = { runner.runOneTest("test_nested_invalid_path_to_branch_3") }
-  @Test def test_sde_element_element_ref = { runner.runOneTest("test_sde_element_element_ref") }
-  @Test def test_sde_optional_array_ock_parsed = { runner.runOneTest("test_sde_optional_array_ock_parsed") }
-  @Test def test_sde_unique_names_in_ns = { runner.runOneTest("test_sde_unique_names_in_ns") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section15/choice_groups/TestChoiceDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section15/choice_groups/TestChoiceDebug.scala
deleted file mode 100644
index 2e3eaa2..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section15/choice_groups/TestChoiceDebug.scala
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section15.choice_groups
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestChoiceDebug {
-  val testDir = "/org/apache/daffodil/section15/choice_groups/"
-
-  val runnerCH = Runner(testDir, "choice.tdml")
-
-  @AfterClass def shutDown {
-    runnerCH.reset
-  }
-
-}
-
-class TestChoiceDebug {
-
-  import TestChoiceDebug._
-
-  @Test def test_choice_noBranch() { runnerCH.runOneTest("choice_noBranch") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestArrayOptionalElemDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestArrayOptionalElemDebug.scala
deleted file mode 100644
index 96f92f9..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestArrayOptionalElemDebug.scala
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section16.array_optional_elem
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestArrayOptionalElemDebug {
-  private val testDir = "/org/apache/daffodil/section16/array_optional_elem/"
-  private val testDir01 = "/org/apache/daffodil/section05/facets/"
-
-  val runner = Runner(testDir, "ArrayOptionalElem.tdml")
-  val runner01 = Runner(testDir01, "Facets.tdml", validateTDMLFile = false)
-  val rBack = Runner(testDir, "backtracking.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runner01.reset
-    rBack.reset
-  }
-
-}
-
-class TestArrayOptionalElemDebug {
-
-  import TestArrayOptionalElemDebug._
-
-  @Test def test_arrayExpressions03() { runner.runOneTest("arrayExpressions03") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestUnparseArrayOptionalElemDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestUnparseArrayOptionalElemDebug.scala
deleted file mode 100644
index 631c160..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section16/array_optional_elem/TestUnparseArrayOptionalElemDebug.scala
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section16.array_optional_elem
-
-import org.junit._
-import org.apache.daffodil.tdml.Runner
-
-object TestUnparseArrayOptionalElemDebug {
-
-  val testDir = "/org/apache/daffodil/section16/array_optional_elem/"
-
-  val runner_fixed = Runner(testDir, "UnparseArrayFixedOptionalElem.tdml")
-  val runner_imp = Runner(testDir, "UnparseArrayImplicitOptionalElem.tdml")
-  val runner_parsed = Runner(testDir, "UnparseArrayParsedOptionalElem.tdml")
-  val runner_expr = Runner(testDir, "UnparseArrayExpressionConstant.tdml")
-  val runner_delim = Runner(testDir, "UnparseArrayDelimitedOptionalElem.tdml")
-
-  @AfterClass def tearDown() {
-    runner_fixed.reset
-    runner_imp.reset
-    runner_parsed.reset
-    runner_expr.reset
-    runner_delim.reset
-  }
-
-}
-
-class TestUnparseArrayOptionalElemDebug {
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalcDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalcDebug.scala
deleted file mode 100644
index 696600d..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalcDebug.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section17.calc_value_properties
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestInputValueCalcDebug {
-  val testDir = "/org/apache/daffodil/section17/calc_value_properties/"
-
-  val runner = Runner(testDir, "inputValueCalc.tdml", validateTDMLFile = false)
-  val runnerAR = Runner(testDir, "AR.tdml")
-  val runnerAQ = Runner(testDir, "AQ.tdml")
-  val runnerAA = Runner(testDir, "AA.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-    runnerAR.reset
-    runnerAQ.reset
-    runnerAA.reset
-  }
-
-}
-
-class TestInputValueCalcDebug {
-
-  import TestInputValueCalcDebug._
-
-  //DFDL-1025
-  @Test def test_InputValueCalc_refers_self() { runner.runOneTest("InputValueCalc_refers_self") }
-  @Test def test_InputValueCalc_circular_ref() { runner.runOneTest("InputValueCalc_circular_ref") }
-
-  //DFDL-1024
-  @Test def test_InputValueCalc_optional_elem() { runner.runOneTest("InputValueCalc_optional_elem") }
-  @Test def test_InputValueCalc_array_elem() { runner.runOneTest("InputValueCalc_array_elem") }
-  @Test def test_InputValueCalc_global_elem() { runner.runOneTest("InputValueCalc_global_elem") }
-
-  @Test def test_AQ001() { runnerAQ.runOneTest("AQ001") } // This appears to expect an error, but doesn't state why.
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestOutputValueCalcDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestOutputValueCalcDebug.scala
deleted file mode 100644
index 68bf31b..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section17/calc_value_properties/TestOutputValueCalcDebug.scala
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section17.calc_value_properties
-
-//import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestOutputValueCalcDebug {
-  private val testDir = "/org/apache/daffodil/section17/calc_value_properties/"
-
-  val runner2 = Runner(testDir, "outputValueCalc2.tdml")
-
-  @AfterClass def shutdown {
-    runner2.reset
-  }
-}
-
-class TestOutputValueCalcDebug {
-//  import TestOutputValueCalcDebug._
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressionsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressionsDebug.scala
deleted file mode 100644
index c5fad72..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressionsDebug.scala
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section23.dfdl_expressions
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestDFDLExpressionsDebug {
-  val testDir = "/org/apache/daffodil/section23/dfdl_expressions/"
-  val testDir2 = "/org/apache/daffodil/section23/dfdl_functions/"
-
-  // I'm not sure these belong in section23, but there is no section of the spec that
-  // is about all these properties together, yet, since there is common mechanism here
-  // I really think their tests should not be scattered all over to the sections where each
-  // property is defined.
-
-  val testDir4 = "/org/apache/daffodil/section23/runtime_properties/"
-
-  val runner = Runner(testDir, "expressions.tdml", validateTDMLFile = false, validateDFDLSchemas = false)
-  val runner2 = Runner(testDir2, "Functions.tdml")
-  val runner2_utf8 = Runner(testDir2, "Functions_UTF8.tdml")
-  val runner2b = Runner(testDir2, "Functions-neg.tdml")
-  val runner3 = Runner(testDir, "expression_fail.tdml", validateTDMLFile = false)
-  val runner4 = Runner(testDir4, "runtime-properties.tdml", validateTDMLFile = true, validateDFDLSchemas = false)
-  val runner_fun = Runner(testDir, "functions.tdml")
-
-  val testDir5 = "/org/apache/daffodil/section23/dfdl_expressions/"
-  val runner5 = Runner(testDir5, "expressions.tdml")
-
-  @AfterClass def shutDown() {
-    runner4.reset
-    runner.reset
-    runner_fun.reset
-    runner2.reset
-    runner2_utf8.reset
-    runner2b.reset
-    runner3.reset
-  }
-}
-
-class TestDFDLExpressionsDebug {
-
-  import TestDFDLExpressionsDebug._
-
-  //DFDL-1146
-  @Test def test_attribute_axis_01() { runner.runOneTest("attribute_axis_01") }
-  @Test def test_attribute_axis_02() { runner.runOneTest("attribute_axis_02") }
-  @Test def test_attribute_axis_03() { runner.runOneTest("attribute_axis_03") }
-
-  //DFDL-1111
-  @Test def test_diagnostics_01() { runner.runOneTest("diagnostics_01") }
-  @Test def test_diagnostics_02() { runner.runOneTest("diagnostics_02") }
-  @Test def test_diagnostics_03() { runner.runOneTest("diagnostics_03") }
-
-  //DFDL-1035 - tests need better diagnostic
-  @Test def test_dfdlCheckConstraints() { runner.runOneTest("dfdlCheckConstraints") }
-  @Test def test_dfdlCheckConstraints2() { runner.runOneTest("dfdlCheckConstraints2") }
-
-  @Test def test_regexCompatFail() { runner.runOneTest("regexCompatFail") }
-
-  // lengthUnits bytes with variable-width charater set and specified lengthKind
-  @Test def test_lke3_rel() { runner.runOneTest("lke3_rel") } // uses lengthUnits bytes with utf-8
-
-  // DFDL-1043
-  @Test def test_checkConstraintsComplexTypeFails() { runner.runOneTest("checkConstraintsComplexTypeFails") }
-
-  //DFDL-1164
-  @Test def test_predicate_02() { runner.runOneTest("predicate_02") }
-  @Test def test_predicate_03() { runner.runOneTest("predicate_03") }
-
-  //DFDL-1059
-  @Test def test_self_axis_01() { runner.runOneTest("self_axis_01") }
-  @Test def test_multiple_axis_01() { runner.runOneTest("multiple_axis_01") }
-
-  //DFDL-1076
-  @Test def test_not_04() { runner2.runOneTest("not_04") }
-
-  //DFDL-1115
-  @Test def test_xsDateTime_constructor_03() { runner2.runOneTest("xsDateTime_constructor_03") }
-
-  //DFDL-1159 (unordered sequences)
-  @Test def test_count_05() { runner2.runOneTest("count_05") }
-  @Test def test_count_06() { runner2.runOneTest("count_06") }
-  @Test def test_count_08() { runner2.runOneTest("count_08") }
-
-  //DFDL-1118
-  @Test def test_more_count_0() { runner2.runOneTest("more_count_0") }
-  @Test def test_more_count_1() { runner2.runOneTest("more_count_1") }
-  @Test def test_more_count_1b_2() { runner2.runOneTest("more_count_1b_2") }
-  @Test def test_more_count_2() { runner2.runOneTest("more_count_2") }
-
-  //DFDL-1075
-  @Test def test_not_05() { runner2.runOneTest("not_05") }
-  @Test def test_not_07() { runner2.runOneTest("not_07") }
-
-  //DFDL-1120
-  @Test def test_exists_10() { runner2.runOneTest("exists_10") }
-
-  //DFDL-1124
-  @Test def test_date_constructor_01() { runner2.runOneTest("date_constructor_01") }
-
-  //DFDL-1080
-  @Test def test_empty_02() { runner2.runOneTest("empty_02") }
-  @Test def test_exists_02() { runner2.runOneTest("exists_02") }
-
-  //DFDL-1189
-  @Test def test_exactly_one_01() { runner2.runOneTest("exactly_one_01") }
-  @Test def test_exactly_one_02() { runner2.runOneTest("exactly_one_02") }
-  @Test def test_exactly_one_03() { runner2.runOneTest("exactly_one_03") }
-  @Test def test_exactly_one_04() { runner2.runOneTest("exactly_one_04") }
-  @Test def test_exactly_one_05() { runner2.runOneTest("exactly_one_05") }
-  @Test def test_exactly_one_06() { runner2.runOneTest("exactly_one_06") }
-
-  //DFDL-1091
-  @Test def test_count_05b() { runner2.runOneTest("count_05b") }
-
-  // Fails due to invariant failure slotIndexInParent
-  @Test def test_local_name_07() { runner2.runOneTest("local_name_07") }
-
-  //DFDL-1097
-  @Test def test_local_name_06() { runner2.runOneTest("local_name_06") }
-
-  //DFDL-1101
-  @Test def test_namespace_uri_01() { runner2.runOneTest("namespace_uri_01") }
-  @Test def test_namespace_uri_02() { runner2.runOneTest("namespace_uri_02") }
-  //DFDL-1114
-  @Test def test_namespace_uri_03() { runner2.runOneTest("namespace_uri_03") }
-  @Test def test_namespace_uri_04() { runner2.runOneTest("namespace_uri_04") }
-  @Test def test_namespace_uri_05() { runner2.runOneTest("namespace_uri_05") }
-  @Test def test_namespace_uri_06() { runner2.runOneTest("namespace_uri_06") }
-
-  // These tests had the same names as others in the tdml file, and so were not
-  // being seen or run. Names changed so they run, and they fail.
-  @Test def test_date_constructor_02a() { runner2.runOneTest("date_constructor_02a") }
-  @Test def test_date_constructor_03a() { runner2.runOneTest("date_constructor_03a") }
-  @Test def test_nonNeg_constructor_02a() { runner2.runOneTest("nonNeg_constructor_02a") }
-
-  @Test def test_element_long_form_whitespace() { runner.runOneTest("element_long_form_whitespace") }
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section24/regular_expressions/TestRegularExpressionsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/section24/regular_expressions/TestRegularExpressionsDebug.scala
deleted file mode 100644
index 80b0138..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/section24/regular_expressions/TestRegularExpressionsDebug.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.section24.regular_expressions
-
-import org.junit.Test
-import org.apache.daffodil.tdml.Runner
-import org.junit.AfterClass
-
-object TestRegularExpressionsDebug {
-  val testDir = "/org/apache/daffodil/section24/regular_expressions/"
-  val runner = Runner(testDir, "RegularExpressions.tdml")
-
-  @AfterClass def shutDown {
-    runner.reset
-  }
-
-}
-
-class TestRegularExpressionsDebug {
-
-  import TestRegularExpressionsDebug._
-
-  // Unsupported Java 7 features (should return Schema Definition Errors)
-  @Test def test_testRegEx_04() { runner.runOneTest("testRegEx_04") }
-  @Test def test_testRegEx_05() { runner.runOneTest("testRegEx_05") }
-  @Test def test_testRegEx_06() { runner.runOneTest("testRegEx_06") }
-  @Test def test_testRegEx_07() { runner.runOneTest("testRegEx_07") }
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestLeaks.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestLeaks.scala
deleted file mode 100644
index e0ec11d..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestLeaks.scala
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.usertests
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-class TestLeaks {
-  val testDir = "/org/apache/daffodil/usertests/"
-  val aa = testDir + "leaks.tdml"
-  lazy val runner = new DFDLTestSuite(Misc.getRequiredResource(aa))
-
-  def volumeRunner(tc: => Unit) {
-    1 to 100 foreach { _ =>
-      // println("")
-      1 to 100 foreach { _ =>
-        // print(".")
-        1 to 100 foreach { _ =>
-          System.gc()
-          Thread.sleep(100)
-          tc
-        }
-      }
-    }
-  }
-
-  @Test def test_leak1() { runner.runOneTest("leak1") }
-  @Test def test_leak2() { runner.runOneTest("leak2") }
-  @Test def test_leak3() { runner.runOneTest("leak3") }
-  @Test def test_leak4() { runner.runOneTest("leak4") }
-
-  @Test def testLeak1() { volumeRunner(test_leak1()) } // no leak - correct, but no parsing (input value calc)
-
-  @Test def testLeak2() { volumeRunner(test_leak2()) } // no leak - runtime error
-
-  @Test def testLeak3() { volumeRunner(test_leak3()) } // no leak - compilation error
-  @Test def testLeak4() { volumeRunner(test_leak4()) } // leaks horribly
-
-}
diff --git a/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestUserSubmittedTestsDebug.scala b/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestUserSubmittedTestsDebug.scala
deleted file mode 100644
index 219f75f..0000000
--- a/daffodil-test/src/test/scala-debug/org/apache/daffodil/usertests/TestUserSubmittedTestsDebug.scala
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.usertests
-
-import org.junit.Test
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-import org.apache.daffodil.debugger.InteractiveDebugger
-import org.apache.daffodil.debugger.TraceDebuggerRunner
-import org.apache.daffodil.dsom.ExpressionCompilers
-import org.apache.daffodil.tdml.Runner
-
-class TestUserSubmittedTestsDebug {
-  val testDir = "/org/apache/daffodil/usertests/"
-  lazy val runner = Runner(testDir, "UserSubmittedTests.tdml")
-
-  //DFDL-1118
-  @Test def test_dfdl_782() = {
-    val tr = new CustomTraceRunner1
-    val db = new InteractiveDebugger(tr, ExpressionCompilers)
-    runner.setDebugger(db)
-
-    runner.runOneTest("test_DFDL_782")
-
-    // Comment out this line to see issue
-    // documented in DFDL-790
-    //
-    // Note: Fixed, as tests always turn off debugging at end of a test now.
-    //
-    // runner.setDebugging(false)
-  }
-
-}
-
-class CustomTraceRunner1 extends TraceDebuggerRunner {
-  private var _lines = List.empty[String]
-
-  def getAllTheLines(): String = {
-    val sb = new StringBuilder
-    _lines.foreach(line => {
-      if (line.length > 0) sb.append(line)
-    })
-    val allTheLines = sb.toString
-    allTheLines
-  }
-
-  override def init(id: InteractiveDebugger): Unit = {
-    _lines = List.empty[String]
-    super.init(id)
-  }
-  override def lineOutput(line: String) = _lines :+ (line + "\n")
-
-}
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
index 81c3aa2..bbedd43 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
@@ -35,6 +35,13 @@ object TestSimpleTypes {
 class TestSimpleTypes {
   import TestSimpleTypes._
 
+  //  @Test def test_warning_exercise() {
+  //    val exc = intercept[Exception] {
+  //      runner.runOneTest("warning_exercise")
+  //    }
+  //    assertTrue(exc.getMessage().contains("Did not find"))
+  //  }
+
   @Test def test_one_octet() { runner.runOneTest("OneOctetBinaryParse") }
   @Test def test_oneBit2() { runner.runOneTest("OneBit2") }
 
@@ -108,6 +115,7 @@ class TestSimpleTypes {
 
   @Test def test_datePatternChoice() { runner.runOneTest("datePatternChoice") }
 
+  // DFDL-529
   //  @Test def test_dateCalendarCenturyStart() { runner.runOneTest("dateCalendarCenturyStart") }
   //  @Test def test_dateCalendarCenturyStart2() { runner.runOneTest("dateCalendarCenturyStart2") }
 
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes2.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes2.scala
index bfee9be..5539f04 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes2.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes2.scala
@@ -56,7 +56,9 @@ class TestSimpleTypes2 {
   @Test def test_AK000() { runnerAK.runOneTest("AK000") }
   @Test def test_AK001() { runnerAK.runOneTest("AK001") }
 
+  //@Test def test_redefinedFormat() { runner2.runOneTest("redefinedFormat") }
   @Test def test_whiteSpaceBeforeLax() { runner2.runOneTest("whiteSpaceBeforeLax") }
+  //@Test def test_whiteSpaceAfterLax() { runner2.runOneTest("whiteSpaceAfterLax") }
   @Test def test_whiteSpaceDuringLax() { runner2.runOneTest("whiteSpaceDuringLax") }
   @Test def test_whiteSpaceBeforeStrict() { runner2.runOneTest("whiteSpaceBeforeStrict") }
   @Test def test_whiteSpaceDuringStrict() { runner2.runOneTest("whiteSpaceDuringStrict") }
@@ -79,6 +81,11 @@ class TestSimpleTypes2 {
   @Test def test_bitOrderChangeInvalid2() { runner1.runOneTest("bitOrderChangeInvalid2") }
   @Test def test_bitOrderChangeInvalid2Unparser() { runner1.runOneTest("bitOrderChangeInvalid2Unparser") }
   @Test def test_noByteOrder() { runner1.runOneTest("noByteOrder") }
+  //@Test def test_bitOrderChange() { runner1.runOneTest("bitOrderChange") }
+  //@Test def test_bitOrderDocument() { runner1.runOneTest("bitOrderDocument") }
+  //@Test def test_bitOrderTypeByte() { runner1.runOneTest("bitOrderTypeByte") }
+  //@Test def test_bitOrderChangeInvalid3() { runner1.runOneTest("bitOrderChangeInvalid3") }
+  //@Test def test_bitOrderChangeInvalid() { runner3.runOneTest("bitOrderChangeInvalid") }
 
   @Test def test_simpleTypeDerivedFromPrimType() { runnerST.runOneTest("simpleTypeDerivedFromPrimType") }
   @Test def test_simpleTypeChainedDerivations() { runnerST.runOneTest("simpleTypeChainedDerivations") }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section06/namespaces/TestNamespaces.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section06/namespaces/TestNamespaces.scala
index 56b9354..4c04c03 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section06/namespaces/TestNamespaces.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section06/namespaces/TestNamespaces.scala
@@ -154,6 +154,7 @@ class TestNamespaces {
   @Test def test_multi_encoding_03() { runner.runOneTest("multi_encoding_03") }
   //  @Test def test_multi_encoding_04() { runner.runOneTest("multi_encoding_04") } //DFDL-716
   //  @Test def test_multi_encoding_05() { runner.runOneTest("multi_encoding_05") } //DFDL-715
+  //  @Test def test_indexOutOfBounds_01() { runner.runOneTest("indexOutOfBounds_01") }
 
   // Preliminary tests for import format schemas
   @Test def test_import_format_01() { runner.runOneTest("import_format_01") }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section07/assertions/TestAssertions.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section07/assertions/TestAssertions.scala
index d852f76..81fbf69 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section07/assertions/TestAssertions.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section07/assertions/TestAssertions.scala
@@ -97,4 +97,7 @@ class TestAssertions {
 
   @Test def test_assertWithMessageExpression_01() { runner.runOneTest("test_assertWithMessageExpression_01") }
   @Test def test_assertWithMessageExpression_02() { runner.runOneTest("test_assertWithMessageExpression_02") }
+
+  //DFDL-1210
+  //@Test def test_assertFailShowsValue() { runner.runOneTest("assertFailShowsValue") }
 }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section07/escapeScheme/TestEscapeScheme.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section07/escapeScheme/TestEscapeScheme.scala
index 0e978f9..bd2d0cc 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section07/escapeScheme/TestEscapeScheme.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section07/escapeScheme/TestEscapeScheme.scala
@@ -49,6 +49,7 @@ class TestEscapeScheme {
   @Test def test_escapeSchemeFail2() { runner.runOneTest("escapeSchemeFail2") }
   @Test def test_escapeSchemeFail3() { runner.runOneTest("escapeSchemeFail3") }
   @Test def test_escapeSchemeNonEmpty() { runner.runOneTest("escapeSchemeNonEmpty") }
+  //@Test def test_escapeSchemeNonUnique() { runner.runOneTest("escapeSchemeNonUnique") }
 
   @Test def test_escapeExpressions_01() { runner.runOneTest("escapeExpressions_01") }
   @Test def test_escapeExpressions_01b() { runner.runOneTest("escapeExpressions_01b") }
@@ -113,6 +114,8 @@ class TestEscapeScheme {
   @Test def test_scenario3_10() { runner2.runOneTest("scenario3_10") }
   @Test def test_scenario3_10_postfix() { runner2.runOneTest("scenario3_10_postfix") }
   @Test def test_scenario3_11() { runner2.runOneTest("scenario3_11") }
+  //DFDL-961
+  //@Test def test_scenario3_11_postfix() { runner2.runOneTest("scenario3_11_postfix") }
   @Test def test_scenario3_12() { runner2.runOneTest("scenario3_12") }
   @Test def test_scenario3_12_req_term() { runner2.runOneTest("scenario3_12_req_term") }
   @Test def test_scenario3_13() { runner2.runOneTest("scenario3_13") }
@@ -143,4 +146,5 @@ class TestEscapeScheme {
 
   @Test def test_escBlkAllQuotes() { runner.runOneTest("escBlkAllQuotes") }
   @Test def test_escBlkEndSame() { runner.runOneTest("escBlkEndSame") }
+  //@Test def test_escBlkMultipleEEC() { runner.runOneTest("escBlkMultipleEEC") } // DAFFODIL-1972
 }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparse.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparse.scala
index f7e12ff..0c490d7 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparse.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section12/delimiter_properties/TestDelimiterPropertiesUnparse.scala
@@ -36,7 +36,7 @@ class TestDelimiterPropertiesUnparse {
 
   import TestDelimiterPropertiesUnparse._
 
-  //DFDL-1287
+  //DFDL-1287, DFDL-947
   //@Test def test_unparseSeparatorLeadingSpace() { runner.runOneTest("unparseSeparatorLeadingSpace") }
 
   //DFDL-1213
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section12/lengthKind/TestLengthKindPattern.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section12/lengthKind/TestLengthKindPattern.scala
index 7a536c4..de0bf57 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section12/lengthKind/TestLengthKindPattern.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section12/lengthKind/TestLengthKindPattern.scala
@@ -61,6 +61,8 @@ class TestLengthKindPattern {
 
   // DFDL-309
   @Test def test_LengthPatternIllegalBits_02_EncodingErrorPolicy_Replace() { runner.runOneTest("LengthPatternIllegalBits_02_EncodingErrorPolicy_Replace") }
+  // DFDL-935 dfdl:encodingErrorPolicy='error'
+  //@Test def test_LengthPatternIllegalBits_02_EncodingErrorPolicy_Error() { runner.runOneTest("LengthPatternIllegalBits_02_EncodingErrorPolicy_Error") }
 
   @Test def test_LengthPatternLegalBits_02() { runner.runOneTest("LengthPatternLegalBits_02") } // round trip
   @Test def test_lengthKindPatternFail() { runner.runOneTest("lengthKindPatternFail") }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
index 75cc9d4..8c7818c 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section14/unordered_sequences/TestUnorderedSequencesNew.scala
@@ -26,4 +26,24 @@ class TestUnorderedSequencesNew {
   val res = Misc.getRequiredResource(uos)
   lazy val runner = new DFDLTestSuite(res)
 
+  //DFDL-1010
+  //@Test def test_simple = { runner.runOneTest("test_simple") }
+  //@Test def test_simple_fail_scalar = { runner.runOneTest("test_simple_fail_scalar") }
+  //@Test def test_simple_min_max_occurs = { runner.runOneTest("test_simple_min_max_occurs") }
+  //@Test def test_simple_min_max_occurs_fail = { runner.runOneTest("test_simple_min_max_occurs_fail") }
+  //@Test def test_simple_delimited = { runner.runOneTest("test_simple_delimited") }
+  //@Test def test_simple_nil = { runner.runOneTest("test_simple_nil") }
+  //@Test def test_simple_invalid_path_to_branch = { runner.runOneTest("test_simple_invalid_path_to_branch") }
+  //@Test def test_simple_invalid_path_to_branch_does_not_exist = { runner.runOneTest("test_simple_invalid_path_to_branch_does_not_exist") }
+  //@Test def test_nested_valid_path_to_branch = { runner.runOneTest("test_nested_valid_path_to_branch") }
+  //@Test def test_nested_multiple_valid_paths_to_branch = { runner.runOneTest("test_nested_multiple_valid_paths_to_branch") }
+  //@Test def test_nested_multiple_invalid_paths_to_branch = { runner.runOneTest("test_nested_multiple_invalid_paths_to_branch") }
+  //@Test def test_nested_path_evaluates_to_nodelist = { runner.runOneTest("test_nested_path_evaluates_to_nodelist") }
+  //@Test def test_nested_invalid_path_to_branch = { runner.runOneTest("test_nested_invalid_path_to_branch") }
+  //@Test def test_nested_invalid_path_to_branch_2 = { runner.runOneTest("test_nested_invalid_path_to_branch_2") }
+  //@Test def test_nested_invalid_path_to_branch_3 = { runner.runOneTest("test_nested_invalid_path_to_branch_3") }
+  //@Test def test_sde_element_element_ref = { runner.runOneTest("test_sde_element_element_ref") }
+  //@Test def test_sde_optional_array_ock_parsed = { runner.runOneTest("test_sde_optional_array_ock_parsed") }
+  //@Test def test_sde_unique_names_in_ns = { runner.runOneTest("test_sde_unique_names_in_ns") }
+
 }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section15/choice_groups/TestChoice.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section15/choice_groups/TestChoice.scala
index a33ffc9..425a0f0 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section15/choice_groups/TestChoice.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section15/choice_groups/TestChoice.scala
@@ -119,4 +119,6 @@ class TestChoice {
   @Test def test_direct_dispatch_14() { runnerCH.runOneTest("direct_dispatch_14") }
   @Test def test_direct_dispatch_15() { runnerCH.runOneTest("direct_dispatch_15") }
   @Test def test_direct_dispatch_16() { runnerCH.runOneTest("direct_dispatch_16") }
+
+  //@Test def test_choice_noBranch() { runnerCH.runOneTest("choice_noBranch") }
 }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalc.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalc.scala
index ce46049..c949956 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalc.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section17/calc_value_properties/TestInputValueCalc.scala
@@ -45,6 +45,7 @@ class TestInputValueCalc {
   @Test def test_AR000() { runnerAR.runOneTest("AR000") }
 
   @Test def test_AQ000() { runnerAQ.runOneTest("AQ000") }
+  //@Test def test_AQ001() { runnerAQ.runOneTest("AQ001") } // This appears to expect an error, but doesn't state why.
 
   @Test def test_AA000() { runnerAA.runOneTest("AA000") }
   @Test def test_inputValueCalcErrorDiagnostic1() { runnerAA.runOneTest("inputValueCalcErrorDiagnostic1") }
@@ -124,4 +125,13 @@ class TestInputValueCalc {
   @Test def test_InputValueCalc_no_representation() { runner.runOneTest("InputValueCalc_no_representation") }
   @Test def test_InputValueCalc_in_format() { runner.runOneTest("InputValueCalc_in_format") }
   @Test def test_InputValueCalc_with_outputValueCalc() { runner.runOneTest("InputValueCalc_with_outputValueCalc") }
+
+  //DFDL-1025
+  //@Test def test_InputValueCalc_refers_self() { runner.runOneTest("InputValueCalc_refers_self") }
+  //@Test def test_InputValueCalc_circular_ref() { runner.runOneTest("InputValueCalc_circular_ref") }
+  
+  //DFDL-1024
+  //@Test def test_InputValueCalc_optional_elem() { runner.runOneTest("InputValueCalc_optional_elem") }
+  //@Test def test_InputValueCalc_array_elem() { runner.runOneTest("InputValueCalc_array_elem") }
+  //@Test def test_InputValueCalc_global_elem() { runner.runOneTest("InputValueCalc_global_elem") }
 }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressions.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressions.scala
index a2c0364..e2e4a86 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressions.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section23/dfdl_expressions/TestDFDLExpressions.scala
@@ -217,7 +217,7 @@ class TestDFDLExpressions {
   @Test def test_expressionRules06() { runner.runOneTest("expressionRules06") }
 
   // uses lengthUnits bytes with utf-8 and lengthKind Explicit
-  // @Test def test_lke3_rel() { runner.runOneTest("lke3_rel") }
+  @Test def test_lke3_rel() { runner.runOneTest("lke3_rel") }
 
   @Test def test_lke1_rel() { runner.runOneTest("lke1_rel") }
   @Test def test_lke1_abs() { runner.runOneTest("lke1_abs") }
@@ -317,7 +317,7 @@ class TestDFDLExpressions {
   //DFDL-1059
   @Test def test_parent_axis_01() { runner.runOneTest("parent_axis_01") }
   @Test def test_child_axis_01() { runner.runOneTest("child_axis_01") }
-  //@Test def test_self_axis_01() { runner.runOneTest("self_axis_01") }
+  @Test def test_self_axis_01() { runner.runOneTest("self_axis_01") }
   //@Test def test_multiple_axis_01() { runner.runOneTest("multiple_axis_01") }
 
   @Test def test_attribute_axis_04() { runner.runOneTest("attribute_axis_04") }
@@ -491,7 +491,7 @@ class TestDFDLExpressions {
   //@Test def test_exactly_one_01() { runner2.runOneTest("exactly_one_01") }
   //@Test def test_exactly_one_02() { runner2.runOneTest("exactly_one_02") }
   //@Test def test_exactly_one_03() { runner2.runOneTest("exactly_one_03") }
-  //@Test def test_exactly_one_04() { runner2.runOneTest("exactly_one_04") }
+  @Test def test_exactly_one_04() { runner2.runOneTest("exactly_one_04") }
   //@Test def test_exactly_one_05() { runner2.runOneTest("exactly_one_05") }
   //@Test def test_exactly_one_06() { runner2.runOneTest("exactly_one_06") }
 
@@ -508,7 +508,7 @@ class TestDFDLExpressions {
   //DFDL-1159 (unordered sequences)
   //@Test def test_count_05() { runner2.runOneTest("count_05") }
   //@Test def test_count_06() { runner2.runOneTest("count_06") }
-  //@Test def test_count_08() { runner2.runOneTest("count_08") }
+  @Test def test_count_08() { runner2.runOneTest("count_08") }
 
   @Test def test_local_name_01() { runner2.runOneTest("local_name_01") }
   @Test def test_local_name_02() { runner2.runOneTest("local_name_02") }
@@ -810,8 +810,11 @@ class TestDFDLExpressions {
   //DFDL-1124
   //@Test def test_date_constructor_01() { runner2.runOneTest("date_constructor_01") }
   @Test def test_date_constructor_02() { runner2.runOneTest("date_constructor_02") }
+  //@Test def test_date_constructor_02a() { runner2.runOneTest("date_constructor_02a") }
   @Test def test_date_constructor_03() { runner2.runOneTest("date_constructor_03") }
+  //@Test def test_date_constructor_03a() { runner2.runOneTest("date_constructor_03a") }
   @Test def test_date_constructor_04() { runner2.runOneTest("date_constructor_04") }
+  //@Test def test_nonNeg_constructor_02a() { runner2.runOneTest("nonNeg_constructor_02a") }
 
   @Test def test_xsDateTime_constructor_01() { runner2.runOneTest("xsDateTime_constructor_01") }
   @Test def test_xsDateTime_constructor_02() { runner2.runOneTest("xsDateTime_constructor_02") }
@@ -1028,4 +1031,7 @@ class TestDFDLExpressions {
 
   //DFDL-711
   @Test def test_short_parent_axis_01() { runner.runOneTest("short_parent_axis_01") }
+
+  @Test def test_element_long_form_whitespace() { runner.runOneTest("element_long_form_whitespace") }
 }
+
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/section24/regular_expressions/TestRegularExpressions.scala b/daffodil-test/src/test/scala/org/apache/daffodil/section24/regular_expressions/TestRegularExpressions.scala
index ef31df7..3cffaa1 100644
--- a/daffodil-test/src/test/scala/org/apache/daffodil/section24/regular_expressions/TestRegularExpressions.scala
+++ b/daffodil-test/src/test/scala/org/apache/daffodil/section24/regular_expressions/TestRegularExpressions.scala
@@ -44,6 +44,7 @@ class TestRegularExpressions {
   @Test def test_testRegEx_02() { runner.runOneTest("testRegEx_02") }
   @Test def test_testRegEx_03() { runner.runOneTest("testRegEx_03") }
 
+  // DFDL-517
   // // Unsupported Java 7 features (should return Schema Definition Errors)
   // @Test def test_testRegEx_04() { runner.runOneTest("testRegEx_04") }
   // @Test def test_testRegEx_05() { runner.runOneTest("testRegEx_05") }
diff --git a/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTestsNew.scala b/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTestsNew.scala
deleted file mode 100644
index 0f0316c..0000000
--- a/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTestsNew.scala
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.daffodil.usertests
-
-import org.apache.daffodil.util._
-import org.apache.daffodil.tdml.DFDLTestSuite
-
-class TestUserSubmittedTestsNew {
-  val testDir = "/org/apache/daffodil/usertests/"
-  val aa = testDir + "UserSubmittedTests.tdml"
-  lazy val runner = new DFDLTestSuite(Misc.getRequiredResource(aa))
-
-}