cxa3004.a

来自「xml大全 可读写调用率很高 xml大全 可读写调用率很高」· A 代码 · 共 236 行

A
236
字号
-- CXA3004.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 functions defined in package Ada.Characters.Handling--      for classification of and conversion between Wide_Character and--      Character values produce correct results when given the appropriate--      Character and String inputs.---- TEST DESCRIPTION:--      This test demonstrates the functions defined in package --      Ada.Characters.Handling which provide for the classification of and --      conversion between Wide_Characters and Characters, in character --      variables and strings.--      Each of the functions is provided with input values that are of the --      appropriate range. The results of the function processing are --      subsequently evaluated.--      -- APPLICABILITY CRITERIA: --      Applicable to all implementations using the Latin_1 set as the--      definition of Character.----       -- CHANGE HISTORY:--      06 Dec 94   SAIC    ACVC 2.0--      27 Dec 94   SAIC    Corrected variable names.----!with Report;with Ada.Characters.Handling;procedure CXA3004 isbegin   Report.Test ("CXA3004", "Check that the functions defined in package "  &                           "Ada.Characters.Handling for classification "   &                           "of and conversion between Wide_Character and " &                           "Character values produce correct results "     &                           "when given the appropriate Character "         &                           "and String inputs");   Test_Block:   declare      package ACH renames Ada.Characters.Handling;      Char_End      : Integer        := 255;      WC_Start      : Integer        := 256;      Sub_Char      : Character      := '*';      Blank         : Character      := ' ';      First_Char    : Character      := Character'First;      Last_Char     : Character      := Character'Last;      F_Char        : Character      := 'F';      First_Wide_Char        : Wide_Character := Wide_Character'First;      Last_Non_Wide_Char     : Wide_Character := Wide_Character'Val(Char_End);      First_Unique_Wide_Char : Wide_Character := Wide_Character'Val(WC_Start);      Last_Wide_Char         : Wide_Character := Wide_Character'Last;      A_String      : String (1..3)      := First_Char & 'X' & Last_Char;      A_Wide_String : Wide_String (1..3) := First_Wide_Char            &                                             ACH.To_Wide_Character('X') &                                             ACH.To_Wide_Character(Last_Char);      Unique_Wide_String : Wide_String (1..2) := First_Unique_Wide_Char &                                                 Last_Wide_Char;      Mixed_Wide_String  : Wide_String (1..6) := ACH.To_Wide_Character('A') &                                                  First_Wide_Char            &                                                 Last_Non_Wide_Char         &                                                  First_Unique_Wide_Char     &                                                  Last_Wide_Char             &                                                 ACH.To_Wide_Character('Z');      Basic_Char         : Character          := 'A';      Basic_Wide_Char    : Wide_Character     := 'A';      Basic_String       : String (1..6)      := "ABCXYZ";      Basic_Wide_String  : Wide_String (1..6) := "ABCXYZ";   begin      -- Function Is_Character      if not ACH.Is_Character(First_Wide_Char) then         Report.Failed ("Incorrect result from Is_Character - 1");      end if;      if ACH.Is_Character(First_Unique_Wide_Char) or                 ACH.Is_Character(Last_Wide_Char)      then         Report.Failed ("Incorrect result from Is_Character - 2");      end if;             -- Function Is_String      if not ACH.Is_String(A_Wide_String) then         Report.Failed ("Incorrect result from Is_String - 1");      end if;      if ACH.Is_String(Unique_Wide_String) or         ACH.Is_String(Mixed_Wide_String)      then         Report.Failed ("Incorrect result from Is_String - 2");      end if;            -- Function To_Character      -- Use default substitution character in call of To_Character.      if ACH.To_Character(First_Wide_Char)    /= First_Char or          ACH.To_Character(Last_Non_Wide_Char) /= Last_Char      then         Report.Failed ("Incorrect result from To_Character - 1");      end if;      -- Provide a substitution character for use with To_Character.      if ACH.To_Character(First_Unique_Wide_Char, Blank)    /= Blank    or         ACH.To_Character(First_Unique_Wide_Char, Sub_Char) /= Sub_Char or         ACH.To_Character(Last_Wide_Char)                   /= ' '  -- default      then         Report.Failed ("Incorrect result from To_Character - 2");      end if;      -- Function To_String      if ACH.To_String(A_Wide_String) /=  A_String then         Report.Failed ("Incorrect result from To_String - 1");      end if;           if ACH.To_String(Unique_Wide_String, Sub_Char) /= "**" then         Report.Failed ("Incorrect result from To_String - 2");      end if;      if ACH.To_String(Mixed_Wide_String,  Sub_Char) /=          ('A' & First_Char & Last_Char & "**" & 'Z')   or         ACH.To_String(Mixed_Wide_String,  Sub_Char) /=          (ACH.To_Character(Mixed_Wide_String(1), Sub_Char) &          ACH.To_Character(Mixed_Wide_String(2), Sub_Char) &          ACH.To_Character(Mixed_Wide_String(3), Sub_Char) &          ACH.To_Character(Mixed_Wide_String(4), Sub_Char) &          ACH.To_Character(Mixed_Wide_String(5), Sub_Char) &          ACH.To_Character(Mixed_Wide_String(6), Sub_Char))       then         Report.Failed ("Incorrect result from To_String - 3");      end if;      -- Function To_Wide_Character      if ACH.To_Wide_Character(Basic_Char) /= Basic_Wide_Char then         Report.Failed ("Incorrect result from To_Wide_Character");      end if;          -- Function To_Wide_String      if not (ACH.To_Wide_String(Basic_String) = Basic_Wide_String) then         Report.Failed ("Incorrect result from To_Wide_String");      end if;      -- Functions Used In Combination      if not ACH.Is_Character (ACH.To_Wide_Character (        ACH.To_Character(First_Wide_Char)))       then         Report.Failed ("Incorrect result from functions in combination - 1");      end if;      if not ACH.Is_String(ACH.To_Wide_String(ACH.To_String(A_Wide_String)))      then         Report.Failed ("Incorrect result from functions in combination - 2");      end if;      if ACH.To_String(ACH.To_Wide_Character('A')    &                       ACH.To_Wide_Character(F_Char) &                       ACH.To_Wide_Character('Z'))     /=  "AFZ"      then         Report.Failed ("Incorrect result from functions in combination - 3");      end if;            exception      when others => Report.Failed ("Exception raised in Test_Block");   end Test_Block;   Report.Result;end CXA3004;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?