kerneltest/e32test/math/t_realxd.h
changeset 9 96e5fb8b040d
equal deleted inserted replaced
-1:000000000000 9:96e5fb8b040d
       
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of the License "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // e32test\math\t_realxd.h
       
    15 // T_REALXD.H - Structure definitions for TRealX test
       
    16 // 
       
    17 //
       
    18 
       
    19 
       
    20 #ifndef __REALXTST_H__
       
    21 #define __REALXTST_H__
       
    22 
       
    23 #include <e32std.h>
       
    24 #include <e32math.h>
       
    25 
       
    26 // Some constants
       
    27 const TUint KExpFlagSignMask = 0xFFFF0301;
       
    28 
       
    29 // Structure definitions
       
    30 struct SRealX
       
    31 	{
       
    32 	SRealX() {}
       
    33 	SRealX(TUint a, TUint b, TUint c);
       
    34 	SRealX(const TRealX& aRealX);
       
    35 	SRealX& operator=(const TRealX& aRealX);
       
    36 	operator TRealX() const;
       
    37 	TBool operator==(const SRealX& aSRealX) const;
       
    38 
       
    39 	TUint iExpFlagSign;
       
    40 	TUint iMantHigh;
       
    41 	TUint iMantLow;
       
    42 	};
       
    43 
       
    44 enum TConversionFrom32Bits
       
    45 	{
       
    46 	EConstructInt=0, EAssignInt=1, ESetInt=2,
       
    47 	EConstructUint=3, EAssignUint=4, ESetUint=5,
       
    48 	EConstructFloat=6, EAssignFloat=7, ESetFloat=8
       
    49 	};
       
    50 
       
    51 struct SConvertFrom32BitTest
       
    52 	{
       
    53 	SConvertFrom32BitTest(TInt op, const SRealX& res, TInt r);
       
    54 	void Test(TConversionFrom32Bits aConversion) const;
       
    55 
       
    56 	TInt iOperand;
       
    57 	SRealX iResult;
       
    58 	TInt iReturnCode;
       
    59 	};
       
    60 
       
    61 enum TConversionFrom64Bits
       
    62 	{
       
    63 	EConstructInt64=0, EAssignInt64=1, ESetInt64=2,
       
    64 	EConstructDouble=3, EAssignDouble=4, ESetDouble=5
       
    65 	};
       
    66 
       
    67 struct SConvertFrom64BitTest
       
    68 	{
       
    69 	SConvertFrom64BitTest(TInt64 op, const SRealX& res, TInt r);
       
    70 	void Test(TConversionFrom64Bits aConversion) const;
       
    71 
       
    72 	TInt64 iOperand;
       
    73 	SRealX iResult;
       
    74 	TInt iReturnCode;
       
    75 	};
       
    76 
       
    77 enum TConversionTo32Bits
       
    78 	{
       
    79 	EOperatorInt=0, EOperatorUint=1,
       
    80 	EOperatorTReal32=2, EGetTReal32=3
       
    81 	};
       
    82 
       
    83 struct SConvertTo32BitTest
       
    84 	{
       
    85 	SConvertTo32BitTest(const SRealX& op, TInt res, TInt r);
       
    86 	void Test(TConversionTo32Bits aConversion) const;
       
    87 
       
    88 	SRealX iOperand;
       
    89 	TInt iResult;
       
    90 	TInt iReturnCode;
       
    91 	};
       
    92 
       
    93 enum TConversionTo64Bits
       
    94 	{
       
    95 	EOperatorInt64=0,
       
    96 	EOperatorTReal64=1, EGetTReal64=2
       
    97 	};
       
    98 
       
    99 struct SConvertTo64BitTest
       
   100 	{
       
   101 	SConvertTo64BitTest(const SRealX& op, TInt64 res, TInt r);
       
   102 	void Test(TConversionTo64Bits aConversion) const;
       
   103 
       
   104 	SRealX iOperand;
       
   105 	TInt64 iResult;
       
   106 	TInt iReturnCode;
       
   107 	};
       
   108 
       
   109 enum TUnaryOperation
       
   110 	{
       
   111 	EUnaryPlus=0, EUnaryMinus=1,
       
   112 	EPreInc=2, EPreDec=3, EPostInc=4, EPostDec=5
       
   113 	};
       
   114 
       
   115 struct SOneOpTest
       
   116 	{
       
   117 	SOneOpTest(const SRealX& op, const SRealX& res, TInt r);
       
   118 	void Test(TUnaryOperation anOperation) const;
       
   119 	TInt DoTest(TUnaryOperation anOperation, TRealX *aResult) const;
       
   120 
       
   121 	SRealX iOperand;
       
   122 	SRealX iResult;
       
   123 	TInt iReturnCode;
       
   124 	};
       
   125 
       
   126 struct SOneOpTestThreadInfo
       
   127 	{
       
   128 	const SOneOpTest *iTest;
       
   129 	TUnaryOperation iOperation;
       
   130 	TRealX *iResult;
       
   131 	};
       
   132 
       
   133 struct SCompareTest
       
   134 	{
       
   135 	SCompareTest(const SRealX& o1, const SRealX& o2, TInt r);
       
   136 	void Test() const;
       
   137 
       
   138 	SRealX iOperand1;
       
   139 	SRealX iOperand2;
       
   140 	TInt iReturnCode;
       
   141 	};
       
   142 
       
   143 enum TBinaryOperation
       
   144 	{
       
   145 	EAddEq=0, ESubEq=1, EMultEq=2, EDivEq=3,			// TInt TRealX::AddEq() etc
       
   146 	EAdd=4, ESub=5, EMult=6, EDiv=7,					// TInt TRealX::Add() etc
       
   147 	EPlusEq=8, EMinusEq=9, EStarEq=10, ESlashEq=11,		// += -= *= /=
       
   148 	EPlus=12, EMinus=13, EStar=14, ESlash=15			// + - * /
       
   149 	};
       
   150 
       
   151 struct STwoOpTest
       
   152 	{
       
   153 	STwoOpTest(const SRealX& o1, const SRealX& o2, const SRealX& res, TInt r);
       
   154 	void Test(TBinaryOperation anOperation, TBool aSwap=EFalse) const;
       
   155 	TInt DoTest(TBinaryOperation anOperation, TRealX *aResult, TBool aSwap) const;
       
   156 
       
   157 	SRealX iOperand1;
       
   158 	SRealX iOperand2;
       
   159 	SRealX iResult;
       
   160 	TInt iReturnCode;
       
   161 	};
       
   162 
       
   163 struct STwoOpTestThreadInfo
       
   164 	{
       
   165 	const STwoOpTest *iTest;
       
   166 	TBinaryOperation iOperation;
       
   167 	TRealX *iResult;
       
   168 	TBool iSwap;
       
   169 	};
       
   170 
       
   171 struct SSpecialValueTest
       
   172 	{
       
   173 	SSpecialValueTest(const SRealX& op, TInt aResults);
       
   174 	void Test() const;
       
   175 
       
   176 	SRealX iOperand;
       
   177 	TBool iIsZero;
       
   178 	TBool iIsNaN;
       
   179 	TBool iIsInfinite;
       
   180 	TBool iIsFinite;
       
   181 	};
       
   182 
       
   183 GLREF_D const TInt NumBinaryOpNaNTests;
       
   184 GLREF_D const STwoOpTest BinaryOpNaNTests[];
       
   185 
       
   186 GLREF_D const TInt NumAdditionTests;
       
   187 GLREF_D const STwoOpTest AdditionTests[];
       
   188 
       
   189 GLREF_D const TInt NumMultiplicationTests;
       
   190 GLREF_D const STwoOpTest MultiplicationTests[];
       
   191 
       
   192 GLREF_D const TInt NumDivisionTests;
       
   193 GLREF_D const STwoOpTest DivisionTests[];
       
   194 
       
   195 GLREF_D const TInt NumComparisonTests;
       
   196 GLREF_D const SCompareTest ComparisonTests[];
       
   197 
       
   198 GLREF_D const TInt NumUnaryPlusTests;
       
   199 GLREF_D const SOneOpTest UnaryPlusTests[];
       
   200 
       
   201 GLREF_D const TInt NumUnaryMinusTests;
       
   202 GLREF_D const SOneOpTest UnaryMinusTests[];
       
   203 
       
   204 GLREF_D const TInt NumIncTests;
       
   205 GLREF_D const SOneOpTest IncTests[];
       
   206 
       
   207 GLREF_D const TInt NumDecTests;
       
   208 GLREF_D const SOneOpTest DecTests[];
       
   209 
       
   210 GLREF_D const TInt NumConvertFromIntTests;
       
   211 GLREF_D const SConvertFrom32BitTest ConvertFromIntTests[];
       
   212 
       
   213 GLREF_D const TInt NumConvertFromUintTests;
       
   214 GLREF_D const SConvertFrom32BitTest ConvertFromUintTests[];
       
   215 
       
   216 GLREF_D const TInt NumConvertFromFloatTests;
       
   217 GLREF_D const SConvertFrom32BitTest ConvertFromFloatTests[];
       
   218 
       
   219 GLREF_D const TInt NumConvertFromInt64Tests;
       
   220 GLREF_D const SConvertFrom64BitTest ConvertFromInt64Tests[];
       
   221 
       
   222 GLREF_D const TInt NumConvertFromDoubleTests;
       
   223 GLREF_D const SConvertFrom64BitTest ConvertFromDoubleTests[];
       
   224 
       
   225 GLREF_D const TInt NumConvertToIntTests;
       
   226 GLREF_D const SConvertTo32BitTest ConvertToIntTests[];
       
   227 
       
   228 GLREF_D const TInt NumConvertToUintTests;
       
   229 GLREF_D const SConvertTo32BitTest ConvertToUintTests[];
       
   230 
       
   231 GLREF_D const TInt NumConvertToInt64Tests;
       
   232 GLREF_D const SConvertTo64BitTest ConvertToInt64Tests[];
       
   233 
       
   234 GLREF_D const TInt NumConvertToFloatTests;
       
   235 GLREF_D const SConvertTo32BitTest ConvertToFloatTests[];
       
   236 
       
   237 GLREF_D const TInt NumConvertToDoubleTests;
       
   238 GLREF_D const SConvertTo64BitTest ConvertToDoubleTests[];
       
   239 
       
   240 GLREF_D const TInt NumSpecialValueTests;
       
   241 GLREF_D const SSpecialValueTest SpecialValueTests[];
       
   242 
       
   243 #endif