Commit | Line | Data |
---|---|---|
b5b7b9ad NC |
1 | #!./perl -w |
2 | ||
9e08bc66 | 3 | BEGIN { |
9e08bc66 | 4 | require './test.pl'; |
273be65c | 5 | skip_all_without_dynamic_extension('Encode'); |
b5b7b9ad NC |
6 | skip_all("EBCDIC") if $::IS_EBCDIC; |
7 | skip_all_without_perlio(); | |
9e08bc66 TS |
8 | } |
9 | ||
10 | plan tests => 94; | |
11 | ||
12 | use encoding "latin2"; # iso 8859-2 | |
13 | ||
14 | # U+00C1, \xC1, \301, LATIN CAPITAL LETTER A WITH ACUTE | |
15 | # U+0102, \xC3, \402, LATIN CAPITAL LETTER A WITH BREVE | |
16 | # U+00E1, \xE1, \303, LATIN SMALL LETTER A WITH ACUTE | |
17 | # U+0103, \xE3, \403, LATIN SMALL LETTER A WITH BREVE | |
18 | ||
19 | ok("\xC1" =~ /\xC1/, '\xC1 to /\xC1/'); | |
20 | ok("\x{C1}" =~ /\x{C1}/, '\x{C1} to /\x{C1}/'); | |
21 | ok("\xC3" =~ /\xC3/, '\xC3 to /\xC3/'); | |
22 | ok("\x{102}" =~ /\xC3/, '\x{102} to /\xC3/'); | |
23 | ok("\xC3" =~ /\x{C3}/, '\xC3 to /\x{C3}/'); | |
24 | ok("\x{102}" =~ /\x{C3}/, '\x{102} to /\x{C3}/'); | |
25 | ok("\xC3" =~ /\x{102}/, '\xC3 to /\x{102}/'); | |
26 | ok("\x{102}" =~ /\x{102}/, '\x{102} to /\x{102}/'); | |
27 | ||
28 | ok("\xC1" =~ /\xC1/i, '\xC1 to /\xC1/i'); | |
29 | ok("\xE1" =~ /\xC1/i, '\xE1 to /\xC1/i'); | |
30 | ok("\xC1" =~ /\xE1/i, '\xC1 to /\xE1/i'); | |
31 | ok("\xE1" =~ /\xE1/i, '\xE1 to /\xE1/i'); | |
32 | ok("\x{102}" =~ /\xC3/i, '\x{102} to /\xC3/i'); | |
33 | ok("\x{103}" =~ /\xC3/i, '\x{103} to /\xC3/i'); | |
34 | ok("\x{102}" =~ /\xE3/i, '\x{102} to /\xE3/i'); | |
35 | ok("\x{103}" =~ /\xE3/i, '\x{103} to /\xE3/i'); | |
36 | ||
37 | ok("\xC1" =~ /[\xC1]/, '\xC1 to /[\xC1]/'); | |
38 | ok("\x{C1}" =~ /[\x{C1}]/, '\x{C1} to /[\x{C1}]/'); | |
39 | ok("\xC3" =~ /[\xC3]/, '\xC3 to /[\xC3]/'); | |
40 | ok("\x{102}" =~ /[\xC3]/, '\x{102} to /[\xC3]/'); | |
41 | ok("\xC3" =~ /[\x{C3}]/, '\xC3 to /[\x{C3}]/'); | |
42 | ok("\x{102}" =~ /[\x{C3}]/, '\x{102} to /[\x{C3}]/'); | |
43 | ok("\xC3" =~ /[\x{102}]/, '\xC3 to /[\x{102}]/'); | |
44 | ok("\x{102}" =~ /[\x{102}]/, '\x{102} to /[\x{102}]/'); | |
45 | ||
46 | ok("\xC1" =~ /[\xC1]/i, '\xC1 to /[\xC1]/i'); | |
47 | ok("\xE1" =~ /[\xC1]/i, '\xE1 to /[\xC1]/i'); | |
48 | ok("\xC1" =~ /[\xE1]/i, '\xC1 to /[\xE1]/i'); | |
49 | ok("\xE1" =~ /[\xE1]/i, '\xE1 to /[\xE1]/i'); | |
50 | ok("\x{102}" =~ /[\xC3]/i, '\x{102} to /[\xC3]/i'); | |
51 | ok("\x{103}" =~ /[\xC3]/i, '\x{103} to /[\xC3]/i'); | |
52 | ok("\x{102}" =~ /[\xE3]/i, '\x{102} to /[\xE3]/i'); | |
53 | ok("\x{103}" =~ /[\xE3]/i, '\x{103} to /[\xE3]/i'); | |
54 | ||
55 | ok("\xC1" =~ '\xC1', '\xC1 to \'\xC1\''); | |
56 | ok("\xC1" =~ '\x{C1}', '\xC1 to \'\x{C1}\''); | |
57 | ok("\xC3" =~ '\303', '\xC3 to \'\303\''); | |
58 | ok("\xC3" =~ '\x{102}', '\xC3 to \'\x{102}\''); | |
59 | ok("\xC1" =~ '[\xC1]', '\xC1 to \'[\xC1]\''); | |
60 | ok("\xC1" =~ '[\x{C1}]', '\xC1 to \'[\x{C1}]\''); | |
61 | ok("\xC3" =~ '[\303]', '\xC3 to \'[\303]\''); | |
62 | ok("\xC3" =~ '[\x{102}]', '\xC3 to \'[\x{102}]\''); | |
63 | ||
64 | ok("\xC1" =~ /Á/, '\xC1 to /<A-acute>/'); | |
65 | ok("\xE1" !~ /Á/, '\xE1 to /<A-acute>/'); | |
66 | ok("\xC1" =~ /Á/i, '\xC1 to /<A-acute>/i'); | |
67 | ok("\xE1" =~ /Á/i, '\xE1 to /<A-acute>/i'); | |
68 | ok("\xC1" =~ /[Á]/, '\xC1 to /[<A-acute>]/'); | |
69 | ok("\xE1" !~ /[Á]/, '\xE1 to /[<A-acute>]/'); | |
70 | ok("\xC1" =~ /[Á]/i, '\xC1 to /[<A-acute>]/i'); | |
71 | ok("\xE1" =~ /[Á]/i, '\xE1 to /[<A-acute>]/i'); | |
72 | ||
73 | ok("\xC1\xC1" =~ /Á\xC1/, '\xC1\xC1 to /<A-acute>\xC1/'); | |
74 | ok("\xC1\xC1" =~ /\xC1Á/, '\xC1\xC1 to /\xC1<A-acute>/'); | |
75 | ok("\xC1\xC1" =~ /Á\xC1/i, '\xC1\xC1 to /<A-acute>\xC1/i'); | |
76 | ok("\xC1\xC1" =~ /\xC1Á/i, '\xC1\xC1 to /\xC1<A-acute>/i'); | |
77 | ok("\xC1\xE1" =~ /Á\xC1/i, '\xC1\xE1 to /<A-acute>\xC1/i'); | |
78 | ok("\xC1\xE1" =~ /\xC1Á/i, '\xC1\xE1 to /\xC1<A-acute>/i'); | |
79 | ok("\xE1\xE1" =~ /Á\xC1/i, '\xE1\xE1 to /<A-acute>\xC1/i'); | |
80 | ok("\xE1\xE1" =~ /\xC1Á/i, '\xE1\xE1 to /\xC1<A-acute>/i'); | |
81 | ||
82 | # \xDF is LATIN SMALL LETTER SHARP S | |
83 | ||
84 | ok("\xDF" =~ /\xDF/, '\xDF to /\xDF/'); | |
85 | ok("\xDF" =~ /\xDF/i, '\xDF to /\xDF/i'); | |
86 | ok("\xDF" =~ /[\xDF]/, '\xDF to /[\xDF]/'); | |
87 | ok("\xDF" =~ /[\xDF]/i, '\xDF to /[\xDF]/i'); | |
88 | ok("\xDF" =~ /ß/, '\xDF to /<sharp-s>/'); | |
89 | ok("\xDF" =~ /ß/i, '\xDF to /<sharp-s>/i'); | |
90 | ok("\xDF" =~ /[ß]/, '\xDF to /[<sharp-s>]/'); | |
91 | ok("\xDF" =~ /[ß]/i, '\xDF to /[<sharp-s>]/i'); | |
92 | ||
93 | ok("SS" =~ /\xDF/i, 'SS to /\xDF/i'); | |
94 | ok("Ss" =~ /\xDF/i, 'Ss to /\xDF/i'); | |
95 | ok("sS" =~ /\xDF/i, 'sS to /\xDF/i'); | |
96 | ok("ss" =~ /\xDF/i, 'ss to /\xDF/i'); | |
97 | ok("SS" =~ /ß/i, 'SS to /<sharp-s>/i'); | |
98 | ok("Ss" =~ /ß/i, 'Ss to /<sharp-s>/i'); | |
99 | ok("sS" =~ /ß/i, 'sS to /<sharp-s>/i'); | |
100 | ok("ss" =~ /ß/i, 'ss to /<sharp-s>/i'); | |
101 | ||
102 | ok("\xC3" =~ /\303/, '\xC1 to /\303/'); | |
103 | ok("\303" =~ /\303/, '\303 to /\303/'); | |
104 | ok("\xC3" =~ /\303/i, '\xC1 to /\303/i'); | |
105 | ok("\xE3" =~ /\303/i, '\xC1 to /\303/i'); | |
106 | ok("\xC3" =~ /[\303]/, '\xC1 to /[\303]/'); | |
107 | ok("\303" =~ /[\303]/, '\303 to /[\303]/'); | |
108 | ok("\xC3" =~ /[\303]/i, '\xC1 to /[\303]/i'); | |
109 | ok("\xE3" =~ /[\303]/i, '\xC1 to /[\303]/i'); | |
110 | ||
111 | ok("\xC3" =~ /\402/, '\xC1 to /\402/'); | |
112 | ok("\402" =~ /\402/, '\402 to /\402/'); | |
113 | ok("\xC3" =~ /\402/i, '\xC1 to /\402/i'); | |
114 | ok("\xE3" =~ /\402/i, '\xC1 to /\402/i'); | |
115 | ok("\xC3" =~ /[\402]/, '\xC1 to /[\402]/'); | |
116 | ok("\402" =~ /[\402]/, '\402 to /[\402]/'); | |
117 | ok("\xC3" =~ /[\402]/i, '\xC1 to /[\402]/i'); | |
118 | ok("\xE3" =~ /[\402]/i, '\xC1 to /[\402]/i'); | |
119 | ||
120 | { | |
121 | my $re = '(?i:\xC1)'; | |
122 | ||
123 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1)'); | |
124 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1)'); | |
125 | ||
126 | utf8::downgrade($re); | |
127 | ||
128 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1) down'); | |
129 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1) down'); | |
130 | ||
131 | utf8::upgrade($re); | |
132 | ||
133 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1) up'); | |
134 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1) up'); | |
135 | } | |
136 |