Rename ext/Unicode/Normalize to ext/Unicode-Normalize
[p5sagit/p5-mst-13.2.git] / ext / Unicode-Normalize / t / tie.t
1
2 BEGIN {
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
10 BEGIN {
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
19 BEGIN {
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
30 use Test;
31 use strict;
32 use warnings;
33 BEGIN { plan tests => 16 };
34
35 package tiescalar;
36 sub TIESCALAR {
37     my ($class, $instance) = @_;
38     return bless \$instance => $class;
39 }
40 sub FETCH   { return ${$_[0]}++ }
41 sub STORE   { return ${$_[0]} = $_[1] }
42 sub DESTROY { undef ${$_[0]} }
43
44 #########################
45
46 package main;
47
48 tie my $tie1, 'tiescalar', "123";
49 ok(NFD($tie1),  123);
50 ok(NFC($tie1),  124);
51 ok(NFKD($tie1), 125);
52 ok(NFKC($tie1), 126);
53 ok(FCD($tie1),  127);
54 ok(FCC($tie1),  128);
55
56 tie my $tie2, 'tiescalar', "256";
57 ok(normalize('NFD',  $tie2), 256);
58 ok(normalize('NFC',  $tie2), 257);
59 ok(normalize('NFKD', $tie2), 258);
60 ok(normalize('NFKC', $tie2), 259);
61 ok(normalize('FCD',  $tie2), 260);
62 ok(normalize('FCC',  $tie2), 261);
63
64 tie my $tie3, 'tiescalar', "315";
65 ok(decompose($tie3),         315);
66 ok(reorder($tie3),           316);
67 ok(compose($tie3),           317);
68 ok(composeContiguous($tie3), 318);
69