3 class TestISO8859 < Test::Unit::TestCase
5 assert_match(/^(\xdf)\1$/i, "\xdf\xdf")
6 assert_match(/^(\xdf)\1$/i, "ssss")
7 # assert_match(/^(\xdf)\1$/i, "\xdfss") # this must be bug...
8 assert_match(/^[\xdfz]+$/i, "sszzsszz")
9 assert_match(/^SS$/i, "\xdf")
10 assert_match(/^Ss$/i, "\xdf")
11 ((0xc0..0xde).to_a - [0xd7]).each do |c|
12 c1 = c.chr("ENCODING")
13 c2 = (c + 0x20).chr("ENCODING")
14 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
15 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
16 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
17 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
19 assert_match(/^\xff$/i, "\xff")
23 eval("# encoding: iso8859-1\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-1"))
27 eval("# encoding: iso8859-2\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-2"))
31 eval(%q(# encoding: iso8859-3
32 assert_match(/^(\xdf)\1$/i, "\xdf\xdf")
33 assert_match(/^(\xdf)\1$/i, "ssss")
34 assert_match(/^[\xdfz]+$/i, "sszzsszz")
35 assert_match(/^SS$/i, "\xdf")
36 assert_match(/^Ss$/i, "\xdf")
37 [0xa1, 0xa6, *(0xa9..0xac), 0xaf].each do |c|
38 c1 = c.chr("iso8859-3")
39 c2 = (c + 0x10).chr("iso8859-3")
40 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
41 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
42 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
43 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
45 ([*(0xc0..0xde)] - [0xc3, 0xd0, 0xd7]).each do |c|
46 c1 = c.chr("iso8859-3")
47 c2 = (c + 0x20).chr("iso8859-3")
48 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
49 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
50 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
51 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
57 eval("# encoding: iso8859-4\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-4"))
61 eval(%q(# encoding: iso8859-5
62 (0xb0..0xcf).each do |c|
63 c1 = c.chr("iso8859-5")
64 c2 = (c + 0x20).chr("iso8859-5")
65 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
66 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
67 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
68 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
70 ((0xa1..0xaf).to_a - [0xad]).each do |c|
71 c1 = c.chr("iso8859-5")
72 c2 = (c + 0x50).chr("iso8859-5")
73 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
74 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
75 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
76 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
82 eval(%q(# encoding: iso8859-6
83 [0xa4, 0xac, 0xbb, 0xbf, *(0xc1..0xda), *(0xe0..0xf2)].each do |c|
84 c1 = c.chr("iso8859-6")
85 assert_match(/^(#{ c1 })\1$/i, c1 * 2)
91 eval(%q(# encoding: iso8859-7
92 ((0xa0..0xfe).to_a - [0xae, 0xd2]).each do |c|
93 c1 = c.chr("iso8859-7")
94 assert_match(/^(#{ c1 })\1$/i, c1 * 2)
96 ((0xc1..0xd9).to_a - [0xd2]).each do |c|
97 c1 = c.chr("iso8859-7")
98 c2 = (c + 0x20).chr("iso8859-7")
99 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
100 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
101 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
102 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
108 eval(%q(# encoding: iso8859-8
109 [0xa0, *(0xa2..0xbe), *(0xdf..0xfa), 0xfc, 0xfd].each do |c|
110 c1 = c.chr("iso8859-8")
111 assert_match(/^(#{ c1 })\1$/i, c1 * 2)
117 eval(%q(# encoding: iso8859-9
118 assert_match(/^(\xdf)\1$/i, "\xdf\xdf")
119 assert_match(/^(\xdf)\1$/i, "ssss")
120 assert_match(/^[\xdfz]+$/i, "sszzsszz")
121 assert_match(/^SS$/i, "\xdf")
122 assert_match(/^Ss$/i, "\xdf")
123 ([*(0xc0..0xdc)] - [0xd7]).each do |c|
124 c1 = c.chr("iso8859-9")
125 c2 = (c + 0x20).chr("iso8859-9")
126 assert_match(/^(#{ c1 })\1$/i, c2 + c1)
127 assert_match(/^(#{ c2 })\1$/i, c1 + c2)
128 assert_match(/^[#{ c1 }]+$/i, c2 + c1)
129 assert_match(/^[#{ c2 }]+$/i, c1 + c2)
135 eval("# encoding: iso8859-10\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-10"))
139 eval(%q(# encoding: iso8859-11
140 [*(0xa0..0xda), *(0xdf..0xfb)].each do |c|
141 c1 = c.chr("iso8859-11")
142 assert_match(/^(#{ c1 })\1$/i, c1 * 2)
148 eval("# encoding: iso8859-13\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-13"))
152 eval("# encoding: iso8859-14\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-14"))
156 eval("# encoding: iso8859-15\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-15"))
160 eval("# encoding: iso8859-16\n" + ASSERTS.gsub(/ENCODING/m, "iso8859-16"))