installperl patch
[p5sagit/p5-mst-13.2.git] / t / uni / greek.t
CommitLineData
9e08bc66 1BEGIN {
2 if ($ENV{'PERL_CORE'}){
3 chdir 't';
4 @INC = '../lib';
5 }
6 require Config; import Config;
7 if ($Config{'extensions'} !~ /\bEncode\b/) {
8 print "1..0 # Skip: Encode was not built\n";
9 exit 0;
10 }
11 if (ord("A") == 193) {
12 print "1..0 # Skip: EBCDIC\n";
13 exit 0;
14 }
15 unless (PerlIO::Layer->find('perlio')){
16 print "1..0 # Skip: PerlIO required\n";
17 exit 0;
18 }
19 if ($ENV{PERL_CORE_MINITEST}) {
20 print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n";
21 exit 0;
22 }
23 $| = 1;
24 require './test.pl';
25}
26
27plan tests => 72;
28
29use encoding "greek"; # iso 8859-7
30
31# U+0391, \xC1, \301, GREEK CAPITAL LETTER ALPHA
32# U+03B1, \xE1, \341, GREEK SMALL LETTER ALPHA
33
34ok("\xC1" =~ /\xC1/, '\xC1 to /\xC1/');
35ok("\x{391}" =~ /\xC1/, '\x{391} to /\xC1/');
36ok("\xC1" =~ /\x{C1}/, '\xC1 to /\x{C1}/');
37ok("\x{391}" =~ /\x{C1}/, '\x{391} to /\x{C1}/');
38ok("\xC1" =~ /\301/, '\xC1 to /\301/');
39ok("\x{391}" =~ /\301/, '\x{391} to /\301/');
40ok("\xC1" =~ /\x{391}/, '\xC1 to /\x{391}/');
41ok("\x{391}" =~ /\x{391}/, '\x{391} to /\x{391}/');
42
43ok("\xC1" =~ /\xC1/i, '\xC1 to /\xC1/i');
44ok("\xE1" =~ /\xC1/i, '\xE1 to /\xC1/i');
45ok("\xC1" =~ /\xE1/i, '\xC1 to /\xE1/i');
46ok("\xE1" =~ /\xE1/i, '\xE1 to /\xE1/i');
47ok("\xC1" =~ /\x{391}/i, '\xC1 to /\x{391}/i');
48ok("\xE1" =~ /\x{391}/i, '\xE1 to /\x{391}/i');
49ok("\xC1" =~ /\x{3B1}/i, '\xC1 to /\x{3B1}/i');
50ok("\xE1" =~ /\x{3B1}/i, '\xE1 to /\x{3B1}/i');
51
52ok("\xC1" =~ /[\xC1]/, '\xC1 to /[\xC1]/');
53ok("\x{391}" =~ /[\xC1]/, '\x{391} to /[\xC1]/');
54ok("\xC1" =~ /[\x{C1}]/, '\xC1 to /[\x{C1}]/');
55ok("\x{391}" =~ /[\x{C1}]/, '\x{391} to /[\x{C1}]/');
56ok("\xC1" =~ /[\301]/, '\xC1 to /[\301]/');
57ok("\x{391}" =~ /[\301]/, '\x{391} to /[\301]/');
58ok("\xC1" =~ /[\x{391}]/, '\xC1 to /[\x{391}]/');
59ok("\x{391}" =~ /[\x{391}]/, '\x{391} to /[\x{391}]/');
60
61ok("\xC1" =~ /[\xC1]/i, '\xC1 to /[\xC1]/i');
62ok("\xE1" =~ /[\xC1]/i, '\xE1 to /[\xC1]/i');
63ok("\xC1" =~ /[\xE1]/i, '\xC1 to /[\xE1]/i');
64ok("\xE1" =~ /[\xE1]/i, '\xE1 to /[\xE1]/i');
65ok("\xC1" =~ /[\x{391}]/i, '\xC1 to /[\x{391}]/i');
66ok("\xE1" =~ /[\x{391}]/i, '\xE1 to /[\x{391}]/i');
67ok("\xC1" =~ /[\x{3B1}]/i, '\xC1 to /[\x{3B1}]/i');
68ok("\xE1" =~ /[\x{3B1}]/i, '\xE1 to /[\x{3B1}]/i');
69
70ok("\xC1" =~ '\xC1', '\xC1 to \'\xC1\'');
71ok("\xC1" =~ '\x{C1}', '\xC1 to \'\x{C1}\'');
72ok("\xC1" =~ '\301', '\xC1 to \'\301\'');
73ok("\xC1" =~ '\x{391}', '\xC1 to \'\x{391}\'');
74ok("\xC1" =~ '[\xC1]', '\xC1 to \'[\xC1]\'');
75ok("\xC1" =~ '[\x{C1}]', '\xC1 to \'[\x{C1}]\'');
76ok("\xC1" =~ '[\301]', '\xC1 to \'[\301]\'');
77ok("\xC1" =~ '[\x{391}]', '\xC1 to \'[\x{391}]\'');
78
79ok("\xC1" =~ /Á/, '\xC1 to /<ALPHA>/');
80ok("\xE1" !~ /Á/, '\xE1 to /<ALPHA>/');
81ok("\xC1" =~ /Á/i, '\xC1 to /<ALPHA>/i');
82ok("\xE1" =~ /Á/i, '\xE1 to /<ALPHA>/i');
83ok("\xC1" =~ /[Á]/, '\xC1 to /[<ALPHA>]/');
84ok("\xE1" !~ /[Á]/, '\xE1 to /[<ALPHA>]/');
85ok("\xC1" =~ /[Á]/i, '\xC1 to /[<ALPHA>]/i');
86ok("\xE1" =~ /[Á]/i, '\xE1 to /[<ALPHA>]/i');
87
88ok("\xC1\xC1" =~ /Á\xC1/, '\xC1\xC1 to /<ALPHA>\xC1/');
89ok("\xC1\xC1" =~ /\xC1Á/, '\xC1\xC1 to /\xC1<ALPHA>/');
90ok("\xC1\xC1" =~ /Á\xC1/i, '\xC1\xC1 to /<ALPHA>\xC1/i');
91ok("\xC1\xC1" =~ /\xC1Á/i, '\xC1\xC1 to /\xC1<ALPHA>/i');
92ok("\xC1\xE1" =~ /Á\xC1/i, '\xC1\xE1 to /<ALPHA>\xC1/i');
93ok("\xC1\xE1" =~ /\xC1Á/i, '\xC1\xE1 to /\xC1<ALPHA>/i');
94ok("\xE1\xE1" =~ /Á\xC1/i, '\xE1\xE1 to /<ALPHA>\xC1/i');
95ok("\xE1\xE1" =~ /\xC1Á/i, '\xE1\xE1 to /\xC1<ALPHA>/i');
96
97# U+038A, \xBA, GREEK CAPITAL LETTER IOTA WITH TONOS
98# U+03AF, \xDF, GREEK SMALL LETTER IOTA WITH TONOS
99
100ok("\x{38A}" =~ /\xBA/, '\x{38A} to /\xBA/');
101ok("\x{38A}" !~ /\xDF/, '\x{38A} to /\xDF/');
102ok("\x{38A}" =~ /\xBA/i, '\x{38A} to /\xBA/i');
103ok("\x{38A}" =~ /\xDF/i, '\x{38A} to /\xDF/i');
104ok("\x{38A}" =~ /[\xBA]/, '\x{38A} to /[\xBA]/');
105ok("\x{38A}" !~ /[\xDF]/, '\x{38A} to /[\xDF]/');
106ok("\x{38A}" =~ /[\xBA]/i, '\x{38A} to /[\xBA]/i');
107ok("\x{38A}" =~ /[\xDF]/i, '\x{38A} to /[\xDF]/i');
108
109# \xDF is not LATIN SMALL LETTER SHARP S
110
111ok("SS" !~ /\xDF/i, 'SS to /\xDF/i');
112ok("Ss" !~ /\xDF/i, 'Ss to /\xDF/i');
113ok("sS" !~ /\xDF/i, 'sS to /\xDF/i');
114ok("ss" !~ /\xDF/i, 'ss to /\xDF/i');
115ok("SS" !~ /ß/i, 'SS to /<iota-tonos>/i');
116ok("Ss" !~ /ß/i, 'Ss to /<iota-tonos>/i');
117ok("sS" !~ /ß/i, 'sS to /<iota-tonos>/i');
118ok("ss" !~ /ß/i, 'ss to /<iota-tonos>/i');
119