2 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
6 class TestLibChise_R < Test::Unit::TestCase
7 include CHISE::ChiseValue
9 def test_parse_c_string
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") }
31 def test_format_char_id
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))