PATCH [perl #74978] dot after } breaks \N{}
[p5sagit/p5-mst-13.2.git] / t / uni / tr_sjis.t
CommitLineData
e4206093 1#!perl -w
0d55c8f7 2#
3# $Id$
4#
b536bf57 5# This script is written intentionally in Shift JIS
0d55c8f7 6# -- dankogai
7
8BEGIN {
0d55c8f7 9 require Config; import Config;
10 if ($Config{'extensions'} !~ /\bEncode\b/) {
11 print "1..0 # Skip: Encode was not built\n";
12 exit 0;
13 }
14 if (ord("A") == 193) {
15 print "1..0 # Skip: EBCDIC\n";
16 exit 0;
17 }
18 unless (PerlIO::Layer->find('perlio')){
19 print "1..0 # Skip: PerlIO required\n";
20 exit 0;
21 }
be8eafc6 22 if ($ENV{PERL_CORE_MINITEST}) {
23 print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n";
7aae9294 24 exit 0;
25 }
0d55c8f7 26 $| = 1;
e4206093 27 require './test.pl';
0d55c8f7 28}
29
30use strict;
e4206093 31plan(tests => 6);
0d55c8f7 32use encoding 'shiftjis';
33
34my @hiragana = map {chr} ord("‚Ÿ")..ord("‚ñ");
35my @katakana = map {chr} ord("ƒ@")..ord("ƒ“");
36my $hiragana = join('' => @hiragana);
37my $katakana = join('' => @katakana);
38my %h2k; @h2k{@hiragana} = @katakana;
39my %k2h; @k2h{@katakana} = @hiragana;
40
41# print @hiragana, "\n";
42
43my $str;
44
45$str = $hiragana; $str =~ tr/‚Ÿ-‚ñ/ƒ@-ƒ“/;
46is($str, $katakana, "tr// # hiragana -> katakana");
47$str = $katakana; $str =~ tr/ƒ@-ƒ“/‚Ÿ-‚ñ/;
48is($str, $hiragana, "tr// # hiragana -> katakana");
49
50$str = $hiragana; eval qq(\$str =~ tr/‚Ÿ-‚ñ/ƒ@-ƒ“/);
51is($str, $katakana, "eval qq(tr//) # hiragana -> katakana");
52$str = $katakana; eval qq(\$str =~ tr/ƒ@-ƒ“/‚Ÿ-‚ñ/);
53is($str, $hiragana, "eval qq(tr//) # hiragana -> katakana");
54
55$str = $hiragana; $str =~ s/([‚Ÿ-‚ñ])/$h2k{$1}/go;
56is($str, $katakana, "s/// # hiragana -> katakana");
57$str = $katakana; $str =~ s/([ƒ@-ƒ“])/$k2h{$1}/go;
58is($str, $hiragana, "s/// # hiragana -> katakana");
59__END__