# t/004_ord2alt.t - verify that alternate names are returned correctlu
#
# $Id: 004_ord2alt.t,v 1.1 2004/02/18 13:56:28 coar Exp $
#
# CPAN module Convert::ASCIInames
#
# Copyright 2004 Ken A L Coar
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this package or any files in it except in
# compliance with the License. A copy of the License should be
# included as part of the package; the normative version may be
# obtained a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
use Test::More;
use Convert::ASCIInames;
my $res;
my $fallthrough = 1;
my %altnames = (
0x09 => 'TAB',
0x11 => 'XON',
0x13 => 'XOFF',
0x20 => 'SP',
0x00 => 'NUL', # Not an alternate name, so should fall through
# to the regular name
0x2a => chr(0x2a), # Not a special character
);
plan(tests => 512);
Convert::ASCIInames::Configure(fallthrough => $fallthrough);
runem();
$fallthrough = 0;
Convert::ASCIInames::Configure(fallthrough => $fallthrough);
$altnames{0x00} = chr(0x00);
runem();
sub runem {
for (my $ord = 0; $ord < 256; $ord++) {
my $expected = (defined($altnames{$ord})
? $altnames{$ord}
: ($fallthrough
? ASCIIname($ord)
: chr($ord)));
$res = ASCIIaltname($ord);
ok($res eq $expected, "ASCIIaltname($ord) == '$expected'; got '$res'");
}
}
__END__
#
# Local Variables:
# mode: cperl
# tab-width: 4
# indent-tabs-mode: nil
# End:
#