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 + -
显示快捷键?