os/kernelhwsrv/kerneltest/e32test/math/t_realxd.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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