OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [cxa/] [cxa3001.a] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
-- CXA3001.A
-- CXA3001.A
--
--
--                             Grant of Unlimited Rights
--                             Grant of Unlimited Rights
--
--
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     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
--     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 in the software and documentation contained herein.
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
--     this public release, the Government intends to confer upon all
--     this public release, the Government intends to confer upon all
--     recipients unlimited rights  equal to those held by the Government.
--     recipients unlimited rights  equal to those held by the Government.
--     These rights include rights to use, duplicate, release or disclose the
--     These rights include rights to use, duplicate, release or disclose the
--     released technical data and computer software in whole or in part, in
--     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
--     any manner and for any purpose whatsoever, and to have or permit others
--     to do so.
--     to do so.
--
--
--                                    DISCLAIMER
--                                    DISCLAIMER
--
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--*
--
--
-- OBJECTIVE:
-- OBJECTIVE:
--      Check that the character classification functions defined in
--      Check that the character classification functions defined in
--      package Ada.Characters.Handling produce correct results when provided
--      package Ada.Characters.Handling produce correct results when provided
--      constant arguments from package Ada.Characters.Latin_1.
--      constant arguments from package Ada.Characters.Latin_1.
--
--
-- TEST DESCRIPTION:
-- TEST DESCRIPTION:
--      This test checks the character classification functions of package
--      This test checks the character classification functions of package
--      Ada.Characters.Handling.  In the evaluation of each function, loops
--      Ada.Characters.Handling.  In the evaluation of each function, loops
--      are constructed to examine the function with as many values of type
--      are constructed to examine the function with as many values of type
--      Character (Ada.Characters.Latin_1 constants) as possible in an
--      Character (Ada.Characters.Latin_1 constants) as possible in an
--      amount of code that is about equal to the amount of code required
--      amount of code that is about equal to the amount of code required
--      to examine the function with a few representative input values and
--      to examine the function with a few representative input values and
--      endpoint values.
--      endpoint values.
--      The usage paradigm being demonstrated by this test is that of the
--      The usage paradigm being demonstrated by this test is that of the
--      functions being used to assign to boolean variables, as well as
--      functions being used to assign to boolean variables, as well as
--      serving as boolean conditions.
--      serving as boolean conditions.
--
--
--
--
-- CHANGE HISTORY:
-- CHANGE HISTORY:
--      06 Dec 94   SAIC    ACVC 2.0
--      06 Dec 94   SAIC    ACVC 2.0
--      29 Apr 95   SAIC    Fixed subtest checking Is_Graphic function.
--      29 Apr 95   SAIC    Fixed subtest checking Is_Graphic function.
--
--
--!
--!
with Ada.Characters.Latin_1;
with Ada.Characters.Latin_1;
with Ada.Characters.Handling;
with Ada.Characters.Handling;
with Report;
with Report;
procedure CXA3001 is
procedure CXA3001 is
begin
begin
   Report.Test ("CXA3001", "Check that the character classification "      &
   Report.Test ("CXA3001", "Check that the character classification "      &
                           "functions defined in package "                 &
                           "functions defined in package "                 &
                           "Ada.Characters.Handling produce "              &
                           "Ada.Characters.Handling produce "              &
                           "correct results when provided constant "       &
                           "correct results when provided constant "       &
                           "arguments from package Ada.Characters.Latin_1");
                           "arguments from package Ada.Characters.Latin_1");
   Test_Block:
   Test_Block:
   declare
   declare
      package AC  renames Ada.Characters;
      package AC  renames Ada.Characters;
      package ACH renames Ada.Characters.Handling;
      package ACH renames Ada.Characters.Handling;
      TC_Boolean : Boolean := False;
      TC_Boolean : Boolean := False;
   begin
   begin
      -- Over the next six statements/blocks of code, evaluate functions
      -- Over the next six statements/blocks of code, evaluate functions
      -- Is_Control and Is_Graphic with control character and non-control
      -- Is_Control and Is_Graphic with control character and non-control
      -- character values.
      -- character values.
      for i in Character'Pos(AC.Latin_1.NUL) ..
      for i in Character'Pos(AC.Latin_1.NUL) ..
               Character'Pos(AC.Latin_1.US)  loop
               Character'Pos(AC.Latin_1.US)  loop
         if not ACH.Is_Control(Character'Val(i)) then
         if not ACH.Is_Control(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Control - 1");
            Report.Failed ("Incorrect result from function Is_Control - 1");
         end if;
         end if;
         if ACH.Is_Graphic(Character'Val(i)) then
         if ACH.Is_Graphic(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Graphic - 1");
            Report.Failed ("Incorrect result from function Is_Graphic - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.Space) ..
      for i in Character'Pos(AC.Latin_1.Space) ..
               Character'Pos(AC.Latin_1.Tilde) loop
               Character'Pos(AC.Latin_1.Tilde) loop
         if not ACH.Is_Graphic(Character'Val(i)) then
         if not ACH.Is_Graphic(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Graphic - 2");
            Report.Failed ("Incorrect result from function Is_Graphic - 2");
         end if;
         end if;
         if ACH.Is_Control(Character'Val(i)) then
         if ACH.Is_Control(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Control - 2");
            Report.Failed ("Incorrect result from function Is_Control - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.Reserved_128) ..
      for i in Character'Pos(AC.Latin_1.Reserved_128) ..
               Character'Pos(AC.Latin_1.APC)  loop
               Character'Pos(AC.Latin_1.APC)  loop
         if not ACH.Is_Control(Character'Val(i)) then
         if not ACH.Is_Control(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Control - 3");
            Report.Failed ("Incorrect result from function Is_Control - 3");
         end if;
         end if;
         TC_Boolean := ACH.Is_Graphic(Character'Val(i));
         TC_Boolean := ACH.Is_Graphic(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect result from function Is_Graphic - 3");
            Report.Failed ("Incorrect result from function Is_Graphic - 3");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
      for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
         TC_Boolean := ACH.Is_Control(Character'Val(i));
         TC_Boolean := ACH.Is_Control(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect result from function Is_Control - 4");
            Report.Failed ("Incorrect result from function Is_Control - 4");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
         if not ACH.Is_Graphic(Character'Val(i)) then
         if not ACH.Is_Graphic(Character'Val(i)) then
            Report.Failed ("Incorrect result from function Is_Graphic - 4");
            Report.Failed ("Incorrect result from function Is_Graphic - 4");
         end if;
         end if;
      end loop;
      end loop;
      -- Check renamed constants.
      -- Check renamed constants.
      if not (ACH.Is_Control(AC.Latin_1.IS4) and
      if not (ACH.Is_Control(AC.Latin_1.IS4) and
              ACH.Is_Control(AC.Latin_1.IS3) and
              ACH.Is_Control(AC.Latin_1.IS3) and
              ACH.Is_Control(AC.Latin_1.IS2) and
              ACH.Is_Control(AC.Latin_1.IS2) and
              ACH.Is_Control(AC.Latin_1.IS1))       or
              ACH.Is_Control(AC.Latin_1.IS1))       or
         (ACH.Is_Control(AC.Latin_1.NBSP)           or
         (ACH.Is_Control(AC.Latin_1.NBSP)           or
          ACH.Is_Control(AC.Latin_1.Paragraph_Sign) or
          ACH.Is_Control(AC.Latin_1.Paragraph_Sign) or
          ACH.Is_Control(AC.Latin_1.Minus_Sign)     or
          ACH.Is_Control(AC.Latin_1.Minus_Sign)     or
          ACH.Is_Control(AC.Latin_1.Ring_Above))
          ACH.Is_Control(AC.Latin_1.Ring_Above))
      then
      then
         Report.Failed ("Incorrect result from function Is_Control - 5");
         Report.Failed ("Incorrect result from function Is_Control - 5");
      end if;
      end if;
      if (ACH.Is_Graphic(AC.Latin_1.IS4)  or
      if (ACH.Is_Graphic(AC.Latin_1.IS4)  or
          ACH.Is_Graphic(AC.Latin_1.IS3)  or
          ACH.Is_Graphic(AC.Latin_1.IS3)  or
          ACH.Is_Graphic(AC.Latin_1.IS2)  or
          ACH.Is_Graphic(AC.Latin_1.IS2)  or
          ACH.Is_Graphic(AC.Latin_1.IS1)) or
          ACH.Is_Graphic(AC.Latin_1.IS1)) or
         not (ACH.Is_Graphic(AC.Latin_1.NBSP)           and
         not (ACH.Is_Graphic(AC.Latin_1.NBSP)           and
              ACH.Is_Graphic(AC.Latin_1.Paragraph_Sign) and
              ACH.Is_Graphic(AC.Latin_1.Paragraph_Sign) and
              ACH.Is_Graphic(AC.Latin_1.Minus_Sign)     and
              ACH.Is_Graphic(AC.Latin_1.Minus_Sign)     and
              ACH.Is_Graphic(AC.Latin_1.Ring_Above))
              ACH.Is_Graphic(AC.Latin_1.Ring_Above))
      then
      then
         Report.Failed ("Incorrect result from function Is_Graphic - 5");
         Report.Failed ("Incorrect result from function Is_Graphic - 5");
      end if;
      end if;
      -- Evaluate function Is_Letter with letter/non-letter inputs.
      -- Evaluate function Is_Letter with letter/non-letter inputs.
      for i in Character'Pos('A') .. Character'Pos('Z') loop
      for i in Character'Pos('A') .. Character'Pos('Z') loop
         if not ACH.Is_Letter(Character'Val(i)) then
         if not ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 1");
            Report.Failed ("Incorrect Is_Letter result - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_A) ..
      for i in Character'Pos(AC.Latin_1.LC_A) ..
               Character'Pos(AC.Latin_1.LC_Z) loop
               Character'Pos(AC.Latin_1.LC_Z) loop
         if not ACH.Is_Letter(Character'Val(i)) then
         if not ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 2");
            Report.Failed ("Incorrect Is_Letter result - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
         if not ACH.Is_Letter(Character'Val(i)) then
         if not ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 3");
            Report.Failed ("Incorrect Is_Letter result - 3");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
         if not ACH.Is_Letter(Character'Val(i)) then
         if not ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 4");
            Report.Failed ("Incorrect Is_Letter result - 4");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
         if not ACH.Is_Letter(Character'Val(i)) then
         if not ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 5");
            Report.Failed ("Incorrect Is_Letter result - 5");
         end if;
         end if;
      end loop;
      end loop;
      -- Check for rejection of non-letters.
      -- Check for rejection of non-letters.
      for i in Character'Pos(AC.Latin_1.NUL) ..
      for i in Character'Pos(AC.Latin_1.NUL) ..
               Character'Pos(AC.Latin_1.Commercial_At) loop
               Character'Pos(AC.Latin_1.Commercial_At) loop
         if ACH.Is_Letter(Character'Val(i)) then
         if ACH.Is_Letter(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Letter result - 6");
            Report.Failed ("Incorrect Is_Letter result - 6");
         end if;
         end if;
      end loop;
      end loop;
      -- Evaluate function Is_Lower with lower case/non-lower case inputs.
      -- Evaluate function Is_Lower with lower case/non-lower case inputs.
      for i in Character'Pos(AC.Latin_1.LC_A) ..
      for i in Character'Pos(AC.Latin_1.LC_A) ..
               Character'Pos(AC.Latin_1.LC_Z) loop
               Character'Pos(AC.Latin_1.LC_Z) loop
         if not ACH.Is_Lower(Character'Val(i)) then
         if not ACH.Is_Lower(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Lower result - 1");
            Report.Failed ("Incorrect Is_Lower result - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_A_Grave) ..
      for i in Character'Pos(AC.Latin_1.LC_A_Grave) ..
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
         if not ACH.Is_Lower(Character'Val(i)) then
         if not ACH.Is_Lower(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Lower result - 2");
            Report.Failed ("Incorrect Is_Lower result - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
         if not ACH.Is_Lower(Character'Val(i)) then
         if not ACH.Is_Lower(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Lower result - 3");
            Report.Failed ("Incorrect Is_Lower result - 3");
         end if;
         end if;
      end loop;
      end loop;
      if ACH.Is_Lower('A')                         or
      if ACH.Is_Lower('A')                         or
         ACH.Is_Lower(AC.Latin_1.UC_Icelandic_Eth) or
         ACH.Is_Lower(AC.Latin_1.UC_Icelandic_Eth) or
         ACH.Is_Lower(AC.Latin_1.Number_Sign)      or
         ACH.Is_Lower(AC.Latin_1.Number_Sign)      or
         ACH.Is_Lower(AC.Latin_1.Cedilla)          or
         ACH.Is_Lower(AC.Latin_1.Cedilla)          or
         ACH.Is_Lower(AC.Latin_1.SYN)              or
         ACH.Is_Lower(AC.Latin_1.SYN)              or
         ACH.Is_Lower(AC.Latin_1.ESA)
         ACH.Is_Lower(AC.Latin_1.ESA)
      then
      then
         Report.Failed ("Incorrect Is_Lower result - 4");
         Report.Failed ("Incorrect Is_Lower result - 4");
      end if;
      end if;
      -- Evaluate function Is_Upper with upper case/non-upper case inputs.
      -- Evaluate function Is_Upper with upper case/non-upper case inputs.
      for i in Character'Pos('A') .. Character'Pos('Z') loop
      for i in Character'Pos('A') .. Character'Pos('Z') loop
         if not ACH.Is_Upper(Character'Val(i)) then
         if not ACH.Is_Upper(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Upper result - 1");
            Report.Failed ("Incorrect Is_Upper result - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
         if not ACH.Is_Upper(Character'Val(i)) then
         if not ACH.Is_Upper(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Upper result - 2");
            Report.Failed ("Incorrect Is_Upper result - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.UC_Icelandic_Thorn) loop
               Character'Pos(AC.Latin_1.UC_Icelandic_Thorn) loop
         if not ACH.Is_Upper(Character'Val(i)) then
         if not ACH.Is_Upper(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Upper result - 3");
            Report.Failed ("Incorrect Is_Upper result - 3");
         end if;
         end if;
      end loop;
      end loop;
      if ACH.Is_Upper('8')                    or
      if ACH.Is_Upper('8')                    or
         ACH.Is_Upper(AC.Latin_1.LC_A_Ring  ) or
         ACH.Is_Upper(AC.Latin_1.LC_A_Ring  ) or
         ACH.Is_Upper(AC.Latin_1.Dollar_Sign) or
         ACH.Is_Upper(AC.Latin_1.Dollar_Sign) or
         ACH.Is_Upper(AC.Latin_1.Broken_Bar)  or
         ACH.Is_Upper(AC.Latin_1.Broken_Bar)  or
         ACH.Is_Upper(AC.Latin_1.ETB)         or
         ACH.Is_Upper(AC.Latin_1.ETB)         or
         ACH.Is_Upper(AC.Latin_1.VTS)
         ACH.Is_Upper(AC.Latin_1.VTS)
      then
      then
         Report.Failed ("Incorrect Is_Upper result - 4");
         Report.Failed ("Incorrect Is_Upper result - 4");
      end if;
      end if;
      for i in Character'Pos('a') .. Character'Pos('z') loop
      for i in Character'Pos('a') .. Character'Pos('z') loop
         if ACH.Is_Upper(Character'Val(i)) then
         if ACH.Is_Upper(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Upper result - 5");
            Report.Failed ("Incorrect Is_Upper result - 5");
         end if;
         end if;
      end loop;
      end loop;
      -- Evaluate function Is_Basic with basic/non-basic inputs.
      -- Evaluate function Is_Basic with basic/non-basic inputs.
      -- (Note: Basic letters are those without diacritical marks.)
      -- (Note: Basic letters are those without diacritical marks.)
      for i in Character'Pos('A') .. Character'Pos('Z') loop
      for i in Character'Pos('A') .. Character'Pos('Z') loop
         if not ACH.Is_Basic(Character'Val(i)) then
         if not ACH.Is_Basic(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Basic result - 1");
            Report.Failed ("Incorrect Is_Basic result - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_A) ..
      for i in Character'Pos(AC.Latin_1.LC_A) ..
               Character'Pos(AC.Latin_1.LC_Z) loop
               Character'Pos(AC.Latin_1.LC_Z) loop
         if not ACH.Is_Basic(Character'Val(i)) then
         if not ACH.Is_Basic(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Basic result - 2");
            Report.Failed ("Incorrect Is_Basic result - 2");
         end if;
         end if;
      end loop;
      end loop;
      if not (ACH.Is_Basic(AC.Latin_1.UC_AE_Diphthong)     and
      if not (ACH.Is_Basic(AC.Latin_1.UC_AE_Diphthong)     and
              ACH.Is_Basic(AC.Latin_1.LC_AE_Diphthong)     and
              ACH.Is_Basic(AC.Latin_1.LC_AE_Diphthong)     and
              ACH.Is_Basic(AC.Latin_1.LC_German_Sharp_S)   and
              ACH.Is_Basic(AC.Latin_1.LC_German_Sharp_S)   and
              ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Eth)    and
              ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Eth)    and
              ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Thorn)  and
              ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Thorn)  and
              ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Eth)    and
              ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Eth)    and
              ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Thorn))
              ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Thorn))
      then
      then
         Report.Failed ("Incorrect Is_Basic result - 3");
         Report.Failed ("Incorrect Is_Basic result - 3");
      end if;
      end if;
      -- Check for rejection of non-basics.
      -- Check for rejection of non-basics.
      if ACH.Is_Basic(AC.Latin_1.UC_A_Tilde) or
      if ACH.Is_Basic(AC.Latin_1.UC_A_Tilde) or
         ACH.Is_Basic(AC.Latin_1.LC_A_Grave) or
         ACH.Is_Basic(AC.Latin_1.LC_A_Grave) or
         ACH.Is_Basic(AC.Latin_1.Ampersand)  or
         ACH.Is_Basic(AC.Latin_1.Ampersand)  or
         ACH.Is_Basic(AC.Latin_1.Yen_Sign)   or
         ACH.Is_Basic(AC.Latin_1.Yen_Sign)   or
         ACH.Is_Basic(AC.Latin_1.NAK)        or
         ACH.Is_Basic(AC.Latin_1.NAK)        or
         ACH.Is_Basic(AC.Latin_1.SS2)
         ACH.Is_Basic(AC.Latin_1.SS2)
      then
      then
         Report.Failed ("Incorrect Is_Basic result - 4");
         Report.Failed ("Incorrect Is_Basic result - 4");
      end if;
      end if;
      for i in Character'Pos(AC.Latin_1.NUL) ..
      for i in Character'Pos(AC.Latin_1.NUL) ..
               Character'Pos(AC.Latin_1.Commercial_At) loop
               Character'Pos(AC.Latin_1.Commercial_At) loop
         if ACH.Is_Basic(Character'Val(i)) then
         if ACH.Is_Basic(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Basic result - 5");
            Report.Failed ("Incorrect Is_Basic result - 5");
         end if;
         end if;
      end loop;
      end loop;
      -- Evaluate functions Is_Digit and Is_Decimal_Digit (a rename of
      -- Evaluate functions Is_Digit and Is_Decimal_Digit (a rename of
      -- Is_Digit) with decimal digit/non-digit inputs.
      -- Is_Digit) with decimal digit/non-digit inputs.
      if not (ACH.Is_Digit('0')          and
      if not (ACH.Is_Digit('0')          and
              ACH.Is_Decimal_Digit('9')) or
              ACH.Is_Decimal_Digit('9')) or
         ACH.Is_Digit ('a')              or     -- Hex digits.
         ACH.Is_Digit ('a')              or     -- Hex digits.
         ACH.Is_Decimal_Digit ('f')      or
         ACH.Is_Decimal_Digit ('f')      or
         ACH.Is_Decimal_Digit ('A')      or
         ACH.Is_Decimal_Digit ('A')      or
         ACH.Is_Digit ('F')
         ACH.Is_Digit ('F')
      then
      then
         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 1");
         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 1");
      end if;
      end if;
      if ACH.Is_Digit         (AC.Latin_1.Full_Stop)         or
      if ACH.Is_Digit         (AC.Latin_1.Full_Stop)         or
         ACH.Is_Decimal_Digit (AC.Latin_1.Dollar_Sign)       or
         ACH.Is_Decimal_Digit (AC.Latin_1.Dollar_Sign)       or
         ACH.Is_Digit         (AC.Latin_1.Number_Sign)       or
         ACH.Is_Digit         (AC.Latin_1.Number_Sign)       or
         ACH.Is_Decimal_Digit (AC.Latin_1.Left_Parenthesis)  or
         ACH.Is_Decimal_Digit (AC.Latin_1.Left_Parenthesis)  or
         ACH.Is_Digit         (AC.Latin_1.Right_Parenthesis)
         ACH.Is_Digit         (AC.Latin_1.Right_Parenthesis)
      then
      then
         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 2");
         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 2");
      end if;
      end if;
      -- Evaluate functions Is_Hexadecimal_Digit with hexadecimal digit and
      -- Evaluate functions Is_Hexadecimal_Digit with hexadecimal digit and
      -- non-hexadecimal digit inputs.
      -- non-hexadecimal digit inputs.
      for i in Character'Pos('0') .. Character'Pos('9') loop
      for i in Character'Pos('0') .. Character'Pos('9') loop
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 1");
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 1");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos('A') .. Character'Pos('F') loop
      for i in Character'Pos('A') .. Character'Pos('F') loop
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 2");
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_A) ..
      for i in Character'Pos(AC.Latin_1.LC_A) ..
               Character'Pos(AC.Latin_1.LC_F) loop
               Character'Pos(AC.Latin_1.LC_F) loop
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 3");
            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 3");
         end if;
         end if;
      end loop;
      end loop;
      if ACH.Is_Hexadecimal_Digit (AC.Latin_1.Minus_Sign)        or
      if ACH.Is_Hexadecimal_Digit (AC.Latin_1.Minus_Sign)        or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Hyphen)            or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Hyphen)            or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_G)              or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_G)              or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_Z)              or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_Z)              or
         ACH.Is_Hexadecimal_Digit ('G')                          or
         ACH.Is_Hexadecimal_Digit ('G')                          or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Cent_Sign)         or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Cent_Sign)         or
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Pound_Sign)
         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Pound_Sign)
      then
      then
         Report.Failed ("Incorrect Is_HexaDecimal_Digit result - 4");
         Report.Failed ("Incorrect Is_HexaDecimal_Digit result - 4");
      end if;
      end if;
      -- Evaluate functions Is_Alphanumeric and Is_Special with
      -- Evaluate functions Is_Alphanumeric and Is_Special with
      -- letters, digits, and non-alphanumeric inputs.
      -- letters, digits, and non-alphanumeric inputs.
      for i in Character'Pos(AC.Latin_1.NUL) ..
      for i in Character'Pos(AC.Latin_1.NUL) ..
               Character'Pos(AC.Latin_1.US)  loop
               Character'Pos(AC.Latin_1.US)  loop
         if ACH.Is_Alphanumeric(Character'Val(i)) then
         if ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 1");
            Report.Failed ("Incorrect Is_Alphanumeric result - 1");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 1");
            Report.Failed ("Incorrect Is_Special result - 1");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.Reserved_128) ..
      for i in Character'Pos(AC.Latin_1.Reserved_128) ..
               Character'Pos(AC.Latin_1.APC)  loop
               Character'Pos(AC.Latin_1.APC)  loop
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Alphanumeric result - 2");
            Report.Failed ("Incorrect Is_Alphanumeric result - 2");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
         if ACH.Is_Special(Character'Val(i)) then
         if ACH.Is_Special(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Special result - 2");
            Report.Failed ("Incorrect Is_Special result - 2");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.Space) ..
      for i in Character'Pos(AC.Latin_1.Space) ..
               Character'Pos(AC.Latin_1.Solidus) loop
               Character'Pos(AC.Latin_1.Solidus) loop
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Alphanumeric result - 3");
            Report.Failed ("Incorrect Is_Alphanumeric result - 3");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
         if not ACH.Is_Special(Character'Val(i)) then
         if not ACH.Is_Special(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Special result - 3");
            Report.Failed ("Incorrect Is_Special result - 3");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos('A') .. Character'Pos('Z') loop
      for i in Character'Pos('A') .. Character'Pos('Z') loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 4");
            Report.Failed ("Incorrect Is_Alphanumeric result - 4");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 4");
            Report.Failed ("Incorrect Is_Special result - 4");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos('0') .. Character'Pos('9') loop
      for i in Character'Pos('0') .. Character'Pos('9') loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 5");
            Report.Failed ("Incorrect Is_Alphanumeric result - 5");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 5");
            Report.Failed ("Incorrect Is_Special result - 5");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_A) ..
      for i in Character'Pos(AC.Latin_1.LC_A) ..
               Character'Pos(AC.Latin_1.LC_Z) loop
               Character'Pos(AC.Latin_1.LC_Z) loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 6");
            Report.Failed ("Incorrect Is_Alphanumeric result - 6");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 6");
            Report.Failed ("Incorrect Is_Special result - 6");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
      for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
               Character'Pos(AC.Latin_1.Inverted_Question) loop
               Character'Pos(AC.Latin_1.Inverted_Question) loop
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Alphanumeric result - 7");
            Report.Failed ("Incorrect Is_Alphanumeric result - 7");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
         if not ACH.Is_Special(Character'Val(i)) then
         if not ACH.Is_Special(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Special result - 7");
            Report.Failed ("Incorrect Is_Special result - 7");
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 8");
            Report.Failed ("Incorrect Is_Alphanumeric result - 8");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 8");
            Report.Failed ("Incorrect Is_Special result - 8");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 9");
            Report.Failed ("Incorrect Is_Alphanumeric result - 9");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 9");
            Report.Failed ("Incorrect Is_Special result - 9");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
         if not ACH.Is_Alphanumeric(Character'Val(i)) then
            Report.Failed ("Incorrect Is_Alphanumeric result - 10");
            Report.Failed ("Incorrect Is_Alphanumeric result - 10");
         end if;
         end if;
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         TC_Boolean := ACH.Is_Special(Character'Val(i));
         if TC_Boolean then
         if TC_Boolean then
            Report.Failed ("Incorrect Is_Special result - 10");
            Report.Failed ("Incorrect Is_Special result - 10");
            TC_Boolean := False;
            TC_Boolean := False;
         end if;
         end if;
      end loop;
      end loop;
   exception
   exception
      when others => Report.Failed ("Exception raised during processing");
      when others => Report.Failed ("Exception raised during processing");
   end Test_Block;
   end Test_Block;
   Report.Result;
   Report.Result;
end CXA3001;
end CXA3001;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.