aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/localedata/tests
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/localedata/tests')
-rw-r--r--REORG.TODO/localedata/tests/test1.cm82
-rw-r--r--REORG.TODO/localedata/tests/test1.def9
-rw-r--r--REORG.TODO/localedata/tests/test2.cm82
-rw-r--r--REORG.TODO/localedata/tests/test2.def9
-rw-r--r--REORG.TODO/localedata/tests/test3.cm82
-rw-r--r--REORG.TODO/localedata/tests/test3.def9
-rw-r--r--REORG.TODO/localedata/tests/test4.cm87
-rw-r--r--REORG.TODO/localedata/tests/test4.def7
-rw-r--r--REORG.TODO/localedata/tests/test5.cm89
-rw-r--r--REORG.TODO/localedata/tests/test5.def36
-rw-r--r--REORG.TODO/localedata/tests/test5.ds24
-rw-r--r--REORG.TODO/localedata/tests/test6.c137
-rw-r--r--REORG.TODO/localedata/tests/test6.cm93
-rw-r--r--REORG.TODO/localedata/tests/test6.def20
-rw-r--r--REORG.TODO/localedata/tests/test6.ds113
-rw-r--r--REORG.TODO/localedata/tests/test7.cm86
-rw-r--r--REORG.TODO/localedata/tests/test7.def25
-rw-r--r--REORG.TODO/localedata/tests/trans.def161
18 files changed, 1151 insertions, 0 deletions
diff --git a/REORG.TODO/localedata/tests/test1.cm b/REORG.TODO/localedata/tests/test1.cm
new file mode 100644
index 0000000000..b1bc5efb52
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test1.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<A> /x41
+<B> /x42
+<C> /x43
+<D> /x44
+<E> /x45
+<F> /x46
+<G> /x47
+<H> /x48
+<I> /x49
+<J> /x4A
+<K> /x4B
+<L> /x4C
+<M> /x4D
+<N> /x4E
+<O> /x4F
+<P> /x50
+<Q> /x51
+<R> /x52
+<S> /x53
+<T> /x54
+<U> /x55
+<V> /x56
+<W> /x57
+<X> /x58
+<Y> /x59
+<Z> /x5A
+
+<a> /x61
+<b> /x62
+<c> /x63
+<d> /x64
+<e> /x65
+<f> /x66
+<g> /x67
+<h> /x68
+<i> /x69
+<j> /x6a
+<k> /x6b
+<l> /x6c
+<m> /x6d
+<n> /x6e
+<o> /x6f
+<p> /x70
+<q> /x71
+<r> /x72
+<s> /x73
+<t> /x74
+<u> /x75
+<v> /x76
+<w> /x77
+<x> /x78
+<y> /x79
+<z> /x7a
+<SP> /x20
+<space> /x20
+<0> /x30
+<1> /x31
+<2> /x32
+<3> /x33
+<4> /x34
+<5> /x35
+<6> /x36
+<7> /x37
+<8> /x38
+<9> /x39
+
+<period> /x2e
+<colon> /x3a
+<percent-sign> /x25
+<slash> /x2f
+<circumflex> /x5e
+<left-square-bracket> /x5b
+<right-square-bracket> /x5d
+
+<B1>...<B3> /xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test1.def b/REORG.TODO/localedata/tests/test1.def
new file mode 100644
index 0000000000..53a7bbcd9d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test1.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper <A>
+lower <a>
+space <SP>
+blank <SP>
+alpha <A>;<a>;<b1>..<b3>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test2.cm b/REORG.TODO/localedata/tests/test2.cm
new file mode 100644
index 0000000000..4a4d8c2665
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test2.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<A> /x41
+<B> /x42
+<C> /x43
+<D> /x44
+<E> /x45
+<F> /x46
+<G> /x47
+<H> /x48
+<I> /x49
+<J> /x4A
+<K> /x4B
+<L> /x4C
+<M> /x4D
+<N> /x4E
+<O> /x4F
+<P> /x50
+<Q> /x51
+<R> /x52
+<S> /x53
+<T> /x54
+<U> /x55
+<V> /x56
+<W> /x57
+<X> /x58
+<Y> /x59
+<Z> /x5A
+
+<a> /x61
+<b> /x62
+<c> /x63
+<d> /x64
+<e> /x65
+<f> /x66
+<g> /x67
+<h> /x68
+<i> /x69
+<j> /x6a
+<k> /x6b
+<l> /x6c
+<m> /x6d
+<n> /x6e
+<o> /x6f
+<p> /x70
+<q> /x71
+<r> /x72
+<s> /x73
+<t> /x74
+<u> /x75
+<v> /x76
+<w> /x77
+<x> /x78
+<y> /x79
+<z> /x7a
+<SP> /x20
+<space> /x20
+<0> /x30
+<1> /x31
+<2> /x32
+<3> /x33
+<4> /x34
+<5> /x35
+<6> /x36
+<7> /x37
+<8> /x38
+<9> /x39
+
+<period> /x2e
+<colon> /x3a
+<percent-sign> /x25
+<slash> /x2f
+<circumflex> /x5e
+<left-square-bracket> /x5b
+<right-square-bracket> /x5d
+
+<b01>...<b03> /xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test2.def b/REORG.TODO/localedata/tests/test2.def
new file mode 100644
index 0000000000..9d252d7403
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test2.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper <A>
+lower <a>
+space <SP>
+blank <SP>
+alpha <A>;<a>;<b01>..<b03>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test3.cm b/REORG.TODO/localedata/tests/test3.cm
new file mode 100644
index 0000000000..10cd02001c
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test3.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<A> /x41
+<B> /x42
+<C> /x43
+<D> /x44
+<E> /x45
+<F> /x46
+<G> /x47
+<H> /x48
+<I> /x49
+<J> /x4A
+<K> /x4B
+<L> /x4C
+<M> /x4D
+<N> /x4E
+<O> /x4F
+<P> /x50
+<Q> /x51
+<R> /x52
+<S> /x53
+<T> /x54
+<U> /x55
+<V> /x56
+<W> /x57
+<X> /x58
+<Y> /x59
+<Z> /x5A
+
+<a> /x61
+<b> /x62
+<c> /x63
+<d> /x64
+<e> /x65
+<f> /x66
+<g> /x67
+<h> /x68
+<i> /x69
+<j> /x6a
+<k> /x6b
+<l> /x6c
+<m> /x6d
+<n> /x6e
+<o> /x6f
+<p> /x70
+<q> /x71
+<r> /x72
+<s> /x73
+<t> /x74
+<u> /x75
+<v> /x76
+<w> /x77
+<x> /x78
+<y> /x79
+<z> /x7a
+<SP> /x20
+<space> /x20
+<0> /x30
+<1> /x31
+<2> /x32
+<3> /x33
+<4> /x34
+<5> /x35
+<6> /x36
+<7> /x37
+<8> /x38
+<9> /x39
+
+<period> /x2e
+<colon> /x3a
+<percent-sign> /x25
+<slash> /x2f
+<circumflex> /x5e
+<left-square-bracket> /x5b
+<right-square-bracket> /x5d
+
+<b1>...<b3> /xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test3.def b/REORG.TODO/localedata/tests/test3.def
new file mode 100644
index 0000000000..53a7bbcd9d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test3.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper <A>
+lower <a>
+space <SP>
+blank <SP>
+alpha <A>;<a>;<b1>..<b3>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test4.cm b/REORG.TODO/localedata/tests/test4.cm
new file mode 100644
index 0000000000..1445597606
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test4.cm
@@ -0,0 +1,87 @@
+<code_set_name> BIG5
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<b0101>...<b0103> /xa1/x40
+<B0101>...<B0103> /xa1/xa1
+<b0901>...<b0903> /xa1/x40
+<B0901>...<B0903> /xa1/xa1
+<b1001>...<b1003> /xaa/x40
+<B1001>...<B1003> /xaa/xa1
+
+<A> /x41
+<B> /x42
+<C> /x43
+<D> /x44
+<E> /x45
+<F> /x46
+<G> /x47
+<H> /x48
+<I> /x49
+<J> /x4A
+<K> /x4B
+<L> /x4C
+<M> /x4D
+<N> /x4E
+<O> /x4F
+<P> /x50
+<Q> /x51
+<R> /x52
+<S> /x53
+<T> /x54
+<U> /x55
+<V> /x56
+<W> /x57
+<X> /x58
+<Y> /x59
+<Z> /x5A
+
+<a> /x61
+<b> /x62
+<c> /x63
+<d> /x64
+<e> /x65
+<f> /x66
+<g> /x67
+<h> /x68
+<i> /x69
+<j> /x6a
+<k> /x6b
+<l> /x6c
+<m> /x6d
+<n> /x6e
+<o> /x6f
+<p> /x70
+<q> /x71
+<r> /x72
+<s> /x73
+<t> /x74
+<u> /x75
+<v> /x76
+<w> /x77
+<x> /x78
+<y> /x79
+<z> /x7a
+<SP> /x20
+<space> /x20
+<0> /x30
+<1> /x31
+<2> /x32
+<3> /x33
+<4> /x34
+<5> /x35
+<6> /x36
+<7> /x37
+<8> /x38
+<9> /x39
+
+<period> /x2e
+<colon> /x3a
+<percent-sign> /x25
+<slash> /x2f
+<circumflex> /x5e
+<left-square-bracket> /x5b
+<right-square-bracket> /x5d
+
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test4.def b/REORG.TODO/localedata/tests/test4.def
new file mode 100644
index 0000000000..3d96d3a88f
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test4.def
@@ -0,0 +1,7 @@
+LC_COLLATE
+order_start forward
+<b1001>
+<B1001>
+UNDEFINED IGNORE
+order_end
+END LC_COLLATE
diff --git a/REORG.TODO/localedata/tests/test5.cm b/REORG.TODO/localedata/tests/test5.cm
new file mode 100644
index 0000000000..bb7b3605b1
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.cm
@@ -0,0 +1,89 @@
+<code_set_name> test5
+<comment_char> %
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<k0101>...<k0194> /xa1/xa1
+<k0201>...<k0294> /xa2/xa1
+<k1601>...<k1694> /xa3/xa1
+<k1701>...<k1794> /xa4/xa1
+<k4001>...<k4094> /xa5/xa1
+<k5001>...<k5094> /xa6/xa1
+<k6001>...<k6094> /xa7/xa1
+
+<A> /x41
+<B> /x42
+<C> /x43
+<D> /x44
+<E> /x45
+<F> /x46
+<G> /x47
+<H> /x48
+<I> /x49
+<J> /x4A
+<K> /x4B
+<L> /x4C
+<M> /x4D
+<N> /x4E
+<O> /x4F
+<P> /x50
+<Q> /x51
+<R> /x52
+<S> /x53
+<T> /x54
+<U> /x55
+<V> /x56
+<W> /x57
+<X> /x58
+<Y> /x59
+<Z> /x5A
+
+<a> /x61
+<b> /x62
+<c> /x63
+<d> /x64
+<e> /x65
+<f> /x66
+<g> /x67
+<h> /x68
+<i> /x69
+<j> /x6a
+<k> /x6b
+<l> /x6c
+<m> /x6d
+<n> /x6e
+<o> /x6f
+<p> /x70
+<q> /x71
+<r> /x72
+<s> /x73
+<t> /x74
+<u> /x75
+<v> /x76
+<w> /x77
+<x> /x78
+<y> /x79
+<z> /x7a
+<SP> /x20
+<space> /x20
+<0> /x30
+<1> /x31
+<2> /x32
+<3> /x33
+<4> /x34
+<5> /x35
+<6> /x36
+<7> /x37
+<8> /x38
+<9> /x39
+
+<period> /x2e
+<colon> /x3a
+<percent-sign> /x25
+<slash> /x2f
+<circumflex> /x5e
+<left-square-bracket> /x5b
+<right-square-bracket> /x5d
+
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test5.def b/REORG.TODO/localedata/tests/test5.def
new file mode 100644
index 0000000000..c009033bb9
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.def
@@ -0,0 +1,36 @@
+escape_char /
+comment_char %
+
+LC_TIME
+
+abday "<k0101><k0102><k0103>";"<k0101><k0102><k0103>";/
+ "<k4001><k4002><k4003>";"<k4001><k4002><k4003>";/
+ "<k5001><k5002><k5003>";"<k5001><k5002><k5003>";/
+ "<k6001><k6002><k6003>"
+day "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>";/
+ "<k6001><k6002><k6003>"
+abmon "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>"
+mon "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>";/
+ "<k6001>";"<k6001>"
+
+d_t_fmt ""
+d_fmt ""
+t_fmt ""
+am_pm "<k6001><k5002>";"<k5002><k4036>"
+t_fmt_ampm ""
+
+END LC_TIME
diff --git a/REORG.TODO/localedata/tests/test5.ds b/REORG.TODO/localedata/tests/test5.ds
new file mode 100644
index 0000000000..261e1eb126
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.ds
@@ -0,0 +1,24 @@
+escape_char /
+<k0101> <UAC00>
+<k0102> <UAC01>
+<k0103> <UAC02>
+<k4001> <U2170>
+<k4002> <U2171>
+<k4003> <U2172>
+<k4036> <U0394>
+<k5001> <U2500>
+<k5002> <U2502>
+<k5003> <U250C>
+<k6001> <U3395>
+<k6002> <U3396>
+<k6003> <U3397>
+<0> <U0030>
+<1> <U0031>
+<2> <U0032>
+<3> <U0033>
+<4> <U0034>
+<5> <U0035>
+<6> <U0036>
+<7> <U0037>
+<8> <U0038>
+<9> <U0039>
diff --git a/REORG.TODO/localedata/tests/test6.c b/REORG.TODO/localedata/tests/test6.c
new file mode 100644
index 0000000000..b43f62dfa7
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.c
@@ -0,0 +1,137 @@
+/* Test program for character classes and mappings.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ctype.h>
+#include <locale.h>
+#include <wchar.h>
+
+
+int
+main (void)
+{
+ const char lower[] = "abcdefghijklmnopqrstuvwxyz";
+ const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+#define LEN (sizeof (upper) - 1)
+ const wchar_t wlower[] = L"abcdefghijklmnopqrstuvwxyz";
+ const wchar_t wupper[] = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ int i;
+ int result = 0;
+
+ setlocale (LC_ALL, "test6");
+
+ for (i = 0; i < LEN; ++i)
+ {
+ /* Test basic table handling (basic == not more than 256 characters).
+ The charmaps swaps the normal lower-upper case meaning of the
+ ASCII characters used in the source code while the Unicode mapping
+ in the repertoire map has the normal correspondents. This test
+ shows the independence of the tables for `char' and `wchar_t'
+ characters. */
+
+ if (islower (lower[i]))
+ {
+ printf ("islower ('%c') false\n", lower[i]);
+ result = 1;
+ }
+ if (! isupper (lower[i]))
+ {
+ printf ("isupper ('%c') false\n", lower[i]);
+ result = 1;
+ }
+
+ if (! islower (upper[i]))
+ {
+ printf ("islower ('%c') false\n", upper[i]);
+ result = 1;
+ }
+ if (isupper (upper[i]))
+ {
+ printf ("isupper ('%c') false\n", upper[i]);
+ result = 1;
+ }
+
+ if (toupper (lower[i]) != lower[i])
+ {
+ printf ("toupper ('%c') false\n", lower[i]);
+ result = 1;
+ }
+ if (tolower (lower[i]) != upper[i])
+ {
+ printf ("tolower ('%c') false\n", lower[i]);
+ result = 1;
+ }
+
+ if (tolower (upper[i]) != upper[i])
+ {
+ printf ("tolower ('%c') false\n", upper[i]);
+ result = 1;
+ }
+ if (toupper (upper[i]) != lower[i])
+ {
+ printf ("toupper ('%c') false\n", upper[i]);
+ result = 1;
+ }
+
+ if (iswlower (wupper[i]))
+ {
+ printf ("iswlower (L'%c') false\n", upper[i]);
+ result = 1;
+ }
+ if (! iswupper (wupper[i]))
+ {
+ printf ("iswupper (L'%c') false\n", upper[i]);
+ result = 1;
+ }
+
+ if (iswupper (wlower[i]))
+ {
+ printf ("iswupper (L'%c') false\n", lower[i]);
+ result = 1;
+ }
+ if (! iswlower (wlower[i]))
+ {
+ printf ("iswlower (L'%c') false\n", lower[i]);
+ result = 1;
+ }
+
+ if (towupper (wlower[i]) != wupper[i])
+ {
+ printf ("towupper ('%c') false\n", lower[i]);
+ result = 1;
+ }
+ if (towlower (wlower[i]) != wlower[i])
+ {
+ printf ("towlower ('%c') false\n", lower[i]);
+ result = 1;
+ }
+
+ if (towlower (wupper[i]) != wlower[i])
+ {
+ printf ("towlower ('%c') false\n", upper[i]);
+ result = 1;
+ }
+ if (towupper (wupper[i]) != wupper[i])
+ {
+ printf ("towupper ('%c') false\n", upper[i]);
+ result = 1;
+ }
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/localedata/tests/test6.cm b/REORG.TODO/localedata/tests/test6.cm
new file mode 100644
index 0000000000..3711495d86
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.cm
@@ -0,0 +1,93 @@
+<code_set_name> test6
+
+CHARMAP
+<tab> \x09
+<newline> \x0A
+<vertical-tab> \x0B
+<form-feed> \x0C
+<carriage-return> \x0D
+<SP> \x20
+<space> \x20
+<!> \x21
+<"> \x22
+<%> \x25
+<&> \x26
+<'> \x27
+<(> \x28
+<)> \x29
+<*> \x2A
+<+> \x2B
+<,> \x2C
+<-> \x2D
+<.> \x2E
+<\\> \x2F
+<0> \x30
+<1> \x31
+<2> \x32
+<3> \x33
+<4> \x34
+<5> \x35
+<6> \x36
+<7> \x37
+<8> \x38
+<9> \x39
+<:> \x3A
+<;> \x3B
+<<> \x3C
+<=> \x3D
+<\>> \x3E
+<?> \x3F
+<a> \x41
+<b> \x42
+<c> \x43
+<d> \x44
+<e> \x45
+<f> \x46
+<g> \x47
+<h> \x48
+<i> \x49
+<j> \x4A
+<k> \x4B
+<l> \x4C
+<m> \x4D
+<n> \x4E
+<o> \x4F
+<p> \x50
+<q> \x51
+<r> \x52
+<s> \x53
+<t> \x54
+<u> \x55
+<v> \x56
+<w> \x57
+<x> \x58
+<y> \x59
+<z> \x5A
+<_> \x5F
+<A> \x61
+<B> \x62
+<C> \x63
+<D> \x64
+<E> \x65
+<F> \x66
+<G> \x67
+<H> \x68
+<I> \x69
+<J> \x6A
+<K> \x6B
+<L> \x6C
+<M> \x6D
+<N> \x6E
+<O> \x6F
+<P> \x70
+<Q> \x71
+<R> \x72
+<S> \x73
+<T> \x74
+<U> \x75
+<V> \x76
+<W> \x77
+<X> \x78
+<Y> \x79
+<Z> \x7A
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test6.def b/REORG.TODO/localedata/tests/test6.def
new file mode 100644
index 0000000000..f8f88b3296
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.def
@@ -0,0 +1,20 @@
+LC_CTYPE
+
+lower <a>;<b>;<c>;<d>;<e>;<f>;<g>;<h>;<i>;<j>;<k>;<l>;<m>;<n>;<o>;<p>;<q>; \
+ <r>;<s>;<t>;<u>;<v>;<w>;<x>;<y>;<z>
+upper <A>;<B>;<C>;<D>;<E>;<F>;<G>;<H>;<I>;<J>;<K>;<L>;<M>;<N>;<O>;<P>;<Q>; \
+ <R>;<S>;<T>;<U>;<V>;<W>;<X>;<Y>;<Z>
+
+tolower (<A>,<a>);(<B>,<b>);(<C>,<c>);(<D>,<d>);(<E>,<e>);(<F>,<f>); \
+ (<G>,<g>);(<H>,<h>);(<I>,<i>);(<J>,<j>);(<K>,<k>);(<L>,<l>); \
+ (<M>,<m>);(<N>,<n>);(<O>,<o>);(<P>,<p>);(<Q>,<q>);(<R>,<r>); \
+ (<S>,<s>);(<T>,<t>);(<U>,<u>);(<V>,<v>);(<W>,<w>);(<X>,<x>); \
+ (<Y>,<y>);(<Z>,<z>)
+
+toupper (<a>,<A>);(<b>,<B>);(<c>,<C>);(<d>,<D>);(<e>,<E>);(<f>,<F>); \
+ (<g>,<G>);(<h>,<H>);(<i>,<I>);(<j>,<J>);(<k>,<K>);(<l>,<L>); \
+ (<m>,<M>);(<n>,<N>);(<o>,<O>);(<p>,<P>);(<q>,<Q>);(<r>,<R>); \
+ (<s>,<S>);(<t>,<T>);(<u>,<U>);(<v>,<V>);(<w>,<W>);(<x>,<X>); \
+ (<y>,<Y>);(<z>,<Z>)
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test6.ds b/REORG.TODO/localedata/tests/test6.ds
new file mode 100644
index 0000000000..bb1218569d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.ds
@@ -0,0 +1,113 @@
+<tab> <U0009> HORIZONTAL TABULATION
+<newline> <U000A> LINE FEED
+<vertical-tab> <U000B> VERTICAL TABULATION
+<form-feed> <U000C> FORM FEED
+<carriage-return> <U000D> CARRIAGE RETURN
+<SP> <U0020> SPACE
+<space> <U0020> SPACE
+<!> <U0021> EXCLAMATION MARK
+<"> <U0022> QUOTATION MARK
+<Nb> <U0023> NUMBER SIGN
+<DO> <U0024> DOLLAR SIGN
+<!S> <U0024> DOLLAR SIGN
+<%> <U0025> PERCENT SIGN
+<&> <U0026> AMPERSAND
+<'> <U0027> APOSTROPHE
+<(> <U0028> LEFT PARENTHESIS
+<)> <U0029> RIGHT PARENTHESIS
+<*> <U002A> ASTERISK
+<+> <U002B> PLUS SIGN
+<,> <U002C> COMMA
+<-> <U002D> HYPHEN-MINUS
+<.> <U002E> FULL STOP
+</> <U002F> SOLIDUS
+<0> <U0030> DIGIT ZERO
+<1> <U0031> DIGIT ONE
+<2> <U0032> DIGIT TWO
+<3> <U0033> DIGIT THREE
+<4> <U0034> DIGIT FOUR
+<5> <U0035> DIGIT FIVE
+<6> <U0036> DIGIT SIX
+<7> <U0037> DIGIT SEVEN
+<8> <U0038> DIGIT EIGHT
+<9> <U0039> DIGIT NINE
+<:> <U003A> COLON
+<;> <U003B> SEMICOLON
+<<> <U003C> LESS-THAN SIGN
+<=> <U003D> EQUALS SIGN
+<\>> <U003E> GREATER-THAN SIGN
+<?> <U003F> QUESTION MARK
+<@> <U0040> COMMERCIAL AT
+<A> <U0041> LATIN CAPITAL LETTER A
+<B> <U0042> LATIN CAPITAL LETTER B
+<C> <U0043> LATIN CAPITAL LETTER C
+<D> <U0044> LATIN CAPITAL LETTER D
+<E> <U0045> LATIN CAPITAL LETTER E
+<F> <U0046> LATIN CAPITAL LETTER F
+<G> <U0047> LATIN CAPITAL LETTER G
+<H> <U0048> LATIN CAPITAL LETTER H
+<I> <U0049> LATIN CAPITAL LETTER I
+<J> <U004A> LATIN CAPITAL LETTER J
+<K> <U004B> LATIN CAPITAL LETTER K
+<L> <U004C> LATIN CAPITAL LETTER L
+<M> <U004D> LATIN CAPITAL LETTER M
+<N> <U004E> LATIN CAPITAL LETTER N
+<O> <U004F> LATIN CAPITAL LETTER O
+<P> <U0050> LATIN CAPITAL LETTER P
+<Q> <U0051> LATIN CAPITAL LETTER Q
+<R> <U0052> LATIN CAPITAL LETTER R
+<S> <U0053> LATIN CAPITAL LETTER S
+<T> <U0054> LATIN CAPITAL LETTER T
+<U> <U0055> LATIN CAPITAL LETTER U
+<V> <U0056> LATIN CAPITAL LETTER V
+<W> <U0057> LATIN CAPITAL LETTER W
+<X> <U0058> LATIN CAPITAL LETTER X
+<Y> <U0059> LATIN CAPITAL LETTER Y
+<Z> <U005A> LATIN CAPITAL LETTER Z
+<<(> <U005B> LEFT SQUARE BRACKET
+<left-square-bracket> <U005B> LEFT SQUARE BRACKET
+<//> <U005C> REVERSE SOLIDUS
+<backslash> <U005C> REVERSE SOLIDUS
+<reverse-solidus> <U005C> REVERSE SOLIDUS
+<)\>> <U005D> RIGHT SQUARE BRACKET
+<right-square-bracket> <U005D> RIGHT SQUARE BRACKET
+<'\>> <U005E> CIRCUMFLEX ACCENT
+<circumflex> <U005E> CIRCUMFLEX ACCENT
+<circumflex-accent> <U005E> CIRCUMFLEX ACCENT
+<_> <U005F> LOW LINE
+<low-line> <U005F> LOW LINE
+<underscore> <U005F> LOW LINE
+<'!> <U0060> GRAVE ACCENT
+<grave-accent> <U0060> GRAVE ACCENT
+<a> <U0061> LATIN SMALL LETTER A
+<b> <U0062> LATIN SMALL LETTER B
+<c> <U0063> LATIN SMALL LETTER C
+<d> <U0064> LATIN SMALL LETTER D
+<e> <U0065> LATIN SMALL LETTER E
+<f> <U0066> LATIN SMALL LETTER F
+<g> <U0067> LATIN SMALL LETTER G
+<h> <U0068> LATIN SMALL LETTER H
+<i> <U0069> LATIN SMALL LETTER I
+<j> <U006A> LATIN SMALL LETTER J
+<k> <U006B> LATIN SMALL LETTER K
+<l> <U006C> LATIN SMALL LETTER L
+<m> <U006D> LATIN SMALL LETTER M
+<n> <U006E> LATIN SMALL LETTER N
+<o> <U006F> LATIN SMALL LETTER O
+<p> <U0070> LATIN SMALL LETTER P
+<q> <U0071> LATIN SMALL LETTER Q
+<r> <U0072> LATIN SMALL LETTER R
+<s> <U0073> LATIN SMALL LETTER S
+<t> <U0074> LATIN SMALL LETTER T
+<u> <U0075> LATIN SMALL LETTER U
+<v> <U0076> LATIN SMALL LETTER V
+<w> <U0077> LATIN SMALL LETTER W
+<x> <U0078> LATIN SMALL LETTER X
+<y> <U0079> LATIN SMALL LETTER Y
+<z> <U007A> LATIN SMALL LETTER Z
+<(!> <U007B> LEFT CURLY BRACKET
+<!!> <U007C> VERTICAL LINE
+<vertical-line> <U007C> VERTICAL LINE
+<!)> <U007D> RIGHT CURLY BRACKET
+<'?> <U007E> TILDE
+<DT> <U007F> DELETE
diff --git a/REORG.TODO/localedata/tests/test7.cm b/REORG.TODO/localedata/tests/test7.cm
new file mode 100644
index 0000000000..86b058dc58
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test7.cm
@@ -0,0 +1,86 @@
+<code_set_name> UTF-8
+<mb_cur_min> 1
+<mb_cur_max> 3
+
+CHARMAP
+<U0009> \x09
+<U000A> \x0a
+<U000B> \x0b
+<U000C> \x0c
+<U000D> \x0d
+<U0020> \x20
+<U002C> \x2c
+<U002E> \x2e
+<U0030> \x30
+<U0031> \x31
+<U0032> \x32
+<U0033> \x33
+<U0034> \x34
+<U0035> \x35
+<U0036> \x36
+<U0037> \x37
+<U0038> \x38
+<U0039> \x39
+<U0041> \x41
+<U0042> \x42
+<U0043> \x43
+<U0044> \x44
+<U0045> \x45
+<U0046> \x46
+<U0047> \x47
+<U0048> \x48
+<U0049> \x49
+<U004A> \x4a
+<U004B> \x4b
+<U004C> \x4c
+<U004D> \x4d
+<U004E> \x4e
+<U004F> \x4f
+<U0050> \x50
+<U0051> \x51
+<U0052> \x52
+<U0053> \x53
+<U0054> \x54
+<U0055> \x55
+<U0056> \x56
+<U0057> \x57
+<U0058> \x58
+<U0059> \x59
+<U005A> \x5a
+<U0061> \x61
+<U0062> \x62
+<U0063> \x63
+<U0064> \x64
+<U0065> \x65
+<U0066> \x66
+<U0067> \x67
+<U0068> \x68
+<U0069> \x69
+<U006A> \x6A
+<U006B> \x6B
+<U006C> \x6C
+<U006D> \x6D
+<U006E> \x6E
+<U006F> \x6F
+<U0070> \x70
+<U0071> \x71
+<U0072> \x72
+<U0073> \x73
+<U0074> \x74
+<U0075> \x75
+<U0076> \x76
+<U0077> \x77
+<U0078> \x78
+<U0079> \x79
+<U007A> \x7A
+<U2080> \xe2\x82\x80
+<U2081> \xe2\x82\x81
+<U2082> \xe2\x82\x82
+<U2083> \xe2\x82\x83
+<U2084> \xe2\x82\x84
+<U2085> \xe2\x82\x85
+<U2086> \xe2\x82\x86
+<U2087> \xe2\x82\x87
+<U2088> \xe2\x82\x88
+<U2089> \xe2\x82\x89
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test7.def b/REORG.TODO/localedata/tests/test7.def
new file mode 100644
index 0000000000..8f43b361f6
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test7.def
@@ -0,0 +1,25 @@
+LC_CTYPE
+lower <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;\
+ <U0069>;<U006A>;<U006B>;<U006C>;<U006D>;<U006E>;<U006F>;<U0070>;\
+ <U0071>;<U0072>;<U0073>;<U0074>;<U0075>;<U0076>;<U0077>;<U0078>;\
+ <U0079>;<U007A>
+
+upper <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;<U0048>;\
+ <U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;<U004F>;<U0050>;\
+ <U0051>;<U0052>;<U0053>;<U0054>;<U0055>;<U0056>;<U0057>;<U0058>;\
+ <U0059>;<U005A>
+
+digit <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;\
+ <U0035>;<U0036>;<U0037>;<U0038>;<U0039>;\
+ <U2080>;<U2081>;<U2082>;<U2083>;<U2084>;\
+ <U2085>;<U2086>;<U2087>;<U2088>;<U2089>
+
+outdigit <U2080>;<U2081>;<U2082>;<U2083>;<U2084>;\
+ <U2085>;<U2086>;<U2087>;<U2088>;<U2089>
+END LC_CTYPE
+
+LC_NUMERIC
+decimal_point "<U002E>"
+thousands_sep "<U002C>"
+grouping 3;3
+END LC_NUMERIC
diff --git a/REORG.TODO/localedata/tests/trans.def b/REORG.TODO/localedata/tests/trans.def
new file mode 100644
index 0000000000..a4d0332834
--- /dev/null
+++ b/REORG.TODO/localedata/tests/trans.def
@@ -0,0 +1,161 @@
+escape_char /
+comment_char %
+
+LC_CTYPE
+
+digit <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;/
+ <U0035>;<U0036>;<U0037>;<U0038>;<U0039>
+
+xdigit <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;/
+ <U0035>;<U0036>;<U0037>;<U0038>;<U0039>;/
+ <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;/
+ <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>
+
+blank <U0020>;<U0009>;<U00A0>
+
+space <U0020>;<U000A>;<U000B>;<U000C>;/
+ <U000D>;<U0009>;<U00A0>
+
+upper <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;/
+ <U0048>;<U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;/
+ <U004F>;<U0050>;<U0051>;<U0052>;<U0053>;<U0054>;<U0055>;/
+ <U0056>;<U0057>;<U0058>;<U0059>;<U005A>
+
+lower <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;/
+ <U0068>;<U0069>;<U006A>;<U006B>;<U006C>;<U006D>;<U006E>;/
+ <U006F>;<U0070>;<U0071>;<U0072>;<U0073>;<U0074>;<U0075>;/
+ <U0076>;<U0077>;<U0078>;<U0079>;<U007A>
+
+alpha <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;/
+ <U0048>;<U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;/
+ <U004F>;<U0050>;<U0051>;<U0052>;<U0053>;<U0054>;<U0055>;/
+ <U0056>;<U0057>;<U0058>;<U0059>;<U005A>;<U0061>;<U0062>;/
+ <U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;<U0069>;/
+ <U006A>;<U006B>;<U006C>;<U006D>;<U006E>;<U006F>;<U0070>;/
+ <U0071>;<U0072>;<U0073>;<U0074>;<U0075>;<U0076>;<U0077>;/
+ <U0078>;<U0079>;<U007A>
+
+cntrl <U0000>;<U0001>;<U0002>;<U0003>;<U0004>;<U0005>;/
+ <U0006>;<U0007>;<U0008>;<U0009>;<U000A>;<U000B>;/
+ <U000C>;<U000D>;<U000E>;<U000F>;<U0010>;<U0011>;/
+ <U0012>;<U0013>;<U0014>;<U0015>;<U0016>;<U0017>;/
+ <U0018>;<U0019>;<U001A>;<U001B>;<U001C>;<U001D>;/
+ <U001E>;<U001F>;<U007F>;<U0080>;<U0081>;<U0082>;/
+ <U0083>;<U0084>;<U0085>;<U0086>;<U0087>;<U0088>;/
+ <U0089>;<U008A>;<U008B>;<U008C>;<U008D>;<U008E>;/
+ <U008F>;<U0090>;<U0091>;<U0092>;<U0093>;<U0094>;/
+ <U0095>;<U0096>;<U0097>;<U0098>;<U0099>;<U009A>;/
+ <U009B>;<U009C>;<U009D>;<U009E>;<U009F>
+
+punct <U0021>;<U0022>;<U0023>;<U0024>;<U0025>;<U0026>;<U0027>;/
+ <U0028>;<U0029>;<U002A>;<U002B>;<U002C>;<U002D>;<U002E>;/
+ <U002F>;<U003A>;<U003B>;<U003C>;<U003D>;<U003E>;<U003F>;/
+ <U0040>;<U005B>;<U005C>;<U005D>;<U005E>
+
+tolower (<U0041>,<U0061>);/
+ (<U0042>,<U0062>);/
+ (<U0043>,<U0063>);/
+ (<U0044>,<U0064>);/
+ (<U0045>,<U0065>);/
+ (<U0046>,<U0066>);/
+ (<U0047>,<U0067>);/
+ (<U0048>,<U0068>);/
+ (<U0049>,<U0069>);/
+ (<U004A>,<U006A>);/
+ (<U004B>,<U006B>);/
+ (<U004C>,<U006C>);/
+ (<U004D>,<U006D>);/
+ (<U004E>,<U006E>);/
+ (<U004F>,<U006F>);/
+ (<U0050>,<U0070>);/
+ (<U0051>,<U0071>);/
+ (<U0052>,<U0072>);/
+ (<U0053>,<U0073>);/
+ (<U0054>,<U0074>);/
+ (<U0055>,<U0075>);/
+ (<U0056>,<U0076>);/
+ (<U0057>,<U0077>);/
+ (<U0058>,<U0078>);/
+ (<U0059>,<U0079>);/
+ (<U005A>,<U007A>)
+
+toupper (<U0061>,<U0041>);/
+ (<U0062>,<U0042>);/
+ (<U0063>,<U0043>);/
+ (<U0064>,<U0044>);/
+ (<U0065>,<U0045>);/
+ (<U0066>,<U0046>);/
+ (<U0067>,<U0047>);/
+ (<U0068>,<U0048>);/
+ (<U0069>,<U0049>);/
+ (<U006A>,<U004A>);/
+ (<U006B>,<U004B>);/
+ (<U006C>,<U004C>);/
+ (<U006D>,<U004D>);/
+ (<U006E>,<U004E>);/
+ (<U006F>,<U004F>);/
+ (<U0070>,<U0050>);/
+ (<U0071>,<U0051>);/
+ (<U0072>,<U0052>);/
+ (<U0073>,<U0053>);/
+ (<U0074>,<U0054>);/
+ (<U0075>,<U0055>);/
+ (<U0076>,<U0056>);/
+ (<U0077>,<U0057>);/
+ (<U0078>,<U0058>);/
+ (<U0079>,<U0059>);/
+ (<U007A>,<U005A>)
+
+charconv test
+
+test (<U0041>,<U0042>);(<U0042>,<U0043>)
+
+outdigit <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;<U0069>;<U006A>
+
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_US"
+END LC_COLLATE
+
+LC_TIME
+copy "en_US"
+END LC_TIME
+
+LC_NUMERIC
+copy "en_US"
+END LC_NUMERIC
+
+LC_MONETARY
+copy "en_US"
+END LC_MONETARY
+
+LC_MESSAGES
+copy "en_US"
+END LC_MESSAGES
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_NAME
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074><U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025>/
+<U0025><U0073><U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025><U004E>/
+<U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025><U004E><U0025><U0063><U0025><U004E>"
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_IDENTIFICATION
+END LC_IDENTIFICATION