Rename ext/Unicode/Normalize to ext/Unicode-Normalize
[p5sagit/p5-mst-13.2.git] / ext / Unicode-Normalize / t / tie.t
CommitLineData
39f4556f 1
2BEGIN {
3 unless ("A" eq pack('U', 0x41)) {
4 print "1..0 # Unicode::Normalize " .
5 "cannot stringify a Unicode code point\n";
6 exit 0;
7 }
8}
9
10BEGIN {
11 if ($ENV{PERL_CORE}) {
12 chdir('t') if -d 't';
13 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
14 }
15}
16
17#########################
18
19BEGIN {
20 use Unicode::Normalize qw(:all);
21
22 unless (exists &Unicode::Normalize::bootstrap or 5.008 <= $]) {
23 print "1..0 # skipped: XSUB, or Perl 5.8.0 or later".
24 " needed for this test\n";
25 print $@;
26 exit;
27 }
28}
29
30use Test;
31use strict;
32use warnings;
33BEGIN { plan tests => 16 };
34
35package tiescalar;
36sub TIESCALAR {
37 my ($class, $instance) = @_;
38 return bless \$instance => $class;
39}
40sub FETCH { return ${$_[0]}++ }
41sub STORE { return ${$_[0]} = $_[1] }
42sub DESTROY { undef ${$_[0]} }
43
44#########################
45
46package main;
47
48tie my $tie1, 'tiescalar', "123";
49ok(NFD($tie1), 123);
50ok(NFC($tie1), 124);
51ok(NFKD($tie1), 125);
52ok(NFKC($tie1), 126);
53ok(FCD($tie1), 127);
54ok(FCC($tie1), 128);
55
56tie my $tie2, 'tiescalar', "256";
57ok(normalize('NFD', $tie2), 256);
58ok(normalize('NFC', $tie2), 257);
59ok(normalize('NFKD', $tie2), 258);
60ok(normalize('NFKC', $tie2), 259);
61ok(normalize('FCD', $tie2), 260);
62ok(normalize('FCC', $tie2), 261);
63
64tie my $tie3, 'tiescalar', "315";
65ok(decompose($tie3), 315);
66ok(reorder($tie3), 316);
67ok(compose($tie3), 317);
68ok(composeContiguous($tie3), 318);
69