update.
[chise/ruby.git] / test / test-libchise_r.rb
1 #!/usr/bin/env ruby
2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
3
4 require "common"
5
6 class TestLibChise_R < Test::Unit::TestCase
7   include CHISE::ChiseValue
8
9   def test_parse_c_string
10     u8 = "字"
11     assert_equal(23383, parse_c_string("?"+u8))
12     assert_equal(0,     parse_c_string("?\\^@"))
13     assert_equal(9,     parse_c_string("?\t"))
14     assert_equal(10,    parse_c_string("?\n"))
15     assert_equal(13,    parse_c_string("?\r"))
16     assert_equal(94,    parse_c_string("?^\\"))
17     assert_equal(31,    parse_c_string("?\\^_"))
18     assert_equal(32,    parse_c_string("?\\ "))
19     assert_equal(34,    parse_c_string("?\\\""))
20     assert_equal(126,   parse_c_string("?~"))
21     assert_equal(127,   parse_c_string("?\\^?\000"))
22     assert_equal(131,   parse_c_string("?\\^\303\237"))
23     assert_equal(0x7FF, parse_c_string("?\337\277"))
24     assert_equal(0xFFFF,        parse_c_string("?\357\277\277"))
25     assert_equal(0x1FFFFF,      parse_c_string("?\367\277\277\277"))
26     assert_equal(0x3FFFFFF,     parse_c_string("?\373\277\277\277\277"))
27     assert_equal(0xFFFFFFF,     parse_c_string("?\374\217\277\277\277\277"))
28     assert_raise(RuntimeError) { parse_c_string("nosuch") }
29   end
30
31   def test_format_char_id
32     u8 = "字"
33     assert_equal("?\345\255\227",       format_char_id(23383))
34     assert_equal("?"+u8,                format_char_id(23383))
35     assert_equal("?\\^@",       format_char_id(0))
36     assert_equal("?\t",         format_char_id(?\t))
37     assert_equal("?\n",         format_char_id(?\n))
38     assert_equal("?\r",         format_char_id(?\r))
39     assert_equal("?^\\",        format_char_id(0x1C))
40     assert_equal("?\\^_",       format_char_id(0x1F))
41     assert_equal("?\\ ",        format_char_id(?\s))
42     assert_equal("?\\\"",       format_char_id(?\"))
43     assert_equal("?~",          format_char_id(0x7E))
44     assert_equal("?\\^?\000",   format_char_id(0x7F))
45     assert_equal("?\\^\303\237",        format_char_id(0x9F))
46     assert_equal("?\337\277",   format_char_id(0x7FF))
47     assert_equal("?\357\277\277",       format_char_id(0xFFFF))
48     assert_equal("?\367\277\277\277",   format_char_id(0x1FFFFF))
49     assert_equal("?\373\277\277\277\277",       format_char_id(0x3FFFFFF))
50     assert_equal("?\374\217\277\277\277\277",   format_char_id(0xFFFFFFF))
51   end
52 end