Removed, no longer compatible with latest Ada 2005 issues.
From-SVN: r100938
This commit is contained in:
parent
ee133b6978
commit
e84b8cdf07
@ -1,270 +0,0 @@
|
||||
--
|
||||
-- C352001.A
|
||||
--
|
||||
-- Grant of Unlimited Rights
|
||||
--
|
||||
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
|
||||
-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
|
||||
-- unlimited rights in the software and documentation contained herein.
|
||||
-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
|
||||
-- this public release, the Government intends to confer upon all
|
||||
-- recipients unlimited rights equal to those held by the Government.
|
||||
-- These rights include rights to use, duplicate, release or disclose the
|
||||
-- released technical data and computer software in whole or in part, in
|
||||
-- any manner and for any purpose whatsoever, and to have or permit others
|
||||
-- to do so.
|
||||
--
|
||||
-- DISCLAIMER
|
||||
--
|
||||
-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
|
||||
-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
|
||||
-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
|
||||
-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
|
||||
-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
|
||||
-- PARTICULAR PURPOSE OF SAID MATERIAL.
|
||||
--*
|
||||
--
|
||||
-- OBJECTIVE:
|
||||
-- Check that the predefined Character type comprises 256 positions.
|
||||
-- Check that the names of the non-graphic characters are usable with
|
||||
-- the attributes (Wide_)Image and (Wide_)Value, and that these
|
||||
-- attributes produce the correct result.
|
||||
--
|
||||
-- TEST DESCRIPTION:
|
||||
-- Build two tables of nongraphic characters from positions of Row 00
|
||||
-- (0000-001F and 007F-009F) of the ISO 10646 Basic Multilingual Plane.
|
||||
-- Fill the first table with compiler created strings. Fill the second
|
||||
-- table with strings defined by the language. Compare the two tables.
|
||||
-- Check 256 positions of the predefined character type. Use attributes
|
||||
-- (Wide_)Image and (Wide_)Value to check the values of the non-graphic
|
||||
-- characters and the last 2 characters.
|
||||
--
|
||||
--
|
||||
-- CHANGE HISTORY:
|
||||
-- 20 Jun 95 SAIC Initial prerelease version.
|
||||
-- 27 Jan 96 SAIC Revised for 2.1. Hid values, added "del" case.
|
||||
--
|
||||
--!
|
||||
|
||||
with Ada.Characters.Handling;
|
||||
with Report;
|
||||
procedure C352001 is
|
||||
|
||||
Lower_Bound : Integer := 0;
|
||||
Middle_Bound : Integer := 31;
|
||||
Upper_Bound : Integer := 159;
|
||||
Half_Bound : Integer := 127;
|
||||
Max_Bound : Integer := 255;
|
||||
|
||||
type Dyn_String is access String;
|
||||
type Value_Result is array (Character) of Dyn_String;
|
||||
|
||||
Table_Of_Character : Value_Result;
|
||||
TC_Table : Value_Result;
|
||||
|
||||
function CVII(K : Natural) return Character is
|
||||
begin
|
||||
return Character'Val( Report.Ident_Int(K) );
|
||||
end CVII;
|
||||
|
||||
function "=" (L, R : String) return Boolean is
|
||||
UCL : String (L'First .. L'Last);
|
||||
UCR : String (R'First .. R'last);
|
||||
begin
|
||||
UCL := Ada.Characters.Handling.To_Upper (L);
|
||||
UCR := Ada.Characters.Handling.To_Upper (R);
|
||||
if UCL'Last /= UCR'Last then
|
||||
return False;
|
||||
else
|
||||
for I in UCL'First .. UCR'Last loop
|
||||
if UCL (I) /= UCR (I) then
|
||||
return False;
|
||||
end if;
|
||||
end loop;
|
||||
return True;
|
||||
end if;
|
||||
end "=";
|
||||
|
||||
begin
|
||||
|
||||
Report.Test ("C352001", "Check that, the predefined Character type " &
|
||||
"comprises 256 positions. Check that the names of the " &
|
||||
"non-graphic characters are usable with the attributes " &
|
||||
"(Wide_)Image and (Wide_)Value, and that these attributes " &
|
||||
"produce the correct result");
|
||||
|
||||
-- Fill table with strings (positions of Row 00 (0000-001F) of the ISO
|
||||
-- 10646 Basic Multilingual Plane created by the compiler.
|
||||
|
||||
for I in CVII(Lower_Bound) .. CVII(Middle_Bound) loop
|
||||
Table_Of_Character (I) := new String'(Character'Image(I));
|
||||
end loop;
|
||||
|
||||
-- Fill table with strings (positions of Row 00 (007F-009F) of the ISO
|
||||
-- 10646 Basic Multilingual Plane created by the compiler.
|
||||
|
||||
for I in CVII(Half_Bound) .. CVII(Upper_Bound) loop
|
||||
Table_Of_Character (I) := new String'(Character'Image(I));
|
||||
end loop;
|
||||
|
||||
-- Fill table with strings (positions of Row 00 (0000-001F) of the ISO
|
||||
-- 10646 Basic Multilingual Plane defined by the language.
|
||||
|
||||
TC_Table (CVII(0)) := new String'("nul");
|
||||
TC_Table (CVII(1)) := new String'("soh");
|
||||
TC_Table (CVII(2)) := new String'("stx");
|
||||
TC_Table (CVII(3)) := new String'("etx");
|
||||
TC_Table (CVII(4)) := new String'("eot");
|
||||
TC_Table (CVII(5)) := new String'("enq");
|
||||
TC_Table (CVII(6)) := new String'("ack");
|
||||
TC_Table (CVII(7)) := new String'("bel");
|
||||
TC_Table (CVII(8)) := new String'("bs");
|
||||
TC_Table (CVII(9)) := new String'("ht");
|
||||
TC_Table (CVII(10)) := new String'("lf");
|
||||
TC_Table (CVII(11)) := new String'("vt");
|
||||
TC_Table (CVII(12)) := new String'("ff");
|
||||
TC_Table (CVII(13)) := new String'("cr");
|
||||
TC_Table (CVII(14)) := new String'("so");
|
||||
TC_Table (CVII(15)) := new String'("si");
|
||||
TC_Table (CVII(16)) := new String'("dle");
|
||||
TC_Table (CVII(17)) := new String'("dc1");
|
||||
TC_Table (CVII(18)) := new String'("dc2");
|
||||
TC_Table (CVII(19)) := new String'("dc3");
|
||||
TC_Table (CVII(20)) := new String'("dc4");
|
||||
TC_Table (CVII(21)) := new String'("nak");
|
||||
TC_Table (CVII(22)) := new String'("syn");
|
||||
TC_Table (CVII(23)) := new String'("etb");
|
||||
TC_Table (CVII(24)) := new String'("can");
|
||||
TC_Table (CVII(25)) := new String'("em");
|
||||
TC_Table (CVII(26)) := new String'("sub");
|
||||
TC_Table (CVII(27)) := new String'("esc");
|
||||
TC_Table (CVII(28)) := new String'("fs");
|
||||
TC_Table (CVII(29)) := new String'("gs");
|
||||
TC_Table (CVII(30)) := new String'("rs");
|
||||
TC_Table (CVII(31)) := new String'("us");
|
||||
TC_Table (CVII(127)) := new String'("del");
|
||||
|
||||
-- Fill table with strings (positions of Row 00 (007F-009F) of the ISO
|
||||
-- 10646 Basic Multilingual Plane defined by the language.
|
||||
|
||||
TC_Table (CVII(128)) := new String'("reserved_128");
|
||||
TC_Table (CVII(129)) := new String'("reserved_129");
|
||||
TC_Table (CVII(130)) := new String'("bph");
|
||||
TC_Table (CVII(131)) := new String'("nbh");
|
||||
TC_Table (CVII(132)) := new String'("reserved_132");
|
||||
TC_Table (CVII(133)) := new String'("nel");
|
||||
TC_Table (CVII(134)) := new String'("ssa");
|
||||
TC_Table (CVII(135)) := new String'("esa");
|
||||
TC_Table (CVII(136)) := new String'("hts");
|
||||
TC_Table (CVII(137)) := new String'("htj");
|
||||
TC_Table (CVII(138)) := new String'("vts");
|
||||
TC_Table (CVII(139)) := new String'("pld");
|
||||
TC_Table (CVII(140)) := new String'("plu");
|
||||
TC_Table (CVII(141)) := new String'("ri");
|
||||
TC_Table (CVII(142)) := new String'("ss2");
|
||||
TC_Table (CVII(143)) := new String'("ss3");
|
||||
TC_Table (CVII(144)) := new String'("dcs");
|
||||
TC_Table (CVII(145)) := new String'("pu1");
|
||||
TC_Table (CVII(146)) := new String'("pu2");
|
||||
TC_Table (CVII(147)) := new String'("sts");
|
||||
TC_Table (CVII(148)) := new String'("cch");
|
||||
TC_Table (CVII(149)) := new String'("mw");
|
||||
TC_Table (CVII(150)) := new String'("spa");
|
||||
TC_Table (CVII(151)) := new String'("epa");
|
||||
TC_Table (CVII(152)) := new String'("sos");
|
||||
TC_Table (CVII(153)) := new String'("reserved_153");
|
||||
TC_Table (CVII(154)) := new String'("sci");
|
||||
TC_Table (CVII(155)) := new String'("csi");
|
||||
TC_Table (CVII(156)) := new String'("st");
|
||||
TC_Table (CVII(157)) := new String'("osc");
|
||||
TC_Table (CVII(158)) := new String'("pm");
|
||||
TC_Table (CVII(159)) := new String'("apc");
|
||||
|
||||
|
||||
-- Compare the first half of two tables.
|
||||
for I in CVII(Lower_Bound) .. CVII(Middle_Bound) loop
|
||||
if TC_Table(I).all /= Table_Of_Character(I).all then
|
||||
Report.Failed("Value of character#" & Integer'Image(Character'Pos(I)) &
|
||||
" is not the same in the first half of the table");
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
|
||||
-- Compare the second half of two tables.
|
||||
for I in CVII(Half_Bound) .. CVII(Upper_Bound) loop
|
||||
if TC_Table(I).all /= Table_Of_Character(I).all then
|
||||
Report.Failed("Value of character#" & Integer'Image(Character'Pos(I)) &
|
||||
" is not the same in the second half of the table");
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
|
||||
-- Check the first character.
|
||||
if Character'Image( Character'First ) /= "NUL" then
|
||||
Report.Failed("Value of character#" &
|
||||
Integer'Image(Character'Pos (Character'First)) &
|
||||
" is not NUL");
|
||||
end if;
|
||||
|
||||
|
||||
-- Check that the names of the non-graphic characters are usable with
|
||||
-- Image and Value attributes.
|
||||
if Character'Value( Character'Image( CVII(153) )) /=
|
||||
CVII( 153 ) then
|
||||
Report.Failed ("Value of character#" &
|
||||
Integer'Image( Character'Pos(CVII(153)) ) &
|
||||
" is not reserved_153");
|
||||
end if;
|
||||
|
||||
|
||||
for I in CVII(Lower_Bound) .. CVII(Max_Bound) loop
|
||||
if Character'Value(
|
||||
Report.Ident_Str(
|
||||
Character'Image(CVII(Character'Pos(I)))))
|
||||
/= CVII( Character'Pos(I)) then
|
||||
Report.Failed ("Value of character#" &
|
||||
Integer'Image( Character'Pos(I) ) &
|
||||
" is not the same as the predefined character type");
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
|
||||
-- Check Wide_Character attributes.
|
||||
for I in Wide_Character'Val(Lower_Bound) .. Wide_Character'Val(Max_Bound)
|
||||
loop
|
||||
if Wide_Character'Wide_Value(
|
||||
Report.Ident_Wide_Str(
|
||||
Wide_Character'Wide_Image(
|
||||
Wide_Character'Val(Wide_Character'Pos(I)))))
|
||||
/= Wide_Character'Val(Wide_Character'Pos(I))
|
||||
then
|
||||
Report.Failed ("Value of the predefined Wide_Character type " &
|
||||
"is not correct");
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
|
||||
if Wide_Character'Value( Wide_Character'Image(Wide_Character'Val(132)) )
|
||||
/= Wide_Character'Val( Report.Ident_Int(132) ) then
|
||||
Report.Failed ("Wide_Character at 132 is not reserved_132");
|
||||
end if;
|
||||
|
||||
|
||||
if Wide_Character'Image( Wide_Character'First ) /= "NUL" then
|
||||
Report.Failed ("Wide_Character'First is not NUL");
|
||||
end if;
|
||||
|
||||
|
||||
if Wide_Character'Image
|
||||
(Wide_Character'Pred (Wide_Character'Last) ) /= "FFFE" then
|
||||
Report.Failed ("Wide_Character at 65534 is not FFFE");
|
||||
end if;
|
||||
|
||||
|
||||
if Wide_Character'Image(Wide_Character'Last) /= "FFFF" then
|
||||
Report.Failed ("Wide_Character'Last is not FFFF");
|
||||
end if;
|
||||
|
||||
Report.Result;
|
||||
|
||||
end C352001;
|
Loading…
Reference in New Issue
Block a user