diff options
Diffstat (limited to 'gcc/testsuite/ada/acats/tests/cxg/cxg1005.a')
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cxg/cxg1005.a | 393 |
1 files changed, 0 insertions, 393 deletions
diff --git a/gcc/testsuite/ada/acats/tests/cxg/cxg1005.a b/gcc/testsuite/ada/acats/tests/cxg/cxg1005.a deleted file mode 100644 index 6faad4e1357..00000000000 --- a/gcc/testsuite/ada/acats/tests/cxg/cxg1005.a +++ /dev/null @@ -1,393 +0,0 @@ --- CXG1005.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 subprograms defined in the package --- Ada.Numerics.Generic_Complex_Elementary_Functions provide correct --- results. --- --- TEST DESCRIPTION: --- This test checks that specific subprograms defined in the generic --- package Generic_Complex_Elementary_Functions are available, and that --- they provide prescribed results given specific input values. --- The generic package Ada.Numerics.Generic_Complex_Types is instantiated --- with a real type (new Float). The resulting new package is used as --- the generic actual to package Complex_IO. --- --- SPECIAL REQUIREMENTS: --- Implementations for which Float'Signed_Zeros is True must provide --- a body for ImpDef.Annex_G.Negative_Zero which returns a negative --- zero. --- --- APPLICABILITY CRITERIA --- This test only applies to implementations that support the --- numerics annex. --- --- --- --- CHANGE HISTORY: --- 06 Dec 94 SAIC ACVC 2.0 --- 16 Nov 95 SAIC Corrected visibility problems for ACVC 2.0.1. --- 21 Feb 96 SAIC Incorporated new structure for package Impdef. --- 29 Sep 96 SAIC Incorporated reviewer comments. --- ---! - -with Ada.Numerics.Generic_Complex_Types; -with Ada.Numerics.Generic_Complex_Elementary_Functions; -with ImpDef.Annex_G; -with Report; - -procedure CXG1005 is -begin - - Report.Test ("CXG1005", "Check that the subprograms defined in " & - "the package Generic_Complex_Elementary_" & - "Functions provide correct results"); - - Test_Block: - declare - - type Real_Type is new Float; - - TC_Signed_Zeros : Boolean := Real_Type'Signed_Zeros; - - package Complex_Pack is new - Ada.Numerics.Generic_Complex_Types(Real_Type); - - package CEF is - new Ada.Numerics.Generic_Complex_Elementary_Functions(Complex_Pack); - - use Ada.Numerics, Complex_Pack, CEF; - - Complex_Zero : constant Complex := Compose_From_Cartesian( 0.0, 0.0); - Plus_One : constant Complex := Compose_From_Cartesian( 1.0, 0.0); - Minus_One : constant Complex := Compose_From_Cartesian(-1.0, 0.0); - Plus_i : constant Complex := Compose_From_Cartesian(i); - Minus_i : constant Complex := Compose_From_Cartesian(-i); - - Complex_Positive_Real : constant Complex := - Compose_From_Cartesian(4.0, 2.0); - Complex_Positive_Imaginary : constant Complex := - Compose_From_Cartesian(3.0, 5.0); - Complex_Negative_Real : constant Complex := - Compose_From_Cartesian(-4.0, 2.0); - Complex_Negative_Imaginary : constant Complex := - Compose_From_Cartesian(3.0, -5.0); - - - function A_Zero_Result (Z : Complex) return Boolean is - begin - return (Re(Z) = 0.0 and Im(Z) = 0.0); - end A_Zero_Result; - - - -- In order to evaluate complex elementary functions that are - -- prescribed to return a "real" result (meaning that the imaginary - -- component is zero), the Function A_Real_Result is defined. - - function A_Real_Result (Z : Complex) return Boolean is - begin - return Im(Z) = 0.0; - end A_Real_Result; - - - -- In order to evaluate complex elementary functions that are - -- prescribed to return an "imaginary" result (meaning that the real - -- component of the complex number is zero, and the imaginary - -- component is non-zero), the Function An_Imaginary_Result is defined. - - function An_Imaginary_Result (Z : Complex) return Boolean is - begin - return (Re(Z) = 0.0 and Im(Z) /= 0.0); - end An_Imaginary_Result; - - - begin - - -- Check that when the input parameter value is zero, the following - -- functions yield a zero result. - - if not A_Zero_Result( Sqrt(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Sqrt with zero input"); - end if; - - if not A_Zero_Result( Sin(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Sin with zero input"); - end if; - - if not A_Zero_Result( Arcsin(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Arcsin with zero " & - "input"); - end if; - - if not A_Zero_Result( Tan(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Tan with zero input"); - end if; - - if not A_Zero_Result( Arctan(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Arctan with zero " & - "input"); - end if; - - if not A_Zero_Result( Sinh(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Sinh with zero input"); - end if; - - if not A_Zero_Result( Arcsinh(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Arcsinh with zero " & - "input"); - end if; - - if not A_Zero_Result( Tanh(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Tanh with zero input"); - end if; - - if not A_Zero_Result( Arctanh(Complex_Zero) ) then - Report.Failed("Non-zero result from Function Arctanh with zero " & - "input"); - end if; - - - -- Check that when the input parameter value is zero, the following - -- functions yield a result of one. - - if Exp(Complex_Zero) /= Plus_One - then - Report.Failed("Non-zero result from Function Exp with zero input"); - end if; - - if Cos(Complex_Zero) /= Plus_One - then - Report.Failed("Non-zero result from Function Cos with zero input"); - end if; - - if Cosh(Complex_Zero) /= Plus_One - then - Report.Failed("Non-zero result from Function Cosh with zero input"); - end if; - - - -- Check that when the input parameter value is zero, the following - -- functions yield a real result. - - if not A_Real_Result( Arccos(Complex_Zero) ) then - Report.Failed("Non-real result from Function Arccos with zero input"); - end if; - - if not A_Real_Result( Arccot(Complex_Zero) ) then - Report.Failed("Non-real result from Function Arccot with zero input"); - end if; - - - -- Check that when the input parameter value is zero, the following - -- functions yield an imaginary result. - - if not An_Imaginary_Result( Arccoth(Complex_Zero) ) then - Report.Failed("Non-imaginary result from Function Arccoth with " & - "zero input"); - end if; - - - -- Check that when the input parameter value is one, the Sqrt function - -- yields a result of one. - - if Sqrt(Plus_One) /= Plus_One then - Report.Failed("Incorrect result from Function Sqrt with input " & - "value of one"); - end if; - - - -- Check that when the input parameter value is one, the following - -- functions yield a result of zero. - - if not A_Zero_Result( Log(Plus_One) ) then - Report.Failed("Non-zero result from Function Log with input " & - "value of one"); - end if; - - if not A_Zero_Result( Arccos(Plus_One) ) then - Report.Failed("Non-zero result from Function Arccos with input " & - "value of one"); - end if; - - if not A_Zero_Result( Arccosh(Plus_One) ) then - Report.Failed("Non-zero result from Function Arccosh with input " & - "value of one"); - end if; - - - -- Check that when the input parameter value is one, the Arcsin - -- function yields a real result. - - if not A_Real_Result( Arcsin(Plus_One) ) then - Report.Failed("Non-real result from Function Arcsin with input " & - "value of one"); - end if; - - - -- Check that when the input parameter value is minus one, the Sqrt - -- function yields a result of "i", when the sign of the imaginary - -- component of the input parameter is positive (and yields "-i", if - -- the sign on the imaginary component is negative), and the - -- Complex_Types.Real'Signed_Zeros attribute is True. - - if TC_Signed_Zeros then - - declare - Minus_One_With_Pos_Zero_Im_Component : Complex := - Compose_From_Cartesian(-1.0, +0.0); - Minus_One_With_Neg_Zero_Im_Component : Complex := - Compose_From_Cartesian - (-1.0, Real_Type(ImpDef.Annex_G.Negative_Zero)); - begin - - if Sqrt(Minus_One_With_Pos_Zero_Im_Component) /= Plus_i then - Report.Failed("Incorrect result from Function Sqrt, when " & - "input value is minus one with a positive " & - "imaginary component, Signed_Zeros being True"); - end if; - - if Sqrt(Minus_One_With_Neg_Zero_Im_Component) /= Minus_i then - Report.Failed("Incorrect result from Function Sqrt, when " & - "input value is minus one with a negative " & - "imaginary component, Signed_Zeros being True"); - end if; - end; - - else -- Signed_Zeros is False. - - -- Check that when the input parameter value is minus one, the Sqrt - -- function yields a result of "i", when the - -- Complex_Types.Real'Signed_Zeros attribute is False. - - if Sqrt(Minus_One) /= Plus_i then - Report.Failed("Incorrect result from Function Sqrt, when " & - "input value is minus one, Signed_Zeros being " & - "False"); - end if; - - end if; - - - -- Check that when the input parameter value is minus one, the Log - -- function yields an imaginary result. - - if not An_Imaginary_Result( Log(Minus_One) ) then - Report.Failed("Non-imaginary result from Function Log with a " & - "minus one input value"); - end if; - - -- Check that when the input parameter is minus one, the following - -- functions yield a real result. - - if not A_Real_Result( Arcsin(Minus_One) ) then - Report.Failed("Non-real result from Function Arcsin with a " & - "minus one input value"); - end if; - - if not A_Real_Result( Arccos(Minus_One) ) then - Report.Failed("Non-real result from Function Arccos with a " & - "minus one input value"); - end if; - - - -- Check that when the input parameter has a value of +i or -i, the - -- Log function yields an imaginary result. - - if not An_Imaginary_Result( Log(Plus_i) ) then - Report.Failed("Non-imaginary result from Function Log with an " & - "input value of ""+i"""); - end if; - - if not An_Imaginary_Result( Log(Minus_i) ) then - Report.Failed("Non-imaginary result from Function Log with an " & - "input value of ""-i"""); - end if; - - - -- Check that exponentiation by a zero exponent yields the value one. - - if "**"(Left => Compose_From_Cartesian(5.0, 3.0), - Right => Complex_Zero) /= Plus_One or - Complex_Negative_Real**0.0 /= Plus_One or - 15.0**Complex_Zero /= Plus_One - then - Report.Failed("Incorrect result from exponentiation with a zero " & - "exponent"); - end if; - - - -- Check that exponentiation by a unit exponent yields the value of - -- the left operand (as a complex value). - -- Note: a "unit exponent" is considered the complex number (1.0, 0.0) - - if "**"(Complex_Negative_Real, Plus_One) /= - Complex_Negative_Real or - Complex_Negative_Imaginary**Plus_One /= - Complex_Negative_Imaginary or - 4.0**Plus_One /= - Compose_From_Cartesian(4.0, 0.0) - then - Report.Failed("Incorrect result from exponentiation with a unit " & - "exponent"); - end if; - - - -- Check that exponentiation of the value one yields the value one. - - if "**"(Plus_One, Complex_Negative_Imaginary) /= Plus_One or - Plus_One**9.0 /= Plus_One or - 1.0**Complex_Negative_Real /= Plus_One - then - Report.Failed("Incorrect result from exponentiation of the value " & - "One"); - end if; - - - -- Check that exponentiation of the value zero yields the value zero. - begin - if not A_Zero_Result("**"(Complex_Zero, - Complex_Positive_Imaginary)) or - not A_Zero_Result(Complex_Zero**4.0) or - not A_Zero_Result(0.0**Complex_Positive_Real) - then - Report.Failed("Incorrect result from exponentiation of the " & - "value zero"); - end if; - exception - when others => - Report.Failed("Exception raised during the exponentiation of " & - "the complex value zero"); - end; - - - exception - when others => Report.Failed ("Exception raised in Test_Block"); - end Test_Block; - - Report.Result; - -end CXG1005; |