+ return;
+ }
+
+ /**
+ * Test of Yen(U+00A5) & Backslash(U+005C) encoding, of class TextDecoder.
+ */
+ @Test
+ public void testYenAndBackslash() throws Exception {
+ System.out.println("Yen & Backslash");
+
+ TextDecoder decoder;
+
+ decoder = new TextDecoder(CS_WIN31J);
+ assertDecoded("5C", "\u005c\u005c", decoder);
+
+ decoder = new TextDecoder(CS_UTF8);
+ assertDecoded("5C", "\u005c\u005c", decoder);
+ assertDecoded("C2:A5", "\u00a5", decoder);
+
+ decoder = new TextDecoder(CS_UTF16LE);
+ assertDecoded("5C:00", "\u005c\u005c", decoder);
+ assertDecoded("A5:00", "\u00a5", decoder);
+
+ return;
+ }
+
+ /**
+ * Test of unmapped char, of class TextDecoder.
+ */
+ @Test
+ public void testUnmapChar() throws Exception {
+ System.out.println("unmap char");
+
+ TextDecoder decoder;
+
+ decoder = new TextDecoder(CS_WIN31J);
+ assertFormatError("FF:FF", decoder, 2);
+
+
+ // Unicode2.0の時点でU+0860は未定義文字
+
+ decoder = new TextDecoder(CS_UTF8);
+ assertFormatError("FF:FF:FF", decoder, 3);
+ assertDecoded("E0:A1:A0", "\u0860", decoder);
+
+ decoder = new TextDecoder(CS_UTF16LE);
+ assertDecoded("60:08", "\u0860", decoder);
+
+ return;
+ }
+
+ public void assertDecoded(String bin, String desired,
+ TextDecoder decoder)
+ throws Exception{
+ byte[] bdata = byteArray(bin);
+ assertDecoded(bin, desired, decoder, bdata.length);
+ return;
+ }
+
+ public void assertDecoded(String bin, String desired,
+ TextDecoder decoder, int len)
+ throws Exception{
+ byte[] bdata;
+ InputStream istream;
+ MmdSource source;
+ CharBuffer cb;
+
+ bdata = byteArray(bin);
+ istream = new ByteArrayInputStream(bdata);
+ source = new MmdSource(istream);
+
+ assertDecoded(source, desired, decoder, len);
+
+ return;
+ }
+
+ public void assertDecoded(MmdSource source, String desired,
+ TextDecoder decoder, int len)
+ throws Exception{
+ CharBuffer cb;
+ cb =decoder.parseString(source, len);
+ assertEquals(desired, cb.toString());
+ return;
+ }
+
+ public void assertFormatError(String bin,
+ TextDecoder decoder, int len)
+ throws Exception{
+ byte[] bdata;
+ InputStream istream;
+ MmdSource source;
+
+ bdata = byteArray(bin);