Upgrade to podlators 1.13.
[p5sagit/p5-mst-13.2.git] / lib / encoding.t
index 40d97a2..8b14c88 100644 (file)
@@ -1,24 +1,84 @@
-print "1..3\n";
+print "1..19\n";
 
 use encoding "latin1"; # ignored (overwritten by the next line)
 use encoding "greek";  # iso 8859-7 (no "latin" alias, surprise...)
 
+# "greek" is "ISO 8859-7", and \xDF in ISO 8859-7 is
+# \x{3AF} in Unicode (GREEK SMALL LETTER IOTA WITH TONOS),
+# instead of \xDF in Unicode (LATIN SMALL LETTER SHARP S)
+
 $a = "\xDF";
 $b = "\x{100}";
 
-my $c = $a . $b;
+print "not " unless ord($a) == 0x3af;
+print "ok 1\n";
 
-# "greek" is "ISO 8859-7", and \xDF in ISO 8859-7 is
-# \x{3AF} in Unicode (GREEK SMALL LETTER IOTA WITH TONOS),
-# instead of \xDF in Unicode (LATIN SMALL LETTER SHARP S)
+print "not " unless ord($b) == 0x100;
+print "ok 2\n";
+
+my $c;
+
+$c = $a . $b;
 
 print "not " unless ord($c) == 0x3af;
-print "ok 1\n";
+print "ok 3\n";
 
 print "not " unless length($c) == 2;
-print "ok 2\n";
+print "ok 4\n";
 
 print "not " unless ord(substr($c, 1, 1)) == 0x100;
-print "ok 3\n";
+print "ok 5\n";
+
+print "not " unless ord(chr(0xdf)) == 0x3af; # spooky
+print "ok 6\n";
+
+print "not " unless ord(pack("C", 0xdf)) == 0x3af;
+print "ok 7\n";
+
+# we didn't break pack/unpack, I hope
+
+print "not " unless unpack("C", pack("C", 0xdf)) == 0xdf;
+print "ok 8\n";
+
+# the first octet of UTF-8 encoded 0x3af 
+print "not " unless unpack("C", chr(0xdf)) == 0xce;
+print "ok 9\n";
+
+print "not " unless unpack("U", pack("U", 0xdf)) == 0xdf;
+print "ok 10\n";
+
+print "not " unless unpack("U", chr(0xdf)) == 0x3af;
+print "ok 11\n";
+
+# charnames must still work
+use charnames ':full';
+print "not " unless ord("\N{LATIN SMALL LETTER SHARP S}") == 0xdf;
+print "ok 12\n";
+
+# combine
+
+$c = "\xDF\N{LATIN SMALL LETTER SHARP S}" . chr(0xdf);
+
+print "not " unless ord($c) == 0x3af;
+print "ok 13\n";
+
+print "not " unless ord(substr($c, 1, 1)) == 0xdf;
+print "ok 14\n";
+
+print "not " unless ord(substr($c, 2, 1)) == 0x3af;
+print "ok 15\n";
+
+# regex literals
+
+print "not " unless "\xDF"    =~ /\x{3AF}/;
+print "ok 16\n";
+
+print "not " unless "\x{3AF}" =~ /\xDF/;
+print "ok 17\n";
+
+print "not " unless "\xDF"    =~ /\xDF/;
+print "ok 18\n";
 
+print "not " unless "\x{3AF}" =~ /\x{3AF}/;
+print "ok 19\n";