# t/003_ord2name.t - verify that primary names are returned correctly
#
# $Id: 003_ord2name.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 %names = (
0x00 => 'NUL',
0x01 => 'SOH',
0x02 => 'STX',
0x03 => 'ETX',
0x04 => 'EOT',
0x05 => 'ENQ',
0x06 => 'ACK',
0x07 => 'BEL',
0x08 => 'BS',
0x09 => 'HT',
0x0a => 'LF',
0x0b => 'VT',
0x0c => 'FF',
0x0d => 'CR',
0x0e => 'SO',
0x0f => 'SI',
0x10 => 'DLE',
0x11 => 'DC1',
0x12 => 'DC2',
0x13 => 'DC3',
0x14 => 'DC4',
0x15 => 'NAK',
0x16 => 'SYN',
0x17 => 'ETB',
0x18 => 'CAN',
0x19 => 'EM',
0x1a => 'SUB',
0x1b => 'ESC',
0x1c => 'FS',
0x1d => 'GS',
0x1e => 'RS',
0x1f => 'US',
0x7f => 'DEL',
0x80 => 'RES1',
0x81 => 'RES2',
0x82 => 'RES3',
0x83 => 'RES4',
0x84 => 'IND',
0x85 => 'NEL',
0x86 => 'SSA',
0x87 => 'ESA',
0x88 => 'HTS',
0x89 => 'HTJ',
0x8a => 'VTS',
0x8b => 'PLD',
0x8c => 'PLU',
0x8d => 'RI',
0x8e => 'SS2',
0x8f => 'SS3',
0x90 => 'DCS',
0x91 => 'PU1',
0x92 => 'PU2',
0x93 => 'STS',
0x94 => 'CCH',
0x95 => 'MW',
0x96 => 'SPA',
0x97 => 'EPA',
0x98 => 'RES5',
0x99 => 'RES6',
0x9a => 'RES7',
0x9b => 'CSI',
0x9c => 'ST',
0x9d => 'OSC',
0x9e => 'PM',
0x9f => 'APC',
0x63 => chr(0x63), # Not a special character, fail to actual
);
plan(tests => 512);
Convert::ASCIInames::Configure(fallthrough => 0);
runem();
Convert::ASCIInames::Configure(fallthrough => 1);
$names{0x20} = 'SP';
runem();
sub runem {
for (my $ord = 0; $ord < 256; $ord++) {
my $expected = (defined($names{$ord}) ? $names{$ord} : chr($ord));
$res = ASCIIname($ord);
ok($res eq $expected, "ASCIIname($ord) == '$expected'; got '$res'");
}
}
__END__
#
# Local Variables:
# mode: cperl
# tab-width: 4
# indent-tabs-mode: nil
# End:
#