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 => 72; | |
11 | ||
55673181 | 12 | no warnings 'deprecated'; |
9e08bc66 TS |
13 | use encoding "greek"; # iso 8859-7 |
14 | ||
15 | # U+0391, \xC1, \301, GREEK CAPITAL LETTER ALPHA | |
16 | # U+03B1, \xE1, \341, GREEK SMALL LETTER ALPHA | |
17 | ||
18 | ok("\xC1" =~ /\xC1/, '\xC1 to /\xC1/'); | |
19 | ok("\x{391}" =~ /\xC1/, '\x{391} to /\xC1/'); | |
20 | ok("\xC1" =~ /\x{C1}/, '\xC1 to /\x{C1}/'); | |
21 | ok("\x{391}" =~ /\x{C1}/, '\x{391} to /\x{C1}/'); | |
22 | ok("\xC1" =~ /\301/, '\xC1 to /\301/'); | |
23 | ok("\x{391}" =~ /\301/, '\x{391} to /\301/'); | |
24 | ok("\xC1" =~ /\x{391}/, '\xC1 to /\x{391}/'); | |
25 | ok("\x{391}" =~ /\x{391}/, '\x{391} to /\x{391}/'); | |
26 | ||
27 | ok("\xC1" =~ /\xC1/i, '\xC1 to /\xC1/i'); | |
28 | ok("\xE1" =~ /\xC1/i, '\xE1 to /\xC1/i'); | |
29 | ok("\xC1" =~ /\xE1/i, '\xC1 to /\xE1/i'); | |
30 | ok("\xE1" =~ /\xE1/i, '\xE1 to /\xE1/i'); | |
31 | ok("\xC1" =~ /\x{391}/i, '\xC1 to /\x{391}/i'); | |
32 | ok("\xE1" =~ /\x{391}/i, '\xE1 to /\x{391}/i'); | |
33 | ok("\xC1" =~ /\x{3B1}/i, '\xC1 to /\x{3B1}/i'); | |
34 | ok("\xE1" =~ /\x{3B1}/i, '\xE1 to /\x{3B1}/i'); | |
35 | ||
36 | ok("\xC1" =~ /[\xC1]/, '\xC1 to /[\xC1]/'); | |
37 | ok("\x{391}" =~ /[\xC1]/, '\x{391} to /[\xC1]/'); | |
38 | ok("\xC1" =~ /[\x{C1}]/, '\xC1 to /[\x{C1}]/'); | |
39 | ok("\x{391}" =~ /[\x{C1}]/, '\x{391} to /[\x{C1}]/'); | |
40 | ok("\xC1" =~ /[\301]/, '\xC1 to /[\301]/'); | |
41 | ok("\x{391}" =~ /[\301]/, '\x{391} to /[\301]/'); | |
42 | ok("\xC1" =~ /[\x{391}]/, '\xC1 to /[\x{391}]/'); | |
43 | ok("\x{391}" =~ /[\x{391}]/, '\x{391} to /[\x{391}]/'); | |
44 | ||
45 | ok("\xC1" =~ /[\xC1]/i, '\xC1 to /[\xC1]/i'); | |
46 | ok("\xE1" =~ /[\xC1]/i, '\xE1 to /[\xC1]/i'); | |
47 | ok("\xC1" =~ /[\xE1]/i, '\xC1 to /[\xE1]/i'); | |
48 | ok("\xE1" =~ /[\xE1]/i, '\xE1 to /[\xE1]/i'); | |
49 | ok("\xC1" =~ /[\x{391}]/i, '\xC1 to /[\x{391}]/i'); | |
50 | ok("\xE1" =~ /[\x{391}]/i, '\xE1 to /[\x{391}]/i'); | |
51 | ok("\xC1" =~ /[\x{3B1}]/i, '\xC1 to /[\x{3B1}]/i'); | |
52 | ok("\xE1" =~ /[\x{3B1}]/i, '\xE1 to /[\x{3B1}]/i'); | |
53 | ||
54 | ok("\xC1" =~ '\xC1', '\xC1 to \'\xC1\''); | |
55 | ok("\xC1" =~ '\x{C1}', '\xC1 to \'\x{C1}\''); | |
56 | ok("\xC1" =~ '\301', '\xC1 to \'\301\''); | |
57 | ok("\xC1" =~ '\x{391}', '\xC1 to \'\x{391}\''); | |
58 | ok("\xC1" =~ '[\xC1]', '\xC1 to \'[\xC1]\''); | |
59 | ok("\xC1" =~ '[\x{C1}]', '\xC1 to \'[\x{C1}]\''); | |
60 | ok("\xC1" =~ '[\301]', '\xC1 to \'[\301]\''); | |
61 | ok("\xC1" =~ '[\x{391}]', '\xC1 to \'[\x{391}]\''); | |
62 | ||
63 | ok("\xC1" =~ /Á/, '\xC1 to /<ALPHA>/'); | |
64 | ok("\xE1" !~ /Á/, '\xE1 to /<ALPHA>/'); | |
65 | ok("\xC1" =~ /Á/i, '\xC1 to /<ALPHA>/i'); | |
66 | ok("\xE1" =~ /Á/i, '\xE1 to /<ALPHA>/i'); | |
67 | ok("\xC1" =~ /[Á]/, '\xC1 to /[<ALPHA>]/'); | |
68 | ok("\xE1" !~ /[Á]/, '\xE1 to /[<ALPHA>]/'); | |
69 | ok("\xC1" =~ /[Á]/i, '\xC1 to /[<ALPHA>]/i'); | |
70 | ok("\xE1" =~ /[Á]/i, '\xE1 to /[<ALPHA>]/i'); | |
71 | ||
72 | ok("\xC1\xC1" =~ /Á\xC1/, '\xC1\xC1 to /<ALPHA>\xC1/'); | |
73 | ok("\xC1\xC1" =~ /\xC1Á/, '\xC1\xC1 to /\xC1<ALPHA>/'); | |
74 | ok("\xC1\xC1" =~ /Á\xC1/i, '\xC1\xC1 to /<ALPHA>\xC1/i'); | |
75 | ok("\xC1\xC1" =~ /\xC1Á/i, '\xC1\xC1 to /\xC1<ALPHA>/i'); | |
76 | ok("\xC1\xE1" =~ /Á\xC1/i, '\xC1\xE1 to /<ALPHA>\xC1/i'); | |
77 | ok("\xC1\xE1" =~ /\xC1Á/i, '\xC1\xE1 to /\xC1<ALPHA>/i'); | |
78 | ok("\xE1\xE1" =~ /Á\xC1/i, '\xE1\xE1 to /<ALPHA>\xC1/i'); | |
79 | ok("\xE1\xE1" =~ /\xC1Á/i, '\xE1\xE1 to /\xC1<ALPHA>/i'); | |
80 | ||
81 | # U+038A, \xBA, GREEK CAPITAL LETTER IOTA WITH TONOS | |
82 | # U+03AF, \xDF, GREEK SMALL LETTER IOTA WITH TONOS | |
83 | ||
84 | ok("\x{38A}" =~ /\xBA/, '\x{38A} to /\xBA/'); | |
85 | ok("\x{38A}" !~ /\xDF/, '\x{38A} to /\xDF/'); | |
86 | ok("\x{38A}" =~ /\xBA/i, '\x{38A} to /\xBA/i'); | |
87 | ok("\x{38A}" =~ /\xDF/i, '\x{38A} to /\xDF/i'); | |
88 | ok("\x{38A}" =~ /[\xBA]/, '\x{38A} to /[\xBA]/'); | |
89 | ok("\x{38A}" !~ /[\xDF]/, '\x{38A} to /[\xDF]/'); | |
90 | ok("\x{38A}" =~ /[\xBA]/i, '\x{38A} to /[\xBA]/i'); | |
91 | ok("\x{38A}" =~ /[\xDF]/i, '\x{38A} to /[\xDF]/i'); | |
92 | ||
93 | # \xDF is not LATIN SMALL LETTER SHARP S | |
94 | ||
95 | ok("SS" !~ /\xDF/i, 'SS to /\xDF/i'); | |
96 | ok("Ss" !~ /\xDF/i, 'Ss to /\xDF/i'); | |
97 | ok("sS" !~ /\xDF/i, 'sS to /\xDF/i'); | |
98 | ok("ss" !~ /\xDF/i, 'ss to /\xDF/i'); | |
99 | ok("SS" !~ /ß/i, 'SS to /<iota-tonos>/i'); | |
100 | ok("Ss" !~ /ß/i, 'Ss to /<iota-tonos>/i'); | |
101 | ok("sS" !~ /ß/i, 'sS to /<iota-tonos>/i'); | |
102 | ok("ss" !~ /ß/i, 'ss to /<iota-tonos>/i'); | |
103 |