cxa3001.a

来自「用于进行gcc测试」· A 代码 · 共 508 行 · 第 1/2 页

A
508
字号
         ACH.Is_Upper(AC.Latin_1.Broken_Bar)  or         ACH.Is_Upper(AC.Latin_1.ETB)         or         ACH.Is_Upper(AC.Latin_1.VTS)       then         Report.Failed ("Incorrect Is_Upper result - 4");      end if;      for i in Character'Pos('a') .. Character'Pos('z') loop         if ACH.Is_Upper(Character'Val(i)) then            Report.Failed ("Incorrect Is_Upper result - 5");         end if;      end loop;      -- Evaluate function Is_Basic with basic/non-basic inputs.      -- (Note: Basic letters are those without diacritical marks.)      for i in Character'Pos('A') .. Character'Pos('Z') loop         if not ACH.Is_Basic(Character'Val(i)) then            Report.Failed ("Incorrect Is_Basic result - 1");         end if;      end loop;      for i in Character'Pos(AC.Latin_1.LC_A) ..                Character'Pos(AC.Latin_1.LC_Z) loop         if not ACH.Is_Basic(Character'Val(i)) then            Report.Failed ("Incorrect Is_Basic result - 2");         end if;      end loop;      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_German_Sharp_S)   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.UC_Icelandic_Eth)    and              ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Thorn))      then         Report.Failed ("Incorrect Is_Basic result - 3");      end if;      -- Check for rejection of non-basics.      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.Ampersand)  or         ACH.Is_Basic(AC.Latin_1.Yen_Sign)   or         ACH.Is_Basic(AC.Latin_1.NAK)        or         ACH.Is_Basic(AC.Latin_1.SS2)       then         Report.Failed ("Incorrect Is_Basic result - 4");      end if;      for i in Character'Pos(AC.Latin_1.NUL) ..                Character'Pos(AC.Latin_1.Commercial_At) loop         if ACH.Is_Basic(Character'Val(i)) then            Report.Failed ("Incorrect Is_Basic result - 5");         end if;      end loop;      -- Evaluate functions Is_Digit and Is_Decimal_Digit (a rename of      -- Is_Digit) with decimal digit/non-digit inputs.      if not (ACH.Is_Digit('0')          and              ACH.Is_Decimal_Digit('9')) or         ACH.Is_Digit ('a')              or     -- Hex digits.         ACH.Is_Decimal_Digit ('f')      or         ACH.Is_Decimal_Digit ('A')      or         ACH.Is_Digit ('F')      then         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 1");      end if;      if ACH.Is_Digit         (AC.Latin_1.Full_Stop)         or         ACH.Is_Decimal_Digit (AC.Latin_1.Dollar_Sign)       or         ACH.Is_Digit         (AC.Latin_1.Number_Sign)       or         ACH.Is_Decimal_Digit (AC.Latin_1.Left_Parenthesis)  or         ACH.Is_Digit         (AC.Latin_1.Right_Parenthesis)       then         Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 2");      end if;      -- Evaluate functions Is_Hexadecimal_Digit with hexadecimal digit and       -- non-hexadecimal digit inputs.      for i in Character'Pos('0') .. Character'Pos('9') loop         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 1");         end if;      end loop;      for i in Character'Pos('A') .. Character'Pos('F') loop         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 2");         end if;      end loop;      for i in Character'Pos(AC.Latin_1.LC_A) ..                Character'Pos(AC.Latin_1.LC_F) loop         if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then            Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 3");         end if;      end loop;      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.LC_G)              or         ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_Z)              or         ACH.Is_Hexadecimal_Digit ('G')                          or         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Cent_Sign)         or         ACH.Is_Hexadecimal_Digit (AC.Latin_1.Pound_Sign)      then         Report.Failed ("Incorrect Is_HexaDecimal_Digit result - 4");      end if;      -- Evaluate functions Is_Alphanumeric and Is_Special with       -- letters, digits, and non-alphanumeric inputs.      for i in Character'Pos(AC.Latin_1.NUL) ..                Character'Pos(AC.Latin_1.US)  loop         if ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 1");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 1");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos(AC.Latin_1.Reserved_128) ..                Character'Pos(AC.Latin_1.APC)  loop         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Alphanumeric result - 2");            TC_Boolean := False;         end if;         if ACH.Is_Special(Character'Val(i)) then            Report.Failed ("Incorrect Is_Special result - 2");         end if;      end loop;      for i in Character'Pos(AC.Latin_1.Space) ..               Character'Pos(AC.Latin_1.Solidus) loop         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Alphanumeric result - 3");            TC_Boolean := False;         end if;         if not ACH.Is_Special(Character'Val(i)) then              Report.Failed ("Incorrect Is_Special result - 3");         end if;      end loop;      for i in Character'Pos('A') .. Character'Pos('Z') loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 4");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 4");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos('0') .. Character'Pos('9') loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 5");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 5");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos(AC.Latin_1.LC_A) ..               Character'Pos(AC.Latin_1.LC_Z) loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 6");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 6");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos(AC.Latin_1.No_Break_Space) ..               Character'Pos(AC.Latin_1.Inverted_Question) loop         TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Alphanumeric result - 7");            TC_Boolean := False;         end if;         if not ACH.Is_Special(Character'Val(i)) then            Report.Failed ("Incorrect Is_Special result - 7");         end if;      end loop;      for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..               Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 8");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 8");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..               Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 9");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 9");            TC_Boolean := False;         end if;      end loop;      for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..               Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop         if not ACH.Is_Alphanumeric(Character'Val(i)) then            Report.Failed ("Incorrect Is_Alphanumeric result - 10");         end if;         TC_Boolean := ACH.Is_Special(Character'Val(i));          if TC_Boolean then            Report.Failed ("Incorrect Is_Special result - 10");            TC_Boolean := False;         end if;      end loop;   exception      when others => Report.Failed ("Exception raised during processing");   end Test_Block;   Report.Result;end CXA3001;

⌨️ 快捷键说明

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