1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/kernelhwsrv/kerneltest/e32test/math/trealxd1.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,696 @@
1.4 +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// e32test\math\trealxd1.cpp
1.18 +// TREALXD1.CPP - Test data for TRealX
1.19 +//
1.20 +//
1.21 +
1.22 +
1.23 +#include "t_realxd.h"
1.24 +
1.25 +const STwoOpTest BinaryOpNaNTests[] =
1.26 + {
1.27 + STwoOpTest(
1.28 + SRealX(0xffff0000,0xc0000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.29 + SRealX(0xffff0000,0xc0000000,0x00000000), KErrArgument
1.30 + ),
1.31 + STwoOpTest(
1.32 + SRealX(0xffff0000,0xc0000000,0x00000000), SRealX(0x7fff0000,0xb504f333,0xf9de6484),
1.33 + SRealX(0xffff0000,0xc0000000,0x00000000), KErrArgument
1.34 + ),
1.35 + STwoOpTest(
1.36 + SRealX(0xffff0000,0xc0000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000),
1.37 + SRealX(0xffff0000,0xc0000000,0x00000000), KErrArgument
1.38 + ),
1.39 + STwoOpTest(
1.40 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0x00000000,0x00000000,0x00000000),
1.41 + SRealX(0xffff0000,0xedf85458,0xa2bb4a9a), KErrArgument
1.42 + ),
1.43 + STwoOpTest(
1.44 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0x7fff0000,0x80000000,0x00000000),
1.45 + SRealX(0xffff0000,0xedf85458,0xa2bb4a9a), KErrArgument
1.46 + ),
1.47 + STwoOpTest(
1.48 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0xffff0000,0x80000000,0x00000000),
1.49 + SRealX(0xffff0000,0xedf85458,0xa2bb4a9a), KErrArgument
1.50 + ),
1.51 + STwoOpTest(
1.52 + SRealX(0xffff0000,0xddb3d742,0xc265539e), SRealX(0x00000000,0x00000000,0x00000000),
1.53 + SRealX(0xffff0000,0xddb3d742,0xc265539e), KErrArgument
1.54 + ),
1.55 + STwoOpTest(
1.56 + SRealX(0xffff0000,0xddb3d742,0xc265539e), SRealX(0x7fff0000,0x80000000,0x00000000),
1.57 + SRealX(0xffff0000,0xddb3d742,0xc265539e), KErrArgument
1.58 + ),
1.59 + STwoOpTest(
1.60 + SRealX(0xffff0000,0xddb3d742,0xc265539e), SRealX(0xffff0000,0x80000000,0x00000000),
1.61 + SRealX(0xffff0000,0xddb3d742,0xc265539e), KErrArgument
1.62 + ),
1.63 + STwoOpTest(
1.64 + SRealX(0xffff0000,0xddb3d742,0xc265539e), SRealX(0xffff0000,0xc0000000,0x00000000),
1.65 + SRealX(0xffff0000,0xddb3d742,0xc265539e), KErrArgument
1.66 + ),
1.67 + STwoOpTest(
1.68 + SRealX(0xffff0000,0xddb3d742,0xc265539e), SRealX(0xffff0000,0xddb3d742,0xc265539f),
1.69 + SRealX(0xffff0000,0xddb3d742,0xc265539f), KErrArgument
1.70 + ),
1.71 + STwoOpTest(
1.72 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0xffff0000,0x80000000,0x00000001),
1.73 + SRealX(0xffff0000,0xedf85458,0xa2bb4a9a), KErrArgument
1.74 + ),
1.75 + STwoOpTest(
1.76 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0xffff0000,0xadf85458,0xa2bb4a9b),
1.77 + SRealX(0xffff0000,0xedf85458,0xa2bb4a9b), KErrArgument
1.78 + ),
1.79 + STwoOpTest(
1.80 + SRealX(0xffff0000,0x80000000,0x00000001), SRealX(0xffff0000,0x80000000,0x00000002),
1.81 + SRealX(0xffff0000,0xc0000000,0x00000002), KErrArgument
1.82 + ),
1.83 + STwoOpTest(
1.84 + SRealX(0xffff0000,0xadf85458,0xa2bb4a9a), SRealX(0xffff0000,0xddb3d742,0xc265539e),
1.85 + SRealX(0xffff0000,0xddb3d742,0xc265539e), KErrArgument
1.86 + )
1.87 + };
1.88 +
1.89 +const STwoOpTest AdditionTests[] =
1.90 + {
1.91 + STwoOpTest(
1.92 + SRealX(0x00300000,0x80000000,0x00000000), SRealX(0x00300001,0x80000000,0x00008000),
1.93 + SRealX(0x00000001,0x00000000,0x00000000), KErrUnderflow
1.94 + ),
1.95 + STwoOpTest(
1.96 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.97 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.98 + ),
1.99 + STwoOpTest(
1.100 + SRealX(0x00000001,0x00000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.101 + SRealX(0x00000001,0x00000000,0x00000000), KErrNone
1.102 + ),
1.103 + STwoOpTest(
1.104 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x7fff0000,0xb504f333,0xf9de6484),
1.105 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), KErrNone
1.106 + ),
1.107 + STwoOpTest(
1.108 + SRealX(0x00000001,0x00000000,0x00000000), SRealX(0x7fff0000,0xb504f333,0xf9de6484),
1.109 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), KErrNone
1.110 + ),
1.111 + STwoOpTest(
1.112 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000),
1.113 + SRealX(0x80000000,0x80000000,0x00000000), KErrNone
1.114 + ),
1.115 + STwoOpTest(
1.116 + SRealX(0x80000000,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000),
1.117 + SRealX(0x80000000,0xc0000000,0x00000000), KErrNone
1.118 + ),
1.119 + STwoOpTest(
1.120 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fdf0000,0xb504f333,0xf9de6484),
1.121 + SRealX(0x7fff0200,0x80000000,0xb504f334), KErrNone
1.122 + ),
1.123 + STwoOpTest(
1.124 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fdb0000,0xb504f333,0xf9de6484),
1.125 + SRealX(0x7fff0100,0x80000000,0x0b504f33), KErrNone
1.126 + ),
1.127 + STwoOpTest(
1.128 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fe30000,0xb504f333,0xf9de6484),
1.129 + SRealX(0x7fff0200,0x8000000b,0x504f3340), KErrNone
1.130 + ),
1.131 + STwoOpTest(
1.132 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fef0000,0xb504f333,0xf9de6484),
1.133 + SRealX(0x7fff0100,0x8000b504,0xf333f9de), KErrNone
1.134 + ),
1.135 + STwoOpTest(
1.136 + SRealX(0x7fff0000,0xb504f333,0xf9de0000), SRealX(0x7fef0000,0x80000001,0x64840000),
1.137 + SRealX(0x7fff0000,0xb5057333,0xf9df6484), KErrNone
1.138 + ),
1.139 + STwoOpTest(
1.140 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fc00000,0x80000000,0x00000000),
1.141 + SRealX(0x7fff0000,0x80000000,0x00000001), KErrNone
1.142 + ),
1.143 + STwoOpTest(
1.144 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fbf0000,0x80000000,0x00000000),
1.145 + SRealX(0x7fff0100,0x80000000,0x00000000), KErrNone
1.146 + ),
1.147 + STwoOpTest(
1.148 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fbf0000,0x80000000,0x00000001),
1.149 + SRealX(0x7fff0200,0x80000000,0x00000001), KErrNone
1.150 + ),
1.151 + STwoOpTest(
1.152 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fc00000,0xc0000000,0x00000000),
1.153 + SRealX(0x7fff0200,0x80000000,0x00000002), KErrNone
1.154 + ),
1.155 + STwoOpTest(
1.156 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fc00000,0xbfffffff,0xffffffff),
1.157 + SRealX(0x7fff0100,0x80000000,0x00000001), KErrNone
1.158 + ),
1.159 + STwoOpTest(
1.160 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fbe0000,0xffffffff,0xffffffff),
1.161 + SRealX(0x7fff0100,0x80000000,0x00000000), KErrNone
1.162 + ),
1.163 + STwoOpTest(
1.164 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fbe0000,0xffffffff,0xffffffff),
1.165 + SRealX(0x7fff0201,0x80000000,0x00000000), KErrNone
1.166 + ),
1.167 + STwoOpTest(
1.168 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000),
1.169 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.170 + ),
1.171 + STwoOpTest(
1.172 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x80050000,0xc8000000,0x00000000),
1.173 + SRealX(0x80050000,0xc6000000,0x00000000), KErrNone
1.174 + ),
1.175 + STwoOpTest(
1.176 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0001,0x8d04f333,0xf9de6484),
1.177 + SRealX(0x7ffb0001,0xd04f333f,0x9de64840), KErrNone
1.178 + ),
1.179 + STwoOpTest(
1.180 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x80000000),
1.181 + SRealX(0x7fdf0000,0x80000000,0x00000000), KErrNone
1.182 + ),
1.183 + STwoOpTest(
1.184 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000001),
1.185 + SRealX(0x7fc00000,0x80000000,0x00000000), KErrNone
1.186 + ),
1.187 + STwoOpTest(
1.188 + SRealX(0x00300001,0x80000000,0x00000000), SRealX(0x00300000,0x80000000,0x00000000),
1.189 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.190 + ),
1.191 + STwoOpTest(
1.192 + SRealX(0x00200001,0x80000000,0x00000000), SRealX(0x00200000,0x80000000,0x00000000),
1.193 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.194 + ),
1.195 + STwoOpTest(
1.196 + SRealX(0x00100001,0x80000000,0x00000000), SRealX(0x00100000,0x80000000,0x00000000),
1.197 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.198 + ),
1.199 + STwoOpTest(
1.200 + SRealX(0x00300001,0x80000000,0x00000000), SRealX(0x00300000,0x80000000,0x80000000),
1.201 + SRealX(0x00100000,0x80000000,0x00000000), KErrNone
1.202 + ),
1.203 + STwoOpTest(
1.204 + SRealX(0x00300001,0x80000000,0x00000000), SRealX(0x00300000,0x80000000,0x00010000),
1.205 + SRealX(0x00010000,0x80000000,0x00000000), KErrNone
1.206 + ),
1.207 + STwoOpTest(
1.208 + SRealX(0x00300001,0x80000000,0x00000000), SRealX(0x00300000,0x80000000,0x00008000),
1.209 + SRealX(0x00000000,0x00000000,0x00000000), KErrUnderflow
1.210 + ),
1.211 + STwoOpTest(
1.212 + SRealX(0xfffe0000,0x80000000,0x00000000), SRealX(0xfffe0000,0x80000000,0x00000000),
1.213 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.214 + ),
1.215 + STwoOpTest(
1.216 + SRealX(0xfffe0000,0xb504f333,0xf9de6484), SRealX(0xfffe0000,0xddb3d742,0xc265539e),
1.217 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.218 + ),
1.219 + STwoOpTest(
1.220 + SRealX(0xfffe0000,0x80000000,0x00000000), SRealX(0xfffd0000,0xffffffff,0xf0000000),
1.221 + SRealX(0xfffe0000,0xffffffff,0xf8000000), KErrNone
1.222 + ),
1.223 + STwoOpTest(
1.224 + SRealX(0xfffe0000,0x80000000,0x00000000), SRealX(0xfffd0000,0xffffffff,0xfffffffe),
1.225 + SRealX(0xfffe0000,0xffffffff,0xffffffff), KErrNone
1.226 + ),
1.227 + STwoOpTest(
1.228 + SRealX(0xfffe0000,0x80000000,0x00000000), SRealX(0xfffd0000,0xffffffff,0xffffffff),
1.229 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.230 + ),
1.231 + STwoOpTest(
1.232 + SRealX(0xfffe0000,0xf0000000,0x00000000), SRealX(0xfffa0000,0xffffffff,0xfffffff0),
1.233 + SRealX(0xfffe0000,0xffffffff,0xffffffff), KErrNone
1.234 + ),
1.235 + STwoOpTest(
1.236 + SRealX(0xfffe0000,0xf0000000,0x00000000), SRealX(0xfffa0000,0xffffffff,0xfffffff7),
1.237 + SRealX(0xfffe0100,0xffffffff,0xffffffff), KErrNone
1.238 + ),
1.239 + STwoOpTest(
1.240 + SRealX(0xfffe0000,0xf0000000,0x00000000), SRealX(0xfffa0000,0xffffffff,0xfffffff8),
1.241 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.242 + ),
1.243 + STwoOpTest(
1.244 + SRealX(0xfffe0001,0xf0000000,0x00000000), SRealX(0xfffa0001,0xffffffff,0xfffffff0),
1.245 + SRealX(0xfffe0001,0xffffffff,0xffffffff), KErrNone
1.246 + ),
1.247 + STwoOpTest(
1.248 + SRealX(0xfffe0001,0xf0000000,0x00000000), SRealX(0xfffa0001,0xffffffff,0xfffffff7),
1.249 + SRealX(0xfffe0101,0xffffffff,0xffffffff), KErrNone
1.250 + ),
1.251 + STwoOpTest(
1.252 + SRealX(0xfffe0001,0xf0000000,0x00000000), SRealX(0xfffa0001,0xffffffff,0xfffffff8),
1.253 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.254 + ),
1.255 + STwoOpTest(
1.256 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xfffe0001,0xffffffff,0xffffffff),
1.257 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.258 + ),
1.259 + STwoOpTest(
1.260 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000),
1.261 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.262 + ),
1.263 + STwoOpTest(
1.264 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000),
1.265 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.266 + ),
1.267 + STwoOpTest(
1.268 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xfffe0000,0xffffffff,0xffffffff),
1.269 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.270 + ),
1.271 + STwoOpTest(
1.272 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000),
1.273 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.274 + ),
1.275 + STwoOpTest(
1.276 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000),
1.277 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.278 + ),
1.279 + STwoOpTest(
1.280 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000),
1.281 + SRealX(0xffff0001,0xc0000000,0x00000000), KErrArgument
1.282 + )
1.283 + };
1.284 +
1.285 +const STwoOpTest MultiplicationTests[] =
1.286 + {
1.287 + STwoOpTest(
1.288 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.289 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.290 + ),
1.291 + STwoOpTest(
1.292 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.293 + SRealX(0x00000001,0x00000000,0x00000000), KErrNone
1.294 + ),
1.295 + STwoOpTest(
1.296 + SRealX(0x00000001,0x00000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.297 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.298 + ),
1.299 + STwoOpTest(
1.300 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x00000001,0x00000000,0x00000000),
1.301 + SRealX(0x00000001,0x00000000,0x00000000), KErrNone
1.302 + ),
1.303 + STwoOpTest(
1.304 + SRealX(0x7fff0001,0xb504f333,0xf9de6484), SRealX(0x00000001,0x00000000,0x00000000),
1.305 + SRealX(0x00000000,0x00000000,0x00000000), KErrNone
1.306 + ),
1.307 + STwoOpTest(
1.308 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7fff0000,0xb504f333,0xf9de6484),
1.309 + SRealX(0x7fff0100,0xffffffff,0xffffffff), KErrNone
1.310 + ),
1.311 + STwoOpTest(
1.312 + SRealX(0x7fff0000,0xffffffff,0x00000000), SRealX(0x7fff0000,0xffffffff,0x00000000),
1.313 + SRealX(0x80000000,0xfffffffe,0x00000001), KErrNone
1.314 + ),
1.315 + STwoOpTest(
1.316 + SRealX(0x7fff0000,0xffffffff,0xf0000000), SRealX(0x7fff0000,0xffffffff,0xf0000000),
1.317 + SRealX(0x80000100,0xffffffff,0xe0000000), KErrNone
1.318 + ),
1.319 + STwoOpTest(
1.320 + SRealX(0x7fff0000,0xcccccccc,0xcccccccd), SRealX(0x7fff0000,0xcccccccc,0xcccccccd),
1.321 + SRealX(0x80000200,0xa3d70a3d,0x70a3d70b), KErrNone
1.322 + ),
1.323 + STwoOpTest(
1.324 + SRealX(0x7ffe0000,0xcccccccc,0xcccccccd), SRealX(0x80010000,0xa0000000,0x00000000),
1.325 + SRealX(0x80010100,0x80000000,0x00000000), KErrNone
1.326 + ),
1.327 + STwoOpTest(
1.328 + SRealX(0x80000000,0xadf85458,0xa2bb4a9a), SRealX(0x7ffd0000,0xbc5ab1b1,0x6779be36),
1.329 + SRealX(0x7fff0200,0x80000000,0x00000000), KErrNone
1.330 + ),
1.331 + STwoOpTest(
1.332 + SRealX(0x80000001,0xadf85458,0xa2bb4a9a), SRealX(0x7ffd0000,0xbc5ab1b1,0x6779be36),
1.333 + SRealX(0x7fff0201,0x80000000,0x00000000), KErrNone
1.334 + ),
1.335 + STwoOpTest(
1.336 + SRealX(0x80000001,0xadf85458,0xa2bb4a9a), SRealX(0x7ffd0001,0xbc5ab1b1,0x6779be36),
1.337 + SRealX(0x7fff0200,0x80000000,0x00000000), KErrNone
1.338 + ),
1.339 + STwoOpTest(
1.340 + SRealX(0x80000000,0xadf85458,0xa2bb4a9a), SRealX(0x80000000,0xc90fdaa2,0x2168c235),
1.341 + SRealX(0x80020200,0x88a2c05a,0x2ea3a4f3), KErrNone
1.342 + ),
1.343 + STwoOpTest(
1.344 + SRealX(0x7fff0000,0xc0000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000002),
1.345 + SRealX(0x7fff0000,0xc0000000,0x00000003), KErrNone
1.346 + ),
1.347 + STwoOpTest(
1.348 + SRealX(0x7fff0000,0xc0000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000001),
1.349 + SRealX(0x7fff0200,0xc0000000,0x00000002), KErrNone
1.350 + ),
1.351 + STwoOpTest(
1.352 + SRealX(0x7fff0000,0xa0000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000004),
1.353 + SRealX(0x7fff0000,0xa0000000,0x00000005), KErrNone
1.354 + ),
1.355 + STwoOpTest(
1.356 + SRealX(0x7fff0000,0xa0000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000002),
1.357 + SRealX(0x7fff0100,0xa0000000,0x00000002), KErrNone
1.358 + ),
1.359 + STwoOpTest(
1.360 + SRealX(0x65630000,0xb504f333,0xf9de6485), SRealX(0x1a9c0000,0xb504f333,0xf9de6485),
1.361 + SRealX(0x00010200,0x80000000,0x00000001), KErrNone
1.362 + ),
1.363 + STwoOpTest(
1.364 + SRealX(0x65630000,0xb504f333,0xf9de6484), SRealX(0x1a9c0000,0xb504f333,0xf9de6484),
1.365 + SRealX(0x00000000,0x00000000,0x00000000), KErrUnderflow
1.366 + ),
1.367 + STwoOpTest(
1.368 + SRealX(0x65630000,0xb504f333,0xf9de6484), SRealX(0x1a9b0000,0xc90fdaa2,0x2168c235),
1.369 + SRealX(0x00000000,0x00000000,0x00000000), KErrUnderflow
1.370 + ),
1.371 + STwoOpTest(
1.372 + SRealX(0x00010000,0xb504f333,0xf9de6484), SRealX(0x00010000,0xc90fdaa2,0x2168c235),
1.373 + SRealX(0x00000000,0x00000000,0x00000000), KErrUnderflow
1.374 + ),
1.375 + STwoOpTest(
1.376 + SRealX(0xaf6a0000,0xb504f333,0xf9de6484), SRealX(0xd0930000,0xb504f333,0xf9de6484),
1.377 + SRealX(0xfffe0100,0xffffffff,0xffffffff), KErrNone
1.378 + ),
1.379 + STwoOpTest(
1.380 + SRealX(0xaf6a0000,0xb504f333,0xf9de6485), SRealX(0xd0930000,0xb504f333,0xf9de6485),
1.381 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.382 + ),
1.383 + STwoOpTest(
1.384 + SRealX(0xaf6a0000,0xb504f333,0xf9de6484), SRealX(0xd0940000,0xc90fdaa2,0x2168c235),
1.385 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.386 + ),
1.387 + STwoOpTest(
1.388 + SRealX(0xfffe0000,0xb504f333,0xf9de6484), SRealX(0xfffd0000,0xc90fdaa2,0x2168c235),
1.389 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.390 + ),
1.391 + STwoOpTest(
1.392 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000),
1.393 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.394 + ),
1.395 + STwoOpTest(
1.396 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000),
1.397 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.398 + ),
1.399 + STwoOpTest(
1.400 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000),
1.401 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.402 + ),
1.403 + STwoOpTest(
1.404 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00010000,0x80000000,0x00000000),
1.405 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.406 + ),
1.407 + STwoOpTest(
1.408 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.409 + SRealX(0xffff0001,0xc0000000,0x00000000), KErrArgument
1.410 + )
1.411 + };
1.412 +
1.413 +const STwoOpTest DivisionTests[] =
1.414 + {
1.415 + STwoOpTest(
1.416 + SRealX(0x80050000,0xc8000000,0x00000000), SRealX(0x80010000,0xa0000000,0x00000000),
1.417 + SRealX(0x80030000,0xa0000000,0x00000000), KErrNone
1.418 + ),
1.419 + STwoOpTest(
1.420 + SRealX(0x80190000,0xbebc2000,0x00000000), SRealX(0x80050000,0xc8000000,0x00000000),
1.421 + SRealX(0x80120000,0xf4240000,0x00000000), KErrNone
1.422 + ),
1.423 + STwoOpTest(
1.424 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x80000000,0xc0000000,0x00000000),
1.425 + SRealX(0x7ffd0200,0xaaaaaaaa,0xaaaaaaab), KErrNone
1.426 + ),
1.427 + STwoOpTest(
1.428 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x80010000,0xa0000000,0x00000000),
1.429 + SRealX(0x7ffc0200,0xcccccccc,0xcccccccd), KErrNone
1.430 + ),
1.431 + STwoOpTest(
1.432 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x80050000,0xc8000000,0x00000000),
1.433 + SRealX(0x7ff80100,0xa3d70a3d,0x70a3d70a), KErrNone
1.434 + ),
1.435 + STwoOpTest(
1.436 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0000,0xb504f333,0xf9de6484),
1.437 + SRealX(0x7ffe0200,0xb504f333,0xf9de6485), KErrNone
1.438 + ),
1.439 + STwoOpTest(
1.440 + SRealX(0x80000000,0xc90fdaa2,0x2168c235), SRealX(0x80000000,0xadf85458,0xa2bb4a9a),
1.441 + SRealX(0x7fff0200,0x93eedfb1,0x38edef80), KErrNone
1.442 + ),
1.443 + STwoOpTest(
1.444 + SRealX(0x80000001,0xc90fdaa2,0x2168c235), SRealX(0x80000000,0xadf85458,0xa2bb4a9a),
1.445 + SRealX(0x7fff0201,0x93eedfb1,0x38edef80), KErrNone
1.446 + ),
1.447 + STwoOpTest(
1.448 + SRealX(0x80000001,0xc90fdaa2,0x2168c235), SRealX(0x80000001,0xadf85458,0xa2bb4a9a),
1.449 + SRealX(0x7fff0200,0x93eedfb1,0x38edef80), KErrNone
1.450 + ),
1.451 + STwoOpTest(
1.452 + SRealX(0x80000001,0xc90fdaa2,0x2168c235), SRealX(0x80000000,0x80000000,0x00000000),
1.453 + SRealX(0x7fff0001,0xc90fdaa2,0x2168c235), KErrNone
1.454 + ),
1.455 + STwoOpTest(
1.456 + SRealX(0xc0000000,0xc90fdaa2,0x2168c235), SRealX(0x40010000,0x80000000,0x00000000),
1.457 + SRealX(0xfffe0000,0xc90fdaa2,0x2168c235), KErrNone
1.458 + ),
1.459 + STwoOpTest(
1.460 + SRealX(0xc0000000,0xc90fdaa2,0x2168c235), SRealX(0x40000000,0x80000000,0x00000000),
1.461 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.462 + ),
1.463 + STwoOpTest(
1.464 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xfffe0000,0xffffffff,0xffffffff),
1.465 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.466 + ),
1.467 + STwoOpTest(
1.468 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.469 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.470 + ),
1.471 + STwoOpTest(
1.472 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.473 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.474 + ),
1.475 + STwoOpTest(
1.476 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.477 + SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.478 + ),
1.479 + STwoOpTest(
1.480 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.481 + SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.482 + ),
1.483 + STwoOpTest(
1.484 + SRealX(0x00010000,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.485 + SRealX(0xffff0000,0x80000000,0x00000000), KErrDivideByZero
1.486 + ),
1.487 + STwoOpTest(
1.488 + SRealX(0x00010001,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000),
1.489 + SRealX(0xffff0001,0x80000000,0x00000000), KErrDivideByZero
1.490 + ),
1.491 + STwoOpTest(
1.492 + SRealX(0x00010000,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.493 + SRealX(0xffff0001,0x80000000,0x00000000), KErrDivideByZero
1.494 + ),
1.495 + STwoOpTest(
1.496 + SRealX(0x00010001,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000),
1.497 + SRealX(0xffff0000,0x80000000,0x00000000), KErrDivideByZero
1.498 + ),
1.499 + STwoOpTest(
1.500 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000),
1.501 + SRealX(0xffff0001,0xc0000000,0x00000000), KErrArgument
1.502 + )
1.503 + };
1.504 +
1.505 +
1.506 +const SCompareTest ComparisonTests[] =
1.507 + {
1.508 + SCompareTest(
1.509 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000), 2
1.510 + ),
1.511 + SCompareTest(
1.512 + SRealX(0x80050000,0xc8000000,0x00000000), SRealX(0x80010000,0xa0000000,0x00000000), 4
1.513 + ),
1.514 + SCompareTest(
1.515 + SRealX(0x80050001,0xc8000000,0x00000000), SRealX(0x80010001,0xa0000000,0x00000000), 1
1.516 + ),
1.517 + SCompareTest(
1.518 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fff0001,0x80000000,0x00000000), 2
1.519 + ),
1.520 + SCompareTest(
1.521 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0001,0x80000000,0x00000000), 4
1.522 + ),
1.523 + SCompareTest(
1.524 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000), 1
1.525 + ),
1.526 + SCompareTest(
1.527 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000), 2
1.528 + ),
1.529 + SCompareTest(
1.530 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000), 2
1.531 + ),
1.532 + SCompareTest(
1.533 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7fff0000,0xb504f333,0xf9de6484), 2
1.534 + ),
1.535 + SCompareTest(
1.536 + SRealX(0x7fff0001,0xb504f333,0xf9de6484), SRealX(0x7fff0001,0xb504f333,0xf9de6484), 2
1.537 + ),
1.538 + SCompareTest(
1.539 + SRealX(0x7fff0000,0xb504f333,0xf9de6485), SRealX(0x7fff0000,0xb504f333,0xf9de6484), 4
1.540 + ),
1.541 + SCompareTest(
1.542 + SRealX(0x7fff0001,0xb504f333,0xf9de6485), SRealX(0x7fff0001,0xb504f333,0xf9de6484), 1
1.543 + ),
1.544 + SCompareTest(
1.545 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7fff0000,0xb504f333,0xf9de6485), 1
1.546 + ),
1.547 + SCompareTest(
1.548 + SRealX(0x7fff0001,0xb504f333,0xf9de6484), SRealX(0x7fff0001,0xb504f333,0xf9de6485), 4
1.549 + ),
1.550 + SCompareTest(
1.551 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7ffe0000,0xb504f333,0xf9de6484), 4
1.552 + ),
1.553 + SCompareTest(
1.554 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x80000000,0xb504f333,0xf9de6484), 1
1.555 + ),
1.556 + SCompareTest(
1.557 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xfffe0000,0xffffffff,0xffffffff), 4
1.558 + ),
1.559 + SCompareTest(
1.560 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000), 4
1.561 + ),
1.562 + SCompareTest(
1.563 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000), 4
1.564 + ),
1.565 + SCompareTest(
1.566 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000), 4
1.567 + ),
1.568 + SCompareTest(
1.569 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xfffe0001,0xffffffff,0xffffffff), 1
1.570 + ),
1.571 + SCompareTest(
1.572 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), 1
1.573 + ),
1.574 + SCompareTest(
1.575 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000), 1
1.576 + ),
1.577 + SCompareTest(
1.578 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000), 1
1.579 + ),
1.580 + SCompareTest(
1.581 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000), 2
1.582 + ),
1.583 + SCompareTest(
1.584 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), 2
1.585 + ),
1.586 + SCompareTest(
1.587 + SRealX(0xffff0001,0xc0000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), 8
1.588 + ),
1.589 + SCompareTest(
1.590 + SRealX(0xffff0001,0xc0000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000), 8
1.591 + ),
1.592 + SCompareTest(
1.593 + SRealX(0xffff0000,0x80000000,0x00000001), SRealX(0x7fff0001,0x80000000,0x00000000), 8
1.594 + ),
1.595 + SCompareTest(
1.596 + SRealX(0xffff0000,0x80000000,0x00000001), SRealX(0xffff0001,0xddb3d742,0xc265539e), 8
1.597 + ),
1.598 + SCompareTest(
1.599 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0xffff0001,0xddb3d742,0xc265539e), 8
1.600 + ),
1.601 + SCompareTest(
1.602 + SRealX(0xffee0000,0x80005000,0x40000000), SRealX(0xffff0001,0xddb3d742,0xc265539e), 8
1.603 + ),
1.604 + SCompareTest(
1.605 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0001,0xddb3d742,0xc265539e), 8
1.606 + )
1.607 + };
1.608 +
1.609 +const SOneOpTest UnaryPlusTests[] =
1.610 + {
1.611 + SOneOpTest(
1.612 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000), 0
1.613 + ),
1.614 + SOneOpTest(
1.615 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7fff0000,0xb504f333,0xf9de6484), 0
1.616 + ),
1.617 + SOneOpTest(
1.618 + SRealX(0xffff0001,0xb504f333,0xf9de6484), SRealX(0xffff0001,0xb504f333,0xf9de6484), 0
1.619 + ),
1.620 + };
1.621 +
1.622 +const SOneOpTest UnaryMinusTests[] =
1.623 + {
1.624 + SOneOpTest(
1.625 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x7fff0001,0x80000000,0x00000000), 0
1.626 + ),
1.627 + SOneOpTest(
1.628 + SRealX(0x7fff0000,0xb504f333,0xf9de6484), SRealX(0x7fff0001,0xb504f333,0xf9de6484), 0
1.629 + ),
1.630 + SOneOpTest(
1.631 + SRealX(0xffff0000,0xb504f333,0xf9de6484), SRealX(0xffff0001,0xb504f333,0xf9de6484), 0
1.632 + ),
1.633 + SOneOpTest(
1.634 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), 0
1.635 + ),
1.636 + SOneOpTest(
1.637 + SRealX(0x00000000,0x00000000,0x00000000), SRealX(0x00000001,0x00000000,0x00000000), 0
1.638 + ),
1.639 + };
1.640 +
1.641 +const SOneOpTest IncTests[] =
1.642 + {
1.643 + SOneOpTest(
1.644 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x80000000,0x80000000,0x00000000), 0
1.645 + ),
1.646 + SOneOpTest(
1.647 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000), 0
1.648 + ),
1.649 + SOneOpTest(
1.650 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.651 + ),
1.652 + SOneOpTest(
1.653 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.654 + ),
1.655 + SOneOpTest(
1.656 + SRealX(0xffff0000,0xb504f333,0xf9de6484), SRealX(0xffff0000,0xf504f333,0xf9de6484), KErrArgument
1.657 + ),
1.658 + SOneOpTest(
1.659 + SRealX(0x00000001,0x00000000,0x00000000), SRealX(0x7fff0000,0x80000000,0x00000000), KErrNone
1.660 + ),
1.661 + SOneOpTest(
1.662 + SRealX(0x803e0000,0xddb3d742,0xffffffff), SRealX(0x803e0000,0xddb3d743,0x00000000), KErrNone
1.663 + )
1.664 + };
1.665 +
1.666 +const SOneOpTest DecTests[] =
1.667 + {
1.668 + SOneOpTest(
1.669 + SRealX(0x7fff0000,0x80000000,0x00000000), SRealX(0x00000000,0x00000000,0x00000000), 0
1.670 + ),
1.671 + SOneOpTest(
1.672 + SRealX(0x7fff0001,0x80000000,0x00000000), SRealX(0x80000001,0x80000000,0x00000000), 0
1.673 + ),
1.674 + SOneOpTest(
1.675 + SRealX(0xffff0000,0x80000000,0x00000000), SRealX(0xffff0000,0x80000000,0x00000000), KErrOverflow
1.676 + ),
1.677 + SOneOpTest(
1.678 + SRealX(0xffff0001,0x80000000,0x00000000), SRealX(0xffff0001,0x80000000,0x00000000), KErrOverflow
1.679 + ),
1.680 + SOneOpTest(
1.681 + SRealX(0xffff0000,0xb504f333,0xf9de6484), SRealX(0xffff0000,0xf504f333,0xf9de6484), KErrArgument
1.682 + ),
1.683 + SOneOpTest(
1.684 + SRealX(0x00000001,0x00000000,0x00000000), SRealX(0x7fff0001,0x80000000,0x00000000), KErrNone
1.685 + ),
1.686 + SOneOpTest(
1.687 + SRealX(0x803e0000,0xddb3d743,0x00000000), SRealX(0x803e0000,0xddb3d742,0xffffffff), KErrNone
1.688 + )
1.689 + };
1.690 +
1.691 +GLDEF_D const TInt NumBinaryOpNaNTests=sizeof(BinaryOpNaNTests)/sizeof(STwoOpTest);
1.692 +GLDEF_D const TInt NumAdditionTests=sizeof(AdditionTests)/sizeof(STwoOpTest);
1.693 +GLDEF_D const TInt NumMultiplicationTests=sizeof(MultiplicationTests)/sizeof(STwoOpTest);
1.694 +GLDEF_D const TInt NumDivisionTests=sizeof(DivisionTests)/sizeof(STwoOpTest);
1.695 +GLDEF_D const TInt NumComparisonTests=sizeof(ComparisonTests)/sizeof(SCompareTest);
1.696 +GLDEF_D const TInt NumUnaryPlusTests=sizeof(UnaryPlusTests)/sizeof(SOneOpTest);
1.697 +GLDEF_D const TInt NumUnaryMinusTests=sizeof(UnaryMinusTests)/sizeof(SOneOpTest);
1.698 +GLDEF_D const TInt NumIncTests=sizeof(IncTests)/sizeof(SOneOpTest);
1.699 +GLDEF_D const TInt NumDecTests=sizeof(DecTests)/sizeof(SOneOpTest);