585ab92f620ffa45a13c93edacd9d1e4bb52a9cf
[chise/ruby.git] / test / test-iconv.rb
1 #!/usr/bin/env ruby
2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
3 # This file is in SJIS charset.  Japanese Character -> \8a¿\8e\9a.
4
5 require "common"
6
7 class TestIconv < Test::Unit::TestCase
8   def test_original_iconv
9     u8 = "\8e\9a".sjistou8
10     s = Iconv.iconv_to_from("UTF-16", "UTF-8", u8)
11     assert_equal("\376\377\x5b\x57", s) #  \376\377 -> Byte Order Mark?
12     s = Iconv.iconv_to_from("UTF-32", "UTF-8", u8)
13     assert_equal("\0\0\376\377\0\0[W", s)
14   end
15
16   def test_iconv
17     u8 = "\8e\9a".sjistou8 # U+5B57 (0x8E9A): CJK Unified Ideograph
18     assert_equal("\345\255\227", u8)
19     assert_equal("\x8e\x9a", u8.u8tosjis)
20     assert_equal("\273\372", u8.u8toeuc)
21     assert_equal("\e$B;z\e(B", u8.u8tojis)
22     assert_equal(u8, u8.u8tosjis.sjistou8)
23     assert_equal(u8, u8.u8toeuc.euctou8)
24     assert_equal(u8, u8.u8tojis.jistou8)
25     u16 = "\x5b\x57" # "[W"
26     assert_equal(u16, u8.u8tou16)
27     u32 = "\0\0[W"
28     assert_equal(u32, u8.u8tou32)
29     assert_equal(u8, u32.u32tou8)
30     assert_equal("[W", u32.u32tou16)
31     assert_equal("\273\372", u16.u16toeuc)
32     assert_equal("\216\232", u16.u16tosjis)
33     assert_equal(23383, u32.u32to_i)
34     assert_equal(23383, u8.u8to_i)
35
36     assert_equal(u32, CHISE.i_tou32(23383))
37     assert_equal(u8, CHISE.i_tou8(23383))
38
39     u8 = "\8a¿\8e\9a".sjistou8
40     assert_equal("\346\274\242\345\255\227", u8)
41     assert_equal("\212\277\x8e\x9a", u8.u8tosjis)
42     assert_equal("\264\301\273\372", u8.u8toeuc)
43     assert_equal("\e$B4A;z\e(B", u8.u8tojis)
44     u16 = "o\"[W"
45     assert_equal(u16, u8.u8tou16)
46     u32 = "\0\0o\"\0\0[W"
47     assert_equal(u32, u8.u8tou32)
48     assert_equal(u8, u32.u32tou8)
49     assert_equal("o\"[W", u32.u32tou16)
50     assert_equal("\264\301\273\372", u16.u16toeuc)
51     assert_equal("\212\277\216\232", u16.u16tosjis)
52   end
53 end