Share data files between Py2 and Py3 test suites.
diff --git a/MANIFEST.in b/MANIFEST.in
index 27900a3..38f7863 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,5 @@
 include README LICENSE CHANGES setup.py
 recursive-include examples *.py *.cfg *.yaml
-recursive-include tests *.py
 recursive-include tests/data *
+recursive-include tests/lib *.py
+recursive-include tests/lib3 *.py
diff --git a/Makefile b/Makefile
index 7aaccff..da249e3 100644
--- a/Makefile
+++ b/Makefile
@@ -24,10 +24,10 @@
 	${PYTHON} setup.py --with-libyaml install ${PARAMETERS}
 
 test: build
-	${PYTHON} tests/test_build.py ${TEST}
+	${PYTHON} tests/lib/test_build.py ${TEST}
 
 testext: buildext
-	${PYTHON} tests/test_build_ext.py ${TEST}
+	${PYTHON} tests/lib/test_build_ext.py ${TEST}
 
 testall:
 	${PYTHON} setup.py test
diff --git a/setup.py b/setup.py
index 722a5cd..9d73944 100644
--- a/setup.py
+++ b/setup.py
@@ -288,9 +288,9 @@
         build_cmd.run()
         sys.path.insert(0, build_cmd.build_lib)
         if sys.version_info[0] < 3:
-            sys.path.insert(0, 'tests')
+            sys.path.insert(0, 'tests/lib')
         else:
-            sys.path.insert(0, 'tests3')
+            sys.path.insert(0, 'tests/lib3')
         import test_all
         test_all.main([])
 
diff --git a/tests/data/construct-binary.code b/tests/data/construct-binary-py2.code
similarity index 100%
rename from tests/data/construct-binary.code
rename to tests/data/construct-binary-py2.code
diff --git a/tests/data/construct-binary.data b/tests/data/construct-binary-py2.data
similarity index 100%
rename from tests/data/construct-binary.data
rename to tests/data/construct-binary-py2.data
diff --git a/tests3/data/construct-binary.code b/tests/data/construct-binary-py3.code
similarity index 100%
rename from tests3/data/construct-binary.code
rename to tests/data/construct-binary-py3.code
diff --git a/tests/data/construct-binary.data b/tests/data/construct-binary-py3.data
similarity index 100%
copy from tests/data/construct-binary.data
copy to tests/data/construct-binary-py3.data
diff --git a/tests3/data/construct-python-bytes.code b/tests/data/construct-python-bytes-py3.code
similarity index 100%
rename from tests3/data/construct-python-bytes.code
rename to tests/data/construct-python-bytes-py3.code
diff --git a/tests3/data/construct-python-bytes.data b/tests/data/construct-python-bytes-py3.data
similarity index 100%
rename from tests3/data/construct-python-bytes.data
rename to tests/data/construct-python-bytes-py3.data
diff --git a/tests/data/construct-python-long-short.code b/tests/data/construct-python-long-short-py2.code
similarity index 100%
rename from tests/data/construct-python-long-short.code
rename to tests/data/construct-python-long-short-py2.code
diff --git a/tests/data/construct-python-long-short.data b/tests/data/construct-python-long-short-py2.data
similarity index 100%
rename from tests/data/construct-python-long-short.data
rename to tests/data/construct-python-long-short-py2.data
diff --git a/tests3/data/construct-python-int.code b/tests/data/construct-python-long-short-py3.code
similarity index 100%
rename from tests3/data/construct-python-int.code
rename to tests/data/construct-python-long-short-py3.code
diff --git a/tests/data/construct-python-long-short.data b/tests/data/construct-python-long-short-py3.data
similarity index 100%
copy from tests/data/construct-python-long-short.data
copy to tests/data/construct-python-long-short-py3.data
diff --git a/tests/data/construct-python-name-module.code b/tests/data/construct-python-name-module.code
index 8f93503..6f39148 100644
--- a/tests/data/construct-python-name-module.code
+++ b/tests/data/construct-python-name-module.code
@@ -1 +1 @@
-[file, yaml.Loader, yaml.dump, abs, yaml.tokens]
+[str, yaml.Loader, yaml.dump, abs, yaml.tokens]
diff --git a/tests/data/construct-python-name-module.data b/tests/data/construct-python-name-module.data
index c8f8036..f0c9712 100644
--- a/tests/data/construct-python-name-module.data
+++ b/tests/data/construct-python-name-module.data
@@ -1,4 +1,4 @@
-- !!python/name:file
+- !!python/name:str
 - !!python/name:yaml.Loader
 - !!python/name:yaml.dump
 - !!python/name:abs
diff --git a/tests/data/construct-python-str-utf8.code b/tests/data/construct-python-str-utf8-py2.code
similarity index 100%
rename from tests/data/construct-python-str-utf8.code
rename to tests/data/construct-python-str-utf8-py2.code
diff --git a/tests/data/construct-python-str-utf8.data b/tests/data/construct-python-str-utf8-py2.data
similarity index 100%
rename from tests/data/construct-python-str-utf8.data
rename to tests/data/construct-python-str-utf8-py2.data
diff --git a/tests3/data/construct-python-str-utf8.code b/tests/data/construct-python-str-utf8-py3.code
similarity index 100%
rename from tests3/data/construct-python-str-utf8.code
rename to tests/data/construct-python-str-utf8-py3.code
diff --git a/tests/data/construct-python-str-utf8.data b/tests/data/construct-python-str-utf8-py3.data
similarity index 100%
copy from tests/data/construct-python-str-utf8.data
copy to tests/data/construct-python-str-utf8-py3.data
diff --git a/tests/data/construct-python-unicode-ascii.code b/tests/data/construct-python-unicode-ascii-py2.code
similarity index 100%
rename from tests/data/construct-python-unicode-ascii.code
rename to tests/data/construct-python-unicode-ascii-py2.code
diff --git a/tests/data/construct-python-unicode-ascii.data b/tests/data/construct-python-unicode-ascii-py2.data
similarity index 100%
rename from tests/data/construct-python-unicode-ascii.data
rename to tests/data/construct-python-unicode-ascii-py2.data
diff --git a/tests3/data/construct-python-str-ascii.code b/tests/data/construct-python-unicode-ascii-py3.code
similarity index 100%
rename from tests3/data/construct-python-str-ascii.code
rename to tests/data/construct-python-unicode-ascii-py3.code
diff --git a/tests/data/construct-python-unicode-ascii.data b/tests/data/construct-python-unicode-ascii-py3.data
similarity index 100%
copy from tests/data/construct-python-unicode-ascii.data
copy to tests/data/construct-python-unicode-ascii-py3.data
diff --git a/tests/data/construct-python-unicode-utf8.code b/tests/data/construct-python-unicode-utf8-py2.code
similarity index 100%
rename from tests/data/construct-python-unicode-utf8.code
rename to tests/data/construct-python-unicode-utf8-py2.code
diff --git a/tests/data/construct-python-unicode-utf8.data b/tests/data/construct-python-unicode-utf8-py2.data
similarity index 100%
rename from tests/data/construct-python-unicode-utf8.data
rename to tests/data/construct-python-unicode-utf8-py2.data
diff --git a/tests3/data/construct-python-str-utf8.code b/tests/data/construct-python-unicode-utf8-py3.code
similarity index 100%
copy from tests3/data/construct-python-str-utf8.code
copy to tests/data/construct-python-unicode-utf8-py3.code
diff --git a/tests/data/construct-python-unicode-utf8.data b/tests/data/construct-python-unicode-utf8-py3.data
similarity index 100%
copy from tests/data/construct-python-unicode-utf8.data
copy to tests/data/construct-python-unicode-utf8-py3.data
diff --git a/tests/data/construct-str-utf8.code b/tests/data/construct-str-utf8-py2.code
similarity index 100%
rename from tests/data/construct-str-utf8.code
rename to tests/data/construct-str-utf8-py2.code
diff --git a/tests/data/construct-str-utf8.data b/tests/data/construct-str-utf8-py2.data
similarity index 100%
rename from tests/data/construct-str-utf8.data
rename to tests/data/construct-str-utf8-py2.data
diff --git a/tests3/data/construct-str-utf8.code b/tests/data/construct-str-utf8-py3.code
similarity index 100%
rename from tests3/data/construct-str-utf8.code
rename to tests/data/construct-str-utf8-py3.code
diff --git a/tests/data/construct-str-utf8.data b/tests/data/construct-str-utf8-py3.data
similarity index 100%
copy from tests/data/construct-str-utf8.data
copy to tests/data/construct-str-utf8-py3.data
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.code b/tests/data/emitting-unacceptable-unicode-character-bug-py2.code
similarity index 100%
rename from tests/data/emitting-unacceptable-unicode-character-bug.code
rename to tests/data/emitting-unacceptable-unicode-character-bug-py2.code
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.data b/tests/data/emitting-unacceptable-unicode-character-bug-py2.data
similarity index 100%
rename from tests/data/emitting-unacceptable-unicode-character-bug.data
rename to tests/data/emitting-unacceptable-unicode-character-bug-py2.data
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.skip-ext b/tests/data/emitting-unacceptable-unicode-character-bug-py2.skip-ext
similarity index 100%
rename from tests/data/emitting-unacceptable-unicode-character-bug.skip-ext
rename to tests/data/emitting-unacceptable-unicode-character-bug-py2.skip-ext
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.data b/tests/data/emitting-unacceptable-unicode-character-bug-py3.code
similarity index 100%
copy from tests/data/emitting-unacceptable-unicode-character-bug.data
copy to tests/data/emitting-unacceptable-unicode-character-bug-py3.code
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.data b/tests/data/emitting-unacceptable-unicode-character-bug-py3.data
similarity index 100%
copy from tests/data/emitting-unacceptable-unicode-character-bug.data
copy to tests/data/emitting-unacceptable-unicode-character-bug-py3.data
diff --git a/tests/data/emitting-unacceptable-unicode-character-bug.skip-ext b/tests/data/emitting-unacceptable-unicode-character-bug-py3.skip-ext
similarity index 100%
copy from tests/data/emitting-unacceptable-unicode-character-bug.skip-ext
copy to tests/data/emitting-unacceptable-unicode-character-bug-py3.skip-ext
diff --git a/tests/data/serializer-is-already-opened.dumper-error b/tests/data/serializer-is-already-opened.dumper-error
index 5ac2e4b..9a23525 100644
--- a/tests/data/serializer-is-already-opened.dumper-error
+++ b/tests/data/serializer-is-already-opened.dumper-error
@@ -1,3 +1,3 @@
-dumper = yaml.Dumper(StringIO.StringIO())
+dumper = yaml.Dumper(StringIO())
 dumper.open()
 dumper.open()
diff --git a/tests/data/serializer-is-closed-1.dumper-error b/tests/data/serializer-is-closed-1.dumper-error
index b6d5c7a..8e7e600 100644
--- a/tests/data/serializer-is-closed-1.dumper-error
+++ b/tests/data/serializer-is-closed-1.dumper-error
@@ -1,4 +1,4 @@
-dumper = yaml.Dumper(StringIO.StringIO())
+dumper = yaml.Dumper(StringIO())
 dumper.open()
 dumper.close()
 dumper.open()
diff --git a/tests/data/serializer-is-closed-2.dumper-error b/tests/data/serializer-is-closed-2.dumper-error
index ff57b4d..89aef7e 100644
--- a/tests/data/serializer-is-closed-2.dumper-error
+++ b/tests/data/serializer-is-closed-2.dumper-error
@@ -1,4 +1,4 @@
-dumper = yaml.Dumper(StringIO.StringIO())
+dumper = yaml.Dumper(StringIO())
 dumper.open()
 dumper.close()
 dumper.serialize(yaml.ScalarNode(tag='!foo', value='bar'))
diff --git a/tests/data/serializer-is-not-opened-1.dumper-error b/tests/data/serializer-is-not-opened-1.dumper-error
index 8dc6c1e..8f22e73 100644
--- a/tests/data/serializer-is-not-opened-1.dumper-error
+++ b/tests/data/serializer-is-not-opened-1.dumper-error
@@ -1,2 +1,2 @@
-dumper = yaml.Dumper(StringIO.StringIO())
+dumper = yaml.Dumper(StringIO())
 dumper.close()
diff --git a/tests/data/serializer-is-not-opened-2.dumper-error b/tests/data/serializer-is-not-opened-2.dumper-error
index 6922b22..ebd9df1 100644
--- a/tests/data/serializer-is-not-opened-2.dumper-error
+++ b/tests/data/serializer-is-not-opened-2.dumper-error
@@ -1,2 +1,2 @@
-dumper = yaml.Dumper(StringIO.StringIO())
+dumper = yaml.Dumper(StringIO())
 dumper.serialize(yaml.ScalarNode(tag='!foo', value='bar'))
