1023dd3b8Sopenharmony_ci// Tests immutability of operand[s] for all applicable methods. 2023dd3b8Sopenharmony_ci// Also tests each Decimal.prototype method against its equivalent Decimal method where applicable. 3023dd3b8Sopenharmony_ciif (typeof T === 'undefined') require('../setup'); 4023dd3b8Sopenharmony_ci 5023dd3b8Sopenharmony_ciT('immutability', function () { 6023dd3b8Sopenharmony_ci 7023dd3b8Sopenharmony_ci Decimal.config({ 8023dd3b8Sopenharmony_ci precision: 20, 9023dd3b8Sopenharmony_ci rounding: 4, 10023dd3b8Sopenharmony_ci toExpNeg: -7, 11023dd3b8Sopenharmony_ci toExpPos: 21, 12023dd3b8Sopenharmony_ci minE: -9e15, 13023dd3b8Sopenharmony_ci maxE: 9e15 14023dd3b8Sopenharmony_ci }); 15023dd3b8Sopenharmony_ci 16023dd3b8Sopenharmony_ci // Integer [0, 9e15), with each possible number of digits, [1, 16], equally likely. 17023dd3b8Sopenharmony_ci function randInt() { 18023dd3b8Sopenharmony_ci return Math.floor(Math.random() * 9e15 / Math.pow(10, Math.random() * 16 | 0)); 19023dd3b8Sopenharmony_ci } 20023dd3b8Sopenharmony_ci 21023dd3b8Sopenharmony_ci var a, aa, b, bb, i, k, n, t, v, x, y, z; 22023dd3b8Sopenharmony_ci 23023dd3b8Sopenharmony_ci t = T.assertEqualDecimal; 24023dd3b8Sopenharmony_ci 25023dd3b8Sopenharmony_ci v = [ 26023dd3b8Sopenharmony_ci 0, 27023dd3b8Sopenharmony_ci NaN, 28023dd3b8Sopenharmony_ci Infinity, 29023dd3b8Sopenharmony_ci -Infinity, 30023dd3b8Sopenharmony_ci 0.5, 31023dd3b8Sopenharmony_ci -0.5, 32023dd3b8Sopenharmony_ci 1, 33023dd3b8Sopenharmony_ci -1, 34023dd3b8Sopenharmony_ci (x = Decimal.random()), 35023dd3b8Sopenharmony_ci x.neg(), 36023dd3b8Sopenharmony_ci (x = randInt()), 37023dd3b8Sopenharmony_ci -x, 38023dd3b8Sopenharmony_ci (x = Decimal.random().plus(randInt())), 39023dd3b8Sopenharmony_ci x.neg() 40023dd3b8Sopenharmony_ci ]; 41023dd3b8Sopenharmony_ci 42023dd3b8Sopenharmony_ci for (i = 0; i < v.length; i++) { 43023dd3b8Sopenharmony_ci a = new Decimal(v[i]); 44023dd3b8Sopenharmony_ci aa = new Decimal(v[i]); 45023dd3b8Sopenharmony_ci k = (Math.random() * 10 | 0) / 10; 46023dd3b8Sopenharmony_ci b = k == 0.5 ? new Decimal(a) : a[k < 0.5 ? 'plus' : 'minus'](Decimal.random().plus(randInt())); 47023dd3b8Sopenharmony_ci bb = new Decimal(b); 48023dd3b8Sopenharmony_ci n = Math.random() * 20 + 1 | 0; 49023dd3b8Sopenharmony_ci 50023dd3b8Sopenharmony_ci x = a.absoluteValue(); 51023dd3b8Sopenharmony_ci t(a, aa); 52023dd3b8Sopenharmony_ci y = a.abs(); 53023dd3b8Sopenharmony_ci t(a, aa); 54023dd3b8Sopenharmony_ci z = Decimal.abs(a); 55023dd3b8Sopenharmony_ci t(a, aa); 56023dd3b8Sopenharmony_ci 57023dd3b8Sopenharmony_ci t(x, y); 58023dd3b8Sopenharmony_ci t(y, z); 59023dd3b8Sopenharmony_ci 60023dd3b8Sopenharmony_ci x = a.ceil(); 61023dd3b8Sopenharmony_ci t(a, aa); 62023dd3b8Sopenharmony_ci y = Decimal.ceil(a); 63023dd3b8Sopenharmony_ci t(a, aa); 64023dd3b8Sopenharmony_ci 65023dd3b8Sopenharmony_ci t(x, y); 66023dd3b8Sopenharmony_ci 67023dd3b8Sopenharmony_ci x = a.comparedTo(b); 68023dd3b8Sopenharmony_ci t(a, aa); 69023dd3b8Sopenharmony_ci t(b, bb); 70023dd3b8Sopenharmony_ci y = a.cmp(b); 71023dd3b8Sopenharmony_ci t(a, aa); 72023dd3b8Sopenharmony_ci t(b, bb); 73023dd3b8Sopenharmony_ci 74023dd3b8Sopenharmony_ci T.assertEqual(x, y); 75023dd3b8Sopenharmony_ci 76023dd3b8Sopenharmony_ci x = a.cosine(); 77023dd3b8Sopenharmony_ci t(a, aa); 78023dd3b8Sopenharmony_ci y = a.cos(); 79023dd3b8Sopenharmony_ci t(a, aa); 80023dd3b8Sopenharmony_ci z = Decimal.cos(a); 81023dd3b8Sopenharmony_ci t(a, aa); 82023dd3b8Sopenharmony_ci 83023dd3b8Sopenharmony_ci t(x, y); 84023dd3b8Sopenharmony_ci t(y, z); 85023dd3b8Sopenharmony_ci 86023dd3b8Sopenharmony_ci x = a.cubeRoot(); 87023dd3b8Sopenharmony_ci t(a, aa); 88023dd3b8Sopenharmony_ci y = a.cbrt(); 89023dd3b8Sopenharmony_ci t(a, aa); 90023dd3b8Sopenharmony_ci z = Decimal.cbrt(a); 91023dd3b8Sopenharmony_ci t(a, aa); 92023dd3b8Sopenharmony_ci 93023dd3b8Sopenharmony_ci t(x, y); 94023dd3b8Sopenharmony_ci t(y, z); 95023dd3b8Sopenharmony_ci 96023dd3b8Sopenharmony_ci x = a.decimalPlaces(); 97023dd3b8Sopenharmony_ci t(a, aa); 98023dd3b8Sopenharmony_ci y = a.dp(); 99023dd3b8Sopenharmony_ci t(a, aa); 100023dd3b8Sopenharmony_ci 101023dd3b8Sopenharmony_ci T.assertEqual(x, y); 102023dd3b8Sopenharmony_ci 103023dd3b8Sopenharmony_ci x = a.dividedBy(b); 104023dd3b8Sopenharmony_ci t(a, aa); 105023dd3b8Sopenharmony_ci t(b, bb); 106023dd3b8Sopenharmony_ci y = a.div(b); 107023dd3b8Sopenharmony_ci t(a, aa); 108023dd3b8Sopenharmony_ci t(b, bb); 109023dd3b8Sopenharmony_ci z = Decimal.div(a, b); 110023dd3b8Sopenharmony_ci t(a, aa); 111023dd3b8Sopenharmony_ci t(b, bb); 112023dd3b8Sopenharmony_ci 113023dd3b8Sopenharmony_ci t(x, y); 114023dd3b8Sopenharmony_ci t(y, z); 115023dd3b8Sopenharmony_ci 116023dd3b8Sopenharmony_ci x = a.dividedToIntegerBy(b); 117023dd3b8Sopenharmony_ci t(a, aa); 118023dd3b8Sopenharmony_ci t(b, bb); 119023dd3b8Sopenharmony_ci y = a.divToInt(b); 120023dd3b8Sopenharmony_ci t(a, aa); 121023dd3b8Sopenharmony_ci t(b, bb); 122023dd3b8Sopenharmony_ci 123023dd3b8Sopenharmony_ci t(x, y); 124023dd3b8Sopenharmony_ci 125023dd3b8Sopenharmony_ci x = a.equals(b); 126023dd3b8Sopenharmony_ci t(a, aa); 127023dd3b8Sopenharmony_ci t(b, bb); 128023dd3b8Sopenharmony_ci y = a.eq(b); 129023dd3b8Sopenharmony_ci t(a, aa); 130023dd3b8Sopenharmony_ci t(b, bb); 131023dd3b8Sopenharmony_ci 132023dd3b8Sopenharmony_ci T.assertEqual(x, y); 133023dd3b8Sopenharmony_ci 134023dd3b8Sopenharmony_ci x = a.floor(); 135023dd3b8Sopenharmony_ci t(a, aa); 136023dd3b8Sopenharmony_ci y = Decimal.floor(a); 137023dd3b8Sopenharmony_ci t(a, aa); 138023dd3b8Sopenharmony_ci 139023dd3b8Sopenharmony_ci t(x, y); 140023dd3b8Sopenharmony_ci 141023dd3b8Sopenharmony_ci x = a.greaterThan(b); 142023dd3b8Sopenharmony_ci t(a, aa); 143023dd3b8Sopenharmony_ci t(b, bb); 144023dd3b8Sopenharmony_ci y = a.gt(b); 145023dd3b8Sopenharmony_ci t(a, aa); 146023dd3b8Sopenharmony_ci t(b, bb); 147023dd3b8Sopenharmony_ci 148023dd3b8Sopenharmony_ci T.assertEqual(x, y); 149023dd3b8Sopenharmony_ci 150023dd3b8Sopenharmony_ci x = a.greaterThanOrEqualTo(b); 151023dd3b8Sopenharmony_ci t(a, aa); 152023dd3b8Sopenharmony_ci t(b, bb); 153023dd3b8Sopenharmony_ci y = a.gte(b); 154023dd3b8Sopenharmony_ci t(a, aa); 155023dd3b8Sopenharmony_ci t(b, bb); 156023dd3b8Sopenharmony_ci 157023dd3b8Sopenharmony_ci T.assertEqual(x, y); 158023dd3b8Sopenharmony_ci 159023dd3b8Sopenharmony_ci // Omit hyperbolic methods if a is large, as they are too time-consuming. 160023dd3b8Sopenharmony_ci if (a.abs().lt(1000)) { 161023dd3b8Sopenharmony_ci x = a.hyperbolicCosine(); 162023dd3b8Sopenharmony_ci t(a, aa); 163023dd3b8Sopenharmony_ci y = a.cosh(); 164023dd3b8Sopenharmony_ci t(a, aa); 165023dd3b8Sopenharmony_ci z = Decimal.cosh(a); 166023dd3b8Sopenharmony_ci t(a, aa); 167023dd3b8Sopenharmony_ci 168023dd3b8Sopenharmony_ci t(x, y); 169023dd3b8Sopenharmony_ci t(y, z); 170023dd3b8Sopenharmony_ci 171023dd3b8Sopenharmony_ci x = a.hyperbolicSine(); 172023dd3b8Sopenharmony_ci t(a, aa); 173023dd3b8Sopenharmony_ci y = a.sinh(); 174023dd3b8Sopenharmony_ci t(a, aa); 175023dd3b8Sopenharmony_ci z = Decimal.sinh(a); 176023dd3b8Sopenharmony_ci t(a, aa); 177023dd3b8Sopenharmony_ci 178023dd3b8Sopenharmony_ci t(x, y); 179023dd3b8Sopenharmony_ci t(y, z); 180023dd3b8Sopenharmony_ci 181023dd3b8Sopenharmony_ci x = a.hyperbolicTangent(); 182023dd3b8Sopenharmony_ci t(a, aa); 183023dd3b8Sopenharmony_ci y = a.tanh(); 184023dd3b8Sopenharmony_ci t(a, aa); 185023dd3b8Sopenharmony_ci z = Decimal.tanh(a); 186023dd3b8Sopenharmony_ci t(a, aa); 187023dd3b8Sopenharmony_ci 188023dd3b8Sopenharmony_ci t(x, y); 189023dd3b8Sopenharmony_ci t(y, z); 190023dd3b8Sopenharmony_ci } 191023dd3b8Sopenharmony_ci 192023dd3b8Sopenharmony_ci // a [-1, 1] 193023dd3b8Sopenharmony_ci x = a.inverseCosine(); 194023dd3b8Sopenharmony_ci t(a, aa); 195023dd3b8Sopenharmony_ci y = a.acos(); 196023dd3b8Sopenharmony_ci t(a, aa); 197023dd3b8Sopenharmony_ci z = Decimal.acos(a); 198023dd3b8Sopenharmony_ci t(a, aa); 199023dd3b8Sopenharmony_ci 200023dd3b8Sopenharmony_ci t(x, y); 201023dd3b8Sopenharmony_ci t(y, z); 202023dd3b8Sopenharmony_ci 203023dd3b8Sopenharmony_ci // a [1, Infinity] 204023dd3b8Sopenharmony_ci x = a.inverseHyperbolicCosine(); 205023dd3b8Sopenharmony_ci t(a, aa); 206023dd3b8Sopenharmony_ci y = a.acosh(); 207023dd3b8Sopenharmony_ci t(a, aa); 208023dd3b8Sopenharmony_ci z = Decimal.acosh(a); 209023dd3b8Sopenharmony_ci t(a, aa); 210023dd3b8Sopenharmony_ci 211023dd3b8Sopenharmony_ci t(x, y); 212023dd3b8Sopenharmony_ci t(y, z); 213023dd3b8Sopenharmony_ci 214023dd3b8Sopenharmony_ci x = a.inverseHyperbolicSine(); 215023dd3b8Sopenharmony_ci t(a, aa); 216023dd3b8Sopenharmony_ci y = a.asinh(); 217023dd3b8Sopenharmony_ci t(a, aa); 218023dd3b8Sopenharmony_ci z = Decimal.asinh(a); 219023dd3b8Sopenharmony_ci t(a, aa); 220023dd3b8Sopenharmony_ci 221023dd3b8Sopenharmony_ci t(x, y); 222023dd3b8Sopenharmony_ci t(y, z); 223023dd3b8Sopenharmony_ci 224023dd3b8Sopenharmony_ci // a [-1, 1] 225023dd3b8Sopenharmony_ci x = a.inverseHyperbolicTangent(); 226023dd3b8Sopenharmony_ci t(a, aa); 227023dd3b8Sopenharmony_ci y = a.atanh(); 228023dd3b8Sopenharmony_ci t(a, aa); 229023dd3b8Sopenharmony_ci z = Decimal.atanh(a); 230023dd3b8Sopenharmony_ci t(a, aa); 231023dd3b8Sopenharmony_ci 232023dd3b8Sopenharmony_ci t(x, y); 233023dd3b8Sopenharmony_ci t(y, z); 234023dd3b8Sopenharmony_ci 235023dd3b8Sopenharmony_ci // a [-1, 1] 236023dd3b8Sopenharmony_ci x = a.inverseSine(); 237023dd3b8Sopenharmony_ci t(a, aa); 238023dd3b8Sopenharmony_ci y = a.asin(); 239023dd3b8Sopenharmony_ci t(a, aa); 240023dd3b8Sopenharmony_ci z = Decimal.asin(a); 241023dd3b8Sopenharmony_ci t(a, aa); 242023dd3b8Sopenharmony_ci 243023dd3b8Sopenharmony_ci t(x, y); 244023dd3b8Sopenharmony_ci t(y, z); 245023dd3b8Sopenharmony_ci 246023dd3b8Sopenharmony_ci x = a.inverseTangent(); 247023dd3b8Sopenharmony_ci t(a, aa); 248023dd3b8Sopenharmony_ci y = a.atan(); 249023dd3b8Sopenharmony_ci t(a, aa); 250023dd3b8Sopenharmony_ci z = Decimal.atan(a); 251023dd3b8Sopenharmony_ci t(a, aa); 252023dd3b8Sopenharmony_ci 253023dd3b8Sopenharmony_ci t(x, y); 254023dd3b8Sopenharmony_ci t(y, z); 255023dd3b8Sopenharmony_ci 256023dd3b8Sopenharmony_ci a.isFinite(); 257023dd3b8Sopenharmony_ci t(a, aa); 258023dd3b8Sopenharmony_ci 259023dd3b8Sopenharmony_ci x = a.isInteger(); 260023dd3b8Sopenharmony_ci t(a, aa); 261023dd3b8Sopenharmony_ci y = a.isInt(); 262023dd3b8Sopenharmony_ci t(a, aa); 263023dd3b8Sopenharmony_ci 264023dd3b8Sopenharmony_ci T.assertEqual(x, y); 265023dd3b8Sopenharmony_ci 266023dd3b8Sopenharmony_ci a.isNaN(); 267023dd3b8Sopenharmony_ci t(a, aa); 268023dd3b8Sopenharmony_ci 269023dd3b8Sopenharmony_ci x = a.isNegative(); 270023dd3b8Sopenharmony_ci t(a, aa); 271023dd3b8Sopenharmony_ci y = a.isNeg(); 272023dd3b8Sopenharmony_ci t(a, aa); 273023dd3b8Sopenharmony_ci 274023dd3b8Sopenharmony_ci T.assertEqual(x, y); 275023dd3b8Sopenharmony_ci 276023dd3b8Sopenharmony_ci x = a.isPositive(); 277023dd3b8Sopenharmony_ci t(a, aa); 278023dd3b8Sopenharmony_ci y = a.isPos(); 279023dd3b8Sopenharmony_ci t(a, aa); 280023dd3b8Sopenharmony_ci 281023dd3b8Sopenharmony_ci T.assertEqual(x, y); 282023dd3b8Sopenharmony_ci 283023dd3b8Sopenharmony_ci a.isZero(); 284023dd3b8Sopenharmony_ci t(a, aa); 285023dd3b8Sopenharmony_ci 286023dd3b8Sopenharmony_ci x = a.lessThan(b); 287023dd3b8Sopenharmony_ci t(a, aa); 288023dd3b8Sopenharmony_ci t(b, bb); 289023dd3b8Sopenharmony_ci y = a.lt(b); 290023dd3b8Sopenharmony_ci t(a, aa); 291023dd3b8Sopenharmony_ci t(b, bb); 292023dd3b8Sopenharmony_ci 293023dd3b8Sopenharmony_ci T.assertEqual(x, y); 294023dd3b8Sopenharmony_ci 295023dd3b8Sopenharmony_ci x = a.lessThanOrEqualTo(b); 296023dd3b8Sopenharmony_ci t(a, aa); 297023dd3b8Sopenharmony_ci t(b, bb); 298023dd3b8Sopenharmony_ci y = a.lte(b); 299023dd3b8Sopenharmony_ci t(a, aa); 300023dd3b8Sopenharmony_ci t(b, bb); 301023dd3b8Sopenharmony_ci 302023dd3b8Sopenharmony_ci T.assertEqual(x, y); 303023dd3b8Sopenharmony_ci 304023dd3b8Sopenharmony_ci x = a.logarithm(); 305023dd3b8Sopenharmony_ci t(a, aa); 306023dd3b8Sopenharmony_ci y = a.log(); 307023dd3b8Sopenharmony_ci t(a, aa); 308023dd3b8Sopenharmony_ci z = Decimal.log(a); 309023dd3b8Sopenharmony_ci t(a, aa); 310023dd3b8Sopenharmony_ci 311023dd3b8Sopenharmony_ci t(x, y); 312023dd3b8Sopenharmony_ci t(y, z); 313023dd3b8Sopenharmony_ci 314023dd3b8Sopenharmony_ci x = a.minus(b); 315023dd3b8Sopenharmony_ci t(a, aa); 316023dd3b8Sopenharmony_ci t(b, bb); 317023dd3b8Sopenharmony_ci y = a.sub(b); 318023dd3b8Sopenharmony_ci t(a, aa); 319023dd3b8Sopenharmony_ci t(b, bb); 320023dd3b8Sopenharmony_ci z = Decimal.sub(a, b); 321023dd3b8Sopenharmony_ci t(a, aa); 322023dd3b8Sopenharmony_ci t(b, bb); 323023dd3b8Sopenharmony_ci 324023dd3b8Sopenharmony_ci t(x, y); 325023dd3b8Sopenharmony_ci t(y, z); 326023dd3b8Sopenharmony_ci 327023dd3b8Sopenharmony_ci x = a.modulo(b); 328023dd3b8Sopenharmony_ci t(a, aa); 329023dd3b8Sopenharmony_ci t(b, bb); 330023dd3b8Sopenharmony_ci y = a.mod(b); 331023dd3b8Sopenharmony_ci t(a, aa); 332023dd3b8Sopenharmony_ci t(b, bb); 333023dd3b8Sopenharmony_ci z = Decimal.mod(a, b); 334023dd3b8Sopenharmony_ci t(a, aa); 335023dd3b8Sopenharmony_ci t(b, bb); 336023dd3b8Sopenharmony_ci 337023dd3b8Sopenharmony_ci t(x, y); 338023dd3b8Sopenharmony_ci t(y, z); 339023dd3b8Sopenharmony_ci 340023dd3b8Sopenharmony_ci x = a.naturalExponential(); 341023dd3b8Sopenharmony_ci t(a, aa); 342023dd3b8Sopenharmony_ci y = a.exp(); 343023dd3b8Sopenharmony_ci t(a, aa); 344023dd3b8Sopenharmony_ci z = Decimal.exp(a); 345023dd3b8Sopenharmony_ci t(a, aa); 346023dd3b8Sopenharmony_ci 347023dd3b8Sopenharmony_ci t(x, y); 348023dd3b8Sopenharmony_ci t(y, z); 349023dd3b8Sopenharmony_ci 350023dd3b8Sopenharmony_ci x = a.naturalLogarithm(); 351023dd3b8Sopenharmony_ci t(a, aa); 352023dd3b8Sopenharmony_ci y = a.ln(); 353023dd3b8Sopenharmony_ci t(a, aa); 354023dd3b8Sopenharmony_ci z = Decimal.ln(a); 355023dd3b8Sopenharmony_ci t(a, aa); 356023dd3b8Sopenharmony_ci 357023dd3b8Sopenharmony_ci t(x, y); 358023dd3b8Sopenharmony_ci t(y, z); 359023dd3b8Sopenharmony_ci 360023dd3b8Sopenharmony_ci x = a.negated(); 361023dd3b8Sopenharmony_ci t(a, aa); 362023dd3b8Sopenharmony_ci y = a.neg(); 363023dd3b8Sopenharmony_ci t(a, aa); 364023dd3b8Sopenharmony_ci 365023dd3b8Sopenharmony_ci t(x, y); 366023dd3b8Sopenharmony_ci 367023dd3b8Sopenharmony_ci x = a.plus(b); 368023dd3b8Sopenharmony_ci t(a, aa); 369023dd3b8Sopenharmony_ci t(b, bb); 370023dd3b8Sopenharmony_ci y = a.add(b); 371023dd3b8Sopenharmony_ci t(a, aa); 372023dd3b8Sopenharmony_ci t(b, bb); 373023dd3b8Sopenharmony_ci z = Decimal.add(a, b); 374023dd3b8Sopenharmony_ci t(a, aa); 375023dd3b8Sopenharmony_ci t(b, bb); 376023dd3b8Sopenharmony_ci 377023dd3b8Sopenharmony_ci t(x, y); 378023dd3b8Sopenharmony_ci t(y, z); 379023dd3b8Sopenharmony_ci 380023dd3b8Sopenharmony_ci x = a.precision(); 381023dd3b8Sopenharmony_ci t(a, aa); 382023dd3b8Sopenharmony_ci y = a.sd(); 383023dd3b8Sopenharmony_ci t(a, aa); 384023dd3b8Sopenharmony_ci 385023dd3b8Sopenharmony_ci T.assertEqual(x, y); 386023dd3b8Sopenharmony_ci 387023dd3b8Sopenharmony_ci x = a.round(); 388023dd3b8Sopenharmony_ci t(a, aa); 389023dd3b8Sopenharmony_ci y = Decimal.round(a); 390023dd3b8Sopenharmony_ci t(a, aa); 391023dd3b8Sopenharmony_ci 392023dd3b8Sopenharmony_ci t(x, y); 393023dd3b8Sopenharmony_ci 394023dd3b8Sopenharmony_ci x = a.sine(); 395023dd3b8Sopenharmony_ci t(a, aa); 396023dd3b8Sopenharmony_ci y = a.sin(); 397023dd3b8Sopenharmony_ci t(a, aa); 398023dd3b8Sopenharmony_ci z = Decimal.sin(a); 399023dd3b8Sopenharmony_ci t(a, aa); 400023dd3b8Sopenharmony_ci 401023dd3b8Sopenharmony_ci t(x, y); 402023dd3b8Sopenharmony_ci t(y, z); 403023dd3b8Sopenharmony_ci 404023dd3b8Sopenharmony_ci x = a.squareRoot(); 405023dd3b8Sopenharmony_ci t(a, aa); 406023dd3b8Sopenharmony_ci y = a.sqrt(); 407023dd3b8Sopenharmony_ci t(a, aa); 408023dd3b8Sopenharmony_ci z = Decimal.sqrt(a); 409023dd3b8Sopenharmony_ci t(a, aa); 410023dd3b8Sopenharmony_ci 411023dd3b8Sopenharmony_ci t(x, y); 412023dd3b8Sopenharmony_ci t(y, z); 413023dd3b8Sopenharmony_ci 414023dd3b8Sopenharmony_ci x = a.tangent(); 415023dd3b8Sopenharmony_ci t(a, aa); 416023dd3b8Sopenharmony_ci y = a.tan(); 417023dd3b8Sopenharmony_ci t(a, aa); 418023dd3b8Sopenharmony_ci z = Decimal.tan(a); 419023dd3b8Sopenharmony_ci t(a, aa); 420023dd3b8Sopenharmony_ci 421023dd3b8Sopenharmony_ci t(x, y); 422023dd3b8Sopenharmony_ci t(y, z); 423023dd3b8Sopenharmony_ci 424023dd3b8Sopenharmony_ci x = a.times(b); 425023dd3b8Sopenharmony_ci t(a, aa); 426023dd3b8Sopenharmony_ci t(b, bb); 427023dd3b8Sopenharmony_ci y = a.mul(b); 428023dd3b8Sopenharmony_ci t(a, aa); 429023dd3b8Sopenharmony_ci t(b, bb); 430023dd3b8Sopenharmony_ci z = Decimal.mul(a, b); 431023dd3b8Sopenharmony_ci t(a, aa); 432023dd3b8Sopenharmony_ci t(b, bb); 433023dd3b8Sopenharmony_ci 434023dd3b8Sopenharmony_ci t(x, y); 435023dd3b8Sopenharmony_ci t(y, z); 436023dd3b8Sopenharmony_ci 437023dd3b8Sopenharmony_ci a.toBinary(); 438023dd3b8Sopenharmony_ci t(a, aa); 439023dd3b8Sopenharmony_ci 440023dd3b8Sopenharmony_ci x = a.toDecimalPlaces(n); 441023dd3b8Sopenharmony_ci t(a, aa); 442023dd3b8Sopenharmony_ci y = a.toDP(n); 443023dd3b8Sopenharmony_ci t(a, aa); 444023dd3b8Sopenharmony_ci 445023dd3b8Sopenharmony_ci t(x, y); 446023dd3b8Sopenharmony_ci 447023dd3b8Sopenharmony_ci a.toExponential(n); 448023dd3b8Sopenharmony_ci t(a, aa); 449023dd3b8Sopenharmony_ci 450023dd3b8Sopenharmony_ci a.toFixed(n); 451023dd3b8Sopenharmony_ci t(a, aa); 452023dd3b8Sopenharmony_ci 453023dd3b8Sopenharmony_ci a.toFraction(); 454023dd3b8Sopenharmony_ci t(a, aa); 455023dd3b8Sopenharmony_ci 456023dd3b8Sopenharmony_ci x = a.toHexadecimal(); 457023dd3b8Sopenharmony_ci t(a, aa); 458023dd3b8Sopenharmony_ci y = a.toHex(); 459023dd3b8Sopenharmony_ci t(a, aa); 460023dd3b8Sopenharmony_ci 461023dd3b8Sopenharmony_ci T.assertEqual(x, y); 462023dd3b8Sopenharmony_ci 463023dd3b8Sopenharmony_ci a.toJSON(); 464023dd3b8Sopenharmony_ci t(a, aa); 465023dd3b8Sopenharmony_ci 466023dd3b8Sopenharmony_ci a.toNearest(b); 467023dd3b8Sopenharmony_ci t(a, aa); 468023dd3b8Sopenharmony_ci t(b, bb); 469023dd3b8Sopenharmony_ci 470023dd3b8Sopenharmony_ci a.toNumber(); 471023dd3b8Sopenharmony_ci t(a, aa); 472023dd3b8Sopenharmony_ci 473023dd3b8Sopenharmony_ci a.toOctal(); 474023dd3b8Sopenharmony_ci t(a, aa); 475023dd3b8Sopenharmony_ci 476023dd3b8Sopenharmony_ci x = a.toPower(b); 477023dd3b8Sopenharmony_ci t(a, aa); 478023dd3b8Sopenharmony_ci t(b, bb); 479023dd3b8Sopenharmony_ci y = a.pow(b); 480023dd3b8Sopenharmony_ci t(a, aa); 481023dd3b8Sopenharmony_ci t(b, bb); 482023dd3b8Sopenharmony_ci z = Decimal.pow(a, b); 483023dd3b8Sopenharmony_ci t(a, aa); 484023dd3b8Sopenharmony_ci t(b, bb); 485023dd3b8Sopenharmony_ci 486023dd3b8Sopenharmony_ci t(x, y); 487023dd3b8Sopenharmony_ci t(y, z); 488023dd3b8Sopenharmony_ci 489023dd3b8Sopenharmony_ci a.toPrecision(n); 490023dd3b8Sopenharmony_ci t(a, aa); 491023dd3b8Sopenharmony_ci 492023dd3b8Sopenharmony_ci x = a.toSignificantDigits(n); 493023dd3b8Sopenharmony_ci t(a, aa); 494023dd3b8Sopenharmony_ci y = a.toSD(n); 495023dd3b8Sopenharmony_ci t(a, aa); 496023dd3b8Sopenharmony_ci 497023dd3b8Sopenharmony_ci t(x, y); 498023dd3b8Sopenharmony_ci 499023dd3b8Sopenharmony_ci a.toString(); 500023dd3b8Sopenharmony_ci t(a, aa); 501023dd3b8Sopenharmony_ci 502023dd3b8Sopenharmony_ci x = a.truncated(); 503023dd3b8Sopenharmony_ci t(a, aa); 504023dd3b8Sopenharmony_ci y = a.trunc(); 505023dd3b8Sopenharmony_ci t(a, aa); 506023dd3b8Sopenharmony_ci z = Decimal.trunc(a); 507023dd3b8Sopenharmony_ci t(a, aa); 508023dd3b8Sopenharmony_ci 509023dd3b8Sopenharmony_ci t(x, y); 510023dd3b8Sopenharmony_ci t(y, z); 511023dd3b8Sopenharmony_ci 512023dd3b8Sopenharmony_ci a.valueOf(); 513023dd3b8Sopenharmony_ci t(a, aa); 514023dd3b8Sopenharmony_ci 515023dd3b8Sopenharmony_ci Decimal.atan2(a, b); 516023dd3b8Sopenharmony_ci t(a, aa); 517023dd3b8Sopenharmony_ci t(b, bb); 518023dd3b8Sopenharmony_ci 519023dd3b8Sopenharmony_ci 520023dd3b8Sopenharmony_ci Decimal.hypot(a, b); 521023dd3b8Sopenharmony_ci t(a, aa); 522023dd3b8Sopenharmony_ci t(b, bb); 523023dd3b8Sopenharmony_ci 524023dd3b8Sopenharmony_ci x = Decimal.log(a, 10); 525023dd3b8Sopenharmony_ci t(a, aa); 526023dd3b8Sopenharmony_ci y = Decimal.log10(a); 527023dd3b8Sopenharmony_ci t(a, aa); 528023dd3b8Sopenharmony_ci 529023dd3b8Sopenharmony_ci t(x, y); 530023dd3b8Sopenharmony_ci 531023dd3b8Sopenharmony_ci x = Decimal.log(a, 2); 532023dd3b8Sopenharmony_ci t(a, aa); 533023dd3b8Sopenharmony_ci y = Decimal.log2(a); 534023dd3b8Sopenharmony_ci t(a, aa); 535023dd3b8Sopenharmony_ci 536023dd3b8Sopenharmony_ci t(x, y); 537023dd3b8Sopenharmony_ci 538023dd3b8Sopenharmony_ci Decimal.max(a, b); 539023dd3b8Sopenharmony_ci t(a, aa); 540023dd3b8Sopenharmony_ci t(b, bb); 541023dd3b8Sopenharmony_ci 542023dd3b8Sopenharmony_ci Decimal.min(a, b); 543023dd3b8Sopenharmony_ci t(a, aa); 544023dd3b8Sopenharmony_ci t(b, bb); 545023dd3b8Sopenharmony_ci 546023dd3b8Sopenharmony_ci Decimal.sign(a); 547023dd3b8Sopenharmony_ci t(a, aa); 548023dd3b8Sopenharmony_ci } 549023dd3b8Sopenharmony_ci}); 550023dd3b8Sopenharmony_ci 551023dd3b8Sopenharmony_ci/* 552023dd3b8Sopenharmony_ci// All methods tested above except: 553023dd3b8Sopenharmony_ciDecimal.clone(); 554023dd3b8Sopenharmony_ciDecimal.config(); 555023dd3b8Sopenharmony_ciDecimal.noConflict(); 556023dd3b8Sopenharmony_ciDecimal.random(); 557023dd3b8Sopenharmony_ci*/ 558