#!./perl
BEGIN {
chdir
't'
if
-d
't'
;
@INC
=
'../lib'
;
}
print
q(1..30
)
;
my
$test
= 1;
sub
is {
my
(
$left
,
$right
) =
@_
;
if
(
$left
eq
$right
) {
printf
'ok
%d
',
$test
++;
return
1;
}
foreach
(
$left
,
$right
) {
s/([^-+A-Za-z_0-9])/
sprintf
q{'.chr(%d).'}
,
ord
$1/ge;
$_
=
sprintf
q('%s')
,
$_
;
s/^
''
\.//;
s/\.
''
$//;
}
printf
q(not ok %d - got %s expected %s
)
,
$test
++,
$left
,
$right
;
printf
q(# Failed test at line %d
)
, (
caller
)[2];
return
0;
}
is (
"\x53"
,
chr
83);
is (
"\x4EE"
,
chr
(78) .
'E'
);
is (
"\x4i"
,
chr
(4) .
'i'
);
is (
"\xh"
,
chr
(0) .
'h'
);
is (
"\xx"
,
chr
(0) .
'x'
);
is (
"\xx9"
,
chr
(0) .
'x9'
);
is (
"\x9_E"
,
chr
(9) .
'_E'
);
is (
"\x{4E}"
,
chr
78);
is (
"\x{ 4E }"
,
chr
78);
is (
"\x{6_9}"
,
chr
105);
is (
"\x{_6_3}"
,
chr
99);
is (
"\x{_6B}"
,
chr
107);
is (
"\x{9__0}"
,
chr
9);
is (
"\x{77_}"
,
chr
119);
is (
"\x{6FQ}z"
,
chr
(111) .
'z'
);
is (
"\x{0x4E}"
,
chr
0);
is (
"\x{x4E}"
,
chr
0);
is (
"\x{0065}"
,
chr
101);
is (
"\x{000000000000000000000000000000000000000000000000000000000000000072}"
,
chr
114);
is (
"\x{0_06_5}"
,
chr
101);
is (
"\x{1234}"
,
chr
4660);
is (
"\x{10FFFD}"
,
chr
1114109);
is (
"\400"
,
chr
0x100);
is (
"\600"
,
chr
0x180);
is (
"\777"
,
chr
0x1FF);
is (
"a\o{120}b"
,
"a"
.
chr
(0x50) .
"b"
);
is (
"a\o{ 120 }b"
,
"a"
.
chr
(0x50) .
"b"
);
is (
"a\o{400}b"
,
"a"
.
chr
(0x100) .
"b"
);
is (
"a\o{1000}b"
,
"a"
.
chr
(0x200) .
"b"
);
is (
"\x{}"
,
chr
(0));