diff --git a/tests/canonical.py b/tests/lib/canonical.py
similarity index 100%
rename from tests/canonical.py
rename to tests/lib/canonical.py
diff --git a/tests/test_all.py b/tests/lib/test_all.py
similarity index 100%
rename from tests/test_all.py
rename to tests/lib/test_all.py
diff --git a/tests/lib/test_appliance.py b/tests/lib/test_appliance.py
new file mode 100644
index 0000000..d50d5a2
--- /dev/null
+++ b/tests/lib/test_appliance.py
@@ -0,0 +1,151 @@
+
+import sys, os, os.path, types, traceback, pprint
+
+DATA = 'tests/data'
+
+def find_test_functions(collections):
+    if not isinstance(collections, list):
+        collections = [collections]
+    functions = []
+    for collection in collections:
+        if not isinstance(collection, dict):
+            collection = vars(collection)
+        keys = collection.keys()
+        keys.sort()
+        for key in keys:
+            value = collection[key]
+            if isinstance(value, types.FunctionType) and hasattr(value, 'unittest'):
+                functions.append(value)
+    return functions
+
+def find_test_filenames(directory):
+    filenames = {}
+    for filename in os.listdir(directory):
+        if os.path.isfile(os.path.join(directory, filename)):
+            base, ext = os.path.splitext(filename)
+            if base.endswith('-py3'):
+                continue
+            filenames.setdefault(base, []).append(ext)
+    filenames = filenames.items()
+    filenames.sort()
+    return filenames
+
+def parse_arguments(args):
+    if args is None:
+        args = sys.argv[1:]
+    verbose = False
+    if '-v' in args:
+        verbose = True
+        args.remove('-v')
+    if '--verbose' in args:
+        verbose = True
+    if 'YAML_TEST_VERBOSE' in os.environ:
+        verbose = True
+    include_functions = []
+    if args:
+        include_functions.append(args.pop(0))
+    if 'YAML_TEST_FUNCTIONS' in os.environ:
+        include_functions.extend(os.environ['YAML_TEST_FUNCTIONS'].split())
+    include_filenames = []
+    include_filenames.extend(args)
+    if 'YAML_TEST_FILENAMES' in os.environ:
+        include_filenames.extend(os.environ['YAML_TEST_FILENAMES'].split())
+    return include_functions, include_filenames, verbose
+
+def execute(function, filenames, verbose):
+    if hasattr(function, 'unittest_name'):
+        name = function.unittest_name
+    else:
+        name = function.func_name
+    if verbose:
+        sys.stdout.write('='*75+'\n')
+        sys.stdout.write('%s(%s)...\n' % (name, ', '.join(filenames)))
+    try:
+        function(verbose=verbose, *filenames)
+    except Exception, exc:
+        info = sys.exc_info()
+        if isinstance(exc, AssertionError):
+            kind = 'FAILURE'
+        else:
+            kind = 'ERROR'
+        if verbose:
+            traceback.print_exc(limit=1, file=sys.stdout)
+        else:
+            sys.stdout.write(kind[0])
+            sys.stdout.flush()
+    else:
+        kind = 'SUCCESS'
+        info = None
+        if not verbose:
+            sys.stdout.write('.')
+    sys.stdout.flush()
+    return (name, filenames, kind, info)
+
+def display(results, verbose):
+    if results and not verbose:
+        sys.stdout.write('\n')
+    total = len(results)
+    failures = 0
+    errors = 0
+    for name, filenames, kind, info in results:
+        if kind == 'SUCCESS':
+            continue
+        if kind == 'FAILURE':
+            failures += 1
+        if kind == 'ERROR':
+            errors += 1
+        sys.stdout.write('='*75+'\n')
+        sys.stdout.write('%s(%s): %s\n' % (name, ', '.join(filenames), kind))
+        if kind == 'ERROR':
+            traceback.print_exception(file=sys.stdout, *info)
+        else:
+            sys.stdout.write('Traceback (most recent call last):\n')
+            traceback.print_tb(info[2], file=sys.stdout)
+            sys.stdout.write('%s: see below\n' % info[0].__name__)
+            sys.stdout.write('~'*75+'\n')
+            for arg in info[1].args:
+                pprint.pprint(arg, stream=sys.stdout)
+        for filename in filenames:
+            sys.stdout.write('-'*75+'\n')
+            sys.stdout.write('%s:\n' % filename)
+            data = open(filename, 'rb').read()
+            sys.stdout.write(data)
+            if data and data[-1] != '\n':
+                sys.stdout.write('\n')
+    sys.stdout.write('='*75+'\n')
+    sys.stdout.write('TESTS: %s\n' % total)
+    if failures:
+        sys.stdout.write('FAILURES: %s\n' % failures)
+    if errors:
+        sys.stdout.write('ERRORS: %s\n' % errors)
+
+def run(collections, args=None):
+    test_functions = find_test_functions(collections)
+    test_filenames = find_test_filenames(DATA)
+    include_functions, include_filenames, verbose = parse_arguments(args)
+    results = []
+    for function in test_functions:
+        if include_functions and function.func_name not in include_functions:
+            continue
+        if function.unittest:
+            for base, exts in test_filenames:
+                if include_filenames and base not in include_filenames:
+                    continue
+                filenames = []
+                for ext in function.unittest:
+                    if ext not in exts:
+                        break
+                    filenames.append(os.path.join(DATA, base+ext))
+                else:
+                    skip_exts = getattr(function, 'skip', [])
+                    for skip_ext in skip_exts:
+                        if skip_ext in exts:
+                            break
+                    else:
+                        result = execute(function, filenames, verbose)
+                        results.append(result)
+        else:
+            result = execute(function, [], verbose)
+            results.append(result)
+    display(results, verbose=verbose)
+
diff --git a/tests/test_build.py b/tests/lib/test_build.py
similarity index 100%
rename from tests/test_build.py
rename to tests/lib/test_build.py
diff --git a/tests/test_build_ext.py b/tests/lib/test_build_ext.py
similarity index 100%
rename from tests/test_build_ext.py
rename to tests/lib/test_build_ext.py
diff --git a/tests/test_canonical.py b/tests/lib/test_canonical.py
similarity index 100%
rename from tests/test_canonical.py
rename to tests/lib/test_canonical.py
diff --git a/tests/test_constructor.py b/tests/lib/test_constructor.py
similarity index 100%
rename from tests/test_constructor.py
rename to tests/lib/test_constructor.py
diff --git a/tests/test_emitter.py b/tests/lib/test_emitter.py
similarity index 100%
rename from tests/test_emitter.py
rename to tests/lib/test_emitter.py
diff --git a/tests/lib/test_errors.py b/tests/lib/test_errors.py
new file mode 100644
index 0000000..7dc9388
--- /dev/null
+++ b/tests/lib/test_errors.py
@@ -0,0 +1,67 @@
+
+import yaml, test_emitter
+
+def test_loader_error(error_filename, verbose=False):
+    try:
+        list(yaml.load_all(open(error_filename, 'rb')))
+    except yaml.YAMLError, exc:
+        if verbose:
+            print "%s:" % exc.__class__.__name__, exc
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error.unittest = ['.loader-error']
+
+def test_loader_error_string(error_filename, verbose=False):
+    try:
+        list(yaml.load_all(open(error_filename, 'rb').read()))
+    except yaml.YAMLError, exc:
+        if verbose:
+            print "%s:" % exc.__class__.__name__, exc
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error_string.unittest = ['.loader-error']
+
+def test_loader_error_single(error_filename, verbose=False):
+    try:
+        yaml.load(open(error_filename, 'rb').read())
+    except yaml.YAMLError, exc:
+        if verbose:
+            print "%s:" % exc.__class__.__name__, exc
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error_single.unittest = ['.single-loader-error']
+
+def test_emitter_error(error_filename, verbose=False):
+    events = list(yaml.load(open(error_filename, 'rb'),
+                    Loader=test_emitter.EventsLoader))
+    try:
+        yaml.emit(events)
+    except yaml.YAMLError, exc:
+        if verbose:
+            print "%s:" % exc.__class__.__name__, exc
+    else:
+        raise AssertionError("expected an exception")
+
+test_emitter_error.unittest = ['.emitter-error']
+
+def test_dumper_error(error_filename, verbose=False):
+    code = open(error_filename, 'rb').read()
+    try:
+        import yaml
+        from StringIO import StringIO
+        exec code
+    except yaml.YAMLError, exc:
+        if verbose:
+            print "%s:" % exc.__class__.__name__, exc
+    else:
+        raise AssertionError("expected an exception")
+
+test_dumper_error.unittest = ['.dumper-error']
+
+if __name__ == '__main__':
+    import test_appliance
+    test_appliance.run(globals())
+
diff --git a/tests/test_mark.py b/tests/lib/test_mark.py
similarity index 100%
rename from tests/test_mark.py
rename to tests/lib/test_mark.py
diff --git a/tests/test_reader.py b/tests/lib/test_reader.py
similarity index 100%
rename from tests/test_reader.py
rename to tests/lib/test_reader.py
diff --git a/tests/test_recursive.py b/tests/lib/test_recursive.py
similarity index 100%
rename from tests/test_recursive.py
rename to tests/lib/test_recursive.py
diff --git a/tests/test_representer.py b/tests/lib/test_representer.py
similarity index 100%
rename from tests/test_representer.py
rename to tests/lib/test_representer.py
diff --git a/tests/test_resolver.py b/tests/lib/test_resolver.py
similarity index 100%
rename from tests/test_resolver.py
rename to tests/lib/test_resolver.py
diff --git a/tests/test_structure.py b/tests/lib/test_structure.py
similarity index 100%
rename from tests/test_structure.py
rename to tests/lib/test_structure.py
diff --git a/tests/test_tokens.py b/tests/lib/test_tokens.py
similarity index 100%
rename from tests/test_tokens.py
rename to tests/lib/test_tokens.py
diff --git a/tests/test_yaml.py b/tests/lib/test_yaml.py
similarity index 100%
rename from tests/test_yaml.py
rename to tests/lib/test_yaml.py
diff --git a/tests/test_yaml_ext.py b/tests/lib/test_yaml_ext.py
similarity index 100%
rename from tests/test_yaml_ext.py
rename to tests/lib/test_yaml_ext.py
diff --git a/tests3/canonical.py b/tests/lib3/canonical.py
similarity index 100%
rename from tests3/canonical.py
rename to tests/lib3/canonical.py
diff --git a/tests/test_all.py b/tests/lib3/test_all.py
similarity index 100%
copy from tests/test_all.py
copy to tests/lib3/test_all.py
diff --git a/tests/lib3/test_appliance.py b/tests/lib3/test_appliance.py
new file mode 100644
index 0000000..81ff00b
--- /dev/null
+++ b/tests/lib3/test_appliance.py
@@ -0,0 +1,145 @@
+
+import sys, os, os.path, types, traceback, pprint
+
+DATA = 'tests/data'
+
+def find_test_functions(collections):
+    if not isinstance(collections, list):
+        collections = [collections]
+    functions = []
+    for collection in collections:
+        if not isinstance(collection, dict):
+            collection = vars(collection)
+        for key in sorted(collection):
+            value = collection[key]
+            if isinstance(value, types.FunctionType) and hasattr(value, 'unittest'):
+                functions.append(value)
+    return functions
+
+def find_test_filenames(directory):
+    filenames = {}
+    for filename in os.listdir(directory):
+        if os.path.isfile(os.path.join(directory, filename)):
+            base, ext = os.path.splitext(filename)
+            if base.endswith('-py2'):
+                continue
+            filenames.setdefault(base, []).append(ext)
+    filenames = sorted(filenames.items())
+    return filenames
+
+def parse_arguments(args):
+    if args is None:
+        args = sys.argv[1:]
+    verbose = False
+    if '-v' in args:
+        verbose = True
+        args.remove('-v')
+    if '--verbose' in args:
+        verbose = True
+    if 'YAML_TEST_VERBOSE' in os.environ:
+        verbose = True
+    include_functions = []
+    if args:
+        include_functions.append(args.pop(0))
+    if 'YAML_TEST_FUNCTIONS' in os.environ:
+        include_functions.extend(os.environ['YAML_TEST_FUNCTIONS'].split())
+    include_filenames = []
+    include_filenames.extend(args)
+    if 'YAML_TEST_FILENAMES' in os.environ:
+        include_filenames.extend(os.environ['YAML_TEST_FILENAMES'].split())
+    return include_functions, include_filenames, verbose
+
+def execute(function, filenames, verbose):
+    name = function.__name__
+    if verbose:
+        sys.stdout.write('='*75+'\n')
+        sys.stdout.write('%s(%s)...\n' % (name, ', '.join(filenames)))
+    try:
+        function(verbose=verbose, *filenames)
+    except Exception as exc:
+        info = sys.exc_info()
+        if isinstance(exc, AssertionError):
+            kind = 'FAILURE'
+        else:
+            kind = 'ERROR'
+        if verbose:
+            traceback.print_exc(limit=1, file=sys.stdout)
+        else:
+            sys.stdout.write(kind[0])
+            sys.stdout.flush()
+    else:
+        kind = 'SUCCESS'
+        info = None
+        if not verbose:
+            sys.stdout.write('.')
+    sys.stdout.flush()
+    return (name, filenames, kind, info)
+
+def display(results, verbose):
+    if results and not verbose:
+        sys.stdout.write('\n')
+    total = len(results)
+    failures = 0
+    errors = 0
+    for name, filenames, kind, info in results:
+        if kind == 'SUCCESS':
+            continue
+        if kind == 'FAILURE':
+            failures += 1
+        if kind == 'ERROR':
+            errors += 1
+        sys.stdout.write('='*75+'\n')
+        sys.stdout.write('%s(%s): %s\n' % (name, ', '.join(filenames), kind))
+        if kind == 'ERROR':
+            traceback.print_exception(file=sys.stdout, *info)
+        else:
+            sys.stdout.write('Traceback (most recent call last):\n')
+            traceback.print_tb(info[2], file=sys.stdout)
+            sys.stdout.write('%s: see below\n' % info[0].__name__)
+            sys.stdout.write('~'*75+'\n')
+            for arg in info[1].args:
+                pprint.pprint(arg, stream=sys.stdout)
+        for filename in filenames:
+            sys.stdout.write('-'*75+'\n')
+            sys.stdout.write('%s:\n' % filename)
+            data = open(filename, 'r', errors='replace').read()
+            sys.stdout.write(data)
+            if data and data[-1] != '\n':
+                sys.stdout.write('\n')
+    sys.stdout.write('='*75+'\n')
+    sys.stdout.write('TESTS: %s\n' % total)
+    if failures:
+        sys.stdout.write('FAILURES: %s\n' % failures)
+    if errors:
+        sys.stdout.write('ERRORS: %s\n' % errors)
+
+def run(collections, args=None):
+    test_functions = find_test_functions(collections)
+    test_filenames = find_test_filenames(DATA)
+    include_functions, include_filenames, verbose = parse_arguments(args)
+    results = []
+    for function in test_functions:
+        if include_functions and function.__name__ not in include_functions:
+            continue
+        if function.unittest:
+            for base, exts in test_filenames:
+                if include_filenames and base not in include_filenames:
+                    continue
+                filenames = []
+                for ext in function.unittest:
+                    if ext not in exts:
+                        break
+                    filenames.append(os.path.join(DATA, base+ext))
+                else:
+                    skip_exts = getattr(function, 'skip', [])
+                    for skip_ext in skip_exts:
+                        if skip_ext in exts:
+                            break
+                    else:
+                        result = execute(function, filenames, verbose)
+                        results.append(result)
+        else:
+            result = execute(function, [], verbose)
+            results.append(result)
+    display(results, verbose=verbose)
+
diff --git a/tests/test_build.py b/tests/lib3/test_build.py
similarity index 100%
copy from tests/test_build.py
copy to tests/lib3/test_build.py
diff --git a/tests/test_build_ext.py b/tests/lib3/test_build_ext.py
similarity index 100%
copy from tests/test_build_ext.py
copy to tests/lib3/test_build_ext.py
diff --git a/tests3/test_canonical.py b/tests/lib3/test_canonical.py
similarity index 100%
rename from tests3/test_canonical.py
rename to tests/lib3/test_canonical.py
diff --git a/tests/lib3/test_constructor.py b/tests/lib3/test_constructor.py
new file mode 100644
index 0000000..b4b0884
--- /dev/null
+++ b/tests/lib3/test_constructor.py
@@ -0,0 +1,258 @@
+
+import yaml
+import pprint
+
+import datetime
+import yaml.tokens
+
+def execute(code):
+    global value
+    exec(code)
+    return value
+
+def _make_objects():
+    global MyLoader, MyDumper, MyTestClass1, MyTestClass2, MyTestClass3, YAMLObject1, YAMLObject2,  \
+            AnObject, AnInstance, AState, ACustomState, InitArgs, InitArgsWithState,    \
+            NewArgs, NewArgsWithState, Reduce, ReduceWithState, MyInt, MyList, MyDict,  \
+            FixedOffset, execute
+
+    class MyLoader(yaml.Loader):
+        pass
+    class MyDumper(yaml.Dumper):
+        pass
+
+    class MyTestClass1:
+        def __init__(self, x, y=0, z=0):
+            self.x = x
+            self.y = y
+            self.z = z
+        def __eq__(self, other):
+            if isinstance(other, MyTestClass1):
+                return self.__class__, self.__dict__ == other.__class__, other.__dict__
+            else:
+                return False
+
+    def construct1(constructor, node):
+        mapping = constructor.construct_mapping(node)
+        return MyTestClass1(**mapping)
+    def represent1(representer, native):
+        return representer.represent_mapping("!tag1", native.__dict__)
+
+    yaml.add_constructor("!tag1", construct1, Loader=MyLoader)
+    yaml.add_representer(MyTestClass1, represent1, Dumper=MyDumper)
+
+    class MyTestClass2(MyTestClass1, yaml.YAMLObject):
+        yaml_loader = MyLoader
+        yaml_dumper = MyDumper
+        yaml_tag = "!tag2"
+        def from_yaml(cls, constructor, node):
+            x = constructor.construct_yaml_int(node)
+            return cls(x=x)
+        from_yaml = classmethod(from_yaml)
+        def to_yaml(cls, representer, native):
+            return representer.represent_scalar(cls.yaml_tag, str(native.x))
+        to_yaml = classmethod(to_yaml)
+
+    class MyTestClass3(MyTestClass2):
+        yaml_tag = "!tag3"
+        def from_yaml(cls, constructor, node):
+            mapping = constructor.construct_mapping(node)
+            if '=' in mapping:
+                x = mapping['=']
+                del mapping['=']
+                mapping['x'] = x
+            return cls(**mapping)
+        from_yaml = classmethod(from_yaml)
+        def to_yaml(cls, representer, native):
+            return representer.represent_mapping(cls.yaml_tag, native.__dict__)
+        to_yaml = classmethod(to_yaml)
+
+    class YAMLObject1(yaml.YAMLObject):
+        yaml_loader = MyLoader
+        yaml_dumper = MyDumper
+        yaml_tag = '!foo'
+        def __init__(self, my_parameter=None, my_another_parameter=None):
+            self.my_parameter = my_parameter
+            self.my_another_parameter = my_another_parameter
+        def __eq__(self, other):
+            if isinstance(other, YAMLObject1):
+                return self.__class__, self.__dict__ == other.__class__, other.__dict__
+            else:
+                return False
+
+    class YAMLObject2(yaml.YAMLObject):
+        yaml_loader = MyLoader
+        yaml_dumper = MyDumper
+        yaml_tag = '!bar'
+        def __init__(self, foo=1, bar=2, baz=3):
+            self.foo = foo
+            self.bar = bar
+            self.baz = baz
+        def __getstate__(self):
+            return {1: self.foo, 2: self.bar, 3: self.baz}
+        def __setstate__(self, state):
+            self.foo = state[1]
+            self.bar = state[2]
+            self.baz = state[3]
+        def __eq__(self, other):
+            if isinstance(other, YAMLObject2):
+                return self.__class__, self.__dict__ == other.__class__, other.__dict__
+            else:
+                return False
+
+    class AnObject:
+        def __new__(cls, foo=None, bar=None, baz=None):
+            self = object.__new__(cls)
+            self.foo = foo
+            self.bar = bar
+            self.baz = baz
+            return self
+        def __cmp__(self, other):
+            return cmp((type(self), self.foo, self.bar, self.baz),
+                    (type(other), other.foo, other.bar, other.baz))
+        def __eq__(self, other):
+            return type(self) is type(other) and    \
+                    (self.foo, self.bar, self.baz) == (other.foo, other.bar, other.baz)
+
+    class AnInstance:
+        def __init__(self, foo=None, bar=None, baz=None):
+            self.foo = foo
+            self.bar = bar
+            self.baz = baz
+        def __cmp__(self, other):
+            return cmp((type(self), self.foo, self.bar, self.baz),
+                    (type(other), other.foo, other.bar, other.baz))
+        def __eq__(self, other):
+            return type(self) is type(other) and    \
+                    (self.foo, self.bar, self.baz) == (other.foo, other.bar, other.baz)
+
+    class AState(AnInstance):
+        def __getstate__(self):
+            return {
+                '_foo': self.foo,
+                '_bar': self.bar,
+                '_baz': self.baz,
+            }
+        def __setstate__(self, state):
+            self.foo = state['_foo']
+            self.bar = state['_bar']
+            self.baz = state['_baz']
+
+    class ACustomState(AnInstance):
+        def __getstate__(self):
+            return (self.foo, self.bar, self.baz)
+        def __setstate__(self, state):
+            self.foo, self.bar, self.baz = state
+
+    class NewArgs(AnObject):
+        def __getnewargs__(self):
+            return (self.foo, self.bar, self.baz)
+        def __getstate__(self):
+            return {}
+
+    class NewArgsWithState(AnObject):
+        def __getnewargs__(self):
+            return (self.foo, self.bar)
+        def __getstate__(self):
+            return self.baz
+        def __setstate__(self, state):
+            self.baz = state
+
+    InitArgs = NewArgs
+
+    InitArgsWithState = NewArgsWithState
+
+    class Reduce(AnObject):
+        def __reduce__(self):
+            return self.__class__, (self.foo, self.bar, self.baz)
+
+    class ReduceWithState(AnObject):
+        def __reduce__(self):
+            return self.__class__, (self.foo, self.bar), self.baz
+        def __setstate__(self, state):
+            self.baz = state
+
+    class MyInt(int):
+        def __eq__(self, other):
+            return type(self) is type(other) and int(self) == int(other)
+
+    class MyList(list):
+        def __init__(self, n=1):
+            self.extend([None]*n)
+        def __eq__(self, other):
+            return type(self) is type(other) and list(self) == list(other)
+
+    class MyDict(dict):
+        def __init__(self, n=1):
+            for k in range(n):
+                self[k] = None
+        def __eq__(self, other):
+            return type(self) is type(other) and dict(self) == dict(other)
+
+    class FixedOffset(datetime.tzinfo):
+        def __init__(self, offset, name):
+            self.__offset = datetime.timedelta(minutes=offset)
+            self.__name = name
+        def utcoffset(self, dt):
+            return self.__offset
+        def tzname(self, dt):
+            return self.__name
+        def dst(self, dt):
+            return datetime.timedelta(0)
+
+def _load_code(expression):
+    return eval(expression)
+
+def _serialize_value(data):
+    if isinstance(data, list):
+        return '[%s]' % ', '.join(map(_serialize_value, data))
+    elif isinstance(data, dict):
+        items = []
+        for key, value in data.items():
+            key = _serialize_value(key)
+            value = _serialize_value(value)
+            items.append("%s: %s" % (key, value))
+        items.sort()
+        return '{%s}' % ', '.join(items)
+    elif isinstance(data, datetime.datetime):
+        return repr(data.utctimetuple())
+    elif isinstance(data, float) and data != data:
+        return '?'
+    else:
+        return str(data)
+
+def test_constructor_types(data_filename, code_filename, verbose=False):
+    _make_objects()
+    native1 = None
+    native2 = None
+    try:
+        native1 = list(yaml.load_all(open(data_filename, 'rb'), Loader=MyLoader))
+        if len(native1) == 1:
+            native1 = native1[0]
+        native2 = _load_code(open(code_filename, 'rb').read())
+        try:
+            if native1 == native2:
+                return
+        except TypeError:
+            pass
+        if verbose:
+            print("SERIALIZED NATIVE1:")
+            print(_serialize_value(native1))
+            print("SERIALIZED NATIVE2:")
+            print(_serialize_value(native2))
+        assert _serialize_value(native1) == _serialize_value(native2), (native1, native2)
+    finally:
+        if verbose:
+            print("NATIVE1:")
+            pprint.pprint(native1)
+            print("NATIVE2:")
+            pprint.pprint(native2)
+
+test_constructor_types.unittest = ['.data', '.code']
+
+if __name__ == '__main__':
+    import sys, test_constructor
+    sys.modules['test_constructor'] = sys.modules['__main__']
+    import test_appliance
+    test_appliance.run(globals())
+
diff --git a/tests3/test_emitter.py b/tests/lib3/test_emitter.py
similarity index 100%
rename from tests3/test_emitter.py
rename to tests/lib3/test_emitter.py
diff --git a/tests/lib3/test_errors.py b/tests/lib3/test_errors.py
new file mode 100644
index 0000000..a3f86af
--- /dev/null
+++ b/tests/lib3/test_errors.py
@@ -0,0 +1,67 @@
+
+import yaml, test_emitter
+
+def test_loader_error(error_filename, verbose=False):
+    try:
+        list(yaml.load_all(open(error_filename, 'rb')))
+    except yaml.YAMLError as exc:
+        if verbose:
+            print("%s:" % exc.__class__.__name__, exc)
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error.unittest = ['.loader-error']
+
+def test_loader_error_string(error_filename, verbose=False):
+    try:
+        list(yaml.load_all(open(error_filename, 'rb').read()))
+    except yaml.YAMLError as exc:
+        if verbose:
+            print("%s:" % exc.__class__.__name__, exc)
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error_string.unittest = ['.loader-error']
+
+def test_loader_error_single(error_filename, verbose=False):
+    try:
+        yaml.load(open(error_filename, 'rb').read())
+    except yaml.YAMLError as exc:
+        if verbose:
+            print("%s:" % exc.__class__.__name__, exc)
+    else:
+        raise AssertionError("expected an exception")
+
+test_loader_error_single.unittest = ['.single-loader-error']
+
+def test_emitter_error(error_filename, verbose=False):
+    events = list(yaml.load(open(error_filename, 'rb'),
+                    Loader=test_emitter.EventsLoader))
+    try:
+        yaml.emit(events)
+    except yaml.YAMLError as exc:
+        if verbose:
+            print("%s:" % exc.__class__.__name__, exc)
+    else:
+        raise AssertionError("expected an exception")
+
+test_emitter_error.unittest = ['.emitter-error']
+
+def test_dumper_error(error_filename, verbose=False):
+    code = open(error_filename, 'rb').read()
+    try:
+        import yaml
+        from io import StringIO
+        exec(code)
+    except yaml.YAMLError as exc:
+        if verbose:
+            print("%s:" % exc.__class__.__name__, exc)
+    else:
+        raise AssertionError("expected an exception")
+
+test_dumper_error.unittest = ['.dumper-error']
+
+if __name__ == '__main__':
+    import test_appliance
+    test_appliance.run(globals())
+
diff --git a/tests3/test_mark.py b/tests/lib3/test_mark.py
similarity index 100%
rename from tests3/test_mark.py
rename to tests/lib3/test_mark.py
diff --git a/tests3/test_reader.py b/tests/lib3/test_reader.py
similarity index 100%
rename from tests3/test_reader.py
rename to tests/lib3/test_reader.py
diff --git a/tests3/test_recursive.py b/tests/lib3/test_recursive.py
similarity index 100%
rename from tests3/test_recursive.py
rename to tests/lib3/test_recursive.py
diff --git a/tests3/test_representer.py b/tests/lib3/test_representer.py
similarity index 100%
rename from tests3/test_representer.py
rename to tests/lib3/test_representer.py
diff --git a/tests3/test_resolver.py b/tests/lib3/test_resolver.py
similarity index 100%
rename from tests3/test_resolver.py
rename to tests/lib3/test_resolver.py
diff --git a/tests3/test_structure.py b/tests/lib3/test_structure.py
similarity index 100%
rename from tests3/test_structure.py
rename to tests/lib3/test_structure.py
diff --git a/tests3/test_tokens.py b/tests/lib3/test_tokens.py
similarity index 100%
rename from tests3/test_tokens.py
rename to tests/lib3/test_tokens.py
diff --git a/tests/test_yaml.py b/tests/lib3/test_yaml.py
similarity index 100%
copy from tests/test_yaml.py
copy to tests/lib3/test_yaml.py
diff --git a/tests3/test_yaml_ext.py b/tests/lib3/test_yaml_ext.py
similarity index 100%
rename from tests3/test_yaml_ext.py
rename to tests/lib3/test_yaml_ext.py
diff --git a/tests/test_appliance.py b/tests/test_appliance.py
deleted file mode 100644
index 49783ef..0000000
--- a/tests/test_appliance.py
+++ /dev/null
@@ -1,149 +0,0 @@
-
-import sys, os, os.path, types, traceback, pprint
-
-DATA = 'tests/data'
-
-def find_test_functions(collections):
-    if not isinstance(collections, list):
-        collections = [collections]
-    functions = []
-    for collection in collections:
-        if not isinstance(collection, dict):
-            collection = vars(collection)
-        keys = collection.keys()
-        keys.sort()
-        for key in keys:
-            value = collection[key]
-            if isinstance(value, types.FunctionType) and hasattr(value, 'unittest'):
-                functions.append(value)
-    return functions
-
-def find_test_filenames(directory):
-    filenames = {}
-    for filename in os.listdir(directory):
-        if os.path.isfile(os.path.join(directory, filename)):
-            base, ext = os.path.splitext(filename)
-            filenames.setdefault(base, []).append(ext)
-    filenames = filenames.items()
-    filenames.sort()
-    return filenames
-
-def parse_arguments(args):
-    if args is None:
-        args = sys.argv[1:]
-    verbose = False
-    if '-v' in args:
-        verbose = True
-        args.remove('-v')
-    if '--verbose' in args:
-        verbose = True
-    if 'YAML_TEST_VERBOSE' in os.environ:
-        verbose = True
-    include_functions = []
-    if args:
-        include_functions.append(args.pop(0))
-    if 'YAML_TEST_FUNCTIONS' in os.environ:
-        include_functions.extend(os.environ['YAML_TEST_FUNCTIONS'].split())
-    include_filenames = []
-    include_filenames.extend(args)
-    if 'YAML_TEST_FILENAMES' in os.environ:
-        include_filenames.extend(os.environ['YAML_TEST_FILENAMES'].split())
-    return include_functions, include_filenames, verbose
-
-def execute(function, filenames, verbose):
-    if hasattr(function, 'unittest_name'):
-        name = function.unittest_name
-    else:
-        name = function.func_name
-    if verbose:
-        sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s)...\n' % (name, ', '.join(filenames)))
-    try:
-        function(verbose=verbose, *filenames)
-    except Exception, exc:
-        info = sys.exc_info()
-        if isinstance(exc, AssertionError):
-            kind = 'FAILURE'
-        else:
-            kind = 'ERROR'
-        if verbose:
-            traceback.print_exc(limit=1, file=sys.stdout)
-        else:
-            sys.stdout.write(kind[0])
-            sys.stdout.flush()
-    else:
-        kind = 'SUCCESS'
-        info = None
-        if not verbose:
-            sys.stdout.write('.')
-    sys.stdout.flush()
-    return (name, filenames, kind, info)
-
-def display(results, verbose):
-    if results and not verbose:
-        sys.stdout.write('\n')
-    total = len(results)
-    failures = 0
-    errors = 0
-    for name, filenames, kind, info in results:
-        if kind == 'SUCCESS':
-            continue
-        if kind == 'FAILURE':
-            failures += 1
-        if kind == 'ERROR':
-            errors += 1
-        sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s): %s\n' % (name, ', '.join(filenames), kind))
-        if kind == 'ERROR':
-            traceback.print_exception(file=sys.stdout, *info)
-        else:
-            sys.stdout.write('Traceback (most recent call last):\n')
-            traceback.print_tb(info[2], file=sys.stdout)
-            sys.stdout.write('%s: see below\n' % info[0].__name__)
-            sys.stdout.write('~'*75+'\n')
-            for arg in info[1].args:
-                pprint.pprint(arg, stream=sys.stdout)
-        for filename in filenames:
-            sys.stdout.write('-'*75+'\n')
-            sys.stdout.write('%s:\n' % filename)
-            data = open(filename, 'rb').read()
-            sys.stdout.write(data)
-            if data and data[-1] != '\n':
-                sys.stdout.write('\n')
-    sys.stdout.write('='*75+'\n')
-    sys.stdout.write('TESTS: %s\n' % total)
-    if failures:
-        sys.stdout.write('FAILURES: %s\n' % failures)
-    if errors:
-        sys.stdout.write('ERRORS: %s\n' % errors)
-
-def run(collections, args=None):
-    test_functions = find_test_functions(collections)
-    test_filenames = find_test_filenames(DATA)
-    include_functions, include_filenames, verbose = parse_arguments(args)
-    results = []
-    for function in test_functions:
-        if include_functions and function.func_name not in include_functions:
-            continue
-        if function.unittest:
-            for base, exts in test_filenames:
-                if include_filenames and base not in include_filenames:
-                    continue
-                filenames = []
-                for ext in function.unittest:
-                    if ext not in exts:
-                        break
-                    filenames.append(os.path.join(DATA, base+ext))
-                else:
-                    skip_exts = getattr(function, 'skip', [])
-                    for skip_ext in skip_exts:
-                        if skip_ext in exts:
-                            break
-                    else:
-                        result = execute(function, filenames, verbose)
-                        results.append(result)
-        else:
-            result = execute(function, [], verbose)
-            results.append(result)
-    display(results, verbose=verbose)
-
diff --git a/tests/test_errors.py b/tests/test_errors.py
deleted file mode 100644
index 5fd7c46..0000000
--- a/tests/test_errors.py
+++ /dev/null
@@ -1,66 +0,0 @@
-
-import yaml, test_emitter
-
-def test_loader_error(error_filename, verbose=False):
-    try:
-        list(yaml.load_all(open(error_filename, 'rb')))
-    except yaml.YAMLError, exc:
-        if verbose:
-            print "%s:" % exc.__class__.__name__, exc
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error.unittest = ['.loader-error']
-
-def test_loader_error_string(error_filename, verbose=False):
-    try:
-        list(yaml.load_all(open(error_filename, 'rb').read()))
-    except yaml.YAMLError, exc:
-        if verbose:
-            print "%s:" % exc.__class__.__name__, exc
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error_string.unittest = ['.loader-error']
-
-def test_loader_error_single(error_filename, verbose=False):
-    try:
-        yaml.load(open(error_filename, 'rb').read())
-    except yaml.YAMLError, exc:
-        if verbose:
-            print "%s:" % exc.__class__.__name__, exc
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error_single.unittest = ['.single-loader-error']
-
-def test_emitter_error(error_filename, verbose=False):
-    events = list(yaml.load(open(error_filename, 'rb'),
-                    Loader=test_emitter.EventsLoader))
-    try:
-        yaml.emit(events)
-    except yaml.YAMLError, exc:
-        if verbose:
-            print "%s:" % exc.__class__.__name__, exc
-    else:
-        raise AssertionError("expected an exception")
-
-test_emitter_error.unittest = ['.emitter-error']
-
-def test_dumper_error(error_filename, verbose=False):
-    code = open(error_filename, 'rb').read()
-    try:
-        import yaml, StringIO
-        exec code
-    except yaml.YAMLError, exc:
-        if verbose:
-            print "%s:" % exc.__class__.__name__, exc
-    else:
-        raise AssertionError("expected an exception")
-
-test_dumper_error.unittest = ['.dumper-error']
-
-if __name__ == '__main__':
-    import test_appliance
-    test_appliance.run(globals())
-
diff --git a/tests3/data/a-nasty-libyaml-bug.loader-error b/tests3/data/a-nasty-libyaml-bug.loader-error
deleted file mode 100644
index f97d49f..0000000
--- a/tests3/data/a-nasty-libyaml-bug.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-[ [
\ No newline at end of file
diff --git a/tests3/data/aliases.events b/tests3/data/aliases.events
deleted file mode 100644
index 9139b51..0000000
--- a/tests3/data/aliases.events
+++ /dev/null
@@ -1,8 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !SequenceStart
-- !Scalar { anchor: 'myanchor', tag: '!mytag', value: 'data' }
-- !Alias { anchor: 'myanchor' }
-- !SequenceEnd
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/bool.data b/tests3/data/bool.data
deleted file mode 100644
index 0988b63..0000000
--- a/tests3/data/bool.data
+++ /dev/null
@@ -1,4 +0,0 @@
-- yes
-- NO
-- True
-- on
diff --git a/tests3/data/bool.detect b/tests3/data/bool.detect
deleted file mode 100644
index 947ebbb..0000000
--- a/tests3/data/bool.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:bool
diff --git a/tests3/data/colon-in-flow-context.loader-error b/tests3/data/colon-in-flow-context.loader-error
deleted file mode 100644
index 13d5087..0000000
--- a/tests3/data/colon-in-flow-context.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-{ foo:bar }
diff --git a/tests3/data/construct-binary.data b/tests3/data/construct-binary.data
deleted file mode 100644
index dcdb16f..0000000
--- a/tests3/data/construct-binary.data
+++ /dev/null
@@ -1,12 +0,0 @@
-canonical: !!binary "\
- R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\
- OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\
- +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\
- AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="
-generic: !!binary |
- R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
- OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
- +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
- AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=
-description:
- The binary value above is a tiny arrow encoded as a gif image.
diff --git a/tests3/data/construct-bool.code b/tests3/data/construct-bool.code
deleted file mode 100644
index 3d02580..0000000
--- a/tests3/data/construct-bool.code
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "canonical": True,
-    "answer": False,
-    "logical": True,
-    "option": True,
-    "but": { "y": "is a string", "n": "is a string" },
-}
diff --git a/tests3/data/construct-bool.data b/tests3/data/construct-bool.data
deleted file mode 100644
index 36d6519..0000000
--- a/tests3/data/construct-bool.data
+++ /dev/null
@@ -1,9 +0,0 @@
-canonical: yes
-answer: NO
-logical: True
-option: on
-
-
-but:
-    y: is a string
-    n: is a string
diff --git a/tests3/data/construct-custom.code b/tests3/data/construct-custom.code
deleted file mode 100644
index 2d5f063..0000000
--- a/tests3/data/construct-custom.code
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-    MyTestClass1(x=1),
-    MyTestClass1(x=1, y=2, z=3),
-    MyTestClass2(x=10),
-    MyTestClass2(x=10, y=20, z=30),
-    MyTestClass3(x=1),
-    MyTestClass3(x=1, y=2, z=3),
-    MyTestClass3(x=1, y=2, z=3),
-    YAMLObject1(my_parameter='foo', my_another_parameter=[1,2,3])
-]
diff --git a/tests3/data/construct-custom.data b/tests3/data/construct-custom.data
deleted file mode 100644
index 9db0f64..0000000
--- a/tests3/data/construct-custom.data
+++ /dev/null
@@ -1,26 +0,0 @@
----
-- !tag1
-  x: 1
-- !tag1
-  x: 1
-  'y': 2
-  z: 3
-- !tag2
-  10
-- !tag2
-  =: 10
-  'y': 20
-  z: 30
-- !tag3
-  x: 1
-- !tag3
-  x: 1
-  'y': 2
-  z: 3
-- !tag3
-  =: 1
-  'y': 2
-  z: 3
-- !foo
-  my-parameter: foo
-  my-another-parameter: [1,2,3]
diff --git a/tests3/data/construct-float.code b/tests3/data/construct-float.code
deleted file mode 100644
index 8493bf2..0000000
--- a/tests3/data/construct-float.code
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "canonical": 685230.15,
-    "exponential": 685230.15,
-    "fixed": 685230.15,
-    "sexagesimal": 685230.15,
-    "negative infinity": -1e300000,
-    "not a number": 1e300000/1e300000,
-}
diff --git a/tests3/data/construct-float.data b/tests3/data/construct-float.data
deleted file mode 100644
index b662c62..0000000
--- a/tests3/data/construct-float.data
+++ /dev/null
@@ -1,6 +0,0 @@
-canonical: 6.8523015e+5
-exponential: 685.230_15e+03
-fixed: 685_230.15
-sexagesimal: 190:20:30.15
-negative infinity: -.inf
-not a number: .NaN
diff --git a/tests3/data/construct-int.code b/tests3/data/construct-int.code
deleted file mode 100644
index 1058f7b..0000000
--- a/tests3/data/construct-int.code
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "canonical": 685230,
-    "decimal": 685230,
-    "octal": 685230,
-    "hexadecimal": 685230,
-    "binary": 685230,
-    "sexagesimal": 685230,
-}
diff --git a/tests3/data/construct-int.data b/tests3/data/construct-int.data
deleted file mode 100644
index 852c314..0000000
--- a/tests3/data/construct-int.data
+++ /dev/null
@@ -1,6 +0,0 @@
-canonical: 685230
-decimal: +685_230
-octal: 02472256
-hexadecimal: 0x_0A_74_AE
-binary: 0b1010_0111_0100_1010_1110
-sexagesimal: 190:20:30
diff --git a/tests3/data/construct-map.code b/tests3/data/construct-map.code
deleted file mode 100644
index 736ba48..0000000
--- a/tests3/data/construct-map.code
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "Block style":
-        { "Clark" : "Evans", "Brian" : "Ingerson", "Oren" : "Ben-Kiki" },
-    "Flow style":
-        { "Clark" : "Evans", "Brian" : "Ingerson", "Oren" : "Ben-Kiki" },
-}
diff --git a/tests3/data/construct-map.data b/tests3/data/construct-map.data
deleted file mode 100644
index 022446d..0000000
--- a/tests3/data/construct-map.data
+++ /dev/null
@@ -1,6 +0,0 @@
-# Unordered set of key: value pairs.
-Block style: !!map
-  Clark : Evans
-  Brian : Ingerson
-  Oren  : Ben-Kiki
-Flow style: !!map { Clark: Evans, Brian: Ingerson, Oren: Ben-Kiki }
diff --git a/tests3/data/construct-merge.code b/tests3/data/construct-merge.code
deleted file mode 100644
index 6cd419d..0000000
--- a/tests3/data/construct-merge.code
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-    { "x": 1, "y": 2 },
-    { "x": 0, "y": 2 },
-    { "r": 10 },
-    { "r": 1 },
-    { "x": 1, "y": 2, "r": 10, "label": "center/big" },
-    { "x": 1, "y": 2, "r": 10, "label": "center/big" },
-    { "x": 1, "y": 2, "r": 10, "label": "center/big" },
-    { "x": 1, "y": 2, "r": 10, "label": "center/big" },
-]
diff --git a/tests3/data/construct-merge.data b/tests3/data/construct-merge.data
deleted file mode 100644
index 3fdb2e2..0000000
--- a/tests3/data/construct-merge.data
+++ /dev/null
@@ -1,27 +0,0 @@
----
-- &CENTER { x: 1, 'y': 2 }
-- &LEFT { x: 0, 'y': 2 }
-- &BIG { r: 10 }
-- &SMALL { r: 1 }
-
-# All the following maps are equal:
-
-- # Explicit keys
-  x: 1
-  'y': 2
-  r: 10
-  label: center/big
-
-- # Merge one map
-  << : *CENTER
-  r: 10
-  label: center/big
-
-- # Merge multiple maps
-  << : [ *CENTER, *BIG ]
-  label: center/big
-
-- # Override
-  << : [ *BIG, *LEFT, *SMALL ]
-  x: 1
-  label: center/big
diff --git a/tests3/data/construct-null.code b/tests3/data/construct-null.code
deleted file mode 100644
index a895eaa..0000000
--- a/tests3/data/construct-null.code
+++ /dev/null
@@ -1,13 +0,0 @@
-[
-    None,
-    { "empty": None, "canonical": None, "english": None, None: "null key" },
-    {
-        "sparse": [
-            None,
-            "2nd entry",
-            None,
-            "4th entry",
-            None,
-        ],
-    },
-]
diff --git a/tests3/data/construct-null.data b/tests3/data/construct-null.data
deleted file mode 100644
index 9ad0344..0000000
--- a/tests3/data/construct-null.data
+++ /dev/null
@@ -1,18 +0,0 @@
-# A document may be null.
----
----
-# This mapping has four keys,
-# one has a value.
-empty:
-canonical: ~
-english: null
-~: null key
----
-# This sequence has five
-# entries, two have values.
-sparse:
-  - ~
-  - 2nd entry
-  -
-  - 4th entry
-  - Null
diff --git a/tests3/data/construct-omap.code b/tests3/data/construct-omap.code
deleted file mode 100644
index f4cf1b8..0000000
--- a/tests3/data/construct-omap.code
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "Bestiary": [
-        ("aardvark", "African pig-like ant eater. Ugly."),
-        ("anteater", "South-American ant eater. Two species."),
-        ("anaconda", "South-American constrictor snake. Scaly."),
-    ],
-    "Numbers": [ ("one", 1), ("two", 2), ("three", 3) ],
-}
diff --git a/tests3/data/construct-omap.data b/tests3/data/construct-omap.data
deleted file mode 100644
index 4fa0f45..0000000
--- a/tests3/data/construct-omap.data
+++ /dev/null
@@ -1,8 +0,0 @@
-# Explicitly typed ordered map (dictionary).
-Bestiary: !!omap
-  - aardvark: African pig-like ant eater. Ugly.
-  - anteater: South-American ant eater. Two species.
-  - anaconda: South-American constrictor snake. Scaly.
-  # Etc.
-# Flow style
-Numbers: !!omap [ one: 1, two: 2, three : 3 ]
diff --git a/tests3/data/construct-pairs.code b/tests3/data/construct-pairs.code
deleted file mode 100644
index 64f86ee..0000000
--- a/tests3/data/construct-pairs.code
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "Block tasks": [
-        ("meeting", "with team."),
-        ("meeting", "with boss."),
-        ("break", "lunch."),
-        ("meeting", "with client."),
-    ],
-    "Flow tasks": [ ("meeting", "with team"), ("meeting", "with boss") ],
-}
diff --git a/tests3/data/construct-pairs.data b/tests3/data/construct-pairs.data
deleted file mode 100644
index 05f55b9..0000000
--- a/tests3/data/construct-pairs.data
+++ /dev/null
@@ -1,7 +0,0 @@
-# Explicitly typed pairs.
-Block tasks: !!pairs
-  - meeting: with team.
-  - meeting: with boss.
-  - break: lunch.
-  - meeting: with client.
-Flow tasks: !!pairs [ meeting: with team, meeting: with boss ]
diff --git a/tests3/data/construct-python-bool.code b/tests3/data/construct-python-bool.code
deleted file mode 100644
index 170da01..0000000
--- a/tests3/data/construct-python-bool.code
+++ /dev/null
@@ -1 +0,0 @@
-[ True, False ]
diff --git a/tests3/data/construct-python-bool.data b/tests3/data/construct-python-bool.data
deleted file mode 100644
index 0068869..0000000
--- a/tests3/data/construct-python-bool.data
+++ /dev/null
@@ -1 +0,0 @@
-[ !!python/bool True, !!python/bool False ]
diff --git a/tests3/data/construct-python-complex.code b/tests3/data/construct-python-complex.code
deleted file mode 100644
index e582dff..0000000
--- a/tests3/data/construct-python-complex.code
+++ /dev/null
@@ -1 +0,0 @@
-[0.5+0j, 0.5+0.5j, 0.5j, -0.5+0.5j, -0.5+0j, -0.5-0.5j, -0.5j, 0.5-0.5j]
diff --git a/tests3/data/construct-python-complex.data b/tests3/data/construct-python-complex.data
deleted file mode 100644
index 17ebad4..0000000
--- a/tests3/data/construct-python-complex.data
+++ /dev/null
@@ -1,8 +0,0 @@
-- !!python/complex 0.5+0j
-- !!python/complex 0.5+0.5j
-- !!python/complex 0.5j
-- !!python/complex -0.5+0.5j
-- !!python/complex -0.5+0j
-- !!python/complex -0.5-0.5j
-- !!python/complex -0.5j
-- !!python/complex 0.5-0.5j
diff --git a/tests3/data/construct-python-float.code b/tests3/data/construct-python-float.code
deleted file mode 100644
index d5910a0..0000000
--- a/tests3/data/construct-python-float.code
+++ /dev/null
@@ -1 +0,0 @@
-123.456
diff --git a/tests3/data/construct-python-float.data b/tests3/data/construct-python-float.data
deleted file mode 100644
index b460eb8..0000000
--- a/tests3/data/construct-python-float.data
+++ /dev/null
@@ -1 +0,0 @@
-!!python/float 123.456
diff --git a/tests3/data/construct-python-int.data b/tests3/data/construct-python-int.data
deleted file mode 100644
index 741d669..0000000
--- a/tests3/data/construct-python-int.data
+++ /dev/null
@@ -1 +0,0 @@
-!!python/int 123
diff --git a/tests3/data/construct-python-long-short.code b/tests3/data/construct-python-long-short.code
deleted file mode 100644
index 190a180..0000000
--- a/tests3/data/construct-python-long-short.code
+++ /dev/null
@@ -1 +0,0 @@
-123
diff --git a/tests3/data/construct-python-long-short.data b/tests3/data/construct-python-long-short.data
deleted file mode 100644
index 4bd5dc2..0000000
--- a/tests3/data/construct-python-long-short.data
+++ /dev/null
@@ -1 +0,0 @@
-!!python/long 123
diff --git a/tests3/data/construct-python-name-module.code b/tests3/data/construct-python-name-module.code
deleted file mode 100644
index 6f39148..0000000
--- a/tests3/data/construct-python-name-module.code
+++ /dev/null
@@ -1 +0,0 @@
-[str, yaml.Loader, yaml.dump, abs, yaml.tokens]
diff --git a/tests3/data/construct-python-name-module.data b/tests3/data/construct-python-name-module.data
deleted file mode 100644
index f0c9712..0000000
--- a/tests3/data/construct-python-name-module.data
+++ /dev/null
@@ -1,5 +0,0 @@
-- !!python/name:str
-- !!python/name:yaml.Loader
-- !!python/name:yaml.dump
-- !!python/name:abs
-- !!python/module:yaml.tokens
diff --git a/tests3/data/construct-python-none.code b/tests3/data/construct-python-none.code
deleted file mode 100644
index b0047fa..0000000
--- a/tests3/data/construct-python-none.code
+++ /dev/null
@@ -1 +0,0 @@
-None
diff --git a/tests3/data/construct-python-none.data b/tests3/data/construct-python-none.data
deleted file mode 100644
index 7907ec3..0000000
--- a/tests3/data/construct-python-none.data
+++ /dev/null
@@ -1 +0,0 @@
-!!python/none
diff --git a/tests3/data/construct-python-object.code b/tests3/data/construct-python-object.code
deleted file mode 100644
index bfc840a..0000000
--- a/tests3/data/construct-python-object.code
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-AnObject(1, 'two', [3,3,3]),
-AnInstance(1, 'two', [3,3,3]),
-
-AnObject(1, 'two', [3,3,3]),
-AnInstance(1, 'two', [3,3,3]),
-
-AState(1, 'two', [3,3,3]),
-ACustomState(1, 'two', [3,3,3]),
-
-NewArgs(1, 'two', [3,3,3]),
-NewArgsWithState(1, 'two', [3,3,3]),
-
-Reduce(1, 'two', [3,3,3]),
-ReduceWithState(1, 'two', [3,3,3]),
-
-MyInt(3),
-MyList(3),
-MyDict(3),
-]
diff --git a/tests3/data/construct-python-object.data b/tests3/data/construct-python-object.data
deleted file mode 100644
index 6f7a7ce..0000000
--- a/tests3/data/construct-python-object.data
+++ /dev/null
@@ -1,18 +0,0 @@
-- !!python/object:test_constructor.AnObject { foo: 1, bar: two, baz: [3,3,3] }
-- !!python/object:test_constructor.AnInstance { foo: 1, bar: two, baz: [3,3,3] }
-
-- !!python/object/new:test_constructor.AnObject { args: [1, two], kwds: {baz: [3,3,3]} }
-- !!python/object/apply:test_constructor.AnInstance { args: [1, two], kwds: {baz: [3,3,3]} }
-
-- !!python/object:test_constructor.AState { _foo: 1, _bar: two, _baz: [3,3,3] }
-- !!python/object/new:test_constructor.ACustomState { state: !!python/tuple [1, two, [3,3,3]] }
-
-- !!python/object/new:test_constructor.NewArgs [1, two, [3,3,3]]
-- !!python/object/new:test_constructor.NewArgsWithState { args: [1, two], state: [3,3,3] }
-
-- !!python/object/apply:test_constructor.Reduce [1, two, [3,3,3]]
-- !!python/object/apply:test_constructor.ReduceWithState { args: [1, two], state: [3,3,3] }
-
-- !!python/object/new:test_constructor.MyInt [3]
-- !!python/object/new:test_constructor.MyList { listitems: [~, ~, ~] }
-- !!python/object/new:test_constructor.MyDict { dictitems: {0, 1, 2} }
diff --git a/tests3/data/construct-python-str-ascii.data b/tests3/data/construct-python-str-ascii.data
deleted file mode 100644
index a83349e..0000000
--- a/tests3/data/construct-python-str-ascii.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/str "ascii string"
diff --git a/tests3/data/construct-python-str-utf8.data b/tests3/data/construct-python-str-utf8.data
deleted file mode 100644
index 9ef2c72..0000000
--- a/tests3/data/construct-python-str-utf8.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/str "Это уникодная строка"
diff --git a/tests3/data/construct-python-tuple-list-dict.code b/tests3/data/construct-python-tuple-list-dict.code
deleted file mode 100644
index 20ced98..0000000
--- a/tests3/data/construct-python-tuple-list-dict.code
+++ /dev/null
@@ -1,6 +0,0 @@
-[
-    [1, 2, 3, 4],
-    (1, 2, 3, 4),
-    {1: 2, 3: 4},
-    {(0,0): 0, (0,1): 1, (1,0): 1, (1,1): 0},
-]
diff --git a/tests3/data/construct-python-tuple-list-dict.data b/tests3/data/construct-python-tuple-list-dict.data
deleted file mode 100644
index c56159b..0000000
--- a/tests3/data/construct-python-tuple-list-dict.data
+++ /dev/null
@@ -1,8 +0,0 @@
-- !!python/list [1, 2, 3, 4]
-- !!python/tuple [1, 2, 3, 4]
-- !!python/dict {1: 2, 3: 4}
-- !!python/dict
-    !!python/tuple [0,0]: 0
-    !!python/tuple [0,1]: 1
-    !!python/tuple [1,0]: 1
-    !!python/tuple [1,1]: 0
diff --git a/tests3/data/construct-python-unicode-ascii.code b/tests3/data/construct-python-unicode-ascii.code
deleted file mode 100644
index d9d62f6..0000000
--- a/tests3/data/construct-python-unicode-ascii.code
+++ /dev/null
@@ -1 +0,0 @@
-"ascii string"
diff --git a/tests3/data/construct-python-unicode-ascii.data b/tests3/data/construct-python-unicode-ascii.data
deleted file mode 100644
index 3a0647b..0000000
--- a/tests3/data/construct-python-unicode-ascii.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/unicode "ascii string"
diff --git a/tests3/data/construct-python-unicode-utf8.code b/tests3/data/construct-python-unicode-utf8.code
deleted file mode 100644
index 9f66032..0000000
--- a/tests3/data/construct-python-unicode-utf8.code
+++ /dev/null
@@ -1 +0,0 @@
-'\u042d\u0442\u043e \u0443\u043d\u0438\u043a\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430'
diff --git a/tests3/data/construct-python-unicode-utf8.data b/tests3/data/construct-python-unicode-utf8.data
deleted file mode 100644
index 5a980ea..0000000
--- a/tests3/data/construct-python-unicode-utf8.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/unicode "Это уникодная строка"
diff --git a/tests3/data/construct-seq.code b/tests3/data/construct-seq.code
deleted file mode 100644
index 0c90c05..0000000
--- a/tests3/data/construct-seq.code
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "Block style": ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"],
-    "Flow style": ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"],
-}
diff --git a/tests3/data/construct-seq.data b/tests3/data/construct-seq.data
deleted file mode 100644
index bb92fd1..0000000
--- a/tests3/data/construct-seq.data
+++ /dev/null
@@ -1,15 +0,0 @@
-# Ordered sequence of nodes
-Block style: !!seq
-- Mercury   # Rotates - no light/dark sides.
-- Venus     # Deadliest. Aptly named.
-- Earth     # Mostly dirt.
-- Mars      # Seems empty.
-- Jupiter   # The king.
-- Saturn    # Pretty.
-- Uranus    # Where the sun hardly shines.
-- Neptune   # Boring. No rings.
-- Pluto     # You call this a planet?
-Flow style: !!seq [ Mercury, Venus, Earth, Mars,      # Rocks
-                    Jupiter, Saturn, Uranus, Neptune, # Gas
-                    Pluto ]                           # Overrated
-
diff --git a/tests3/data/construct-set.code b/tests3/data/construct-set.code
deleted file mode 100644
index aa090e8..0000000
--- a/tests3/data/construct-set.code
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "baseball players": set(["Mark McGwire", "Sammy Sosa", "Ken Griffey"]),
-    "baseball teams": set(["Boston Red Sox", "Detroit Tigers", "New York Yankees"]),
-}
diff --git a/tests3/data/construct-set.data b/tests3/data/construct-set.data
deleted file mode 100644
index e05dc88..0000000
--- a/tests3/data/construct-set.data
+++ /dev/null
@@ -1,7 +0,0 @@
-# Explicitly typed set.
-baseball players: !!set
-  ? Mark McGwire
-  ? Sammy Sosa
-  ? Ken Griffey
-# Flow style
-baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees }
diff --git a/tests3/data/construct-str-ascii.code b/tests3/data/construct-str-ascii.code
deleted file mode 100644
index d9d62f6..0000000
--- a/tests3/data/construct-str-ascii.code
+++ /dev/null
@@ -1 +0,0 @@
-"ascii string"
diff --git a/tests3/data/construct-str-ascii.data b/tests3/data/construct-str-ascii.data
deleted file mode 100644
index 0d93013..0000000
--- a/tests3/data/construct-str-ascii.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!str "ascii string"
diff --git a/tests3/data/construct-str-utf8.data b/tests3/data/construct-str-utf8.data
deleted file mode 100644
index e355f18..0000000
--- a/tests3/data/construct-str-utf8.data
+++ /dev/null
@@ -1 +0,0 @@
---- !!str "Это уникодная строка"
diff --git a/tests3/data/construct-str.code b/tests3/data/construct-str.code
deleted file mode 100644
index 8d57214..0000000
--- a/tests3/data/construct-str.code
+++ /dev/null
@@ -1 +0,0 @@
-{ "string": "abcd" }
diff --git a/tests3/data/construct-str.data b/tests3/data/construct-str.data
deleted file mode 100644
index 606ac6b..0000000
--- a/tests3/data/construct-str.data
+++ /dev/null
@@ -1 +0,0 @@
-string: abcd
diff --git a/tests3/data/construct-timestamp.code b/tests3/data/construct-timestamp.code
deleted file mode 100644
index ffc3b2f..0000000
--- a/tests3/data/construct-timestamp.code
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "canonical": datetime.datetime(2001, 12, 15, 2, 59, 43, 100000),
-    "valid iso8601": datetime.datetime(2001, 12, 15, 2, 59, 43, 100000),
-    "space separated": datetime.datetime(2001, 12, 15, 2, 59, 43, 100000),
-    "no time zone (Z)": datetime.datetime(2001, 12, 15, 2, 59, 43, 100000),
-    "date (00:00:00Z)": datetime.date(2002, 12, 14),
-}
diff --git a/tests3/data/construct-timestamp.data b/tests3/data/construct-timestamp.data
deleted file mode 100644
index c5f3840..0000000
--- a/tests3/data/construct-timestamp.data
+++ /dev/null
@@ -1,5 +0,0 @@
-canonical:        2001-12-15T02:59:43.1Z
-valid iso8601:    2001-12-14t21:59:43.10-05:00
-space separated:  2001-12-14 21:59:43.10 -5
-no time zone (Z): 2001-12-15 2:59:43.10
-date (00:00:00Z): 2002-12-14
diff --git a/tests3/data/construct-value.code b/tests3/data/construct-value.code
deleted file mode 100644
index f1f015e..0000000
--- a/tests3/data/construct-value.code
+++ /dev/null
@@ -1,9 +0,0 @@
-[
-    { "link with": [ "library1.dll", "library2.dll" ] },
-    {
-        "link with": [
-            { "=": "library1.dll", "version": 1.2 },
-            { "=": "library2.dll", "version": 2.3 },
-        ],
-    },
-]
diff --git a/tests3/data/construct-value.data b/tests3/data/construct-value.data
deleted file mode 100644
index 3eb7919..0000000
--- a/tests3/data/construct-value.data
+++ /dev/null
@@ -1,10 +0,0 @@
----     # Old schema
-link with:
-  - library1.dll
-  - library2.dll
----     # New schema
-link with:
-  - = : library1.dll
-    version: 1.2
-  - = : library2.dll
-    version: 2.3
diff --git a/tests3/data/document-separator-in-quoted-scalar.loader-error b/tests3/data/document-separator-in-quoted-scalar.loader-error
deleted file mode 100644
index 9eeb0d6..0000000
--- a/tests3/data/document-separator-in-quoted-scalar.loader-error
+++ /dev/null
@@ -1,11 +0,0 @@
----
-"this --- is correct"
----
-"this
-...is also
-correct"
----
-"a quoted scalar
-cannot contain
----
-document separators"
diff --git a/tests3/data/documents.events b/tests3/data/documents.events
deleted file mode 100644
index 775a51a..0000000
--- a/tests3/data/documents.events
+++ /dev/null
@@ -1,11 +0,0 @@
-- !StreamStart
-- !DocumentStart { explicit: false }
-- !Scalar { implicit: [true,false], value: 'data' }
-- !DocumentEnd
-- !DocumentStart
-- !Scalar { implicit: [true,false] }
-- !DocumentEnd
-- !DocumentStart { version: [1,1], tags: { '!': '!foo', '!yaml!': 'tag:yaml.org,2002:', '!ugly!': '!!!!!!!' } }
-- !Scalar { implicit: [true,false] }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/duplicate-anchor-1.loader-error b/tests3/data/duplicate-anchor-1.loader-error
deleted file mode 100644
index 906cf29..0000000
--- a/tests3/data/duplicate-anchor-1.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-- &foo bar
-- &bar bar
-- &foo bar
diff --git a/tests3/data/duplicate-anchor-2.loader-error b/tests3/data/duplicate-anchor-2.loader-error
deleted file mode 100644
index 62b4389..0000000
--- a/tests3/data/duplicate-anchor-2.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-&foo [1, 2, 3, &foo 4]
diff --git a/tests3/data/duplicate-key.former-loader-error.code b/tests3/data/duplicate-key.former-loader-error.code
deleted file mode 100644
index cb73906..0000000
--- a/tests3/data/duplicate-key.former-loader-error.code
+++ /dev/null
@@ -1 +0,0 @@
-{ 'foo': 'baz' }
diff --git a/tests3/data/duplicate-key.former-loader-error.data b/tests3/data/duplicate-key.former-loader-error.data
deleted file mode 100644
index 84deb8f..0000000
--- a/tests3/data/duplicate-key.former-loader-error.data
+++ /dev/null
@@ -1,3 +0,0 @@
----
-foo: bar
-foo: baz
diff --git a/tests3/data/duplicate-mapping-key.former-loader-error.code b/tests3/data/duplicate-mapping-key.former-loader-error.code
deleted file mode 100644
index 17a6285..0000000
--- a/tests3/data/duplicate-mapping-key.former-loader-error.code
+++ /dev/null
@@ -1 +0,0 @@
-{ 'foo': { 'baz': 'bat', 'foo': 'duplicate key' } }
diff --git a/tests3/data/duplicate-mapping-key.former-loader-error.data b/tests3/data/duplicate-mapping-key.former-loader-error.data
deleted file mode 100644
index 7e7b4d1..0000000
--- a/tests3/data/duplicate-mapping-key.former-loader-error.data
+++ /dev/null
@@ -1,6 +0,0 @@
----
-&anchor foo:
-    foo: bar
-    *anchor: duplicate key
-    baz: bat
-    *anchor: duplicate key
diff --git a/tests3/data/duplicate-merge-key.former-loader-error.code b/tests3/data/duplicate-merge-key.former-loader-error.code
deleted file mode 100644
index 6a757f3..0000000
--- a/tests3/data/duplicate-merge-key.former-loader-error.code
+++ /dev/null
@@ -1 +0,0 @@
-{ 'x': 1, 'y': 2, 'foo': 'bar', 'z': 3, 't': 4 }
diff --git a/tests3/data/duplicate-merge-key.former-loader-error.data b/tests3/data/duplicate-merge-key.former-loader-error.data
deleted file mode 100644
index cebc3a1..0000000
--- a/tests3/data/duplicate-merge-key.former-loader-error.data
+++ /dev/null
@@ -1,4 +0,0 @@
----
-<<: {x: 1, y: 2}
-foo: bar
-<<: {z: 3, t: 4}
diff --git a/tests3/data/duplicate-tag-directive.loader-error b/tests3/data/duplicate-tag-directive.loader-error
deleted file mode 100644
index 50c81a0..0000000
--- a/tests3/data/duplicate-tag-directive.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-%TAG    !foo!   bar
-%TAG    !foo!   baz
---- foo
diff --git a/tests3/data/duplicate-value-key.former-loader-error.code b/tests3/data/duplicate-value-key.former-loader-error.code
deleted file mode 100644
index 12f48c1..0000000
--- a/tests3/data/duplicate-value-key.former-loader-error.code
+++ /dev/null
@@ -1 +0,0 @@
-{ 'foo': 'bar', '=': 2 }
diff --git a/tests3/data/duplicate-value-key.former-loader-error.data b/tests3/data/duplicate-value-key.former-loader-error.data
deleted file mode 100644
index b34a1d6..0000000
--- a/tests3/data/duplicate-value-key.former-loader-error.data
+++ /dev/null
@@ -1,4 +0,0 @@
----
-=: 1
-foo: bar
-=: 2
diff --git a/tests3/data/duplicate-yaml-directive.loader-error b/tests3/data/duplicate-yaml-directive.loader-error
deleted file mode 100644
index 9b72390..0000000
--- a/tests3/data/duplicate-yaml-directive.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML   1.1
-%YAML   1.1
---- foo
diff --git a/tests3/data/emit-block-scalar-in-simple-key-context-bug.canonical b/tests3/data/emit-block-scalar-in-simple-key-context-bug.canonical
deleted file mode 100644
index 473bed5..0000000
--- a/tests3/data/emit-block-scalar-in-simple-key-context-bug.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
---- !!map
-{
-  ? !!str "foo"
-  : !!str "bar"
-}
diff --git a/tests3/data/emit-block-scalar-in-simple-key-context-bug.data b/tests3/data/emit-block-scalar-in-simple-key-context-bug.data
deleted file mode 100644
index b6b42ba..0000000
--- a/tests3/data/emit-block-scalar-in-simple-key-context-bug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-? |-
-  foo
-: |-
-  bar
diff --git a/tests3/data/emitting-unacceptable-unicode-character-bug.code b/tests3/data/emitting-unacceptable-unicode-character-bug.code
deleted file mode 100644
index 2a5df00..0000000
--- a/tests3/data/emitting-unacceptable-unicode-character-bug.code
+++ /dev/null
@@ -1 +0,0 @@
-"\udd00"
diff --git a/tests3/data/emitting-unacceptable-unicode-character-bug.data b/tests3/data/emitting-unacceptable-unicode-character-bug.data
deleted file mode 100644
index 2a5df00..0000000
--- a/tests3/data/emitting-unacceptable-unicode-character-bug.data
+++ /dev/null
@@ -1 +0,0 @@
-"\udd00"
diff --git a/tests3/data/emitting-unacceptable-unicode-character-bug.skip-ext b/tests3/data/emitting-unacceptable-unicode-character-bug.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/emitting-unacceptable-unicode-character-bug.skip-ext
+++ /dev/null
diff --git a/tests3/data/empty-anchor.emitter-error b/tests3/data/empty-anchor.emitter-error
deleted file mode 100644
index ce663b6..0000000
--- a/tests3/data/empty-anchor.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !Scalar { anchor: '', value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/empty-document-bug.canonical b/tests3/data/empty-document-bug.canonical
deleted file mode 100644
index 28a6cf1..0000000
--- a/tests3/data/empty-document-bug.canonical
+++ /dev/null
@@ -1 +0,0 @@
-# This YAML stream contains no YAML documents.
diff --git a/tests3/data/empty-document-bug.data b/tests3/data/empty-document-bug.data
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/empty-document-bug.data
+++ /dev/null
diff --git a/tests3/data/empty-document-bug.empty b/tests3/data/empty-document-bug.empty
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/empty-document-bug.empty
+++ /dev/null
diff --git a/tests3/data/empty-documents.single-loader-error b/tests3/data/empty-documents.single-loader-error
deleted file mode 100644
index f8dba8d..0000000
--- a/tests3/data/empty-documents.single-loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
---- # first document
---- # second document
diff --git a/tests3/data/empty-python-module.loader-error b/tests3/data/empty-python-module.loader-error
deleted file mode 100644
index 83d3232..0000000
--- a/tests3/data/empty-python-module.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python:module:
diff --git a/tests3/data/empty-python-name.loader-error b/tests3/data/empty-python-name.loader-error
deleted file mode 100644
index 6162957..0000000
--- a/tests3/data/empty-python-name.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name: empty
diff --git a/tests3/data/empty-tag-handle.emitter-error b/tests3/data/empty-tag-handle.emitter-error
deleted file mode 100644
index 235c899..0000000
--- a/tests3/data/empty-tag-handle.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart { tags: { '': 'bar' } }
-- !Scalar { value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/empty-tag-prefix.emitter-error b/tests3/data/empty-tag-prefix.emitter-error
deleted file mode 100644
index c6c0e95..0000000
--- a/tests3/data/empty-tag-prefix.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart { tags: { '!': '' } }
-- !Scalar { value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/empty-tag.emitter-error b/tests3/data/empty-tag.emitter-error
deleted file mode 100644
index b7ca593..0000000
--- a/tests3/data/empty-tag.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !Scalar { tag: '', value: 'key', implicit: [false,false] }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/expected-document-end.emitter-error b/tests3/data/expected-document-end.emitter-error
deleted file mode 100644
index 0cbab89..0000000
--- a/tests3/data/expected-document-end.emitter-error
+++ /dev/null
@@ -1,6 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !Scalar { value: 'data 1' }
-- !Scalar { value: 'data 2' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/expected-document-start.emitter-error b/tests3/data/expected-document-start.emitter-error
deleted file mode 100644
index 8ce575e..0000000
--- a/tests3/data/expected-document-start.emitter-error
+++ /dev/null
@@ -1,4 +0,0 @@
-- !StreamStart
-- !MappingStart
-- !MappingEnd
-- !StreamEnd
diff --git a/tests3/data/expected-mapping.loader-error b/tests3/data/expected-mapping.loader-error
deleted file mode 100644
index 82aed98..0000000
--- a/tests3/data/expected-mapping.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!map [not, a, map]
diff --git a/tests3/data/expected-node-1.emitter-error b/tests3/data/expected-node-1.emitter-error
deleted file mode 100644
index 36ceca3..0000000
--- a/tests3/data/expected-node-1.emitter-error
+++ /dev/null
@@ -1,4 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/expected-node-2.emitter-error b/tests3/data/expected-node-2.emitter-error
deleted file mode 100644
index 891ee37..0000000
--- a/tests3/data/expected-node-2.emitter-error
+++ /dev/null
@@ -1,7 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !MappingStart
-- !Scalar { value: 'key' }
-- !MappingEnd
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/expected-nothing.emitter-error b/tests3/data/expected-nothing.emitter-error
deleted file mode 100644
index 62c54d3..0000000
--- a/tests3/data/expected-nothing.emitter-error
+++ /dev/null
@@ -1,4 +0,0 @@
-- !StreamStart
-- !StreamEnd
-- !StreamStart
-- !StreamEnd
diff --git a/tests3/data/expected-scalar.loader-error b/tests3/data/expected-scalar.loader-error
deleted file mode 100644
index 7b3171e..0000000
--- a/tests3/data/expected-scalar.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!str [not a scalar]
diff --git a/tests3/data/expected-sequence.loader-error b/tests3/data/expected-sequence.loader-error
deleted file mode 100644
index 08074ea..0000000
--- a/tests3/data/expected-sequence.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!seq {foo, bar, baz}
diff --git a/tests3/data/expected-stream-start.emitter-error b/tests3/data/expected-stream-start.emitter-error
deleted file mode 100644
index 480dc2e..0000000
--- a/tests3/data/expected-stream-start.emitter-error
+++ /dev/null
@@ -1,2 +0,0 @@
-- !DocumentStart
-- !DocumentEnd
diff --git a/tests3/data/explicit-document.single-loader-error b/tests3/data/explicit-document.single-loader-error
deleted file mode 100644
index 46c6f8b..0000000
--- a/tests3/data/explicit-document.single-loader-error
+++ /dev/null
@@ -1,4 +0,0 @@
----
-foo: bar
----
-foo: bar
diff --git a/tests3/data/fetch-complex-value-bug.loader-error b/tests3/data/fetch-complex-value-bug.loader-error
deleted file mode 100644
index 25fac24..0000000
--- a/tests3/data/fetch-complex-value-bug.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-? "foo"
- : "bar"
diff --git a/tests3/data/float-representer-2.3-bug.code b/tests3/data/float-representer-2.3-bug.code
deleted file mode 100644
index d8db834..0000000
--- a/tests3/data/float-representer-2.3-bug.code
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-#    0.0: 0,
-    1.0: 1,
-    1e300000: +10,
-    -1e300000: -10,
-    1e300000/1e300000: 100,
-}
diff --git a/tests3/data/float-representer-2.3-bug.data b/tests3/data/float-representer-2.3-bug.data
deleted file mode 100644
index efd1716..0000000
--- a/tests3/data/float-representer-2.3-bug.data
+++ /dev/null
@@ -1,5 +0,0 @@
-#0.0:   # hash(0) == hash(nan) and 0 == nan in Python 2.3
-1.0: 1
-+.inf: 10
--.inf: -10
-.nan: 100
diff --git a/tests3/data/float.data b/tests3/data/float.data
deleted file mode 100644
index 524d5db..0000000
--- a/tests3/data/float.data
+++ /dev/null
@@ -1,6 +0,0 @@
-- 6.8523015e+5
-- 685.230_15e+03
-- 685_230.15
-- 190:20:30.15
-- -.inf
-- .NaN
diff --git a/tests3/data/float.detect b/tests3/data/float.detect
deleted file mode 100644
index 1e12343..0000000
--- a/tests3/data/float.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:float
diff --git a/tests3/data/forbidden-entry.loader-error b/tests3/data/forbidden-entry.loader-error
deleted file mode 100644
index f2e3079..0000000
--- a/tests3/data/forbidden-entry.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-test: - foo
-      - bar
diff --git a/tests3/data/forbidden-key.loader-error b/tests3/data/forbidden-key.loader-error
deleted file mode 100644
index da9b471..0000000
--- a/tests3/data/forbidden-key.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-test: ? foo
-      : bar
diff --git a/tests3/data/forbidden-value.loader-error b/tests3/data/forbidden-value.loader-error
deleted file mode 100644
index efd7ce5..0000000
--- a/tests3/data/forbidden-value.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-test: key: value
diff --git a/tests3/data/implicit-document.single-loader-error b/tests3/data/implicit-document.single-loader-error
deleted file mode 100644
index f8c9a5c..0000000
--- a/tests3/data/implicit-document.single-loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-foo: bar
----
-foo: bar
diff --git a/tests3/data/int.data b/tests3/data/int.data
deleted file mode 100644
index d44d376..0000000
--- a/tests3/data/int.data
+++ /dev/null
@@ -1,6 +0,0 @@
-- 685230
-- +685_230
-- 02472256
-- 0x_0A_74_AE
-- 0b1010_0111_0100_1010_1110
-- 190:20:30
diff --git a/tests3/data/int.detect b/tests3/data/int.detect
deleted file mode 100644
index 575c9eb..0000000
--- a/tests3/data/int.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:int
diff --git a/tests3/data/invalid-anchor-1.loader-error b/tests3/data/invalid-anchor-1.loader-error
deleted file mode 100644
index fcf7d0f..0000000
--- a/tests3/data/invalid-anchor-1.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- &?  foo # we allow only ascii and numeric characters in anchor names.
diff --git a/tests3/data/invalid-anchor-2.loader-error b/tests3/data/invalid-anchor-2.loader-error
deleted file mode 100644
index bfc4ff0..0000000
--- a/tests3/data/invalid-anchor-2.loader-error
+++ /dev/null
@@ -1,8 +0,0 @@
----
-- [
-    &correct foo,
-    *correct,
-    *correct]   # still correct
-- *correct: still correct
-- &correct-or-not[foo, bar]
-
diff --git a/tests3/data/invalid-anchor.emitter-error b/tests3/data/invalid-anchor.emitter-error
deleted file mode 100644
index 3d2a814..0000000
--- a/tests3/data/invalid-anchor.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !Scalar { anchor: '5*5=25', value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/invalid-base64-data.loader-error b/tests3/data/invalid-base64-data.loader-error
deleted file mode 100644
index 798abba..0000000
--- a/tests3/data/invalid-base64-data.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
---- !!binary
-    binary data encoded in base64 should be here.
diff --git a/tests3/data/invalid-block-scalar-indicator.loader-error b/tests3/data/invalid-block-scalar-indicator.loader-error
deleted file mode 100644
index 16a6db1..0000000
--- a/tests3/data/invalid-block-scalar-indicator.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
---- > what is this?  # a comment
-data
diff --git a/tests3/data/invalid-character.loader-error b/tests3/data/invalid-character.loader-error
deleted file mode 100644
index 03687b0..0000000
--- a/tests3/data/invalid-character.loader-error
+++ /dev/null
Binary files differ
diff --git a/tests3/data/invalid-character.stream-error b/tests3/data/invalid-character.stream-error
deleted file mode 100644
index 24a894c..0000000
--- a/tests3/data/invalid-character.stream-error
+++ /dev/null
Binary files differ
diff --git a/tests3/data/invalid-directive-line.loader-error b/tests3/data/invalid-directive-line.loader-error
deleted file mode 100644
index 0892eb6..0000000
--- a/tests3/data/invalid-directive-line.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML   1.1 ?   # extra symbol
----
diff --git a/tests3/data/invalid-directive-name-1.loader-error b/tests3/data/invalid-directive-name-1.loader-error
deleted file mode 100644
index 153fd88..0000000
--- a/tests3/data/invalid-directive-name-1.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%   # no name at all
----
diff --git a/tests3/data/invalid-directive-name-2.loader-error b/tests3/data/invalid-directive-name-2.loader-error
deleted file mode 100644
index 3732a06..0000000
--- a/tests3/data/invalid-directive-name-2.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%invalid-characters:in-directive name
----
diff --git a/tests3/data/invalid-escape-character.loader-error b/tests3/data/invalid-escape-character.loader-error
deleted file mode 100644
index a95ab76..0000000
--- a/tests3/data/invalid-escape-character.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-"some escape characters are \ncorrect, but this one \?\nis not\n"
diff --git a/tests3/data/invalid-escape-numbers.loader-error b/tests3/data/invalid-escape-numbers.loader-error
deleted file mode 100644
index 614ec9f..0000000
--- a/tests3/data/invalid-escape-numbers.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-"hm.... \u123?"
diff --git a/tests3/data/invalid-indentation-indicator-1.loader-error b/tests3/data/invalid-indentation-indicator-1.loader-error
deleted file mode 100644
index a3cd12f..0000000
--- a/tests3/data/invalid-indentation-indicator-1.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
---- >0  # not valid
-data
diff --git a/tests3/data/invalid-indentation-indicator-2.loader-error b/tests3/data/invalid-indentation-indicator-2.loader-error
deleted file mode 100644
index eefb6ec..0000000
--- a/tests3/data/invalid-indentation-indicator-2.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
---- >-0
-data
diff --git a/tests3/data/invalid-merge-1.loader-error b/tests3/data/invalid-merge-1.loader-error
deleted file mode 100644
index fc3c284..0000000
--- a/tests3/data/invalid-merge-1.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-foo: bar
-<<: baz
diff --git a/tests3/data/invalid-merge-2.loader-error b/tests3/data/invalid-merge-2.loader-error
deleted file mode 100644
index 8e88615..0000000
--- a/tests3/data/invalid-merge-2.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-foo: bar
-<<: [x: 1, y: 2, z, t: 4]
diff --git a/tests3/data/invalid-omap-1.loader-error b/tests3/data/invalid-omap-1.loader-error
deleted file mode 100644
index 2863392..0000000
--- a/tests3/data/invalid-omap-1.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
---- !!omap
-foo: bar
-baz: bat
diff --git a/tests3/data/invalid-omap-2.loader-error b/tests3/data/invalid-omap-2.loader-error
deleted file mode 100644
index c377dfb..0000000
--- a/tests3/data/invalid-omap-2.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
---- !!omap
-- foo: bar
-- baz
diff --git a/tests3/data/invalid-omap-3.loader-error b/tests3/data/invalid-omap-3.loader-error
deleted file mode 100644
index 2a4f50d..0000000
--- a/tests3/data/invalid-omap-3.loader-error
+++ /dev/null
@@ -1,4 +0,0 @@
---- !!omap
-- foo: bar
-- baz: bar
-  bar: bar
diff --git a/tests3/data/invalid-pairs-1.loader-error b/tests3/data/invalid-pairs-1.loader-error
deleted file mode 100644
index 42d19ae..0000000
--- a/tests3/data/invalid-pairs-1.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
---- !!pairs
-foo: bar
-baz: bat
diff --git a/tests3/data/invalid-pairs-2.loader-error b/tests3/data/invalid-pairs-2.loader-error
deleted file mode 100644
index 31389ea..0000000
--- a/tests3/data/invalid-pairs-2.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
---- !!pairs
-- foo: bar
-- baz
diff --git a/tests3/data/invalid-pairs-3.loader-error b/tests3/data/invalid-pairs-3.loader-error
deleted file mode 100644
index f8d7704..0000000
--- a/tests3/data/invalid-pairs-3.loader-error
+++ /dev/null
@@ -1,4 +0,0 @@
---- !!pairs
-- foo: bar
-- baz: bar
-  bar: bar
diff --git a/tests3/data/invalid-python-module-kind.loader-error b/tests3/data/invalid-python-module-kind.loader-error
deleted file mode 100644
index 4f71cb5..0000000
--- a/tests3/data/invalid-python-module-kind.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/module:sys { must, be, scalar }
diff --git a/tests3/data/invalid-python-module-value.loader-error b/tests3/data/invalid-python-module-value.loader-error
deleted file mode 100644
index f6797fc..0000000
--- a/tests3/data/invalid-python-module-value.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/module:sys "non-empty value"
diff --git a/tests3/data/invalid-python-module.loader-error b/tests3/data/invalid-python-module.loader-error
deleted file mode 100644
index 4e24072..0000000
--- a/tests3/data/invalid-python-module.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/module:no.such.module
diff --git a/tests3/data/invalid-python-name-kind.loader-error b/tests3/data/invalid-python-name-kind.loader-error
deleted file mode 100644
index 6ff8eb6..0000000
--- a/tests3/data/invalid-python-name-kind.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name:sys.modules {}
diff --git a/tests3/data/invalid-python-name-module-2.loader-error b/tests3/data/invalid-python-name-module-2.loader-error
deleted file mode 100644
index debc313..0000000
--- a/tests3/data/invalid-python-name-module-2.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name:xml.parsers
diff --git a/tests3/data/invalid-python-name-module.loader-error b/tests3/data/invalid-python-name-module.loader-error
deleted file mode 100644
index 1966f6a..0000000
--- a/tests3/data/invalid-python-name-module.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name:sys.modules.keys
diff --git a/tests3/data/invalid-python-name-object.loader-error b/tests3/data/invalid-python-name-object.loader-error
deleted file mode 100644
index 50f386f..0000000
--- a/tests3/data/invalid-python-name-object.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name:os.path.rm_rf
diff --git a/tests3/data/invalid-python-name-value.loader-error b/tests3/data/invalid-python-name-value.loader-error
deleted file mode 100644
index 7be1401..0000000
--- a/tests3/data/invalid-python-name-value.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !!python/name:sys.modules 5
diff --git a/tests3/data/invalid-simple-key.loader-error b/tests3/data/invalid-simple-key.loader-error
deleted file mode 100644
index a58deec..0000000
--- a/tests3/data/invalid-simple-key.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-key: value
-invalid simple key
-next key: next value
diff --git a/tests3/data/invalid-single-quote-bug.code b/tests3/data/invalid-single-quote-bug.code
deleted file mode 100644
index 5558945..0000000
--- a/tests3/data/invalid-single-quote-bug.code
+++ /dev/null
@@ -1 +0,0 @@
-["foo 'bar'", "foo\n'bar'"]
diff --git a/tests3/data/invalid-single-quote-bug.data b/tests3/data/invalid-single-quote-bug.data
deleted file mode 100644
index 76ef7ae..0000000
--- a/tests3/data/invalid-single-quote-bug.data
+++ /dev/null
@@ -1,2 +0,0 @@
-- "foo 'bar'"
-- "foo\n'bar'"
diff --git a/tests3/data/invalid-starting-character.loader-error b/tests3/data/invalid-starting-character.loader-error
deleted file mode 100644
index bb81c60..0000000
--- a/tests3/data/invalid-starting-character.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-@@@@@@@@@@@@@@@@@@@
diff --git a/tests3/data/invalid-tag-1.loader-error b/tests3/data/invalid-tag-1.loader-error
deleted file mode 100644
index a68cd38..0000000
--- a/tests3/data/invalid-tag-1.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-- !<foo#bar> baz
diff --git a/tests3/data/invalid-tag-2.loader-error b/tests3/data/invalid-tag-2.loader-error
deleted file mode 100644
index 3a36700..0000000
--- a/tests3/data/invalid-tag-2.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-- !prefix!foo#bar baz
diff --git a/tests3/data/invalid-tag-directive-handle.loader-error b/tests3/data/invalid-tag-directive-handle.loader-error
deleted file mode 100644
index 42b5d7e..0000000
--- a/tests3/data/invalid-tag-directive-handle.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%TAG !!! !!!
----
diff --git a/tests3/data/invalid-tag-directive-prefix.loader-error b/tests3/data/invalid-tag-directive-prefix.loader-error
deleted file mode 100644
index 0cb482c..0000000
--- a/tests3/data/invalid-tag-directive-prefix.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%TAG    !   tag:zz.com/foo#bar  # '#' is not allowed in URLs
----
diff --git a/tests3/data/invalid-tag-handle-1.emitter-error b/tests3/data/invalid-tag-handle-1.emitter-error
deleted file mode 100644
index d5df9a2..0000000
--- a/tests3/data/invalid-tag-handle-1.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart { tags: { '!foo': 'bar' } }
-- !Scalar { value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/invalid-tag-handle-1.loader-error b/tests3/data/invalid-tag-handle-1.loader-error
deleted file mode 100644
index ef0d143..0000000
--- a/tests3/data/invalid-tag-handle-1.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%TAG    foo bar
----
diff --git a/tests3/data/invalid-tag-handle-2.emitter-error b/tests3/data/invalid-tag-handle-2.emitter-error
deleted file mode 100644
index d1831d5..0000000
--- a/tests3/data/invalid-tag-handle-2.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart { tags: { '!!!': 'bar' } }
-- !Scalar { value: 'foo' }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/invalid-tag-handle-2.loader-error b/tests3/data/invalid-tag-handle-2.loader-error
deleted file mode 100644
index 06c7f0e..0000000
--- a/tests3/data/invalid-tag-handle-2.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%TAG    !foo    bar
----
diff --git a/tests3/data/invalid-uri-escapes-1.loader-error b/tests3/data/invalid-uri-escapes-1.loader-error
deleted file mode 100644
index a6ecb36..0000000
--- a/tests3/data/invalid-uri-escapes-1.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !<tag:%x?y> foo
diff --git a/tests3/data/invalid-uri-escapes-2.loader-error b/tests3/data/invalid-uri-escapes-2.loader-error
deleted file mode 100644
index b89e8f6..0000000
--- a/tests3/data/invalid-uri-escapes-2.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !<%FF> foo
diff --git a/tests3/data/invalid-uri-escapes-3.loader-error b/tests3/data/invalid-uri-escapes-3.loader-error
deleted file mode 100644
index f2e4cb8..0000000
--- a/tests3/data/invalid-uri-escapes-3.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !<foo%d0%af%d0%af%d0bar> baz
diff --git a/tests3/data/invalid-uri.loader-error b/tests3/data/invalid-uri.loader-error
deleted file mode 100644
index 06307e0..0000000
--- a/tests3/data/invalid-uri.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !foo!   bar
diff --git a/tests3/data/invalid-utf8-byte.loader-error b/tests3/data/invalid-utf8-byte.loader-error
deleted file mode 100644
index 02b1605..0000000
--- a/tests3/data/invalid-utf8-byte.loader-error
+++ /dev/null
@@ -1,18 +0,0 @@
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-Invalid byte ('\xFF'): ÿ <--
-***************************************************************
diff --git a/tests3/data/invalid-utf8-byte.stream-error b/tests3/data/invalid-utf8-byte.stream-error
deleted file mode 100644
index 02b1605..0000000
--- a/tests3/data/invalid-utf8-byte.stream-error
+++ /dev/null
@@ -1,18 +0,0 @@
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-***************************************************************
-Invalid byte ('\xFF'): ÿ <--
-***************************************************************
diff --git a/tests3/data/invalid-yaml-directive-version-1.loader-error b/tests3/data/invalid-yaml-directive-version-1.loader-error
deleted file mode 100644
index e9b4e3a..0000000
--- a/tests3/data/invalid-yaml-directive-version-1.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-# No version at all.
-%YAML
----
diff --git a/tests3/data/invalid-yaml-directive-version-2.loader-error b/tests3/data/invalid-yaml-directive-version-2.loader-error
deleted file mode 100644
index 6aa7740..0000000
--- a/tests3/data/invalid-yaml-directive-version-2.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML   1e-5
----
diff --git a/tests3/data/invalid-yaml-directive-version-3.loader-error b/tests3/data/invalid-yaml-directive-version-3.loader-error
deleted file mode 100644
index 345e784..0000000
--- a/tests3/data/invalid-yaml-directive-version-3.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML 1.
----
diff --git a/tests3/data/invalid-yaml-directive-version-4.loader-error b/tests3/data/invalid-yaml-directive-version-4.loader-error
deleted file mode 100644
index b35ca82..0000000
--- a/tests3/data/invalid-yaml-directive-version-4.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML 1.132.435
----
diff --git a/tests3/data/invalid-yaml-directive-version-5.loader-error b/tests3/data/invalid-yaml-directive-version-5.loader-error
deleted file mode 100644
index 7c2b49f..0000000
--- a/tests3/data/invalid-yaml-directive-version-5.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML A.0
----
diff --git a/tests3/data/invalid-yaml-directive-version-6.loader-error b/tests3/data/invalid-yaml-directive-version-6.loader-error
deleted file mode 100644
index bae714f..0000000
--- a/tests3/data/invalid-yaml-directive-version-6.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML 123.C
----
diff --git a/tests3/data/invalid-yaml-version.loader-error b/tests3/data/invalid-yaml-version.loader-error
deleted file mode 100644
index dd01948..0000000
--- a/tests3/data/invalid-yaml-version.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML   2.0
---- foo
diff --git a/tests3/data/mappings.events b/tests3/data/mappings.events
deleted file mode 100644
index 3cb5579..0000000
--- a/tests3/data/mappings.events
+++ /dev/null
@@ -1,44 +0,0 @@
-- !StreamStart
-
-- !DocumentStart
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'key' }
-- !Scalar { implicit: [true,true], value: 'value' }
-- !Scalar { implicit: [true,true], value: 'empty mapping' }
-- !MappingStart
-- !MappingEnd
-- !Scalar { implicit: [true,true], value: 'empty mapping with tag' }
-- !MappingStart { tag: '!mytag', implicit: false }
-- !MappingEnd
-- !Scalar { implicit: [true,true], value: 'block mapping' }
-- !MappingStart
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !MappingEnd
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !MappingEnd
-- !MappingEnd
-- !Scalar { implicit: [true,true], value: 'flow mapping' }
-- !MappingStart { flow_style: true }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !Scalar { implicit: [true,true], value: 'value' }
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !MappingEnd
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'complex' }
-- !Scalar { implicit: [true,true], value: 'key' }
-- !MappingEnd
-- !MappingEnd
-- !MappingEnd
-- !DocumentEnd
-
-- !StreamEnd
diff --git a/tests3/data/merge.data b/tests3/data/merge.data
deleted file mode 100644
index e455bbc..0000000
--- a/tests3/data/merge.data
+++ /dev/null
@@ -1 +0,0 @@
-- <<
diff --git a/tests3/data/merge.detect b/tests3/data/merge.detect
deleted file mode 100644
index 1672d0d..0000000
--- a/tests3/data/merge.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:merge
diff --git a/tests3/data/more-floats.code b/tests3/data/more-floats.code
deleted file mode 100644
index e3e444e..0000000
--- a/tests3/data/more-floats.code
+++ /dev/null
@@ -1 +0,0 @@
-[0.0, +1.0, -1.0, +1e300000, -1e300000, 1e300000/1e300000, -(1e300000/1e300000)] # last two items are ind and qnan respectively.
diff --git a/tests3/data/more-floats.data b/tests3/data/more-floats.data
deleted file mode 100644
index 399eb17..0000000
--- a/tests3/data/more-floats.data
+++ /dev/null
@@ -1 +0,0 @@
-[0.0, +1.0, -1.0, +.inf, -.inf, .nan, .nan]
diff --git a/tests3/data/negative-float-bug.code b/tests3/data/negative-float-bug.code
deleted file mode 100644
index 18e16e3..0000000
--- a/tests3/data/negative-float-bug.code
+++ /dev/null
@@ -1 +0,0 @@
--1.0
diff --git a/tests3/data/negative-float-bug.data b/tests3/data/negative-float-bug.data
deleted file mode 100644
index 18e16e3..0000000
--- a/tests3/data/negative-float-bug.data
+++ /dev/null
@@ -1 +0,0 @@
--1.0
diff --git a/tests3/data/no-alias-anchor.emitter-error b/tests3/data/no-alias-anchor.emitter-error
deleted file mode 100644
index 5ff065c..0000000
--- a/tests3/data/no-alias-anchor.emitter-error
+++ /dev/null
@@ -1,8 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !SequenceStart
-- !Scalar { anchor: A, value: data }
-- !Alias { }
-- !SequenceEnd
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/no-alias-anchor.skip-ext b/tests3/data/no-alias-anchor.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/no-alias-anchor.skip-ext
+++ /dev/null
diff --git a/tests3/data/no-block-collection-end.loader-error b/tests3/data/no-block-collection-end.loader-error
deleted file mode 100644
index 02d4d37..0000000
--- a/tests3/data/no-block-collection-end.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-- foo
-- bar
-baz: bar
diff --git a/tests3/data/no-block-mapping-end-2.loader-error b/tests3/data/no-block-mapping-end-2.loader-error
deleted file mode 100644
index be63571..0000000
--- a/tests3/data/no-block-mapping-end-2.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-? foo
-: bar
-: baz
diff --git a/tests3/data/no-block-mapping-end.loader-error b/tests3/data/no-block-mapping-end.loader-error
deleted file mode 100644
index 1ea921c..0000000
--- a/tests3/data/no-block-mapping-end.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-foo: "bar" "baz"
diff --git a/tests3/data/no-document-start.loader-error b/tests3/data/no-document-start.loader-error
deleted file mode 100644
index c725ec8..0000000
--- a/tests3/data/no-document-start.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML   1.1
-# no ---
-foo: bar
diff --git a/tests3/data/no-flow-mapping-end.loader-error b/tests3/data/no-flow-mapping-end.loader-error
deleted file mode 100644
index 8bd1403..0000000
--- a/tests3/data/no-flow-mapping-end.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-{ foo: bar ]
diff --git a/tests3/data/no-flow-sequence-end.loader-error b/tests3/data/no-flow-sequence-end.loader-error
deleted file mode 100644
index 750d973..0000000
--- a/tests3/data/no-flow-sequence-end.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-[foo, bar}
diff --git a/tests3/data/no-node-1.loader-error b/tests3/data/no-node-1.loader-error
deleted file mode 100644
index 07b1500..0000000
--- a/tests3/data/no-node-1.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-- !foo ]
diff --git a/tests3/data/no-node-2.loader-error b/tests3/data/no-node-2.loader-error
deleted file mode 100644
index 563e3b3..0000000
--- a/tests3/data/no-node-2.loader-error
+++ /dev/null
@@ -1 +0,0 @@
-- [ !foo } ]
diff --git a/tests3/data/no-tag.emitter-error b/tests3/data/no-tag.emitter-error
deleted file mode 100644
index 384c62f..0000000
--- a/tests3/data/no-tag.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !Scalar { value: 'foo', implicit: [false,false] }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/null.data b/tests3/data/null.data
deleted file mode 100644
index ad12528..0000000
--- a/tests3/data/null.data
+++ /dev/null
@@ -1,3 +0,0 @@
--
-- ~
-- null
diff --git a/tests3/data/null.detect b/tests3/data/null.detect
deleted file mode 100644
index 19110c7..0000000
--- a/tests3/data/null.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:null
diff --git a/tests3/data/odd-utf16.stream-error b/tests3/data/odd-utf16.stream-error
deleted file mode 100644
index 92ee645..0000000
--- a/tests3/data/odd-utf16.stream-error
+++ /dev/null
Binary files differ
diff --git a/tests3/data/recursive-anchor.former-loader-error b/tests3/data/recursive-anchor.former-loader-error
deleted file mode 100644
index 661166c..0000000
--- a/tests3/data/recursive-anchor.former-loader-error
+++ /dev/null
@@ -1,4 +0,0 @@
-- &foo [1
-    2,
-    3,
-    *foo]
diff --git a/tests3/data/recursive-dict.recursive b/tests3/data/recursive-dict.recursive
deleted file mode 100644
index 8f326f5..0000000
--- a/tests3/data/recursive-dict.recursive
+++ /dev/null
@@ -1,3 +0,0 @@
-value = {}
-instance = AnInstance(value, value)
-value[instance] = instance
diff --git a/tests3/data/recursive-list.recursive b/tests3/data/recursive-list.recursive
deleted file mode 100644
index 27a4ae5..0000000
--- a/tests3/data/recursive-list.recursive
+++ /dev/null
@@ -1,2 +0,0 @@
-value = []
-value.append(value)
diff --git a/tests3/data/recursive-set.recursive b/tests3/data/recursive-set.recursive
deleted file mode 100644
index d1a7ca3..0000000
--- a/tests3/data/recursive-set.recursive
+++ /dev/null
@@ -1,3 +0,0 @@
-value = set()
-value.add(AnInstance(foo=value, bar=value))
-value.add(AnInstance(foo=value, bar=value))
diff --git a/tests3/data/recursive-state.recursive b/tests3/data/recursive-state.recursive
deleted file mode 100644
index bffe61e..0000000
--- a/tests3/data/recursive-state.recursive
+++ /dev/null
@@ -1,2 +0,0 @@
-value = []
-value.append(AnInstanceWithState(value, value))
diff --git a/tests3/data/recursive-tuple.recursive b/tests3/data/recursive-tuple.recursive
deleted file mode 100644
index dc08d02..0000000
--- a/tests3/data/recursive-tuple.recursive
+++ /dev/null
@@ -1,3 +0,0 @@
-value = ([], [])
-value[0].append(value)
-value[1].append(value[0])
diff --git a/tests3/data/recursive.former-dumper-error b/tests3/data/recursive.former-dumper-error
deleted file mode 100644
index 3c7cc2f..0000000
--- a/tests3/data/recursive.former-dumper-error
+++ /dev/null
@@ -1,3 +0,0 @@
-data = []
-data.append(data)
-dump(data)
diff --git a/tests3/data/remove-possible-simple-key-bug.loader-error b/tests3/data/remove-possible-simple-key-bug.loader-error
deleted file mode 100644
index fe1bc6c..0000000
--- a/tests3/data/remove-possible-simple-key-bug.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-foo: &A bar
-*A ]    # The ']' indicator triggers remove_possible_simple_key,
-        # which should raise an error.
diff --git a/tests3/data/resolver.data b/tests3/data/resolver.data
deleted file mode 100644
index a296404..0000000
--- a/tests3/data/resolver.data
+++ /dev/null
@@ -1,30 +0,0 @@
----
-"this scalar should be selected"
----
-key11: !foo
-    key12:
-        is: [selected]
-    key22:
-        key13: [not, selected]
-        key23: [not, selected]
-    key32:
-        key31: [not, selected]
-        key32: [not, selected]
-        key33: {not: selected}
-key21: !bar
-    - not selected
-    - selected
-    - not selected
-key31: !baz
-    key12:
-        key13:
-            key14: {selected}
-        key23:
-            key14: [not, selected]
-        key33:
-            key14: {selected}
-            key24: {not: selected}
-    key22:
-        -   key14: {selected}
-            key24: {not: selected}
-        -   key14: {selected}
diff --git a/tests3/data/resolver.path b/tests3/data/resolver.path
deleted file mode 100644
index ec677d2..0000000
--- a/tests3/data/resolver.path
+++ /dev/null
@@ -1,30 +0,0 @@
---- !root/scalar
-"this scalar should be selected"
---- !root
-key11: !foo
-    key12: !root/key11/key12/*
-        is: [selected]
-    key22:
-        key13: [not, selected]
-        key23: [not, selected]
-    key32:
-        key31: [not, selected]
-        key32: [not, selected]
-        key33: {not: selected}
-key21: !bar
-    - not selected
-    - !root/key21/1/* selected
-    - not selected
-key31: !baz
-    key12:
-        key13:
-            key14: !root/key31/*/*/key14/map {selected}
-        key23:
-            key14: [not, selected]
-        key33:
-            key14: !root/key31/*/*/key14/map {selected}
-            key24: {not: selected}
-    key22:
-        -   key14: !root/key31/*/*/key14/map {selected}
-            key24: {not: selected}
-        -   key14: !root/key31/*/*/key14/map {selected}
diff --git a/tests3/data/run-parser-crash-bug.data b/tests3/data/run-parser-crash-bug.data
deleted file mode 100644
index fe01734..0000000
--- a/tests3/data/run-parser-crash-bug.data
+++ /dev/null
@@ -1,8 +0,0 @@
----
-- Harry Potter and the Prisoner of Azkaban
-- Harry Potter and the Goblet of Fire
-- Harry Potter and the Order of the Phoenix
----
-- Memoirs Found in a Bathtub
-- Snow Crash
-- Ghost World
diff --git a/tests3/data/scalars.events b/tests3/data/scalars.events
deleted file mode 100644
index 32c40f4..0000000
--- a/tests3/data/scalars.events
+++ /dev/null
@@ -1,28 +0,0 @@
-- !StreamStart
-
-- !DocumentStart
-- !MappingStart
-- !Scalar { implicit: [true,true], value: 'empty scalar' }
-- !Scalar { implicit: [true,false], value: '' }
-- !Scalar { implicit: [true,true], value: 'implicit scalar' }
-- !Scalar { implicit: [true,true], value: 'data' }
-- !Scalar { implicit: [true,true], value: 'quoted scalar' }
-- !Scalar { value: 'data', style: '"' }
-- !Scalar { implicit: [true,true], value: 'block scalar' }
-- !Scalar { value: 'data', style: '|' }
-- !Scalar { implicit: [true,true], value: 'empty scalar with tag' }
-- !Scalar { implicit: [false,false], tag: '!mytag', value: '' }
-- !Scalar { implicit: [true,true], value: 'implicit scalar with tag' }
-- !Scalar { implicit: [false,false], tag: '!mytag', value: 'data' }
-- !Scalar { implicit: [true,true], value: 'quoted scalar with tag' }
-- !Scalar { value: 'data', style: '"', tag: '!mytag', implicit: [false,false] }
-- !Scalar { implicit: [true,true], value: 'block scalar with tag' }
-- !Scalar { value: 'data', style: '|', tag: '!mytag', implicit: [false,false] }
-- !Scalar { implicit: [true,true], value: 'single character' }
-- !Scalar { value: 'a', implicit: [true,true] }
-- !Scalar { implicit: [true,true], value: 'single digit' }
-- !Scalar { value: '1', implicit: [true,false] }
-- !MappingEnd
-- !DocumentEnd
-
-- !StreamEnd
diff --git a/tests3/data/scan-document-end-bug.canonical b/tests3/data/scan-document-end-bug.canonical
deleted file mode 100644
index 4a0e8a8..0000000
--- a/tests3/data/scan-document-end-bug.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!null ""
diff --git a/tests3/data/scan-document-end-bug.data b/tests3/data/scan-document-end-bug.data
deleted file mode 100644
index 3c70543..0000000
--- a/tests3/data/scan-document-end-bug.data
+++ /dev/null
@@ -1,3 +0,0 @@
-# Ticket #4
----
-...
\ No newline at end of file
diff --git a/tests3/data/scan-line-break-bug.canonical b/tests3/data/scan-line-break-bug.canonical
deleted file mode 100644
index 79f08b7..0000000
--- a/tests3/data/scan-line-break-bug.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!map { ? !!str "foo" : !!str "bar baz" }
diff --git a/tests3/data/scan-line-break-bug.data b/tests3/data/scan-line-break-bug.data
deleted file mode 100644
index c974fab..0000000
--- a/tests3/data/scan-line-break-bug.data
+++ /dev/null
@@ -1,3 +0,0 @@
-foo:

-    bar

-    baz

diff --git a/tests3/data/sequences.events b/tests3/data/sequences.events
deleted file mode 100644
index 692a329..0000000
--- a/tests3/data/sequences.events
+++ /dev/null
@@ -1,81 +0,0 @@
-- !StreamStart
-
-- !DocumentStart
-- !SequenceStart
-- !SequenceEnd
-- !DocumentEnd
-
-- !DocumentStart
-- !SequenceStart { tag: '!mytag', implicit: false }
-- !SequenceEnd
-- !DocumentEnd
-
-- !DocumentStart
-- !SequenceStart
-- !SequenceStart
-- !SequenceEnd
-- !SequenceStart { tag: '!mytag', implicit: false }
-- !SequenceEnd
-- !SequenceStart
-- !Scalar
-- !Scalar { value: 'data' }
-- !Scalar { tag: '!mytag', implicit: [false,false], value: 'data' }
-- !SequenceEnd
-- !SequenceStart
-- !SequenceStart
-- !SequenceStart
-- !Scalar
-- !SequenceEnd
-- !SequenceEnd
-- !SequenceEnd
-- !SequenceStart
-- !SequenceStart { tag: '!mytag', implicit: false }
-- !SequenceStart
-- !Scalar { value: 'data' }
-- !SequenceEnd
-- !SequenceEnd
-- !SequenceEnd
-- !SequenceEnd
-- !DocumentEnd
-
-- !DocumentStart
-- !SequenceStart
-- !MappingStart
-- !Scalar { value: 'key1' }
-- !SequenceStart
-- !Scalar { value: 'data1' }
-- !Scalar { value: 'data2' }
-- !SequenceEnd
-- !Scalar { value: 'key2' }
-- !SequenceStart { tag: '!mytag1', implicit: false }
-- !Scalar { value: 'data3' }
-- !SequenceStart
-- !Scalar { value: 'data4' }
-- !Scalar { value: 'data5' }
-- !SequenceEnd
-- !SequenceStart { tag: '!mytag2', implicit: false }
-- !Scalar { value: 'data6' }
-- !Scalar { value: 'data7' }
-- !SequenceEnd
-- !SequenceEnd
-- !MappingEnd
-- !SequenceEnd
-- !DocumentEnd
-
-- !DocumentStart
-- !SequenceStart
-- !SequenceStart { flow_style: true }
-- !SequenceStart
-- !SequenceEnd
-- !Scalar
-- !Scalar { value: 'data' }
-- !Scalar { tag: '!mytag', implicit: [false,false], value: 'data' }
-- !SequenceStart { tag: '!mytag', implicit: false }
-- !Scalar { value: 'data' }
-- !Scalar { value: 'data' }
-- !SequenceEnd
-- !SequenceEnd
-- !SequenceEnd
-- !DocumentEnd
-
-- !StreamEnd
diff --git a/tests3/data/serializer-is-already-opened.dumper-error b/tests3/data/serializer-is-already-opened.dumper-error
deleted file mode 100644
index 3c024a0..0000000
--- a/tests3/data/serializer-is-already-opened.dumper-error
+++ /dev/null
@@ -1,3 +0,0 @@
-dumper = yaml.Dumper(io.StringIO())
-dumper.open()
-dumper.open()
diff --git a/tests3/data/serializer-is-closed-1.dumper-error b/tests3/data/serializer-is-closed-1.dumper-error
deleted file mode 100644
index 2bb50e2..0000000
--- a/tests3/data/serializer-is-closed-1.dumper-error
+++ /dev/null
@@ -1,4 +0,0 @@
-dumper = yaml.Dumper(io.StringIO())
-dumper.open()
-dumper.close()
-dumper.open()
diff --git a/tests3/data/serializer-is-closed-2.dumper-error b/tests3/data/serializer-is-closed-2.dumper-error
deleted file mode 100644
index 1b5e9e6..0000000
--- a/tests3/data/serializer-is-closed-2.dumper-error
+++ /dev/null
@@ -1,4 +0,0 @@
-dumper = yaml.Dumper(io.StringIO())
-dumper.open()
-dumper.close()
-dumper.serialize(yaml.ScalarNode(tag='!foo', value='bar'))
diff --git a/tests3/data/serializer-is-not-opened-1.dumper-error b/tests3/data/serializer-is-not-opened-1.dumper-error
deleted file mode 100644
index 9353ad1..0000000
--- a/tests3/data/serializer-is-not-opened-1.dumper-error
+++ /dev/null
@@ -1,2 +0,0 @@
-dumper = yaml.Dumper(io.StringIO())
-dumper.close()
diff --git a/tests3/data/serializer-is-not-opened-2.dumper-error b/tests3/data/serializer-is-not-opened-2.dumper-error
deleted file mode 100644
index eab23b7..0000000
--- a/tests3/data/serializer-is-not-opened-2.dumper-error
+++ /dev/null
@@ -1,2 +0,0 @@
-dumper = yaml.Dumper(io.StringIO())
-dumper.serialize(yaml.ScalarNode(tag='!foo', value='bar'))
diff --git a/tests3/data/single-dot-is-not-float-bug.code b/tests3/data/single-dot-is-not-float-bug.code
deleted file mode 100644
index dcd0c2f..0000000
--- a/tests3/data/single-dot-is-not-float-bug.code
+++ /dev/null
@@ -1 +0,0 @@
-'.'
diff --git a/tests3/data/single-dot-is-not-float-bug.data b/tests3/data/single-dot-is-not-float-bug.data
deleted file mode 100644
index 9c558e3..0000000
--- a/tests3/data/single-dot-is-not-float-bug.data
+++ /dev/null
@@ -1 +0,0 @@
-.
diff --git a/tests3/data/sloppy-indentation.canonical b/tests3/data/sloppy-indentation.canonical
deleted file mode 100644
index 438bc04..0000000
--- a/tests3/data/sloppy-indentation.canonical
+++ /dev/null
@@ -1,18 +0,0 @@
-%YAML 1.1
----
-!!map { 
-    ? !!str "in the block context"
-    : !!map {
-        ? !!str "indentation should be kept"
-        : !!map {
-            ? !!str "but in the flow context"
-            : !!seq [ !!str "it may be violated" ]
-        }
-    }
-}
---- !!str
-"the parser does not require scalars to be indented with at least one space"
---- !!str
-"the parser does not require scalars to be indented with at least one space"
---- !!map
-{ ? !!str "foo": { ? !!str "bar" : !!str "quoted scalars may not adhere indentation" } }
diff --git a/tests3/data/sloppy-indentation.data b/tests3/data/sloppy-indentation.data
deleted file mode 100644
index 2eb4f5a..0000000
--- a/tests3/data/sloppy-indentation.data
+++ /dev/null
@@ -1,17 +0,0 @@
----
-in the block context:
-    indentation should be kept: { 
-    but in the flow context: [
-it may be violated]
-}
----
-the parser does not require scalars
-to be indented with at least one space
-...
----
-"the parser does not require scalars
-to be indented with at least one space"
----
-foo:
-    bar: 'quoted scalars
-may not adhere indentation'
diff --git a/tests3/data/spec-02-01.data b/tests3/data/spec-02-01.data
deleted file mode 100644
index d12e671..0000000
--- a/tests3/data/spec-02-01.data
+++ /dev/null
@@ -1,3 +0,0 @@
-- Mark McGwire
-- Sammy Sosa
-- Ken Griffey
diff --git a/tests3/data/spec-02-01.structure b/tests3/data/spec-02-01.structure
deleted file mode 100644
index f532f4a..0000000
--- a/tests3/data/spec-02-01.structure
+++ /dev/null
@@ -1 +0,0 @@
-[True, True, True]
diff --git a/tests3/data/spec-02-01.tokens b/tests3/data/spec-02-01.tokens
deleted file mode 100644
index ce44cac..0000000
--- a/tests3/data/spec-02-01.tokens
+++ /dev/null
@@ -1 +0,0 @@
-[[ , _ , _ , _ ]}
diff --git a/tests3/data/spec-02-02.data b/tests3/data/spec-02-02.data
deleted file mode 100644
index 7b7ec94..0000000
--- a/tests3/data/spec-02-02.data
+++ /dev/null
@@ -1,3 +0,0 @@
-hr:  65    # Home runs
-avg: 0.278 # Batting average
-rbi: 147   # Runs Batted In
diff --git a/tests3/data/spec-02-02.structure b/tests3/data/spec-02-02.structure
deleted file mode 100644
index aba1ced..0000000
--- a/tests3/data/spec-02-02.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-02.tokens b/tests3/data/spec-02-02.tokens
deleted file mode 100644
index e4e381b..0000000
--- a/tests3/data/spec-02-02.tokens
+++ /dev/null
@@ -1,5 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-03.data b/tests3/data/spec-02-03.data
deleted file mode 100644
index 656d628..0000000
--- a/tests3/data/spec-02-03.data
+++ /dev/null
@@ -1,8 +0,0 @@
-american:
-  - Boston Red Sox
-  - Detroit Tigers
-  - New York Yankees
-national:
-  - New York Mets
-  - Chicago Cubs
-  - Atlanta Braves
diff --git a/tests3/data/spec-02-03.structure b/tests3/data/spec-02-03.structure
deleted file mode 100644
index 25de5d2..0000000
--- a/tests3/data/spec-02-03.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, [True, True, True]), (True, [True, True, True])]
diff --git a/tests3/data/spec-02-03.tokens b/tests3/data/spec-02-03.tokens
deleted file mode 100644
index 89815f2..0000000
--- a/tests3/data/spec-02-03.tokens
+++ /dev/null
@@ -1,4 +0,0 @@
-{{
-? _ : [[ , _ , _ , _ ]}
-? _ : [[ , _ , _ , _ ]}
-]}
diff --git a/tests3/data/spec-02-04.data b/tests3/data/spec-02-04.data
deleted file mode 100644
index 430f6b3..0000000
--- a/tests3/data/spec-02-04.data
+++ /dev/null
@@ -1,8 +0,0 @@
--
-  name: Mark McGwire
-  hr:   65
-  avg:  0.278
--
-  name: Sammy Sosa
-  hr:   63
-  avg:  0.288
diff --git a/tests3/data/spec-02-04.structure b/tests3/data/spec-02-04.structure
deleted file mode 100644
index e7b526c..0000000
--- a/tests3/data/spec-02-04.structure
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-    [(True, True), (True, True), (True, True)],
-    [(True, True), (True, True), (True, True)],
-]
diff --git a/tests3/data/spec-02-04.tokens b/tests3/data/spec-02-04.tokens
deleted file mode 100644
index 9cb9815..0000000
--- a/tests3/data/spec-02-04.tokens
+++ /dev/null
@@ -1,4 +0,0 @@
-[[
-, {{ ? _ : _ ? _ : _ ? _ : _ ]}
-, {{ ? _ : _ ? _ : _ ? _ : _ ]}
-]}
diff --git a/tests3/data/spec-02-05.data b/tests3/data/spec-02-05.data
deleted file mode 100644
index cdd7770..0000000
--- a/tests3/data/spec-02-05.data
+++ /dev/null
@@ -1,3 +0,0 @@
-- [name        , hr, avg  ]
-- [Mark McGwire, 65, 0.278]
-- [Sammy Sosa  , 63, 0.288]
diff --git a/tests3/data/spec-02-05.structure b/tests3/data/spec-02-05.structure
deleted file mode 100644
index e06b75a..0000000
--- a/tests3/data/spec-02-05.structure
+++ /dev/null
@@ -1,5 +0,0 @@
-[
-    [True, True, True],
-    [True, True, True],
-    [True, True, True],
-]
diff --git a/tests3/data/spec-02-05.tokens b/tests3/data/spec-02-05.tokens
deleted file mode 100644
index 3f6f1ab..0000000
--- a/tests3/data/spec-02-05.tokens
+++ /dev/null
@@ -1,5 +0,0 @@
-[[
-, [ _ , _ , _ ]
-, [ _ , _ , _ ]
-, [ _ , _ , _ ]
-]}
diff --git a/tests3/data/spec-02-06.data b/tests3/data/spec-02-06.data
deleted file mode 100644
index 7a957b2..0000000
--- a/tests3/data/spec-02-06.data
+++ /dev/null
@@ -1,5 +0,0 @@
-Mark McGwire: {hr: 65, avg: 0.278}
-Sammy Sosa: {
-    hr: 63,
-    avg: 0.288
-  }
diff --git a/tests3/data/spec-02-06.structure b/tests3/data/spec-02-06.structure
deleted file mode 100644
index 3ef0f4b..0000000
--- a/tests3/data/spec-02-06.structure
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-    (True, [(True, True), (True, True)]),
-    (True, [(True, True), (True, True)]),
-]
diff --git a/tests3/data/spec-02-06.tokens b/tests3/data/spec-02-06.tokens
deleted file mode 100644
index a1a5eef..0000000
--- a/tests3/data/spec-02-06.tokens
+++ /dev/null
@@ -1,4 +0,0 @@
-{{
-? _ : { ? _ : _ , ? _ : _ }
-? _ : { ? _ : _ , ? _ : _ }
-]}
diff --git a/tests3/data/spec-02-07.data b/tests3/data/spec-02-07.data
deleted file mode 100644
index bc711d5..0000000
--- a/tests3/data/spec-02-07.data
+++ /dev/null
@@ -1,10 +0,0 @@
-# Ranking of 1998 home runs
----
-- Mark McGwire
-- Sammy Sosa
-- Ken Griffey
-
-# Team ranking
----
-- Chicago Cubs
-- St Louis Cardinals
diff --git a/tests3/data/spec-02-07.structure b/tests3/data/spec-02-07.structure
deleted file mode 100644
index c5d72a3..0000000
--- a/tests3/data/spec-02-07.structure
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-[True, True, True],
-[True, True],
-]
diff --git a/tests3/data/spec-02-07.tokens b/tests3/data/spec-02-07.tokens
deleted file mode 100644
index ed48883..0000000
--- a/tests3/data/spec-02-07.tokens
+++ /dev/null
@@ -1,12 +0,0 @@
----
-[[
-, _
-, _
-, _
-]}
-
----
-[[
-, _
-, _
-]}
diff --git a/tests3/data/spec-02-08.data b/tests3/data/spec-02-08.data
deleted file mode 100644
index 05e102d..0000000
--- a/tests3/data/spec-02-08.data
+++ /dev/null
@@ -1,10 +0,0 @@
----
-time: 20:03:20
-player: Sammy Sosa
-action: strike (miss)
-...
----
-time: 20:03:47
-player: Sammy Sosa
-action: grand slam
-...
diff --git a/tests3/data/spec-02-08.structure b/tests3/data/spec-02-08.structure
deleted file mode 100644
index 24cff73..0000000
--- a/tests3/data/spec-02-08.structure
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-[(True, True), (True, True), (True, True)],
-[(True, True), (True, True), (True, True)],
-]
diff --git a/tests3/data/spec-02-08.tokens b/tests3/data/spec-02-08.tokens
deleted file mode 100644
index 7d2c03d..0000000
--- a/tests3/data/spec-02-08.tokens
+++ /dev/null
@@ -1,15 +0,0 @@
----
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
-...
-
----
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
-...
diff --git a/tests3/data/spec-02-09.data b/tests3/data/spec-02-09.data
deleted file mode 100644
index e264180..0000000
--- a/tests3/data/spec-02-09.data
+++ /dev/null
@@ -1,8 +0,0 @@
----
-hr: # 1998 hr ranking
-  - Mark McGwire
-  - Sammy Sosa
-rbi:
-  # 1998 rbi ranking
-  - Sammy Sosa
-  - Ken Griffey
diff --git a/tests3/data/spec-02-09.structure b/tests3/data/spec-02-09.structure
deleted file mode 100644
index b4c9914..0000000
--- a/tests3/data/spec-02-09.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, [True, True]), (True, [True, True])]
diff --git a/tests3/data/spec-02-09.tokens b/tests3/data/spec-02-09.tokens
deleted file mode 100644
index b2ec10e..0000000
--- a/tests3/data/spec-02-09.tokens
+++ /dev/null
@@ -1,5 +0,0 @@
----
-{{
-? _ : [[ , _ , _ ]}
-? _ : [[ , _ , _ ]}
-]}
diff --git a/tests3/data/spec-02-10.data b/tests3/data/spec-02-10.data
deleted file mode 100644
index 61808f6..0000000
--- a/tests3/data/spec-02-10.data
+++ /dev/null
@@ -1,8 +0,0 @@
----
-hr:
-  - Mark McGwire
-  # Following node labeled SS
-  - &SS Sammy Sosa
-rbi:
-  - *SS # Subsequent occurrence
-  - Ken Griffey
diff --git a/tests3/data/spec-02-10.structure b/tests3/data/spec-02-10.structure
deleted file mode 100644
index ff8f4c3..0000000
--- a/tests3/data/spec-02-10.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, [True, True]), (True, ['*', True])]
diff --git a/tests3/data/spec-02-10.tokens b/tests3/data/spec-02-10.tokens
deleted file mode 100644
index 26caa2b..0000000
--- a/tests3/data/spec-02-10.tokens
+++ /dev/null
@@ -1,5 +0,0 @@
----
-{{
-? _ : [[ , _ , & _ ]}
-? _ : [[ , * , _ ]}
-]}
diff --git a/tests3/data/spec-02-11.data b/tests3/data/spec-02-11.data
deleted file mode 100644
index 9123ce2..0000000
--- a/tests3/data/spec-02-11.data
+++ /dev/null
@@ -1,9 +0,0 @@
-? - Detroit Tigers
-  - Chicago cubs
-:
-  - 2001-07-23
-
-? [ New York Yankees,
-    Atlanta Braves ]
-: [ 2001-07-02, 2001-08-12,
-    2001-08-14 ]
diff --git a/tests3/data/spec-02-11.structure b/tests3/data/spec-02-11.structure
deleted file mode 100644
index 3d8f1ff..0000000
--- a/tests3/data/spec-02-11.structure
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-([True, True], [True]),
-([True, True], [True, True, True]),
-]
diff --git a/tests3/data/spec-02-11.tokens b/tests3/data/spec-02-11.tokens
deleted file mode 100644
index fe24203..0000000
--- a/tests3/data/spec-02-11.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
-{{
-? [[ , _ , _ ]}
-: [[ , _ ]}
-? [ _ , _ ]
-: [ _ , _ , _ ]
-]}
diff --git a/tests3/data/spec-02-12.data b/tests3/data/spec-02-12.data
deleted file mode 100644
index 1fc33f9..0000000
--- a/tests3/data/spec-02-12.data
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# products purchased
-- item    : Super Hoop
-  quantity: 1
-- item    : Basketball
-  quantity: 4
-- item    : Big Shoes
-  quantity: 1
diff --git a/tests3/data/spec-02-12.structure b/tests3/data/spec-02-12.structure
deleted file mode 100644
index e9c5359..0000000
--- a/tests3/data/spec-02-12.structure
+++ /dev/null
@@ -1,5 +0,0 @@
-[
-[(True, True), (True, True)],
-[(True, True), (True, True)],
-[(True, True), (True, True)],
-]
diff --git a/tests3/data/spec-02-12.tokens b/tests3/data/spec-02-12.tokens
deleted file mode 100644
index ea21e50..0000000
--- a/tests3/data/spec-02-12.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
----
-[[
-, {{ ? _ : _ ? _ : _ ]}
-, {{ ? _ : _ ? _ : _ ]}
-, {{ ? _ : _ ? _ : _ ]}
-]}
diff --git a/tests3/data/spec-02-13.data b/tests3/data/spec-02-13.data
deleted file mode 100644
index 13fb656..0000000
--- a/tests3/data/spec-02-13.data
+++ /dev/null
@@ -1,4 +0,0 @@
-# ASCII Art
---- |
-  \//||\/||
-  // ||  ||__
diff --git a/tests3/data/spec-02-13.structure b/tests3/data/spec-02-13.structure
deleted file mode 100644
index 0ca9514..0000000
--- a/tests3/data/spec-02-13.structure
+++ /dev/null
@@ -1 +0,0 @@
-True
diff --git a/tests3/data/spec-02-13.tokens b/tests3/data/spec-02-13.tokens
deleted file mode 100644
index 7456c05..0000000
--- a/tests3/data/spec-02-13.tokens
+++ /dev/null
@@ -1 +0,0 @@
---- _
diff --git a/tests3/data/spec-02-14.data b/tests3/data/spec-02-14.data
deleted file mode 100644
index 59943de..0000000
--- a/tests3/data/spec-02-14.data
+++ /dev/null
@@ -1,4 +0,0 @@
----
-  Mark McGwire's
-  year was crippled
-  by a knee injury.
diff --git a/tests3/data/spec-02-14.structure b/tests3/data/spec-02-14.structure
deleted file mode 100644
index 0ca9514..0000000
--- a/tests3/data/spec-02-14.structure
+++ /dev/null
@@ -1 +0,0 @@
-True
diff --git a/tests3/data/spec-02-14.tokens b/tests3/data/spec-02-14.tokens
deleted file mode 100644
index 7456c05..0000000
--- a/tests3/data/spec-02-14.tokens
+++ /dev/null
@@ -1 +0,0 @@
---- _
diff --git a/tests3/data/spec-02-15.data b/tests3/data/spec-02-15.data
deleted file mode 100644
index 80b89a6..0000000
--- a/tests3/data/spec-02-15.data
+++ /dev/null
@@ -1,8 +0,0 @@
->
- Sammy Sosa completed another
- fine season with great stats.
-
-   63 Home Runs
-   0.288 Batting Average
-
- What a year!
diff --git a/tests3/data/spec-02-15.structure b/tests3/data/spec-02-15.structure
deleted file mode 100644
index 0ca9514..0000000
--- a/tests3/data/spec-02-15.structure
+++ /dev/null
@@ -1 +0,0 @@
-True
diff --git a/tests3/data/spec-02-15.tokens b/tests3/data/spec-02-15.tokens
deleted file mode 100644
index 31354ec..0000000
--- a/tests3/data/spec-02-15.tokens
+++ /dev/null
@@ -1 +0,0 @@
-_
diff --git a/tests3/data/spec-02-16.data b/tests3/data/spec-02-16.data
deleted file mode 100644
index 9f66d88..0000000
--- a/tests3/data/spec-02-16.data
+++ /dev/null
@@ -1,7 +0,0 @@
-name: Mark McGwire
-accomplishment: >
-  Mark set a major league
-  home run record in 1998.
-stats: |
-  65 Home Runs
-  0.278 Batting Average
diff --git a/tests3/data/spec-02-16.structure b/tests3/data/spec-02-16.structure
deleted file mode 100644
index aba1ced..0000000
--- a/tests3/data/spec-02-16.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-16.tokens b/tests3/data/spec-02-16.tokens
deleted file mode 100644
index e4e381b..0000000
--- a/tests3/data/spec-02-16.tokens
+++ /dev/null
@@ -1,5 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-17.data b/tests3/data/spec-02-17.data
deleted file mode 100644
index b2870c5..0000000
--- a/tests3/data/spec-02-17.data
+++ /dev/null
@@ -1,7 +0,0 @@
-unicode: "Sosa did fine.\u263A"
-control: "\b1998\t1999\t2000\n"
-hexesc:  "\x13\x10 is \r\n"
-
-single: '"Howdy!" he cried.'
-quoted: ' # not a ''comment''.'
-tie-fighter: '|\-*-/|'
diff --git a/tests3/data/spec-02-17.structure b/tests3/data/spec-02-17.structure
deleted file mode 100644
index 933646d..0000000
--- a/tests3/data/spec-02-17.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True), (True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-17.tokens b/tests3/data/spec-02-17.tokens
deleted file mode 100644
index db65540..0000000
--- a/tests3/data/spec-02-17.tokens
+++ /dev/null
@@ -1,8 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-18.data b/tests3/data/spec-02-18.data
deleted file mode 100644
index e0a8bfa..0000000
--- a/tests3/data/spec-02-18.data
+++ /dev/null
@@ -1,6 +0,0 @@
-plain:
-  This unquoted scalar
-  spans many lines.
-
-quoted: "So does this
-  quoted scalar.\n"
diff --git a/tests3/data/spec-02-18.structure b/tests3/data/spec-02-18.structure
deleted file mode 100644
index 0ca4991..0000000
--- a/tests3/data/spec-02-18.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True)]
diff --git a/tests3/data/spec-02-18.tokens b/tests3/data/spec-02-18.tokens
deleted file mode 100644
index 83b31dc..0000000
--- a/tests3/data/spec-02-18.tokens
+++ /dev/null
@@ -1,4 +0,0 @@
-{{
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-19.data b/tests3/data/spec-02-19.data
deleted file mode 100644
index bf69de6..0000000
--- a/tests3/data/spec-02-19.data
+++ /dev/null
@@ -1,5 +0,0 @@
-canonical: 12345
-decimal: +12,345
-sexagesimal: 3:25:45
-octal: 014
-hexadecimal: 0xC
diff --git a/tests3/data/spec-02-19.structure b/tests3/data/spec-02-19.structure
deleted file mode 100644
index 48ca99d..0000000
--- a/tests3/data/spec-02-19.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-19.tokens b/tests3/data/spec-02-19.tokens
deleted file mode 100644
index 5bda68f..0000000
--- a/tests3/data/spec-02-19.tokens
+++ /dev/null
@@ -1,7 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-20.data b/tests3/data/spec-02-20.data
deleted file mode 100644
index 1d4897f..0000000
--- a/tests3/data/spec-02-20.data
+++ /dev/null
@@ -1,6 +0,0 @@
-canonical: 1.23015e+3
-exponential: 12.3015e+02
-sexagesimal: 20:30.15
-fixed: 1,230.15
-negative infinity: -.inf
-not a number: .NaN
diff --git a/tests3/data/spec-02-20.structure b/tests3/data/spec-02-20.structure
deleted file mode 100644
index 933646d..0000000
--- a/tests3/data/spec-02-20.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True), (True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-20.tokens b/tests3/data/spec-02-20.tokens
deleted file mode 100644
index db65540..0000000
--- a/tests3/data/spec-02-20.tokens
+++ /dev/null
@@ -1,8 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-21.data b/tests3/data/spec-02-21.data
deleted file mode 100644
index dec6a56..0000000
--- a/tests3/data/spec-02-21.data
+++ /dev/null
@@ -1,4 +0,0 @@
-null: ~
-true: y
-false: n
-string: '12345'
diff --git a/tests3/data/spec-02-21.structure b/tests3/data/spec-02-21.structure
deleted file mode 100644
index 021635f..0000000
--- a/tests3/data/spec-02-21.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-21.tokens b/tests3/data/spec-02-21.tokens
deleted file mode 100644
index aeccbaf..0000000
--- a/tests3/data/spec-02-21.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-22.data b/tests3/data/spec-02-22.data
deleted file mode 100644
index aaac185..0000000
--- a/tests3/data/spec-02-22.data
+++ /dev/null
@@ -1,4 +0,0 @@
-canonical: 2001-12-15T02:59:43.1Z
-iso8601: 2001-12-14t21:59:43.10-05:00
-spaced: 2001-12-14 21:59:43.10 -5
-date: 2002-12-14
diff --git a/tests3/data/spec-02-22.structure b/tests3/data/spec-02-22.structure
deleted file mode 100644
index 021635f..0000000
--- a/tests3/data/spec-02-22.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-22.tokens b/tests3/data/spec-02-22.tokens
deleted file mode 100644
index aeccbaf..0000000
--- a/tests3/data/spec-02-22.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-23.data b/tests3/data/spec-02-23.data
deleted file mode 100644
index 5dbd992..0000000
--- a/tests3/data/spec-02-23.data
+++ /dev/null
@@ -1,13 +0,0 @@
----
-not-date: !!str 2002-04-28
-
-picture: !!binary |
- R0lGODlhDAAMAIQAAP//9/X
- 17unp5WZmZgAAAOfn515eXv
- Pz7Y6OjuDg4J+fn5OTk6enp
- 56enmleECcgggoBADs=
-
-application specific tag: !something |
- The semantics of the tag
- above may be different for
- different documents.
diff --git a/tests3/data/spec-02-23.structure b/tests3/data/spec-02-23.structure
deleted file mode 100644
index aba1ced..0000000
--- a/tests3/data/spec-02-23.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, True), (True, True), (True, True)]
diff --git a/tests3/data/spec-02-23.tokens b/tests3/data/spec-02-23.tokens
deleted file mode 100644
index 9ac54aa..0000000
--- a/tests3/data/spec-02-23.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
----
-{{
-? _ : ! _
-? _ : ! _
-? _ : ! _
-]}
diff --git a/tests3/data/spec-02-24.data b/tests3/data/spec-02-24.data
deleted file mode 100644
index 1180757..0000000
--- a/tests3/data/spec-02-24.data
+++ /dev/null
@@ -1,14 +0,0 @@
-%TAG ! tag:clarkevans.com,2002:
---- !shape
-  # Use the ! handle for presenting
-  # tag:clarkevans.com,2002:circle
-- !circle
-  center: &ORIGIN {x: 73, y: 129}
-  radius: 7
-- !line
-  start: *ORIGIN
-  finish: { x: 89, y: 102 }
-- !label
-  start: *ORIGIN
-  color: 0xFFEEBB
-  text: Pretty vector drawing.
diff --git a/tests3/data/spec-02-24.structure b/tests3/data/spec-02-24.structure
deleted file mode 100644
index a800729..0000000
--- a/tests3/data/spec-02-24.structure
+++ /dev/null
@@ -1,5 +0,0 @@
-[
-[(True, [(True, True), (True, True)]), (True, True)],
-[(True, '*'), (True, [(True, True), (True, True)])],
-[(True, '*'), (True, True), (True, True)],
-]
diff --git a/tests3/data/spec-02-24.tokens b/tests3/data/spec-02-24.tokens
deleted file mode 100644
index 039c385..0000000
--- a/tests3/data/spec-02-24.tokens
+++ /dev/null
@@ -1,20 +0,0 @@
-%
---- !
-[[
-, !
-    {{
-    ? _ : & { ? _ : _ , ? _ : _ }
-    ? _ : _
-    ]}
-, !
-    {{
-    ? _ : *
-    ? _ : { ? _ : _ , ? _ : _ }
-    ]}
-, !
-    {{
-    ? _ : *
-    ? _ : _
-    ? _ : _
-    ]}
-]}
diff --git a/tests3/data/spec-02-25.data b/tests3/data/spec-02-25.data
deleted file mode 100644
index 769ac31..0000000
--- a/tests3/data/spec-02-25.data
+++ /dev/null
@@ -1,7 +0,0 @@
-# sets are represented as a
-# mapping where each key is
-# associated with the empty string
---- !!set
-? Mark McGwire
-? Sammy Sosa
-? Ken Griff
diff --git a/tests3/data/spec-02-25.structure b/tests3/data/spec-02-25.structure
deleted file mode 100644
index 0b40e61..0000000
--- a/tests3/data/spec-02-25.structure
+++ /dev/null
@@ -1 +0,0 @@
-[(True, None), (True, None), (True, None)]
diff --git a/tests3/data/spec-02-25.tokens b/tests3/data/spec-02-25.tokens
deleted file mode 100644
index b700236..0000000
--- a/tests3/data/spec-02-25.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
---- !
-{{
-? _
-? _
-? _
-]}
diff --git a/tests3/data/spec-02-26.data b/tests3/data/spec-02-26.data
deleted file mode 100644
index 3143763..0000000
--- a/tests3/data/spec-02-26.data
+++ /dev/null
@@ -1,7 +0,0 @@
-# ordered maps are represented as
-# a sequence of mappings, with
-# each mapping having one key
---- !!omap
-- Mark McGwire: 65
-- Sammy Sosa: 63
-- Ken Griffy: 58
diff --git a/tests3/data/spec-02-26.structure b/tests3/data/spec-02-26.structure
deleted file mode 100644
index cf429b9..0000000
--- a/tests3/data/spec-02-26.structure
+++ /dev/null
@@ -1,5 +0,0 @@
-[
-[(True, True)],
-[(True, True)],
-[(True, True)],
-]
diff --git a/tests3/data/spec-02-26.tokens b/tests3/data/spec-02-26.tokens
deleted file mode 100644
index 7bee492..0000000
--- a/tests3/data/spec-02-26.tokens
+++ /dev/null
@@ -1,6 +0,0 @@
---- !
-[[
-, {{ ? _ : _ ]}
-, {{ ? _ : _ ]}
-, {{ ? _ : _ ]}
-]}
diff --git a/tests3/data/spec-02-27.data b/tests3/data/spec-02-27.data
deleted file mode 100644
index 4625739..0000000
--- a/tests3/data/spec-02-27.data
+++ /dev/null
@@ -1,29 +0,0 @@
---- !<tag:clarkevans.com,2002:invoice>
-invoice: 34843
-date   : 2001-01-23
-bill-to: &id001
-    given  : Chris
-    family : Dumars
-    address:
-        lines: |
-            458 Walkman Dr.
-            Suite #292
-        city    : Royal Oak
-        state   : MI
-        postal  : 48046
-ship-to: *id001
-product:
-    - sku         : BL394D
-      quantity    : 4
-      description : Basketball
-      price       : 450.00
-    - sku         : BL4438H
-      quantity    : 1
-      description : Super Hoop
-      price       : 2392.00
-tax  : 251.42
-total: 4443.52
-comments:
-    Late afternoon is best.
-    Backup contact is Nancy
-    Billsmer @ 338-4338.
diff --git a/tests3/data/spec-02-27.structure b/tests3/data/spec-02-27.structure
deleted file mode 100644
index a2113b9..0000000
--- a/tests3/data/spec-02-27.structure
+++ /dev/null
@@ -1,17 +0,0 @@
-[
-(True, True),
-(True, True),
-(True, [
-    (True, True),
-    (True, True),
-    (True, [(True, True), (True, True), (True, True), (True, True)]),
-    ]),
-(True, '*'),
-(True, [
-        [(True, True), (True, True), (True, True), (True, True)],
-        [(True, True), (True, True), (True, True), (True, True)],
-    ]),
-(True, True),
-(True, True),
-(True, True),
-]
diff --git a/tests3/data/spec-02-27.tokens b/tests3/data/spec-02-27.tokens
deleted file mode 100644
index 2dc1c25..0000000
--- a/tests3/data/spec-02-27.tokens
+++ /dev/null
@@ -1,20 +0,0 @@
---- !
-{{
-? _ : _
-? _ : _
-? _ : &
-    {{
-    ? _ : _
-    ? _ : _
-    ? _ : {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]}
-    ]}
-? _ : *
-? _ :
-    [[
-    , {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]}
-    , {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]}
-    ]}
-? _ : _
-? _ : _
-? _ : _
-]}
diff --git a/tests3/data/spec-02-28.data b/tests3/data/spec-02-28.data
deleted file mode 100644
index a5c8dc8..0000000
--- a/tests3/data/spec-02-28.data
+++ /dev/null
@@ -1,26 +0,0 @@
----
-Time: 2001-11-23 15:01:42 -5
-User: ed
-Warning:
-  This is an error message
-  for the log file
----
-Time: 2001-11-23 15:02:31 -5
-User: ed
-Warning:
-  A slightly different error
-  message.
----
-Date: 2001-11-23 15:03:17 -5
-User: ed
-Fatal:
-  Unknown variable "bar"
-Stack:
-  - file: TopClass.py
-    line: 23
-    code: |
-      x = MoreObject("345\n")
-  - file: MoreClass.py
-    line: 58
-    code: |-
-      foo = bar
diff --git a/tests3/data/spec-02-28.structure b/tests3/data/spec-02-28.structure
deleted file mode 100644
index 8ec0b56..0000000
--- a/tests3/data/spec-02-28.structure
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-[(True, True), (True, True), (True, True)],
-[(True, True), (True, True), (True, True)],
-[(True, True), (True, True), (True, True),
-(True, [
-    [(True, True), (True, True), (True, True)],
-    [(True, True), (True, True), (True, True)],
-    ]),
-]
-]
diff --git a/tests3/data/spec-02-28.tokens b/tests3/data/spec-02-28.tokens
deleted file mode 100644
index 8d5e1bc..0000000
--- a/tests3/data/spec-02-28.tokens
+++ /dev/null
@@ -1,23 +0,0 @@
----
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
----
-{{
-? _ : _
-? _ : _
-? _ : _
-]}
----
-{{
-? _ : _
-? _ : _
-? _ : _
-? _ :
-    [[
-        , {{ ? _ : _ ? _ : _ ? _ : _ ]}
-        , {{ ? _ : _ ? _ : _ ? _ : _ ]}
-    ]}
-]}
diff --git a/tests3/data/spec-05-01-utf16be.data b/tests3/data/spec-05-01-utf16be.data
deleted file mode 100644
index 3525062..0000000
--- a/tests3/data/spec-05-01-utf16be.data
+++ /dev/null
Binary files differ
diff --git a/tests3/data/spec-05-01-utf16be.empty b/tests3/data/spec-05-01-utf16be.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-05-01-utf16be.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-05-01-utf16le.data b/tests3/data/spec-05-01-utf16le.data
deleted file mode 100644
index 0823f74..0000000
--- a/tests3/data/spec-05-01-utf16le.data
+++ /dev/null
Binary files differ
diff --git a/tests3/data/spec-05-01-utf16le.empty b/tests3/data/spec-05-01-utf16le.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-05-01-utf16le.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-05-01-utf8.data b/tests3/data/spec-05-01-utf8.data
deleted file mode 100644
index 780d25b..0000000
--- a/tests3/data/spec-05-01-utf8.data
+++ /dev/null
@@ -1 +0,0 @@
-# Comment only.
diff --git a/tests3/data/spec-05-01-utf8.empty b/tests3/data/spec-05-01-utf8.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-05-01-utf8.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-05-02-utf16be.data b/tests3/data/spec-05-02-utf16be.data
deleted file mode 100644
index 5ebbb04..0000000
--- a/tests3/data/spec-05-02-utf16be.data
+++ /dev/null
Binary files differ
diff --git a/tests3/data/spec-05-02-utf16be.error b/tests3/data/spec-05-02-utf16be.error
deleted file mode 100644
index 1df3616..0000000
--- a/tests3/data/spec-05-02-utf16be.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
- A BOM must not appear
- inside a document.
diff --git a/tests3/data/spec-05-02-utf16le.data b/tests3/data/spec-05-02-utf16le.data
deleted file mode 100644
index 0cd90a2..0000000
--- a/tests3/data/spec-05-02-utf16le.data
+++ /dev/null
Binary files differ
diff --git a/tests3/data/spec-05-02-utf16le.error b/tests3/data/spec-05-02-utf16le.error
deleted file mode 100644
index 1df3616..0000000
--- a/tests3/data/spec-05-02-utf16le.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
- A BOM must not appear
- inside a document.
diff --git a/tests3/data/spec-05-02-utf8.data b/tests3/data/spec-05-02-utf8.data
deleted file mode 100644
index fb74866..0000000
--- a/tests3/data/spec-05-02-utf8.data
+++ /dev/null
@@ -1,3 +0,0 @@
-# Invalid use of BOM
-# inside a
-# document.
diff --git a/tests3/data/spec-05-02-utf8.error b/tests3/data/spec-05-02-utf8.error
deleted file mode 100644
index 1df3616..0000000
--- a/tests3/data/spec-05-02-utf8.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
- A BOM must not appear
- inside a document.
diff --git a/tests3/data/spec-05-03.canonical b/tests3/data/spec-05-03.canonical
deleted file mode 100644
index a143a73..0000000
--- a/tests3/data/spec-05-03.canonical
+++ /dev/null
@@ -1,14 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "sequence"
-  : !!seq [
-    !!str "one", !!str "two"
-  ],
-  ? !!str "mapping"
-  : !!map {
-    ? !!str "sky" : !!str "blue",
-#    ? !!str "sea" : !!str "green",
-    ? !!map { ? !!str "sea" : !!str "green" } : !!null "",
-  }
-}
diff --git a/tests3/data/spec-05-03.data b/tests3/data/spec-05-03.data
deleted file mode 100644
index 4661f33..0000000
--- a/tests3/data/spec-05-03.data
+++ /dev/null
@@ -1,7 +0,0 @@
-sequence:
-- one
-- two
-mapping:
-  ? sky
-  : blue
-  ? sea : green
diff --git a/tests3/data/spec-05-04.canonical b/tests3/data/spec-05-04.canonical
deleted file mode 100644
index 00c9723..0000000
--- a/tests3/data/spec-05-04.canonical
+++ /dev/null
@@ -1,13 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "sequence"
-  : !!seq [
-    !!str "one", !!str "two"
-  ],
-  ? !!str "mapping"
-  : !!map {
-    ? !!str "sky" : !!str "blue",
-    ? !!str "sea" : !!str "green",
-  }
-}
diff --git a/tests3/data/spec-05-04.data b/tests3/data/spec-05-04.data
deleted file mode 100644
index df33847..0000000
--- a/tests3/data/spec-05-04.data
+++ /dev/null
@@ -1,2 +0,0 @@
-sequence: [ one, two, ]
-mapping: { sky: blue, sea: green }
diff --git a/tests3/data/spec-05-05.data b/tests3/data/spec-05-05.data
deleted file mode 100644
index 62524c0..0000000
--- a/tests3/data/spec-05-05.data
+++ /dev/null
@@ -1 +0,0 @@
-# Comment only.
diff --git a/tests3/data/spec-05-05.empty b/tests3/data/spec-05-05.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-05-05.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-05-06.canonical b/tests3/data/spec-05-06.canonical
deleted file mode 100644
index 4f30c11..0000000
--- a/tests3/data/spec-05-06.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "anchored"
-  : &A1 !local "value",
-  ? !!str "alias"
-  : *A1,
-}
diff --git a/tests3/data/spec-05-06.data b/tests3/data/spec-05-06.data
deleted file mode 100644
index 7a1f9b3..0000000
--- a/tests3/data/spec-05-06.data
+++ /dev/null
@@ -1,2 +0,0 @@
-anchored: !local &anchor value
-alias: *anchor
diff --git a/tests3/data/spec-05-07.canonical b/tests3/data/spec-05-07.canonical
deleted file mode 100644
index dc3732a..0000000
--- a/tests3/data/spec-05-07.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "literal"
-  : !!str "text\n",
-  ? !!str "folded"
-  : !!str "text\n",
-}
diff --git a/tests3/data/spec-05-07.data b/tests3/data/spec-05-07.data
deleted file mode 100644
index 97eb3a3..0000000
--- a/tests3/data/spec-05-07.data
+++ /dev/null
@@ -1,4 +0,0 @@
-literal: |
-  text
-folded: >
-  text
diff --git a/tests3/data/spec-05-08.canonical b/tests3/data/spec-05-08.canonical
deleted file mode 100644
index 610bd68..0000000
--- a/tests3/data/spec-05-08.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "single"
-  : !!str "text",
-  ? !!str "double"
-  : !!str "text",
-}
diff --git a/tests3/data/spec-05-08.data b/tests3/data/spec-05-08.data
deleted file mode 100644
index 04ebf69..0000000
--- a/tests3/data/spec-05-08.data
+++ /dev/null
@@ -1,2 +0,0 @@
-single: 'text'
-double: "text"
diff --git a/tests3/data/spec-05-09.canonical b/tests3/data/spec-05-09.canonical
deleted file mode 100644
index 597e3de..0000000
--- a/tests3/data/spec-05-09.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "text"
diff --git a/tests3/data/spec-05-09.data b/tests3/data/spec-05-09.data
deleted file mode 100644
index a43431b..0000000
--- a/tests3/data/spec-05-09.data
+++ /dev/null
@@ -1,2 +0,0 @@
-%YAML 1.1
---- text
diff --git a/tests3/data/spec-05-10.data b/tests3/data/spec-05-10.data
deleted file mode 100644
index a4caf91..0000000
--- a/tests3/data/spec-05-10.data
+++ /dev/null
@@ -1,2 +0,0 @@
-commercial-at: @text
-grave-accent: `text
diff --git a/tests3/data/spec-05-10.error b/tests3/data/spec-05-10.error
deleted file mode 100644
index 46f776e..0000000
--- a/tests3/data/spec-05-10.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
- Reserved indicators can't
- start a plain scalar.
diff --git a/tests3/data/spec-05-11.canonical b/tests3/data/spec-05-11.canonical
deleted file mode 100644
index fc25bef..0000000
--- a/tests3/data/spec-05-11.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
---- !!str
-"Generic line break (no glyph)\n\
- Generic line break (glyphed)\n\
- Line separator\u2028\
- Paragraph separator\u2029"
diff --git a/tests3/data/spec-05-11.data b/tests3/data/spec-05-11.data
deleted file mode 100644
index b448b75..0000000
--- a/tests3/data/spec-05-11.data
+++ /dev/null
@@ -1,3 +0,0 @@
-|
-  Generic line break (no glyph)
-  Generic line break (glyphed)…  Line separator
  Paragraph separator

\ No newline at end of file
diff --git a/tests3/data/spec-05-12.data b/tests3/data/spec-05-12.data
deleted file mode 100644
index 7c3ad7f..0000000
--- a/tests3/data/spec-05-12.data
+++ /dev/null
@@ -1,9 +0,0 @@
-# Tabs do's and don'ts:
-# comment: 	
-quoted: "Quoted		"
-block: |
-  void main() {
-  	printf("Hello, world!\n");
-  }
-elsewhere:	# separation
-	indentation, in	plain scalar
diff --git a/tests3/data/spec-05-12.error b/tests3/data/spec-05-12.error
deleted file mode 100644
index 8aad4c8..0000000
--- a/tests3/data/spec-05-12.error
+++ /dev/null
@@ -1,8 +0,0 @@
-ERROR:
- Tabs may appear inside
- comments and quoted or
- block scalar content.
- Tabs must not appear
- elsewhere, such as
- in indentation and
- separation spaces.
diff --git a/tests3/data/spec-05-13.canonical b/tests3/data/spec-05-13.canonical
deleted file mode 100644
index 90c1c5c..0000000
--- a/tests3/data/spec-05-13.canonical
+++ /dev/null
@@ -1,5 +0,0 @@
-%YAML 1.1
---- !!str
-"Text containing \
- both space and \
- tab	characters"
diff --git a/tests3/data/spec-05-13.data b/tests3/data/spec-05-13.data
deleted file mode 100644
index fce7951..0000000
--- a/tests3/data/spec-05-13.data
+++ /dev/null
@@ -1,3 +0,0 @@
-  "Text containing   
-  both space and	
-  	tab	characters"
diff --git a/tests3/data/spec-05-14.canonical b/tests3/data/spec-05-14.canonical
deleted file mode 100644
index 4bff01c..0000000
--- a/tests3/data/spec-05-14.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-"Fun with \x5C
- \x22 \x07 \x08 \x1B \x0C
- \x0A \x0D \x09 \x0B \x00
- \x20 \xA0 \x85 \u2028 \u2029
- A A A"
diff --git a/tests3/data/spec-05-14.data b/tests3/data/spec-05-14.data
deleted file mode 100644
index d6e8ce4..0000000
--- a/tests3/data/spec-05-14.data
+++ /dev/null
@@ -1,2 +0,0 @@
-"Fun with \\
- \" \a \b \e \f \… \n \r \t \v \0 \
 \  \_ \N \L \P \
 \x41 \u0041 \U00000041"
diff --git a/tests3/data/spec-05-15.data b/tests3/data/spec-05-15.data
deleted file mode 100644
index 7bf12b6..0000000
--- a/tests3/data/spec-05-15.data
+++ /dev/null
@@ -1,3 +0,0 @@
-Bad escapes:
-  "\c
-  \xq-"
diff --git a/tests3/data/spec-05-15.error b/tests3/data/spec-05-15.error
deleted file mode 100644
index 71ffbd9..0000000
--- a/tests3/data/spec-05-15.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
-- c is an invalid escaped character.
-- q and - are invalid hex digits.
diff --git a/tests3/data/spec-06-01.canonical b/tests3/data/spec-06-01.canonical
deleted file mode 100644
index f17ec92..0000000
--- a/tests3/data/spec-06-01.canonical
+++ /dev/null
@@ -1,15 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "Not indented"
-  : !!map {
-      ? !!str "By one space"
-      : !!str "By four\n  spaces\n",
-      ? !!str "Flow style"
-      : !!seq [
-          !!str "By two",
-          !!str "Also by two",
-          !!str "Still by two",
-        ]
-    }
-}
diff --git a/tests3/data/spec-06-01.data b/tests3/data/spec-06-01.data
deleted file mode 100644
index 6134ba1..0000000
--- a/tests3/data/spec-06-01.data
+++ /dev/null
@@ -1,14 +0,0 @@
-  # Leading comment line spaces are
-   # neither content nor indentation.
-    
-Not indented:
- By one space: |
-    By four
-      spaces
- Flow style: [    # Leading spaces
-   By two,        # in flow style
-  Also by two,    # are neither
-# Tabs are not allowed:
-#  	Still by two   # content nor
-    Still by two   # content nor
-    ]             # indentation.
diff --git a/tests3/data/spec-06-02.data b/tests3/data/spec-06-02.data
deleted file mode 100644
index ff741e5..0000000
--- a/tests3/data/spec-06-02.data
+++ /dev/null
@@ -1,3 +0,0 @@
-  # Comment
-   
-
diff --git a/tests3/data/spec-06-02.empty b/tests3/data/spec-06-02.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-06-02.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-06-03.canonical b/tests3/data/spec-06-03.canonical
deleted file mode 100644
index ec26902..0000000
--- a/tests3/data/spec-06-03.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "key"
-  : !!str "value"
-}
diff --git a/tests3/data/spec-06-03.data b/tests3/data/spec-06-03.data
deleted file mode 100644
index 9db0912..0000000
--- a/tests3/data/spec-06-03.data
+++ /dev/null
@@ -1,2 +0,0 @@
-key:    # Comment
-  value
diff --git a/tests3/data/spec-06-04.canonical b/tests3/data/spec-06-04.canonical
deleted file mode 100644
index ec26902..0000000
--- a/tests3/data/spec-06-04.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "key"
-  : !!str "value"
-}
diff --git a/tests3/data/spec-06-04.data b/tests3/data/spec-06-04.data
deleted file mode 100644
index 86308dd..0000000
--- a/tests3/data/spec-06-04.data
+++ /dev/null
@@ -1,4 +0,0 @@
-key:    # Comment
-        # lines
-  value
-
diff --git a/tests3/data/spec-06-05.canonical b/tests3/data/spec-06-05.canonical
deleted file mode 100644
index 8da431d..0000000
--- a/tests3/data/spec-06-05.canonical
+++ /dev/null
@@ -1,16 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!map {
-    ? !!str "first"
-    : !!str "Sammy",
-    ? !!str "last"
-    : !!str "Sosa"
-  }
-  : !!map {
-    ? !!str "hr"
-    : !!int "65",
-    ? !!str "avg"
-    : !!float "0.278"
-  }
-}
diff --git a/tests3/data/spec-06-05.data b/tests3/data/spec-06-05.data
deleted file mode 100644
index 37613f5..0000000
--- a/tests3/data/spec-06-05.data
+++ /dev/null
@@ -1,6 +0,0 @@
-{ first: Sammy, last: Sosa }:
-# Statistics:
-  hr:  # Home runs
-    65
-  avg: # Average
-    0.278
diff --git a/tests3/data/spec-06-06.canonical b/tests3/data/spec-06-06.canonical
deleted file mode 100644
index 513d07a..0000000
--- a/tests3/data/spec-06-06.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "plain"
-  : !!str "text lines",
-  ? !!str "quoted"
-  : !!str "text lines",
-  ? !!str "block"
-  : !!str "text\n 	lines\n"
-}
diff --git a/tests3/data/spec-06-06.data b/tests3/data/spec-06-06.data
deleted file mode 100644
index 2f62d08..0000000
--- a/tests3/data/spec-06-06.data
+++ /dev/null
@@ -1,7 +0,0 @@
-plain: text
-  lines
-quoted: "text
-  	lines"
-block: |
-  text
-   	lines
diff --git a/tests3/data/spec-06-07.canonical b/tests3/data/spec-06-07.canonical
deleted file mode 100644
index 11357e4..0000000
--- a/tests3/data/spec-06-07.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "foo\nbar",
-  !!str "foo\n\nbar"
-]
diff --git a/tests3/data/spec-06-07.data b/tests3/data/spec-06-07.data
deleted file mode 100644
index 130cfa7..0000000
--- a/tests3/data/spec-06-07.data
+++ /dev/null
@@ -1,8 +0,0 @@
-- foo
- 
-  bar
-- |-
-  foo
- 
-  bar
-  
diff --git a/tests3/data/spec-06-08.canonical b/tests3/data/spec-06-08.canonical
deleted file mode 100644
index cc72bc8..0000000
--- a/tests3/data/spec-06-08.canonical
+++ /dev/null
@@ -1,5 +0,0 @@
-%YAML 1.1
---- !!str
-"specific\L\
- trimmed\n\n\n\
- as space"
diff --git a/tests3/data/spec-06-08.data b/tests3/data/spec-06-08.data
deleted file mode 100644
index f2896ed..0000000
--- a/tests3/data/spec-06-08.data
+++ /dev/null
@@ -1,2 +0,0 @@
->-
-  specific
  trimmed…  … ……  as…  space
diff --git a/tests3/data/spec-07-01.canonical b/tests3/data/spec-07-01.canonical
deleted file mode 100644
index 8c8c48d..0000000
--- a/tests3/data/spec-07-01.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
---- !!str
-"foo"
diff --git a/tests3/data/spec-07-01.data b/tests3/data/spec-07-01.data
deleted file mode 100644
index 2113eb6..0000000
--- a/tests3/data/spec-07-01.data
+++ /dev/null
@@ -1,3 +0,0 @@
-%FOO  bar baz # Should be ignored
-               # with a warning.
---- "foo"
diff --git a/tests3/data/spec-07-01.skip-ext b/tests3/data/spec-07-01.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/spec-07-01.skip-ext
+++ /dev/null
diff --git a/tests3/data/spec-07-02.canonical b/tests3/data/spec-07-02.canonical
deleted file mode 100644
index cb7dd1c..0000000
--- a/tests3/data/spec-07-02.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "foo"
diff --git a/tests3/data/spec-07-02.data b/tests3/data/spec-07-02.data
deleted file mode 100644
index c8b7322..0000000
--- a/tests3/data/spec-07-02.data
+++ /dev/null
@@ -1,4 +0,0 @@
-%YAML 1.2 # Attempt parsing
-           # with a warning
----
-"foo"
diff --git a/tests3/data/spec-07-02.skip-ext b/tests3/data/spec-07-02.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/spec-07-02.skip-ext
+++ /dev/null
diff --git a/tests3/data/spec-07-03.data b/tests3/data/spec-07-03.data
deleted file mode 100644
index 4bfa07a..0000000
--- a/tests3/data/spec-07-03.data
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
-%YAML 1.1
-foo
diff --git a/tests3/data/spec-07-03.error b/tests3/data/spec-07-03.error
deleted file mode 100644
index b0ac446..0000000
--- a/tests3/data/spec-07-03.error
+++ /dev/null
@@ -1,3 +0,0 @@
-ERROR:
-The YAML directive must only be
-given at most once per document.
diff --git a/tests3/data/spec-07-04.canonical b/tests3/data/spec-07-04.canonical
deleted file mode 100644
index cb7dd1c..0000000
--- a/tests3/data/spec-07-04.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "foo"
diff --git a/tests3/data/spec-07-04.data b/tests3/data/spec-07-04.data
deleted file mode 100644
index 50f5ab9..0000000
--- a/tests3/data/spec-07-04.data
+++ /dev/null
@@ -1,3 +0,0 @@
-%TAG !yaml! tag:yaml.org,2002:
----
-!yaml!str "foo"
diff --git a/tests3/data/spec-07-05.data b/tests3/data/spec-07-05.data
deleted file mode 100644
index 7276eae..0000000
--- a/tests3/data/spec-07-05.data
+++ /dev/null
@@ -1,3 +0,0 @@
-%TAG ! !foo
-%TAG ! !foo
-bar
diff --git a/tests3/data/spec-07-05.error b/tests3/data/spec-07-05.error
deleted file mode 100644
index 5601b19..0000000
--- a/tests3/data/spec-07-05.error
+++ /dev/null
@@ -1,4 +0,0 @@
-ERROR:
-The TAG directive must only
-be given at most once per
-handle in the same document.
diff --git a/tests3/data/spec-07-06.canonical b/tests3/data/spec-07-06.canonical
deleted file mode 100644
index bddf616..0000000
--- a/tests3/data/spec-07-06.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !<!foobar> "baz",
-  !<tag:yaml.org,2002:str> "string"
-]
diff --git a/tests3/data/spec-07-06.data b/tests3/data/spec-07-06.data
deleted file mode 100644
index d9854cb..0000000
--- a/tests3/data/spec-07-06.data
+++ /dev/null
@@ -1,5 +0,0 @@
-%TAG !      !foo
-%TAG !yaml! tag:yaml.org,2002:
----
-- !bar "baz"
-- !yaml!str "string"
diff --git a/tests3/data/spec-07-07a.canonical b/tests3/data/spec-07-07a.canonical
deleted file mode 100644
index fa086df..0000000
--- a/tests3/data/spec-07-07a.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!<!foo> "bar"
diff --git a/tests3/data/spec-07-07a.data b/tests3/data/spec-07-07a.data
deleted file mode 100644
index 9d42ec3..0000000
--- a/tests3/data/spec-07-07a.data
+++ /dev/null
@@ -1,2 +0,0 @@
-# Private application:
-!foo "bar"
diff --git a/tests3/data/spec-07-07b.canonical b/tests3/data/spec-07-07b.canonical
deleted file mode 100644
index fe917d8..0000000
--- a/tests3/data/spec-07-07b.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!<tag:ben-kiki.org,2000:app/foo> "bar"
diff --git a/tests3/data/spec-07-07b.data b/tests3/data/spec-07-07b.data
deleted file mode 100644
index 2d36d0e..0000000
--- a/tests3/data/spec-07-07b.data
+++ /dev/null
@@ -1,4 +0,0 @@
-# Migrated to global:
-%TAG ! tag:ben-kiki.org,2000:app/
----
-!foo "bar"
diff --git a/tests3/data/spec-07-08.canonical b/tests3/data/spec-07-08.canonical
deleted file mode 100644
index 703aa7b..0000000
--- a/tests3/data/spec-07-08.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !<!foo> "bar",
-  !<tag:yaml.org,2002:str> "string",
-  !<tag:ben-kiki.org,2000:type> "baz"
-]
diff --git a/tests3/data/spec-07-08.data b/tests3/data/spec-07-08.data
deleted file mode 100644
index e2c6d9e..0000000
--- a/tests3/data/spec-07-08.data
+++ /dev/null
@@ -1,9 +0,0 @@
-# Explicitly specify default settings:
-%TAG !     !
-%TAG !!    tag:yaml.org,2002:
-# Named handles have no default:
-%TAG !o! tag:ben-kiki.org,2000:
----
-- !foo "bar"
-- !!str "string"
-- !o!type "baz"
diff --git a/tests3/data/spec-07-09.canonical b/tests3/data/spec-07-09.canonical
deleted file mode 100644
index 32d9e94..0000000
--- a/tests3/data/spec-07-09.canonical
+++ /dev/null
@@ -1,9 +0,0 @@
-%YAML 1.1
----
-!!str "foo"
-%YAML 1.1
----
-!!str "bar"
-%YAML 1.1
----
-!!str "baz"
diff --git a/tests3/data/spec-07-09.data b/tests3/data/spec-07-09.data
deleted file mode 100644
index 1209d47..0000000
--- a/tests3/data/spec-07-09.data
+++ /dev/null
@@ -1,11 +0,0 @@
----
-foo
-...
-# Repeated end marker.
-...
----
-bar
-# No end marker.
----
-baz
-...
diff --git a/tests3/data/spec-07-10.canonical b/tests3/data/spec-07-10.canonical
deleted file mode 100644
index 1db650a..0000000
--- a/tests3/data/spec-07-10.canonical
+++ /dev/null
@@ -1,15 +0,0 @@
-%YAML 1.1
----
-!!str "Root flow scalar"
-%YAML 1.1
----
-!!str "Root block scalar\n"
-%YAML 1.1
----
-!!map {
-  ? !!str "foo"
-  : !!str "bar"
-}
----
-#!!str ""
-!!null ""
diff --git a/tests3/data/spec-07-10.data b/tests3/data/spec-07-10.data
deleted file mode 100644
index 6939b39..0000000
--- a/tests3/data/spec-07-10.data
+++ /dev/null
@@ -1,11 +0,0 @@
-"Root flow
- scalar"
---- !!str >
- Root block
- scalar
----
-# Root collection:
-foo : bar
-... # Is optional.
----
-# Explicit document may be empty.
diff --git a/tests3/data/spec-07-11.data b/tests3/data/spec-07-11.data
deleted file mode 100644
index d11302d..0000000
--- a/tests3/data/spec-07-11.data
+++ /dev/null
@@ -1,2 +0,0 @@
-# A stream may contain
-# no documents.
diff --git a/tests3/data/spec-07-11.empty b/tests3/data/spec-07-11.empty
deleted file mode 100644
index bfffa8b..0000000
--- a/tests3/data/spec-07-11.empty
+++ /dev/null
@@ -1,2 +0,0 @@
-# This stream contains no
-# documents, only comments.
diff --git a/tests3/data/spec-07-12a.canonical b/tests3/data/spec-07-12a.canonical
deleted file mode 100644
index efc116f..0000000
--- a/tests3/data/spec-07-12a.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "foo"
-  : !!str "bar"
-}
diff --git a/tests3/data/spec-07-12a.data b/tests3/data/spec-07-12a.data
deleted file mode 100644
index 3807d57..0000000
--- a/tests3/data/spec-07-12a.data
+++ /dev/null
@@ -1,3 +0,0 @@
-# Implicit document. Root
-# collection (mapping) node.
-foo : bar
diff --git a/tests3/data/spec-07-12b.canonical b/tests3/data/spec-07-12b.canonical
deleted file mode 100644
index 04bcffc..0000000
--- a/tests3/data/spec-07-12b.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "Text content\n"
diff --git a/tests3/data/spec-07-12b.data b/tests3/data/spec-07-12b.data
deleted file mode 100644
index 43250db..0000000
--- a/tests3/data/spec-07-12b.data
+++ /dev/null
@@ -1,4 +0,0 @@
-# Explicit document. Root
-# scalar (literal) node.
---- |
- Text content
diff --git a/tests3/data/spec-07-13.canonical b/tests3/data/spec-07-13.canonical
deleted file mode 100644
index 5af71e9..0000000
--- a/tests3/data/spec-07-13.canonical
+++ /dev/null
@@ -1,9 +0,0 @@
-%YAML 1.1
----
-!!str "First document"
----
-!<!foo> "No directives"
----
-!<!foobar> "With directives"
----
-!<!baz> "Reset settings"
diff --git a/tests3/data/spec-07-13.data b/tests3/data/spec-07-13.data
deleted file mode 100644
index ba7ec63..0000000
--- a/tests3/data/spec-07-13.data
+++ /dev/null
@@ -1,9 +0,0 @@
-! "First document"
----
-!foo "No directives"
-%TAG ! !foo
----
-!bar "With directives"
-%YAML 1.1
----
-!baz "Reset settings"
diff --git a/tests3/data/spec-08-01.canonical b/tests3/data/spec-08-01.canonical
deleted file mode 100644
index 69e4161..0000000
--- a/tests3/data/spec-08-01.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? &A1 !!str "foo"
-  : !!str "bar",
-  ? &A2 !!str "baz"
-  : *A1
-}
diff --git a/tests3/data/spec-08-01.data b/tests3/data/spec-08-01.data
deleted file mode 100644
index 48986ec..0000000
--- a/tests3/data/spec-08-01.data
+++ /dev/null
@@ -1,2 +0,0 @@
-!!str &a1 "foo" : !!str bar
-&a2 baz : *a1
diff --git a/tests3/data/spec-08-02.canonical b/tests3/data/spec-08-02.canonical
deleted file mode 100644
index dd6f76e..0000000
--- a/tests3/data/spec-08-02.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "First occurrence"
-  : &A !!str "Value",
-  ? !!str "Second occurrence"
-  : *A
-}
diff --git a/tests3/data/spec-08-02.data b/tests3/data/spec-08-02.data
deleted file mode 100644
index 600d179..0000000
--- a/tests3/data/spec-08-02.data
+++ /dev/null
@@ -1,2 +0,0 @@
-First occurrence: &anchor Value
-Second occurrence: *anchor
diff --git a/tests3/data/spec-08-03.canonical b/tests3/data/spec-08-03.canonical
deleted file mode 100644
index be7ea8f..0000000
--- a/tests3/data/spec-08-03.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !<tag:yaml.org,2002:str> "foo"
-  : !<!bar> "baz"
-}
diff --git a/tests3/data/spec-08-03.data b/tests3/data/spec-08-03.data
deleted file mode 100644
index 8e51f52..0000000
--- a/tests3/data/spec-08-03.data
+++ /dev/null
@@ -1,2 +0,0 @@
-!<tag:yaml.org,2002:str> foo :
-  !<!bar> baz
diff --git a/tests3/data/spec-08-04.data b/tests3/data/spec-08-04.data
deleted file mode 100644
index f7d1b01..0000000
--- a/tests3/data/spec-08-04.data
+++ /dev/null
@@ -1,2 +0,0 @@
-- !<!> foo
-- !<$:?> bar
diff --git a/tests3/data/spec-08-04.error b/tests3/data/spec-08-04.error
deleted file mode 100644
index 6066375..0000000
--- a/tests3/data/spec-08-04.error
+++ /dev/null
@@ -1,6 +0,0 @@
-ERROR:
-- Verbatim tags aren't resolved,
-  so ! is invalid.
-- The $:? tag is neither a global
-  URI tag nor a local tag starting
-  with “!”.
diff --git a/tests3/data/spec-08-05.canonical b/tests3/data/spec-08-05.canonical
deleted file mode 100644
index a5c710a..0000000
--- a/tests3/data/spec-08-05.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !<!local> "foo",
-  !<tag:yaml.org,2002:str> "bar",
-  !<tag:ben-kiki.org,2000:type> "baz",
-]
diff --git a/tests3/data/spec-08-05.data b/tests3/data/spec-08-05.data
deleted file mode 100644
index 93576ed..0000000
--- a/tests3/data/spec-08-05.data
+++ /dev/null
@@ -1,5 +0,0 @@
-%TAG !o! tag:ben-kiki.org,2000:
----
-- !local foo
-- !!str bar
-- !o!type baz
diff --git a/tests3/data/spec-08-06.data b/tests3/data/spec-08-06.data
deleted file mode 100644
index 8580010..0000000
--- a/tests3/data/spec-08-06.data
+++ /dev/null
@@ -1,5 +0,0 @@
-%TAG !o! tag:ben-kiki.org,2000:
----
-- !$a!b foo
-- !o! bar
-- !h!type baz
diff --git a/tests3/data/spec-08-06.error b/tests3/data/spec-08-06.error
deleted file mode 100644
index fb76f42..0000000
--- a/tests3/data/spec-08-06.error
+++ /dev/null
@@ -1,4 +0,0 @@
-ERROR:
-- The !$a! looks like a handle.
-- The !o! handle has no suffix.
-- The !h! handle wasn't declared.
diff --git a/tests3/data/spec-08-07.canonical b/tests3/data/spec-08-07.canonical
deleted file mode 100644
index e2f43d9..0000000
--- a/tests3/data/spec-08-07.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !<tag:yaml.org,2002:str> "12",
-  !<tag:yaml.org,2002:int> "12",
-#  !<tag:yaml.org,2002:str> "12",
-  !<tag:yaml.org,2002:int> "12",
-]
diff --git a/tests3/data/spec-08-07.data b/tests3/data/spec-08-07.data
deleted file mode 100644
index 98aa565..0000000
--- a/tests3/data/spec-08-07.data
+++ /dev/null
@@ -1,4 +0,0 @@
-# Assuming conventional resolution:
-- "12"
-- 12
-- ! 12
diff --git a/tests3/data/spec-08-08.canonical b/tests3/data/spec-08-08.canonical
deleted file mode 100644
index d3f8b1a..0000000
--- a/tests3/data/spec-08-08.canonical
+++ /dev/null
@@ -1,15 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "foo"
-  : !!str "bar baz"
-}
-%YAML 1.1
----
-!!str "foo bar"
-%YAML 1.1
----
-!!str "foo bar"
-%YAML 1.1
----
-!!str "foo\n"
diff --git a/tests3/data/spec-08-08.data b/tests3/data/spec-08-08.data
deleted file mode 100644
index 757a93d..0000000
--- a/tests3/data/spec-08-08.data
+++ /dev/null
@@ -1,13 +0,0 @@
----
-foo:
- "bar
- baz"
----
-"foo
- bar"
----
-foo
- bar
---- |
- foo
-...
diff --git a/tests3/data/spec-08-09.canonical b/tests3/data/spec-08-09.canonical
deleted file mode 100644
index 3805daf..0000000
--- a/tests3/data/spec-08-09.canonical
+++ /dev/null
@@ -1,21 +0,0 @@
-%YAML 1.1
---- !!map {
-  ? !!str "scalars" : !!map {
-      ? !!str "plain"
-      : !!str "some text",
-      ? !!str "quoted"
-      : !!map {
-        ? !!str "single"
-        : !!str "some text",
-        ? !!str "double"
-        : !!str "some text"
-  } },
-  ? !!str "collections" : !!map {
-    ? !!str "sequence" : !!seq [
-      !!str "entry",
-      !!map {
-        ? !!str "key" : !!str "value"
-    } ],
-    ? !!str "mapping" : !!map {
-      ? !!str "key" : !!str "value"
-} } }
diff --git a/tests3/data/spec-08-09.data b/tests3/data/spec-08-09.data
deleted file mode 100644
index 69da042..0000000
--- a/tests3/data/spec-08-09.data
+++ /dev/null
@@ -1,11 +0,0 @@
----
-scalars:
-  plain: !!str some text
-  quoted:
-    single: 'some text'
-    double: "some text"
-collections:
-  sequence: !!seq [ !!str entry,
-    # Mapping entry:
-      key: value ]
-  mapping: { key: value }
diff --git a/tests3/data/spec-08-10.canonical b/tests3/data/spec-08-10.canonical
deleted file mode 100644
index 8281c5e..0000000
--- a/tests3/data/spec-08-10.canonical
+++ /dev/null
@@ -1,23 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "block styles" : !!map {
-    ? !!str "scalars" : !!map {
-      ? !!str "literal"
-      : !!str "#!/usr/bin/perl\n\
-          print \"Hello,
-          world!\\n\";\n",
-      ? !!str "folded"
-      : !!str "This sentence
-          is false.\n"
-    },
-    ? !!str "collections" : !!map {
-      ? !!str "sequence" : !!seq [
-        !!str "entry",
-        !!map {
-          ? !!str "key" : !!str "value"
-        }
-      ],
-      ? !!str "mapping" : !!map {
-        ? !!str "key" : !!str "value"
-} } } }
diff --git a/tests3/data/spec-08-10.data b/tests3/data/spec-08-10.data
deleted file mode 100644
index 72acc56..0000000
--- a/tests3/data/spec-08-10.data
+++ /dev/null
@@ -1,15 +0,0 @@
-block styles:
-  scalars:
-    literal: !!str |
-      #!/usr/bin/perl
-      print "Hello, world!\n";
-    folded: >
-      This sentence
-      is false.
-  collections: !!map
-    sequence: !!seq # Entry:
-      - entry # Plain
-      # Mapping entry:
-      - key: value
-    mapping: 
-      key: value
diff --git a/tests3/data/spec-08-11.canonical b/tests3/data/spec-08-11.canonical
deleted file mode 100644
index dd6f76e..0000000
--- a/tests3/data/spec-08-11.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "First occurrence"
-  : &A !!str "Value",
-  ? !!str "Second occurrence"
-  : *A
-}
diff --git a/tests3/data/spec-08-11.data b/tests3/data/spec-08-11.data
deleted file mode 100644
index 600d179..0000000
--- a/tests3/data/spec-08-11.data
+++ /dev/null
@@ -1,2 +0,0 @@
-First occurrence: &anchor Value
-Second occurrence: *anchor
diff --git a/tests3/data/spec-08-12.canonical b/tests3/data/spec-08-12.canonical
deleted file mode 100644
index 93899f4..0000000
--- a/tests3/data/spec-08-12.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "Without properties",
-  &A !!str "Anchored",
-  !!str "Tagged",
-  *A,
-  !!str "",
-  !!str "",
-]
diff --git a/tests3/data/spec-08-12.data b/tests3/data/spec-08-12.data
deleted file mode 100644
index 3d4c6b7..0000000
--- a/tests3/data/spec-08-12.data
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-  Without properties,
-  &anchor "Anchored",
-  !!str 'Tagged',
-  *anchor, # Alias node
-  !!str ,  # Empty plain scalar
-  '',   # Empty plain scalar
-]
diff --git a/tests3/data/spec-08-13.canonical b/tests3/data/spec-08-13.canonical
deleted file mode 100644
index 618bb7b..0000000
--- a/tests3/data/spec-08-13.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "foo"
-#  : !!str "",
-#  ? !!str ""
-  : !!null "",
-  ? !!null ""
-  : !!str "bar",
-}
diff --git a/tests3/data/spec-08-13.data b/tests3/data/spec-08-13.data
deleted file mode 100644
index ebe663a..0000000
--- a/tests3/data/spec-08-13.data
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  ? foo :,
-  ? : bar,
-}
diff --git a/tests3/data/spec-08-13.skip-ext b/tests3/data/spec-08-13.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/spec-08-13.skip-ext
+++ /dev/null
diff --git a/tests3/data/spec-08-14.canonical b/tests3/data/spec-08-14.canonical
deleted file mode 100644
index 11db439..0000000
--- a/tests3/data/spec-08-14.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "flow in block",
-  !!str "Block scalar\n",
-  !!map {
-    ? !!str "foo"
-    : !!str "bar"
-  }
-]
diff --git a/tests3/data/spec-08-14.data b/tests3/data/spec-08-14.data
deleted file mode 100644
index 2fbb1f7..0000000
--- a/tests3/data/spec-08-14.data
+++ /dev/null
@@ -1,5 +0,0 @@
-- "flow in block"
-- >
- Block scalar
-- !!map # Block collection
-  foo : bar
diff --git a/tests3/data/spec-08-15.canonical b/tests3/data/spec-08-15.canonical
deleted file mode 100644
index 76f028e..0000000
--- a/tests3/data/spec-08-15.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!null "",
-  !!map {
-    ? !!str "foo"
-    : !!null "",
-    ? !!null ""
-    : !!str "bar",
-  }
-]
diff --git a/tests3/data/spec-08-15.data b/tests3/data/spec-08-15.data
deleted file mode 100644
index 7c86bcf..0000000
--- a/tests3/data/spec-08-15.data
+++ /dev/null
@@ -1,5 +0,0 @@
-- # Empty plain scalar
-- ? foo
-  :
-  ?
-  : bar
diff --git a/tests3/data/spec-09-01.canonical b/tests3/data/spec-09-01.canonical
deleted file mode 100644
index e71a548..0000000
--- a/tests3/data/spec-09-01.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "simple key"
-  : !!map {
-    ? !!str "also simple"
-    : !!str "value",
-    ? !!str "not a simple key"
-    : !!str "any value"
-  }
-}
diff --git a/tests3/data/spec-09-01.data b/tests3/data/spec-09-01.data
deleted file mode 100644
index 9e83eaf..0000000
--- a/tests3/data/spec-09-01.data
+++ /dev/null
@@ -1,6 +0,0 @@
-"simple key" : {
-  "also simple" : value,
-  ? "not a
-  simple key" : "any
-  value"
-}
diff --git a/tests3/data/spec-09-02.canonical b/tests3/data/spec-09-02.canonical
deleted file mode 100644
index 6f8f41a..0000000
--- a/tests3/data/spec-09-02.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!str "as space \
-  trimmed\n\
-  specific\L\n\
-  escaped\t\n\
-  none"
diff --git a/tests3/data/spec-09-02.data b/tests3/data/spec-09-02.data
deleted file mode 100644
index d84883d..0000000
--- a/tests3/data/spec-09-02.data
+++ /dev/null
@@ -1,6 +0,0 @@
- "as space	
- trimmed 
-
- specific

- escaped	\
 
- none"
diff --git a/tests3/data/spec-09-03.canonical b/tests3/data/spec-09-03.canonical
deleted file mode 100644
index 658c6df..0000000
--- a/tests3/data/spec-09-03.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str " last",
-  !!str " last",
-  !!str " \tfirst last",
-]
diff --git a/tests3/data/spec-09-03.data b/tests3/data/spec-09-03.data
deleted file mode 100644
index e0b914d..0000000
--- a/tests3/data/spec-09-03.data
+++ /dev/null
@@ -1,6 +0,0 @@
-- "
-  last"
-- " 	
-  last"
-- " 	first
-  last"
diff --git a/tests3/data/spec-09-04.canonical b/tests3/data/spec-09-04.canonical
deleted file mode 100644
index fa46632..0000000
--- a/tests3/data/spec-09-04.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!str "first \
-  inner 1  \
-  inner 2 \
-  last"
diff --git a/tests3/data/spec-09-04.data b/tests3/data/spec-09-04.data
deleted file mode 100644
index 313a91b..0000000
--- a/tests3/data/spec-09-04.data
+++ /dev/null
@@ -1,4 +0,0 @@
- "first
- 	inner 1	
- \ inner 2 \
- last"
diff --git a/tests3/data/spec-09-05.canonical b/tests3/data/spec-09-05.canonical
deleted file mode 100644
index 24d1052..0000000
--- a/tests3/data/spec-09-05.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "first ",
-  !!str "first\nlast",
-  !!str "first inner  \tlast",
-]
diff --git a/tests3/data/spec-09-05.data b/tests3/data/spec-09-05.data
deleted file mode 100644
index 624c30e..0000000
--- a/tests3/data/spec-09-05.data
+++ /dev/null
@@ -1,8 +0,0 @@
-- "first
-  	"
-- "first
-
-  	last"
-- "first
- inner
- \ 	last"
diff --git a/tests3/data/spec-09-06.canonical b/tests3/data/spec-09-06.canonical
deleted file mode 100644
index 5028772..0000000
--- a/tests3/data/spec-09-06.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "here's to \"quotes\""
diff --git a/tests3/data/spec-09-06.data b/tests3/data/spec-09-06.data
deleted file mode 100644
index b038078..0000000
--- a/tests3/data/spec-09-06.data
+++ /dev/null
@@ -1 +0,0 @@
- 'here''s to "quotes"'
diff --git a/tests3/data/spec-09-07.canonical b/tests3/data/spec-09-07.canonical
deleted file mode 100644
index e71a548..0000000
--- a/tests3/data/spec-09-07.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "simple key"
-  : !!map {
-    ? !!str "also simple"
-    : !!str "value",
-    ? !!str "not a simple key"
-    : !!str "any value"
-  }
-}
diff --git a/tests3/data/spec-09-07.data b/tests3/data/spec-09-07.data
deleted file mode 100644
index 755b54a..0000000
--- a/tests3/data/spec-09-07.data
+++ /dev/null
@@ -1,6 +0,0 @@
-'simple key' : {
-  'also simple' : value,
-  ? 'not a
-  simple key' : 'any
-  value'
-}
diff --git a/tests3/data/spec-09-08.canonical b/tests3/data/spec-09-08.canonical
deleted file mode 100644
index 06abdb5..0000000
--- a/tests3/data/spec-09-08.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!str "as space \
-  trimmed\n\
-  specific\L\n\
-  none"
diff --git a/tests3/data/spec-09-08.data b/tests3/data/spec-09-08.data
deleted file mode 100644
index aa4d458..0000000
--- a/tests3/data/spec-09-08.data
+++ /dev/null
@@ -1 +0,0 @@
- 'as space	… trimmed …… specific
… none'
diff --git a/tests3/data/spec-09-09.canonical b/tests3/data/spec-09-09.canonical
deleted file mode 100644
index 658c6df..0000000
--- a/tests3/data/spec-09-09.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str " last",
-  !!str " last",
-  !!str " \tfirst last",
-]
diff --git a/tests3/data/spec-09-09.data b/tests3/data/spec-09-09.data
deleted file mode 100644
index 52171df..0000000
--- a/tests3/data/spec-09-09.data
+++ /dev/null
@@ -1,6 +0,0 @@
-- '
-  last'
-- ' 	
-  last'
-- ' 	first
-  last'
diff --git a/tests3/data/spec-09-10.canonical b/tests3/data/spec-09-10.canonical
deleted file mode 100644
index 2028d04..0000000
--- a/tests3/data/spec-09-10.canonical
+++ /dev/null
@@ -1,5 +0,0 @@
-%YAML 1.1
----
-!!str "first \
-  inner \
-  last"
diff --git a/tests3/data/spec-09-10.data b/tests3/data/spec-09-10.data
deleted file mode 100644
index 0e41449..0000000
--- a/tests3/data/spec-09-10.data
+++ /dev/null
@@ -1,3 +0,0 @@
- 'first
- 	inner	
- last'
diff --git a/tests3/data/spec-09-11.canonical b/tests3/data/spec-09-11.canonical
deleted file mode 100644
index 4eb222c..0000000
--- a/tests3/data/spec-09-11.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "first ",
-  !!str "first\nlast",
-]
diff --git a/tests3/data/spec-09-11.data b/tests3/data/spec-09-11.data
deleted file mode 100644
index 5efa873..0000000
--- a/tests3/data/spec-09-11.data
+++ /dev/null
@@ -1,5 +0,0 @@
-- 'first
-  	'
-- 'first
-
-  	last'
diff --git a/tests3/data/spec-09-12.canonical b/tests3/data/spec-09-12.canonical
deleted file mode 100644
index d8e6dce..0000000
--- a/tests3/data/spec-09-12.canonical
+++ /dev/null
@@ -1,12 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "::std::vector",
-  !!str "Up, up, and away!",
-  !!int "-123",
-  !!seq [
-    !!str "::std::vector",
-    !!str "Up, up, and away!",
-    !!int "-123",
-  ]
-]
diff --git a/tests3/data/spec-09-12.data b/tests3/data/spec-09-12.data
deleted file mode 100644
index b9a3ac5..0000000
--- a/tests3/data/spec-09-12.data
+++ /dev/null
@@ -1,8 +0,0 @@
-# Outside flow collection:
-- ::std::vector
-- Up, up, and away!
-- -123
-# Inside flow collection:
-- [ '::std::vector',
-  "Up, up, and away!",
-  -123 ]
diff --git a/tests3/data/spec-09-13.canonical b/tests3/data/spec-09-13.canonical
deleted file mode 100644
index e71a548..0000000
--- a/tests3/data/spec-09-13.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "simple key"
-  : !!map {
-    ? !!str "also simple"
-    : !!str "value",
-    ? !!str "not a simple key"
-    : !!str "any value"
-  }
-}
diff --git a/tests3/data/spec-09-13.data b/tests3/data/spec-09-13.data
deleted file mode 100644
index b156386..0000000
--- a/tests3/data/spec-09-13.data
+++ /dev/null
@@ -1,6 +0,0 @@
-simple key : {
-  also simple : value,
-  ? not a
-  simple key : any
-  value
-}
diff --git a/tests3/data/spec-09-14.data b/tests3/data/spec-09-14.data
deleted file mode 100644
index 97f2316..0000000
--- a/tests3/data/spec-09-14.data
+++ /dev/null
@@ -1,14 +0,0 @@
----
---- ||| : foo
-... >>>: bar
----
-[
----
-,
-... ,
-{
---- :
-... # Nested
-}
-]
-...
diff --git a/tests3/data/spec-09-14.error b/tests3/data/spec-09-14.error
deleted file mode 100644
index 9f3db7b..0000000
--- a/tests3/data/spec-09-14.error
+++ /dev/null
@@ -1,6 +0,0 @@
-ERROR:
- The --- and ... document
- start and end markers must
- not be specified as the
- first content line of a
- non-indented plain scalar.
diff --git a/tests3/data/spec-09-15.canonical b/tests3/data/spec-09-15.canonical
deleted file mode 100644
index df02040..0000000
--- a/tests3/data/spec-09-15.canonical
+++ /dev/null
@@ -1,18 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "---"
-  : !!str "foo",
-  ? !!str "..."
-  : !!str "bar"
-}
-%YAML 1.1
----
-!!seq [
-  !!str "---",
-  !!str "...",
-  !!map {
-    ? !!str "---"
-    : !!str "..."
-  }
-]
diff --git a/tests3/data/spec-09-15.data b/tests3/data/spec-09-15.data
deleted file mode 100644
index e6863b0..0000000
--- a/tests3/data/spec-09-15.data
+++ /dev/null
@@ -1,13 +0,0 @@
----
-"---" : foo
-...: bar
----
-[
----,
-...,
-{
-? ---
-: ...
-}
-]
-...
diff --git a/tests3/data/spec-09-16.canonical b/tests3/data/spec-09-16.canonical
deleted file mode 100644
index 06abdb5..0000000
--- a/tests3/data/spec-09-16.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!str "as space \
-  trimmed\n\
-  specific\L\n\
-  none"
diff --git a/tests3/data/spec-09-16.data b/tests3/data/spec-09-16.data
deleted file mode 100644
index 473beb9..0000000
--- a/tests3/data/spec-09-16.data
+++ /dev/null
@@ -1,3 +0,0 @@
-# Tabs are confusing:
-# as space/trimmed/specific/none
- as space … trimmed …… specific
… none
diff --git a/tests3/data/spec-09-17.canonical b/tests3/data/spec-09-17.canonical
deleted file mode 100644
index 68cb70d..0000000
--- a/tests3/data/spec-09-17.canonical
+++ /dev/null
@@ -1,4 +0,0 @@
-%YAML 1.1
----
-!!str "first line\n\
-      more line"
diff --git a/tests3/data/spec-09-17.data b/tests3/data/spec-09-17.data
deleted file mode 100644
index 97bc46c..0000000
--- a/tests3/data/spec-09-17.data
+++ /dev/null
@@ -1,3 +0,0 @@
- first line 
-   
-  more line
diff --git a/tests3/data/spec-09-18.canonical b/tests3/data/spec-09-18.canonical
deleted file mode 100644
index f21428f..0000000
--- a/tests3/data/spec-09-18.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "literal\n",
-  !!str " folded\n",
-  !!str "keep\n\n",
-  !!str " strip",
-]
diff --git a/tests3/data/spec-09-18.data b/tests3/data/spec-09-18.data
deleted file mode 100644
index 68c5d7c..0000000
--- a/tests3/data/spec-09-18.data
+++ /dev/null
@@ -1,9 +0,0 @@
-- | # Just the style
- literal
-- >1 # Indentation indicator
-  folded
-- |+ # Chomping indicator
- keep
-
-- >-1 # Both indicators
-  strip
diff --git a/tests3/data/spec-09-19.canonical b/tests3/data/spec-09-19.canonical
deleted file mode 100644
index 3e828d7..0000000
--- a/tests3/data/spec-09-19.canonical
+++ /dev/null
@@ -1,6 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "literal\n",
-  !!str "folded\n",
-]
diff --git a/tests3/data/spec-09-19.data b/tests3/data/spec-09-19.data
deleted file mode 100644
index f0e589d..0000000
--- a/tests3/data/spec-09-19.data
+++ /dev/null
@@ -1,4 +0,0 @@
-- |
- literal
-- >
- folded
diff --git a/tests3/data/spec-09-20.canonical b/tests3/data/spec-09-20.canonical
deleted file mode 100644
index d03bef5..0000000
--- a/tests3/data/spec-09-20.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "detected\n",
-  !!str "\n\n# detected\n",
-  !!str " explicit\n",
-  !!str "\t\ndetected\n",
-]
diff --git a/tests3/data/spec-09-20.data b/tests3/data/spec-09-20.data
deleted file mode 100644
index 39bee04..0000000
--- a/tests3/data/spec-09-20.data
+++ /dev/null
@@ -1,11 +0,0 @@
-- |
- detected
-- >
- 
-  
-  # detected
-- |1
-  explicit
-- >
- 	
- detected
diff --git a/tests3/data/spec-09-20.skip-ext b/tests3/data/spec-09-20.skip-ext
deleted file mode 100644
index e69de29..0000000
--- a/tests3/data/spec-09-20.skip-ext
+++ /dev/null
diff --git a/tests3/data/spec-09-21.data b/tests3/data/spec-09-21.data
deleted file mode 100644
index 0fdd14f..0000000
--- a/tests3/data/spec-09-21.data
+++ /dev/null
@@ -1,8 +0,0 @@
-- |
-  
- text
-- >
-  text
- text
-- |1
- text
diff --git a/tests3/data/spec-09-21.error b/tests3/data/spec-09-21.error
deleted file mode 100644
index 1379ca5..0000000
--- a/tests3/data/spec-09-21.error
+++ /dev/null
@@ -1,7 +0,0 @@
-ERROR:
-- A leading all-space line must
-  not have too many spaces.
-- A following text line must
-  not be less indented.
-- The text is less indented
-  than the indicated level.
diff --git a/tests3/data/spec-09-22.canonical b/tests3/data/spec-09-22.canonical
deleted file mode 100644
index c1bbcd2..0000000
--- a/tests3/data/spec-09-22.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "strip"
-  : !!str "text",
-  ? !!str "clip"
-  : !!str "text\n",
-  ? !!str "keep"
-  : !!str "text\L",
-}
diff --git a/tests3/data/spec-09-22.data b/tests3/data/spec-09-22.data
deleted file mode 100644
index 0dd51eb..0000000
--- a/tests3/data/spec-09-22.data
+++ /dev/null
@@ -1,4 +0,0 @@
-strip: |-
-  text
clip: |
-  text…keep: |+
-  text

\ No newline at end of file
diff --git a/tests3/data/spec-09-23.canonical b/tests3/data/spec-09-23.canonical
deleted file mode 100644
index c4444ca..0000000
--- a/tests3/data/spec-09-23.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "strip"
-  : !!str "# text",
-  ? !!str "clip"
-  : !!str "# text\n",
-  ? !!str "keep"
-  : !!str "# text\L\n",
-}
diff --git a/tests3/data/spec-09-23.data b/tests3/data/spec-09-23.data
deleted file mode 100644
index 8972d2b..0000000
--- a/tests3/data/spec-09-23.data
+++ /dev/null
@@ -1,11 +0,0 @@
- # Strip
-  # Comments:
-strip: |-
-  # text
  
 # Clip
-  # comments:
-…clip: |
-  # text… 
 # Keep
-  # comments:
-…keep: |+
-  # text
… # Trail
-  # comments.
diff --git a/tests3/data/spec-09-24.canonical b/tests3/data/spec-09-24.canonical
deleted file mode 100644
index 45a99b0..0000000
--- a/tests3/data/spec-09-24.canonical
+++ /dev/null
@@ -1,10 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "strip"
-  : !!str "",
-  ? !!str "clip"
-  : !!str "",
-  ? !!str "keep"
-  : !!str "\n",
-}
diff --git a/tests3/data/spec-09-24.data b/tests3/data/spec-09-24.data
deleted file mode 100644
index de0b64b..0000000
--- a/tests3/data/spec-09-24.data
+++ /dev/null
@@ -1,6 +0,0 @@
-strip: >-
-
-clip: >
-
-keep: |+
-
diff --git a/tests3/data/spec-09-25.canonical b/tests3/data/spec-09-25.canonical
deleted file mode 100644
index 9d2327b..0000000
--- a/tests3/data/spec-09-25.canonical
+++ /dev/null
@@ -1,4 +0,0 @@
-%YAML 1.1
----
-!!str "literal\n\
-      \ttext\n"
diff --git a/tests3/data/spec-09-25.data b/tests3/data/spec-09-25.data
deleted file mode 100644
index f6303a1..0000000
--- a/tests3/data/spec-09-25.data
+++ /dev/null
@@ -1,3 +0,0 @@
-| # Simple block scalar
- literal
- 	text
diff --git a/tests3/data/spec-09-26.canonical b/tests3/data/spec-09-26.canonical
deleted file mode 100644
index 3029a11..0000000
--- a/tests3/data/spec-09-26.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "\n\nliteral\n\ntext\n"
diff --git a/tests3/data/spec-09-26.data b/tests3/data/spec-09-26.data
deleted file mode 100644
index f28555a..0000000
--- a/tests3/data/spec-09-26.data
+++ /dev/null
@@ -1,8 +0,0 @@
-|
- 
-  
-  literal
- 
-  text
-
- # Comment
diff --git a/tests3/data/spec-09-27.canonical b/tests3/data/spec-09-27.canonical
deleted file mode 100644
index 3029a11..0000000
--- a/tests3/data/spec-09-27.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "\n\nliteral\n\ntext\n"
diff --git a/tests3/data/spec-09-27.data b/tests3/data/spec-09-27.data
deleted file mode 100644
index f28555a..0000000
--- a/tests3/data/spec-09-27.data
+++ /dev/null
@@ -1,8 +0,0 @@
-|
- 
-  
-  literal
- 
-  text
-
- # Comment
diff --git a/tests3/data/spec-09-28.canonical b/tests3/data/spec-09-28.canonical
deleted file mode 100644
index 3029a11..0000000
--- a/tests3/data/spec-09-28.canonical
+++ /dev/null
@@ -1,3 +0,0 @@
-%YAML 1.1
----
-!!str "\n\nliteral\n\ntext\n"
diff --git a/tests3/data/spec-09-28.data b/tests3/data/spec-09-28.data
deleted file mode 100644
index f28555a..0000000
--- a/tests3/data/spec-09-28.data
+++ /dev/null
@@ -1,8 +0,0 @@
-|
- 
-  
-  literal
- 
-  text
-
- # Comment
diff --git a/tests3/data/spec-09-29.canonical b/tests3/data/spec-09-29.canonical
deleted file mode 100644
index 0980789..0000000
--- a/tests3/data/spec-09-29.canonical
+++ /dev/null
@@ -1,4 +0,0 @@
-%YAML 1.1
----
-!!str "folded text\n\
-      \tlines\n"
diff --git a/tests3/data/spec-09-29.data b/tests3/data/spec-09-29.data
deleted file mode 100644
index 82e611f..0000000
--- a/tests3/data/spec-09-29.data
+++ /dev/null
@@ -1,4 +0,0 @@
-> # Simple folded scalar
- folded
- text
- 	lines
diff --git a/tests3/data/spec-09-30.canonical b/tests3/data/spec-09-30.canonical
deleted file mode 100644
index fc37db1..0000000
--- a/tests3/data/spec-09-30.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!str "folded line\n\
-      next line\n\n\
-      \  * bullet\n\
-      \  * list\n\n\
-      last line\n"
diff --git a/tests3/data/spec-09-30.data b/tests3/data/spec-09-30.data
deleted file mode 100644
index a4d8c36..0000000
--- a/tests3/data/spec-09-30.data
+++ /dev/null
@@ -1,14 +0,0 @@
->
- folded
- line
-
- next
- line
-
-   * bullet
-   * list
-
- last
- line
-
-# Comment
diff --git a/tests3/data/spec-09-31.canonical b/tests3/data/spec-09-31.canonical
deleted file mode 100644
index fc37db1..0000000
--- a/tests3/data/spec-09-31.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!str "folded line\n\
-      next line\n\n\
-      \  * bullet\n\
-      \  * list\n\n\
-      last line\n"
diff --git a/tests3/data/spec-09-31.data b/tests3/data/spec-09-31.data
deleted file mode 100644
index a4d8c36..0000000
--- a/tests3/data/spec-09-31.data
+++ /dev/null
@@ -1,14 +0,0 @@
->
- folded
- line
-
- next
- line
-
-   * bullet
-   * list
-
- last
- line
-
-# Comment
diff --git a/tests3/data/spec-09-32.canonical b/tests3/data/spec-09-32.canonical
deleted file mode 100644
index fc37db1..0000000
--- a/tests3/data/spec-09-32.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!str "folded line\n\
-      next line\n\n\
-      \  * bullet\n\
-      \  * list\n\n\
-      last line\n"
diff --git a/tests3/data/spec-09-32.data b/tests3/data/spec-09-32.data
deleted file mode 100644
index a4d8c36..0000000
--- a/tests3/data/spec-09-32.data
+++ /dev/null
@@ -1,14 +0,0 @@
->
- folded
- line
-
- next
- line
-
-   * bullet
-   * list
-
- last
- line
-
-# Comment
diff --git a/tests3/data/spec-09-33.canonical b/tests3/data/spec-09-33.canonical
deleted file mode 100644
index fc37db1..0000000
--- a/tests3/data/spec-09-33.canonical
+++ /dev/null
@@ -1,7 +0,0 @@
-%YAML 1.1
----
-!!str "folded line\n\
-      next line\n\n\
-      \  * bullet\n\
-      \  * list\n\n\
-      last line\n"
diff --git a/tests3/data/spec-09-33.data b/tests3/data/spec-09-33.data
deleted file mode 100644
index a4d8c36..0000000
--- a/tests3/data/spec-09-33.data
+++ /dev/null
@@ -1,14 +0,0 @@
->
- folded
- line
-
- next
- line
-
-   * bullet
-   * list
-
- last
- line
-
-# Comment
diff --git a/tests3/data/spec-10-01.canonical b/tests3/data/spec-10-01.canonical
deleted file mode 100644
index d08cdd4..0000000
--- a/tests3/data/spec-10-01.canonical
+++ /dev/null
@@ -1,12 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!seq [
-    !!str "inner",
-    !!str "inner",
-  ],
-  !!seq [
-    !!str "inner",
-    !!str "last",
-  ],
-]
diff --git a/tests3/data/spec-10-01.data b/tests3/data/spec-10-01.data
deleted file mode 100644
index e668d38..0000000
--- a/tests3/data/spec-10-01.data
+++ /dev/null
@@ -1,2 +0,0 @@
-- [ inner, inner, ]
-- [inner,last]
diff --git a/tests3/data/spec-10-02.canonical b/tests3/data/spec-10-02.canonical
deleted file mode 100644
index 82fe0d9..0000000
--- a/tests3/data/spec-10-02.canonical
+++ /dev/null
@@ -1,14 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!str "double quoted",
-  !!str "single quoted",
-  !!str "plain text",
-  !!seq [
-    !!str "nested",
-  ],
-  !!map {
-    ? !!str "single"
-    : !!str "pair"
-  }
-]
diff --git a/tests3/data/spec-10-02.data b/tests3/data/spec-10-02.data
deleted file mode 100644
index 3b23351..0000000
--- a/tests3/data/spec-10-02.data
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-"double
- quoted", 'single
-           quoted',
-plain
- text, [ nested ],
-single: pair ,
-]
diff --git a/tests3/data/spec-10-03.canonical b/tests3/data/spec-10-03.canonical
deleted file mode 100644
index 1443395..0000000
--- a/tests3/data/spec-10-03.canonical
+++ /dev/null
@@ -1,12 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "block"
-  : !!seq [
-    !!str "one",
-    !!map {
-      ? !!str "two"
-      : !!str "three"
-    }
-  ]
-}
diff --git a/tests3/data/spec-10-03.data b/tests3/data/spec-10-03.data
deleted file mode 100644
index 9e15f83..0000000
--- a/tests3/data/spec-10-03.data
+++ /dev/null
@@ -1,4 +0,0 @@
-block: # Block
-       # sequence
-- one
-- two : three
diff --git a/tests3/data/spec-10-04.canonical b/tests3/data/spec-10-04.canonical
deleted file mode 100644
index ae486a3..0000000
--- a/tests3/data/spec-10-04.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "block"
-  : !!seq [
-    !!str "one",
-    !!seq [
-      !!str "two"
-    ]
-  ]
-}
diff --git a/tests3/data/spec-10-04.data b/tests3/data/spec-10-04.data
deleted file mode 100644
index 2905b0d..0000000
--- a/tests3/data/spec-10-04.data
+++ /dev/null
@@ -1,4 +0,0 @@
-block:
-- one
--
- - two
diff --git a/tests3/data/spec-10-05.canonical b/tests3/data/spec-10-05.canonical
deleted file mode 100644
index 07cc0c9..0000000
--- a/tests3/data/spec-10-05.canonical
+++ /dev/null
@@ -1,14 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!null "",
-  !!str "block node\n",
-  !!seq [
-    !!str "one",
-    !!str "two",
-  ],
-  !!map {
-    ? !!str "one"
-    : !!str "two",
-  }
-]
diff --git a/tests3/data/spec-10-05.data b/tests3/data/spec-10-05.data
deleted file mode 100644
index f19a99e..0000000
--- a/tests3/data/spec-10-05.data
+++ /dev/null
@@ -1,7 +0,0 @@
-- # Empty
-- |
- block node
-- - one # in-line
-  - two # sequence
-- one: two # in-line
-           # mapping
diff --git a/tests3/data/spec-10-06.canonical b/tests3/data/spec-10-06.canonical
deleted file mode 100644
index d9986c2..0000000
--- a/tests3/data/spec-10-06.canonical
+++ /dev/null
@@ -1,16 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!map {
-    ? !!str "inner"
-    : !!str "entry",
-    ? !!str "also"
-    : !!str "inner"
-  },
-  !!map {
-    ? !!str "inner"
-    : !!str "entry",
-    ? !!str "last"
-    : !!str "entry"
-  }
-]
diff --git a/tests3/data/spec-10-06.data b/tests3/data/spec-10-06.data
deleted file mode 100644
index 860ba25..0000000
--- a/tests3/data/spec-10-06.data
+++ /dev/null
@@ -1,2 +0,0 @@
-- { inner : entry , also: inner , }
-- {inner: entry,last : entry}
diff --git a/tests3/data/spec-10-07.canonical b/tests3/data/spec-10-07.canonical
deleted file mode 100644
index ec74230..0000000
--- a/tests3/data/spec-10-07.canonical
+++ /dev/null
@@ -1,16 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!null ""
-  : !!str "value",
-  ? !!str "explicit key"
-  : !!str "value",
-  ? !!str "simple key"
-  : !!str "value",
-  ? !!seq [
-    !!str "collection",
-    !!str "simple",
-    !!str "key"
-  ]
-  : !!str "value"
-}
diff --git a/tests3/data/spec-10-07.data b/tests3/data/spec-10-07.data
deleted file mode 100644
index ff943fb..0000000
--- a/tests3/data/spec-10-07.data
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-? : value, # Empty key
-? explicit
- key: value,
-simple key : value,
-[ collection, simple, key ]: value
-}
diff --git a/tests3/data/spec-10-08.data b/tests3/data/spec-10-08.data
deleted file mode 100644
index 55bd788..0000000
--- a/tests3/data/spec-10-08.data
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-multi-line
- simple key : value,
-very long ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................(>1KB)................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... key: value
-}
diff --git a/tests3/data/spec-10-08.error b/tests3/data/spec-10-08.error
deleted file mode 100644
index 3979e1f..0000000
--- a/tests3/data/spec-10-08.error
+++ /dev/null
@@ -1,5 +0,0 @@
-ERROR:
-- A simple key is restricted
-  to only one line.
-- A simple key must not be
-  longer than 1024 characters.
diff --git a/tests3/data/spec-10-09.canonical b/tests3/data/spec-10-09.canonical
deleted file mode 100644
index 4d9827b..0000000
--- a/tests3/data/spec-10-09.canonical
+++ /dev/null
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "key"
-  : !!str "value",
-  ? !!str "empty"
-  : !!null "",
-}
diff --git a/tests3/data/spec-10-09.data b/tests3/data/spec-10-09.data
deleted file mode 100644
index 4d55e21..0000000
--- a/tests3/data/spec-10-09.data
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-key : value,
-empty: # empty value↓
-}
diff --git a/tests3/data/spec-10-10.canonical b/tests3/data/spec-10-10.canonical
deleted file mode 100644
index 016fb64..0000000
--- a/tests3/data/spec-10-10.canonical
+++ /dev/null
@@ -1,16 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "explicit key1"
-  : !!str "explicit value",
-  ? !!str "explicit key2"
-  : !!null "",
-  ? !!str "explicit key3"
-  : !!null "",
-  ? !!str "simple key1"
-  : !!str "explicit value",
-  ? !!str "simple key2"
-  : !!null "",
-  ? !!str "simple key3"
-  : !!null "",
-}
diff --git a/tests3/data/spec-10-10.data b/tests3/data/spec-10-10.data
deleted file mode 100644
index 0888b05..0000000
--- a/tests3/data/spec-10-10.data
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-? explicit key1 : explicit value,
-? explicit key2 : , # Explicit empty
-? explicit key3,     # Empty value
-simple key1 : explicit value,
-simple key2 : ,     # Explicit empty
-simple key3,         # Empty value
-}
diff --git a/tests3/data/spec-10-11.canonical b/tests3/data/spec-10-11.canonical
deleted file mode 100644
index 7309544..0000000
--- a/tests3/data/spec-10-11.canonical
+++ /dev/null
@@ -1,24 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!map {
-    ? !!str "explicit key1"
-    : !!str "explicit value",
-  },
-  !!map {
-    ? !!str "explicit key2"
-    : !!null "",
-  },
-  !!map {
-    ? !!str "explicit key3"
-    : !!null "",
-  },
-  !!map {
-    ? !!str "simple key1"
-    : !!str "explicit value",
-  },
-  !!map {
-    ? !!str "simple key2"
-    : !!null "",
-  },
-]
diff --git a/tests3/data/spec-10-11.data b/tests3/data/spec-10-11.data
deleted file mode 100644
index 9f05568..0000000
--- a/tests3/data/spec-10-11.data
+++ /dev/null
@@ -1,7 +0,0 @@
-[
-? explicit key1 : explicit value,
-? explicit key2 : , # Explicit empty
-? explicit key3,     # Implicit empty
-simple key1 : explicit value,
-simple key2 : ,     # Explicit empty
-]
diff --git a/tests3/data/spec-10-12.canonical b/tests3/data/spec-10-12.canonical
deleted file mode 100644
index a95dd40..0000000
--- a/tests3/data/spec-10-12.canonical
+++ /dev/null
@@ -1,9 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "block"
-  : !!map {
-    ? !!str "key"
-    : !!str "value"
-  }
-}
diff --git a/tests3/data/spec-10-12.data b/tests3/data/spec-10-12.data
deleted file mode 100644
index 5521443..0000000
--- a/tests3/data/spec-10-12.data
+++ /dev/null
@@ -1,3 +0,0 @@
-block: # Block
-    # mapping
- key: value
diff --git a/tests3/data/spec-10-13.canonical b/tests3/data/spec-10-13.canonical
deleted file mode 100644
index e183c50..0000000
--- a/tests3/data/spec-10-13.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "explicit key"
-  : !!null "",
-  ? !!str "block key\n"
-  : !!seq [
-    !!str "one",
-    !!str "two",
-  ]
-}
diff --git a/tests3/data/spec-10-13.data b/tests3/data/spec-10-13.data
deleted file mode 100644
index b5b97db..0000000
--- a/tests3/data/spec-10-13.data
+++ /dev/null
@@ -1,5 +0,0 @@
-? explicit key # implicit value
-? |
-  block key
-: - one # explicit in-line
-  - two # block value
diff --git a/tests3/data/spec-10-14.canonical b/tests3/data/spec-10-14.canonical
deleted file mode 100644
index e87c880..0000000
--- a/tests3/data/spec-10-14.canonical
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
----
-!!map {
-  ? !!str "plain key"
-  : !!null "",
-  ? !!str "quoted key"
-  : !!seq [
-    !!str "one",
-    !!str "two",
-  ]
-}
diff --git a/tests3/data/spec-10-14.data b/tests3/data/spec-10-14.data
deleted file mode 100644
index 7f5995c..0000000
--- a/tests3/data/spec-10-14.data
+++ /dev/null
@@ -1,4 +0,0 @@
-plain key: # empty value
-"quoted key":
-- one # explicit next-line
-- two # block value
diff --git a/tests3/data/spec-10-15.canonical b/tests3/data/spec-10-15.canonical
deleted file mode 100644
index 85fbbd0..0000000
--- a/tests3/data/spec-10-15.canonical
+++ /dev/null
@@ -1,18 +0,0 @@
-%YAML 1.1
----
-!!seq [
-  !!map {
-    ? !!str "sun"
-    : !!str "yellow"
-  },
-  !!map {
-    ? !!map {
-      ? !!str "earth"
-      : !!str "blue"
-    }
-    : !!map {
-      ? !!str "moon"
-      : !!str "white"
-    }
-  }
-]
diff --git a/tests3/data/spec-10-15.data b/tests3/data/spec-10-15.data
deleted file mode 100644
index d675cfd..0000000
--- a/tests3/data/spec-10-15.data
+++ /dev/null
@@ -1,3 +0,0 @@
-- sun: yellow
-- ? earth: blue
-  : moon: white
diff --git a/tests3/data/str.data b/tests3/data/str.data
deleted file mode 100644
index 7cbdb7c..0000000
--- a/tests3/data/str.data
+++ /dev/null
@@ -1 +0,0 @@
-- abcd
diff --git a/tests3/data/str.detect b/tests3/data/str.detect
deleted file mode 100644
index 7d5026f..0000000
--- a/tests3/data/str.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:str
diff --git a/tests3/data/tags.events b/tests3/data/tags.events
deleted file mode 100644
index bb93dce..0000000
--- a/tests3/data/tags.events
+++ /dev/null
@@ -1,12 +0,0 @@
-- !StreamStart
-- !DocumentStart
-- !SequenceStart
-- !Scalar { value: 'data' }
-#- !Scalar { tag: '!', value: 'data' }
-- !Scalar { tag: 'tag:yaml.org,2002:str', value: 'data' }
-- !Scalar { tag: '!myfunnytag', value: 'data' }
-- !Scalar { tag: '!my!ugly!tag', value: 'data' }
-- !Scalar { tag: 'tag:my.domain.org,2002:data!? #', value: 'data' }
-- !SequenceEnd
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/test_mark.marks b/tests3/data/test_mark.marks
deleted file mode 100644
index 7b08ee4..0000000
--- a/tests3/data/test_mark.marks
+++ /dev/null
@@ -1,38 +0,0 @@
----
-*The first line.
-The last line.
----
-The first*line.
-The last line.
----
-The first line.*
-The last line.
----
-The first line.
-*The last line.
----
-The first line.
-The last*line.
----
-The first line.
-The last line.*
----
-The first line.
-*The selected line.
-The last line.
----
-The first line.
-The selected*line.
-The last line.
----
-The first line.
-The selected line.*
-The last line.
----
-*The only line.
----
-The only*line.
----
-The only line.*
----
-Loooooooooooooooooooooooooooooooooooooooooooooong*Liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiine
diff --git a/tests3/data/timestamp-bugs.code b/tests3/data/timestamp-bugs.code
deleted file mode 100644
index b1d6e9c..0000000
--- a/tests3/data/timestamp-bugs.code
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-    datetime.datetime(2001, 12, 15, 3, 29, 43, 100000),
-    datetime.datetime(2001, 12, 14, 16, 29, 43, 100000),
-    datetime.datetime(2001, 12, 14, 21, 59, 43, 1010),
-    datetime.datetime(2001, 12, 14, 21, 59, 43, 0, FixedOffset(60, "+1")),
-    datetime.datetime(2001, 12, 14, 21, 59, 43, 0, FixedOffset(-90, "-1:30")),
-    datetime.datetime(2005, 7, 8, 17, 35, 4, 517600),
-]
diff --git a/tests3/data/timestamp-bugs.data b/tests3/data/timestamp-bugs.data
deleted file mode 100644
index 721d290..0000000
--- a/tests3/data/timestamp-bugs.data
+++ /dev/null
@@ -1,6 +0,0 @@
-- 2001-12-14 21:59:43.10 -5:30
-- 2001-12-14 21:59:43.10 +5:30
-- 2001-12-14 21:59:43.00101
-- 2001-12-14 21:59:43+1
-- 2001-12-14 21:59:43-1:30
-- 2005-07-08 17:35:04.517600
diff --git a/tests3/data/timestamp.data b/tests3/data/timestamp.data
deleted file mode 100644
index 7d214ce..0000000
--- a/tests3/data/timestamp.data
+++ /dev/null
@@ -1,5 +0,0 @@
-- 2001-12-15T02:59:43.1Z
-- 2001-12-14t21:59:43.10-05:00
-- 2001-12-14 21:59:43.10 -5
-- 2001-12-15 2:59:43.10
-- 2002-12-14
diff --git a/tests3/data/timestamp.detect b/tests3/data/timestamp.detect
deleted file mode 100644
index 2013936..0000000
--- a/tests3/data/timestamp.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:timestamp
diff --git a/tests3/data/unacceptable-key.loader-error b/tests3/data/unacceptable-key.loader-error
deleted file mode 100644
index d748e37..0000000
--- a/tests3/data/unacceptable-key.loader-error
+++ /dev/null
@@ -1,4 +0,0 @@
----
-? - foo
-  - bar
-: baz
diff --git a/tests3/data/unclosed-bracket.loader-error b/tests3/data/unclosed-bracket.loader-error
deleted file mode 100644
index 8c82077..0000000
--- a/tests3/data/unclosed-bracket.loader-error
+++ /dev/null
@@ -1,6 +0,0 @@
-test:
-    - [ foo: bar
-# comment the rest of the stream to let the scanner detect the problem.
-#    - baz
-#"we could have detected the unclosed bracket on the above line, but this would forbid such syntax as": {
-#}
diff --git a/tests3/data/unclosed-quoted-scalar.loader-error b/tests3/data/unclosed-quoted-scalar.loader-error
deleted file mode 100644
index 8537429..0000000
--- a/tests3/data/unclosed-quoted-scalar.loader-error
+++ /dev/null
@@ -1,2 +0,0 @@
-'foo
- bar
diff --git a/tests3/data/undefined-anchor.loader-error b/tests3/data/undefined-anchor.loader-error
deleted file mode 100644
index 9469103..0000000
--- a/tests3/data/undefined-anchor.loader-error
+++ /dev/null
@@ -1,3 +0,0 @@
-- foo
-- &bar baz
-- *bat
diff --git a/tests3/data/undefined-constructor.loader-error b/tests3/data/undefined-constructor.loader-error
deleted file mode 100644
index 9a37ccc..0000000
--- a/tests3/data/undefined-constructor.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !foo bar
diff --git a/tests3/data/undefined-tag-handle.loader-error b/tests3/data/undefined-tag-handle.loader-error
deleted file mode 100644
index 82ba335..0000000
--- a/tests3/data/undefined-tag-handle.loader-error
+++ /dev/null
@@ -1 +0,0 @@
---- !foo!bar    baz
diff --git a/tests3/data/unknown.dumper-error b/tests3/data/unknown.dumper-error
deleted file mode 100644
index 83204d2..0000000
--- a/tests3/data/unknown.dumper-error
+++ /dev/null
@@ -1 +0,0 @@
-yaml.safe_dump(object)
diff --git a/tests3/data/unsupported-version.emitter-error b/tests3/data/unsupported-version.emitter-error
deleted file mode 100644
index f9c6197..0000000
--- a/tests3/data/unsupported-version.emitter-error
+++ /dev/null
@@ -1,5 +0,0 @@
-- !StreamStart
-- !DocumentStart { version: [5,6] }
-- !Scalar { value: foo }
-- !DocumentEnd
-- !StreamEnd
diff --git a/tests3/data/value.data b/tests3/data/value.data
deleted file mode 100644
index c5b7680..0000000
--- a/tests3/data/value.data
+++ /dev/null
@@ -1 +0,0 @@
-- =
diff --git a/tests3/data/value.detect b/tests3/data/value.detect
deleted file mode 100644
index 7c37d02..0000000
--- a/tests3/data/value.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:value
diff --git a/tests3/data/yaml.data b/tests3/data/yaml.data
deleted file mode 100644
index a4bb3f8..0000000
--- a/tests3/data/yaml.data
+++ /dev/null
@@ -1,3 +0,0 @@
-- !!yaml '!'
-- !!yaml '&'
-- !!yaml '*'
diff --git a/tests3/data/yaml.detect b/tests3/data/yaml.detect
deleted file mode 100644
index e2cf189..0000000
--- a/tests3/data/yaml.detect
+++ /dev/null
@@ -1 +0,0 @@
-tag:yaml.org,2002:yaml
diff --git a/tests3/test_all.py b/tests3/test_all.py
deleted file mode 100644
index fec4ae4..0000000
--- a/tests3/test_all.py
+++ /dev/null
@@ -1,15 +0,0 @@
-
-import sys, yaml, test_appliance
-
-def main(args=None):
-    collections = []
-    import test_yaml
-    collections.append(test_yaml)
-    if yaml.__with_libyaml__:
-        import test_yaml_ext
-        collections.append(test_yaml_ext)
-    test_appliance.run(collections, args)
-
-if __name__ == '__main__':
-    main()
-
diff --git a/tests3/test_appliance.py b/tests3/test_appliance.py
deleted file mode 100644
index e24a831..0000000
--- a/tests3/test_appliance.py
+++ /dev/null
@@ -1,143 +0,0 @@
-
-import sys, os, os.path, types, traceback, pprint
-
-DATA = 'tests3/data'
-
-def find_test_functions(collections):
-    if not isinstance(collections, list):
-        collections = [collections]
-    functions = []
-    for collection in collections:
-        if not isinstance(collection, dict):
-            collection = vars(collection)
-        for key in sorted(collection):
-            value = collection[key]
-            if isinstance(value, types.FunctionType) and hasattr(value, 'unittest'):
-                functions.append(value)
-    return functions
-
-def find_test_filenames(directory):
-    filenames = {}
-    for filename in os.listdir(directory):
-        if os.path.isfile(os.path.join(directory, filename)):
-            base, ext = os.path.splitext(filename)
-            filenames.setdefault(base, []).append(ext)
-    filenames = sorted(filenames.items())
-    return filenames
-
-def parse_arguments(args):
-    if args is None:
-        args = sys.argv[1:]
-    verbose = False
-    if '-v' in args:
-        verbose = True
-        args.remove('-v')
-    if '--verbose' in args:
-        verbose = True
-    if 'YAML_TEST_VERBOSE' in os.environ:
-        verbose = True
-    include_functions = []
-    if args:
-        include_functions.append(args.pop(0))
-    if 'YAML_TEST_FUNCTIONS' in os.environ:
-        include_functions.extend(os.environ['YAML_TEST_FUNCTIONS'].split())
-    include_filenames = []
-    include_filenames.extend(args)
-    if 'YAML_TEST_FILENAMES' in os.environ:
-        include_filenames.extend(os.environ['YAML_TEST_FILENAMES'].split())
-    return include_functions, include_filenames, verbose
-
-def execute(function, filenames, verbose):
-    name = function.__name__
-    if verbose:
-        sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s)...\n' % (name, ', '.join(filenames)))
-    try:
-        function(verbose=verbose, *filenames)
-    except Exception as exc:
-        info = sys.exc_info()
-        if isinstance(exc, AssertionError):
-            kind = 'FAILURE'
-        else:
-            kind = 'ERROR'
-        if verbose:
-            traceback.print_exc(limit=1, file=sys.stdout)
-        else:
-            sys.stdout.write(kind[0])
-            sys.stdout.flush()
-    else:
-        kind = 'SUCCESS'
-        info = None
-        if not verbose:
-            sys.stdout.write('.')
-    sys.stdout.flush()
-    return (name, filenames, kind, info)
-
-def display(results, verbose):
-    if results and not verbose:
-        sys.stdout.write('\n')
-    total = len(results)
-    failures = 0
-    errors = 0
-    for name, filenames, kind, info in results:
-        if kind == 'SUCCESS':
-            continue
-        if kind == 'FAILURE':
-            failures += 1
-        if kind == 'ERROR':
-            errors += 1
-        sys.stdout.write('='*75+'\n')
-        sys.stdout.write('%s(%s): %s\n' % (name, ', '.join(filenames), kind))
-        if kind == 'ERROR':
-            traceback.print_exception(file=sys.stdout, *info)
-        else:
-            sys.stdout.write('Traceback (most recent call last):\n')
-            traceback.print_tb(info[2], file=sys.stdout)
-            sys.stdout.write('%s: see below\n' % info[0].__name__)
-            sys.stdout.write('~'*75+'\n')
-            for arg in info[1].args:
-                pprint.pprint(arg, stream=sys.stdout)
-        for filename in filenames:
-            sys.stdout.write('-'*75+'\n')
-            sys.stdout.write('%s:\n' % filename)
-            data = open(filename, 'r', errors='replace').read()
-            sys.stdout.write(data)
-            if data and data[-1] != '\n':
-                sys.stdout.write('\n')
-    sys.stdout.write('='*75+'\n')
-    sys.stdout.write('TESTS: %s\n' % total)
-    if failures:
-        sys.stdout.write('FAILURES: %s\n' % failures)
-    if errors:
-        sys.stdout.write('ERRORS: %s\n' % errors)
-
-def run(collections, args=None):
-    test_functions = find_test_functions(collections)
-    test_filenames = find_test_filenames(DATA)
-    include_functions, include_filenames, verbose = parse_arguments(args)
-    results = []
-    for function in test_functions:
-        if include_functions and function.__name__ not in include_functions:
-            continue
-        if function.unittest:
-            for base, exts in test_filenames:
-                if include_filenames and base not in include_filenames:
-                    continue
-                filenames = []
-                for ext in function.unittest:
-                    if ext not in exts:
-                        break
-                    filenames.append(os.path.join(DATA, base+ext))
-                else:
-                    skip_exts = getattr(function, 'skip', [])
-                    for skip_ext in skip_exts:
-                        if skip_ext in exts:
-                            break
-                    else:
-                        result = execute(function, filenames, verbose)
-                        results.append(result)
-        else:
-            result = execute(function, [], verbose)
-            results.append(result)
-    display(results, verbose=verbose)
-
diff --git a/tests3/test_build.py b/tests3/test_build.py
deleted file mode 100644
index 901e8ed..0000000
--- a/tests3/test_build.py
+++ /dev/null
@@ -1,10 +0,0 @@
-
-if __name__ == '__main__':
-    import sys, os, distutils.util
-    build_lib = 'build/lib'
-    build_lib_ext = os.path.join('build', 'lib.%s-%s' % (distutils.util.get_platform(), sys.version[0:3]))
-    sys.path.insert(0, build_lib)
-    sys.path.insert(0, build_lib_ext)
-    import test_yaml, test_appliance
-    test_appliance.run(test_yaml)
-
diff --git a/tests3/test_build_ext.py b/tests3/test_build_ext.py
deleted file mode 100644
index ff195d5..0000000
--- a/tests3/test_build_ext.py
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-if __name__ == '__main__':
-    import sys, os, distutils.util
-    build_lib = 'build/lib'
-    build_lib_ext = os.path.join('build', 'lib.%s-%s' % (distutils.util.get_platform(), sys.version[0:3]))
-    sys.path.insert(0, build_lib)
-    sys.path.insert(0, build_lib_ext)
-    import test_yaml_ext, test_appliance
-    test_appliance.run(test_yaml_ext)
-
diff --git a/tests3/test_constructor.py b/tests3/test_constructor.py
deleted file mode 100644
index c632b4f..0000000
--- a/tests3/test_constructor.py
+++ /dev/null
@@ -1,253 +0,0 @@
-
-import yaml
-import pprint
-
-import datetime
-import yaml.tokens
-
-def execute(code):
-    global value
-    exec(code)
-    return value
-
-def _make_objects():
-    global MyLoader, MyDumper, MyTestClass1, MyTestClass2, MyTestClass3, YAMLObject1, YAMLObject2,  \
-            AnObject, AnInstance, AState, ACustomState, NewArgs, NewArgsWithState,  \
-            Reduce, ReduceWithState, MyInt, MyList, MyDict, FixedOffset, execute
-
-    class MyLoader(yaml.Loader):
-        pass
-    class MyDumper(yaml.Dumper):
-        pass
-
-    class MyTestClass1:
-        def __init__(self, x, y=0, z=0):
-            self.x = x
-            self.y = y
-            self.z = z
-        def __eq__(self, other):
-            if isinstance(other, MyTestClass1):
-                return self.__class__, self.__dict__ == other.__class__, other.__dict__
-            else:
-                return False
-
-    def construct1(constructor, node):
-        mapping = constructor.construct_mapping(node)
-        return MyTestClass1(**mapping)
-    def represent1(representer, native):
-        return representer.represent_mapping("!tag1", native.__dict__)
-
-    yaml.add_constructor("!tag1", construct1, Loader=MyLoader)
-    yaml.add_representer(MyTestClass1, represent1, Dumper=MyDumper)
-
-    class MyTestClass2(MyTestClass1, yaml.YAMLObject):
-        yaml_loader = MyLoader
-        yaml_dumper = MyDumper
-        yaml_tag = "!tag2"
-        def from_yaml(cls, constructor, node):
-            x = constructor.construct_yaml_int(node)
-            return cls(x=x)
-        from_yaml = classmethod(from_yaml)
-        def to_yaml(cls, representer, native):
-            return representer.represent_scalar(cls.yaml_tag, str(native.x))
-        to_yaml = classmethod(to_yaml)
-
-    class MyTestClass3(MyTestClass2):
-        yaml_tag = "!tag3"
-        def from_yaml(cls, constructor, node):
-            mapping = constructor.construct_mapping(node)
-            if '=' in mapping:
-                x = mapping['=']
-                del mapping['=']
-                mapping['x'] = x
-            return cls(**mapping)
-        from_yaml = classmethod(from_yaml)
-        def to_yaml(cls, representer, native):
-            return representer.represent_mapping(cls.yaml_tag, native.__dict__)
-        to_yaml = classmethod(to_yaml)
-
-    class YAMLObject1(yaml.YAMLObject):
-        yaml_loader = MyLoader
-        yaml_dumper = MyDumper
-        yaml_tag = '!foo'
-        def __init__(self, my_parameter=None, my_another_parameter=None):
-            self.my_parameter = my_parameter
-            self.my_another_parameter = my_another_parameter
-        def __eq__(self, other):
-            if isinstance(other, YAMLObject1):
-                return self.__class__, self.__dict__ == other.__class__, other.__dict__
-            else:
-                return False
-
-    class YAMLObject2(yaml.YAMLObject):
-        yaml_loader = MyLoader
-        yaml_dumper = MyDumper
-        yaml_tag = '!bar'
-        def __init__(self, foo=1, bar=2, baz=3):
-            self.foo = foo
-            self.bar = bar
-            self.baz = baz
-        def __getstate__(self):
-            return {1: self.foo, 2: self.bar, 3: self.baz}
-        def __setstate__(self, state):
-            self.foo = state[1]
-            self.bar = state[2]
-            self.baz = state[3]
-        def __eq__(self, other):
-            if isinstance(other, YAMLObject2):
-                return self.__class__, self.__dict__ == other.__class__, other.__dict__
-            else:
-                return False
-
-    class AnObject:
-        def __new__(cls, foo=None, bar=None, baz=None):
-            self = object.__new__(cls)
-            self.foo = foo
-            self.bar = bar
-            self.baz = baz
-            return self
-        def __cmp__(self, other):
-            return cmp((type(self), self.foo, self.bar, self.baz),
-                    (type(other), other.foo, other.bar, other.baz))
-        def __eq__(self, other):
-            return type(self) is type(other) and    \
-                    (self.foo, self.bar, self.baz) == (other.foo, other.bar, other.baz)
-
-    class AnInstance:
-        def __init__(self, foo=None, bar=None, baz=None):
-            self.foo = foo
-            self.bar = bar
-            self.baz = baz
-        def __cmp__(self, other):
-            return cmp((type(self), self.foo, self.bar, self.baz),
-                    (type(other), other.foo, other.bar, other.baz))
-        def __eq__(self, other):
-            return type(self) is type(other) and    \
-                    (self.foo, self.bar, self.baz) == (other.foo, other.bar, other.baz)
-
-    class AState(AnInstance):
-        def __getstate__(self):
-            return {
-                '_foo': self.foo,
-                '_bar': self.bar,
-                '_baz': self.baz,
-            }
-        def __setstate__(self, state):
-            self.foo = state['_foo']
-            self.bar = state['_bar']
-            self.baz = state['_baz']
-
-    class ACustomState(AnInstance):
-        def __getstate__(self):
-            return (self.foo, self.bar, self.baz)
-        def __setstate__(self, state):
-            self.foo, self.bar, self.baz = state
-
-    class NewArgs(AnObject):
-        def __getnewargs__(self):
-            return (self.foo, self.bar, self.baz)
-        def __getstate__(self):
-            return {}
-
-    class NewArgsWithState(AnObject):
-        def __getnewargs__(self):
-            return (self.foo, self.bar)
-        def __getstate__(self):
-            return self.baz
-        def __setstate__(self, state):
-            self.baz = state
-
-    class Reduce(AnObject):
-        def __reduce__(self):
-            return self.__class__, (self.foo, self.bar, self.baz)
-
-    class ReduceWithState(AnObject):
-        def __reduce__(self):
-            return self.__class__, (self.foo, self.bar), self.baz
-        def __setstate__(self, state):
-            self.baz = state
-
-    class MyInt(int):
-        def __eq__(self, other):
-            return type(self) is type(other) and int(self) == int(other)
-
-    class MyList(list):
-        def __init__(self, n=1):
-            self.extend([None]*n)
-        def __eq__(self, other):
-            return type(self) is type(other) and list(self) == list(other)
-
-    class MyDict(dict):
-        def __init__(self, n=1):
-            for k in range(n):
-                self[k] = None
-        def __eq__(self, other):
-            return type(self) is type(other) and dict(self) == dict(other)
-
-    class FixedOffset(datetime.tzinfo):
-        def __init__(self, offset, name):
-            self.__offset = datetime.timedelta(minutes=offset)
-            self.__name = name
-        def utcoffset(self, dt):
-            return self.__offset
-        def tzname(self, dt):
-            return self.__name
-        def dst(self, dt):
-            return datetime.timedelta(0)
-
-def _load_code(expression):
-    return eval(expression)
-
-def _serialize_value(data):
-    if isinstance(data, list):
-        return '[%s]' % ', '.join(map(_serialize_value, data))
-    elif isinstance(data, dict):
-        items = []
-        for key, value in data.items():
-            key = _serialize_value(key)
-            value = _serialize_value(value)
-            items.append("%s: %s" % (key, value))
-        items.sort()
-        return '{%s}' % ', '.join(items)
-    elif isinstance(data, datetime.datetime):
-        return repr(data.utctimetuple())
-    elif isinstance(data, float) and data != data:
-        return '?'
-    else:
-        return str(data)
-
-def test_constructor_types(data_filename, code_filename, verbose=False):
-    _make_objects()
-    native1 = None
-    native2 = None
-    try:
-        native1 = list(yaml.load_all(open(data_filename, 'rb'), Loader=MyLoader))
-        if len(native1) == 1:
-            native1 = native1[0]
-        native2 = _load_code(open(code_filename, 'rb').read())
-        try:
-            if native1 == native2:
-                return
-        except TypeError:
-            pass
-        if verbose:
-            print("SERIALIZED NATIVE1:")
-            print(_serialize_value(native1))
-            print("SERIALIZED NATIVE2:")
-            print(_serialize_value(native2))
-        assert _serialize_value(native1) == _serialize_value(native2), (native1, native2)
-    finally:
-        if verbose:
-            print("NATIVE1:")
-            pprint.pprint(native1)
-            print("NATIVE2:")
-            pprint.pprint(native2)
-
-test_constructor_types.unittest = ['.data', '.code']
-
-if __name__ == '__main__':
-    import sys, test_constructor
-    sys.modules['test_constructor'] = sys.modules['__main__']
-    import test_appliance
-    test_appliance.run(globals())
-
diff --git a/tests3/test_errors.py b/tests3/test_errors.py
deleted file mode 100644
index 749b382..0000000
--- a/tests3/test_errors.py
+++ /dev/null
@@ -1,66 +0,0 @@
-
-import yaml, test_emitter
-
-def test_loader_error(error_filename, verbose=False):
-    try:
-        list(yaml.load_all(open(error_filename, 'rb')))
-    except yaml.YAMLError as exc:
-        if verbose:
-            print("%s:" % exc.__class__.__name__, exc)
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error.unittest = ['.loader-error']
-
-def test_loader_error_string(error_filename, verbose=False):
-    try:
-        list(yaml.load_all(open(error_filename, 'rb').read()))
-    except yaml.YAMLError as exc:
-        if verbose:
-            print("%s:" % exc.__class__.__name__, exc)
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error_string.unittest = ['.loader-error']
-
-def test_loader_error_single(error_filename, verbose=False):
-    try:
-        yaml.load(open(error_filename, 'rb').read())
-    except yaml.YAMLError as exc:
-        if verbose:
-            print("%s:" % exc.__class__.__name__, exc)
-    else:
-        raise AssertionError("expected an exception")
-
-test_loader_error_single.unittest = ['.single-loader-error']
-
-def test_emitter_error(error_filename, verbose=False):
-    events = list(yaml.load(open(error_filename, 'rb'),
-                    Loader=test_emitter.EventsLoader))
-    try:
-        yaml.emit(events)
-    except yaml.YAMLError as exc:
-        if verbose:
-            print("%s:" % exc.__class__.__name__, exc)
-    else:
-        raise AssertionError("expected an exception")
-
-test_emitter_error.unittest = ['.emitter-error']
-
-def test_dumper_error(error_filename, verbose=False):
-    code = open(error_filename, 'rb').read()
-    try:
-        import yaml, io
-        exec(code)
-    except yaml.YAMLError as exc:
-        if verbose:
-            print("%s:" % exc.__class__.__name__, exc)
-    else:
-        raise AssertionError("expected an exception")
-
-test_dumper_error.unittest = ['.dumper-error']
-
-if __name__ == '__main__':
-    import test_appliance
-    test_appliance.run(globals())
-
diff --git a/tests3/test_yaml.py b/tests3/test_yaml.py
deleted file mode 100644
index d195e1a..0000000
--- a/tests3/test_yaml.py
+++ /dev/null
@@ -1,17 +0,0 @@
-
-from test_mark import *
-from test_reader import *
-from test_canonical import *
-from test_tokens import *
-from test_structure import *
-from test_errors import *
-from test_resolver import *
-from test_constructor import *
-from test_emitter import *
-from test_representer import *
-from test_recursive import *
-
-if __name__ == '__main__':
-    import test_appliance
-    test_appliance.run(globals())
-