1023dd3b8Sopenharmony_ciif (typeof T === 'undefined') require('../setup'); 2023dd3b8Sopenharmony_ci 3023dd3b8Sopenharmony_ciT('isFinite, isInteger, isNaN, isNegative, isZero, isDecimal', function () { 4023dd3b8Sopenharmony_ci 5023dd3b8Sopenharmony_ci function t(actual) { 6023dd3b8Sopenharmony_ci T.assert(actual); 7023dd3b8Sopenharmony_ci } 8023dd3b8Sopenharmony_ci 9023dd3b8Sopenharmony_ci Decimal.config({ 10023dd3b8Sopenharmony_ci precision: 20, 11023dd3b8Sopenharmony_ci rounding: 4, 12023dd3b8Sopenharmony_ci toExpNeg: -7, 13023dd3b8Sopenharmony_ci toExpPos: 21, 14023dd3b8Sopenharmony_ci minE: -9e15, 15023dd3b8Sopenharmony_ci maxE: 9e15 16023dd3b8Sopenharmony_ci }); 17023dd3b8Sopenharmony_ci 18023dd3b8Sopenharmony_ci var n = new Decimal(1); 19023dd3b8Sopenharmony_ci 20023dd3b8Sopenharmony_ci t(n.isFinite()); 21023dd3b8Sopenharmony_ci t(!n.isNaN()); 22023dd3b8Sopenharmony_ci t(!n.isNegative()); 23023dd3b8Sopenharmony_ci t(!n.isZero()); 24023dd3b8Sopenharmony_ci t(n.isInteger()); 25023dd3b8Sopenharmony_ci t(n.equals(n)); 26023dd3b8Sopenharmony_ci t(n.equals(1)); 27023dd3b8Sopenharmony_ci t(n.equals('1.0')); 28023dd3b8Sopenharmony_ci t(n.equals('1.00')); 29023dd3b8Sopenharmony_ci t(n.equals('1.000')); 30023dd3b8Sopenharmony_ci t(n.equals('1.0000')); 31023dd3b8Sopenharmony_ci t(n.equals('1.00000')); 32023dd3b8Sopenharmony_ci t(n.equals('1.000000')); 33023dd3b8Sopenharmony_ci t(n.equals(new Decimal(1))); 34023dd3b8Sopenharmony_ci t(n.equals('0x1')); 35023dd3b8Sopenharmony_ci t(n.equals('0o1')); 36023dd3b8Sopenharmony_ci t(n.equals('0b1')); 37023dd3b8Sopenharmony_ci t(n.greaterThan(0.99999)); 38023dd3b8Sopenharmony_ci t(!n.greaterThanOrEqualTo(1.1)); 39023dd3b8Sopenharmony_ci t(n.lessThan(1.001)); 40023dd3b8Sopenharmony_ci t(n.lessThanOrEqualTo(2)); 41023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 42023dd3b8Sopenharmony_ci 43023dd3b8Sopenharmony_ci n = new Decimal('-0.1'); 44023dd3b8Sopenharmony_ci 45023dd3b8Sopenharmony_ci t(n.isFinite()); 46023dd3b8Sopenharmony_ci t(!n.isNaN()); 47023dd3b8Sopenharmony_ci t(n.isNeg()); 48023dd3b8Sopenharmony_ci t(!n.isZero()); 49023dd3b8Sopenharmony_ci t(!n.isInt()); 50023dd3b8Sopenharmony_ci t(!n.equals(0.1)); 51023dd3b8Sopenharmony_ci t(!n.greaterThan(-0.1)); 52023dd3b8Sopenharmony_ci t(n.greaterThanOrEqualTo(-1)); 53023dd3b8Sopenharmony_ci t(n.lessThan(-0.01)); 54023dd3b8Sopenharmony_ci t(!n.lessThanOrEqualTo(-1)); 55023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 56023dd3b8Sopenharmony_ci 57023dd3b8Sopenharmony_ci n = new Decimal(Infinity); 58023dd3b8Sopenharmony_ci 59023dd3b8Sopenharmony_ci t(!n.isFinite()); 60023dd3b8Sopenharmony_ci t(!n.isNaN()); 61023dd3b8Sopenharmony_ci t(!n.isNegative()); 62023dd3b8Sopenharmony_ci t(!n.isZero()); 63023dd3b8Sopenharmony_ci t(!n.isInteger()); 64023dd3b8Sopenharmony_ci t(n.eq('Infinity')); 65023dd3b8Sopenharmony_ci t(n.eq(1/0)); 66023dd3b8Sopenharmony_ci t(n.gt('9e999')); 67023dd3b8Sopenharmony_ci t(n.gte(Infinity)); 68023dd3b8Sopenharmony_ci t(!n.lt(Infinity)); 69023dd3b8Sopenharmony_ci t(n.lte(Infinity)); 70023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 71023dd3b8Sopenharmony_ci 72023dd3b8Sopenharmony_ci n = new Decimal('-Infinity'); 73023dd3b8Sopenharmony_ci 74023dd3b8Sopenharmony_ci t(!n.isFinite()); 75023dd3b8Sopenharmony_ci t(!n.isNaN()); 76023dd3b8Sopenharmony_ci t(n.isNeg()); 77023dd3b8Sopenharmony_ci t(!n.isZero()); 78023dd3b8Sopenharmony_ci t(!n.isInt()); 79023dd3b8Sopenharmony_ci t(!n.equals(Infinity)); 80023dd3b8Sopenharmony_ci t(n.equals(-1/0)); 81023dd3b8Sopenharmony_ci t(!n.greaterThan(-Infinity)); 82023dd3b8Sopenharmony_ci t(n.greaterThanOrEqualTo('-Infinity', 8)); 83023dd3b8Sopenharmony_ci t(n.lessThan(0)); 84023dd3b8Sopenharmony_ci t(n.lessThanOrEqualTo(Infinity)); 85023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 86023dd3b8Sopenharmony_ci 87023dd3b8Sopenharmony_ci n = new Decimal('0.0000000'); 88023dd3b8Sopenharmony_ci 89023dd3b8Sopenharmony_ci t(n.isFinite()); 90023dd3b8Sopenharmony_ci t(!n.isNaN()); 91023dd3b8Sopenharmony_ci t(!n.isNegative()); 92023dd3b8Sopenharmony_ci t(n.isZero()); 93023dd3b8Sopenharmony_ci t(n.isInteger()); 94023dd3b8Sopenharmony_ci t(n.eq(-0)); 95023dd3b8Sopenharmony_ci t(n.gt(-0.000001)); 96023dd3b8Sopenharmony_ci t(!n.gte(0.1)); 97023dd3b8Sopenharmony_ci t(n.lt(0.0001)); 98023dd3b8Sopenharmony_ci t(n.lte(-0)); 99023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 100023dd3b8Sopenharmony_ci 101023dd3b8Sopenharmony_ci n = new Decimal(-0); 102023dd3b8Sopenharmony_ci 103023dd3b8Sopenharmony_ci t(n.isFinite()); 104023dd3b8Sopenharmony_ci t(!n.isNaN()); 105023dd3b8Sopenharmony_ci t(n.isNeg()); 106023dd3b8Sopenharmony_ci t(n.isZero()); 107023dd3b8Sopenharmony_ci t(n.isInt()); 108023dd3b8Sopenharmony_ci t(n.equals('0.000')); 109023dd3b8Sopenharmony_ci t(n.greaterThan(-1)); 110023dd3b8Sopenharmony_ci t(!n.greaterThanOrEqualTo(0.1)); 111023dd3b8Sopenharmony_ci t(!n.lessThan(0)); 112023dd3b8Sopenharmony_ci t(!n.lessThan(0, 36)); 113023dd3b8Sopenharmony_ci t(n.lessThan(0.1)); 114023dd3b8Sopenharmony_ci t(n.lessThanOrEqualTo(0)); 115023dd3b8Sopenharmony_ci t(n.valueOf() === '-0' && n.toString() === '0'); 116023dd3b8Sopenharmony_ci 117023dd3b8Sopenharmony_ci n = new Decimal('NaN'); 118023dd3b8Sopenharmony_ci 119023dd3b8Sopenharmony_ci t(!n.isFinite()); 120023dd3b8Sopenharmony_ci t(n.isNaN()); 121023dd3b8Sopenharmony_ci t(!n.isNegative()); 122023dd3b8Sopenharmony_ci t(!n.isZero()); 123023dd3b8Sopenharmony_ci t(!n.isInteger()); 124023dd3b8Sopenharmony_ci t(!n.eq(NaN)); 125023dd3b8Sopenharmony_ci t(!n.eq(Infinity)); 126023dd3b8Sopenharmony_ci t(!n.gt(0)); 127023dd3b8Sopenharmony_ci t(!n.gte(0)); 128023dd3b8Sopenharmony_ci t(!n.lt(1)); 129023dd3b8Sopenharmony_ci t(!n.lte(-0)); 130023dd3b8Sopenharmony_ci t(!n.lte(-1)); 131023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 132023dd3b8Sopenharmony_ci 133023dd3b8Sopenharmony_ci n = new Decimal('-1.234e+2'); 134023dd3b8Sopenharmony_ci 135023dd3b8Sopenharmony_ci t(n.isFinite()); 136023dd3b8Sopenharmony_ci t(!n.isNaN()); 137023dd3b8Sopenharmony_ci t(n.isNeg()); 138023dd3b8Sopenharmony_ci t(!n.isZero()); 139023dd3b8Sopenharmony_ci t(!n.isInt()); 140023dd3b8Sopenharmony_ci t(n.eq(-123.4)); 141023dd3b8Sopenharmony_ci t(n.gt('-0xff')); 142023dd3b8Sopenharmony_ci t(n.gte('-1.234e+3')); 143023dd3b8Sopenharmony_ci t(n.lt(-123.39999)); 144023dd3b8Sopenharmony_ci t(n.lte('-123.4e+0')); 145023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 146023dd3b8Sopenharmony_ci 147023dd3b8Sopenharmony_ci n = new Decimal('5e-200'); 148023dd3b8Sopenharmony_ci 149023dd3b8Sopenharmony_ci t(n.isFinite()); 150023dd3b8Sopenharmony_ci t(!n.isNaN()); 151023dd3b8Sopenharmony_ci t(!n.isNegative()); 152023dd3b8Sopenharmony_ci t(!n.isZero()); 153023dd3b8Sopenharmony_ci t(!n.isInteger()); 154023dd3b8Sopenharmony_ci t(n.equals(5e-200)); 155023dd3b8Sopenharmony_ci t(n.greaterThan(5e-201)); 156023dd3b8Sopenharmony_ci t(!n.greaterThanOrEqualTo(1)); 157023dd3b8Sopenharmony_ci t(n.lessThan(6e-200)); 158023dd3b8Sopenharmony_ci t(n.lessThanOrEqualTo(5.1e-200)); 159023dd3b8Sopenharmony_ci t(n.toString() === n.valueOf()); 160023dd3b8Sopenharmony_ci 161023dd3b8Sopenharmony_ci n = new Decimal('1'); 162023dd3b8Sopenharmony_ci 163023dd3b8Sopenharmony_ci t(n.equals(n)); 164023dd3b8Sopenharmony_ci t(n.equals(n.toString())); 165023dd3b8Sopenharmony_ci t(n.equals(n.toString())); 166023dd3b8Sopenharmony_ci t(n.equals(n.valueOf())); 167023dd3b8Sopenharmony_ci t(n.equals(n.toFixed())); 168023dd3b8Sopenharmony_ci t(n.equals(1)); 169023dd3b8Sopenharmony_ci t(n.equals('1e+0')); 170023dd3b8Sopenharmony_ci t(!n.equals(-1)); 171023dd3b8Sopenharmony_ci t(!n.equals(0.1)); 172023dd3b8Sopenharmony_ci 173023dd3b8Sopenharmony_ci t(!new Decimal(NaN).equals(0)); 174023dd3b8Sopenharmony_ci t(!new Decimal(Infinity).equals(0)); 175023dd3b8Sopenharmony_ci t(!new Decimal(0.1).equals(0)); 176023dd3b8Sopenharmony_ci t(!new Decimal(1e9 + 1).equals(1e9)); 177023dd3b8Sopenharmony_ci t(!new Decimal(1e9 - 1).equals(1e9)); 178023dd3b8Sopenharmony_ci t(new Decimal(1e9 + 1).equals(1e9 + 1)); 179023dd3b8Sopenharmony_ci t(new Decimal(1).equals(1)); 180023dd3b8Sopenharmony_ci t(!new Decimal(1).equals(-1)); 181023dd3b8Sopenharmony_ci t(!new Decimal(NaN).equals(NaN)); 182023dd3b8Sopenharmony_ci t(!new Decimal('NaN').equals('NaN')); 183023dd3b8Sopenharmony_ci 184023dd3b8Sopenharmony_ci t(!new Decimal(NaN).greaterThan(NaN)); 185023dd3b8Sopenharmony_ci t(!new Decimal(NaN).lessThan(NaN)); 186023dd3b8Sopenharmony_ci t(new Decimal('0xa').lessThanOrEqualTo('0xff')); 187023dd3b8Sopenharmony_ci t(new Decimal('0xb').greaterThanOrEqualTo('0x9')); 188023dd3b8Sopenharmony_ci 189023dd3b8Sopenharmony_ci t(!new Decimal(10).greaterThan(10)); 190023dd3b8Sopenharmony_ci t(!new Decimal(10).lessThan(10)); 191023dd3b8Sopenharmony_ci t(!new Decimal(NaN).lessThan(NaN)); 192023dd3b8Sopenharmony_ci t(!new Decimal(Infinity).lessThan(-Infinity)); 193023dd3b8Sopenharmony_ci t(!new Decimal(Infinity).lessThan(Infinity)); 194023dd3b8Sopenharmony_ci t(new Decimal(Infinity).lessThanOrEqualTo(Infinity)); 195023dd3b8Sopenharmony_ci t(!new Decimal(NaN).greaterThanOrEqualTo(NaN)); 196023dd3b8Sopenharmony_ci t(new Decimal(Infinity).greaterThanOrEqualTo(Infinity)); 197023dd3b8Sopenharmony_ci t(new Decimal(Infinity).greaterThanOrEqualTo(-Infinity)); 198023dd3b8Sopenharmony_ci t(!new Decimal(NaN).greaterThanOrEqualTo(-Infinity)); 199023dd3b8Sopenharmony_ci t(new Decimal(-Infinity).greaterThanOrEqualTo(-Infinity)); 200023dd3b8Sopenharmony_ci 201023dd3b8Sopenharmony_ci t(!new Decimal(2).greaterThan(10)); 202023dd3b8Sopenharmony_ci t(!new Decimal(10).lessThan(2)); 203023dd3b8Sopenharmony_ci t(new Decimal(255).lessThanOrEqualTo('0xff')); 204023dd3b8Sopenharmony_ci t(new Decimal('0xa').greaterThanOrEqualTo('0x9')); 205023dd3b8Sopenharmony_ci t(!new Decimal(0).lessThanOrEqualTo('NaN')); 206023dd3b8Sopenharmony_ci t(!new Decimal(0).greaterThanOrEqualTo(NaN)); 207023dd3b8Sopenharmony_ci t(!new Decimal(NaN).lessThanOrEqualTo('NaN')); 208023dd3b8Sopenharmony_ci t(!new Decimal(NaN).greaterThanOrEqualTo(NaN)); 209023dd3b8Sopenharmony_ci t(!new Decimal(0).lessThanOrEqualTo(-Infinity)); 210023dd3b8Sopenharmony_ci t(new Decimal(0).greaterThanOrEqualTo(-Infinity)); 211023dd3b8Sopenharmony_ci t(new Decimal(0).lessThanOrEqualTo('Infinity')); 212023dd3b8Sopenharmony_ci t(!new Decimal(0).greaterThanOrEqualTo('Infinity')); 213023dd3b8Sopenharmony_ci t(new Decimal(10).lessThanOrEqualTo(20)); 214023dd3b8Sopenharmony_ci t(!new Decimal(10).greaterThanOrEqualTo(20)); 215023dd3b8Sopenharmony_ci 216023dd3b8Sopenharmony_ci t(!new Decimal(1.23001e-2).lessThan(1.23e-2)); 217023dd3b8Sopenharmony_ci t(new Decimal(1.23e-2).lt(1.23001e-2)); 218023dd3b8Sopenharmony_ci t(!new Decimal(1e-2).lessThan(9.999999e-3)); 219023dd3b8Sopenharmony_ci t(new Decimal(9.999999e-3).lt(1e-2)); 220023dd3b8Sopenharmony_ci 221023dd3b8Sopenharmony_ci t(!new Decimal(1.23001e+2).lessThan(1.23e+2)); 222023dd3b8Sopenharmony_ci t(new Decimal(1.23e+2).lt(1.23001e+2)); 223023dd3b8Sopenharmony_ci t(new Decimal(9.999999e+2).lessThan(1e+3)); 224023dd3b8Sopenharmony_ci t(!new Decimal(1e+3).lt(9.9999999e+2)); 225023dd3b8Sopenharmony_ci 226023dd3b8Sopenharmony_ci t(!new Decimal(1.23001e-2).lessThanOrEqualTo(1.23e-2)); 227023dd3b8Sopenharmony_ci t(new Decimal(1.23e-2).lte(1.23001e-2)); 228023dd3b8Sopenharmony_ci t(!new Decimal(1e-2).lessThanOrEqualTo(9.999999e-3)); 229023dd3b8Sopenharmony_ci t(new Decimal(9.999999e-3).lte(1e-2)); 230023dd3b8Sopenharmony_ci 231023dd3b8Sopenharmony_ci t(!new Decimal(1.23001e+2).lessThanOrEqualTo(1.23e+2)); 232023dd3b8Sopenharmony_ci t(new Decimal(1.23e+2).lte(1.23001e+2)); 233023dd3b8Sopenharmony_ci t(new Decimal(9.999999e+2).lessThanOrEqualTo(1e+3)); 234023dd3b8Sopenharmony_ci t(!new Decimal(1e+3).lte(9.9999999e+2)); 235023dd3b8Sopenharmony_ci 236023dd3b8Sopenharmony_ci t(new Decimal(1.23001e-2).greaterThan(1.23e-2)); 237023dd3b8Sopenharmony_ci t(!new Decimal(1.23e-2).gt(1.23001e-2)); 238023dd3b8Sopenharmony_ci t(new Decimal(1e-2).greaterThan(9.999999e-3)); 239023dd3b8Sopenharmony_ci t(!new Decimal(9.999999e-3).gt(1e-2)); 240023dd3b8Sopenharmony_ci 241023dd3b8Sopenharmony_ci t(new Decimal(1.23001e+2).greaterThan(1.23e+2)); 242023dd3b8Sopenharmony_ci t(!new Decimal(1.23e+2).gt(1.23001e+2)); 243023dd3b8Sopenharmony_ci t(!new Decimal(9.999999e+2).greaterThan(1e+3)); 244023dd3b8Sopenharmony_ci t(new Decimal(1e+3).gt(9.9999999e+2)); 245023dd3b8Sopenharmony_ci 246023dd3b8Sopenharmony_ci t(new Decimal(1.23001e-2).greaterThanOrEqualTo(1.23e-2)); 247023dd3b8Sopenharmony_ci t(!new Decimal(1.23e-2).gte(1.23001e-2)); 248023dd3b8Sopenharmony_ci t(new Decimal(1e-2).greaterThanOrEqualTo(9.999999e-3)); 249023dd3b8Sopenharmony_ci t(!new Decimal(9.999999e-3).gte(1e-2)); 250023dd3b8Sopenharmony_ci 251023dd3b8Sopenharmony_ci t(new Decimal(1.23001e+2).greaterThanOrEqualTo(1.23e+2)); 252023dd3b8Sopenharmony_ci t(!new Decimal(1.23e+2).gte(1.23001e+2)); 253023dd3b8Sopenharmony_ci t(!new Decimal(9.999999e+2).greaterThanOrEqualTo(1e+3)); 254023dd3b8Sopenharmony_ci t(new Decimal(1e+3).gte(9.9999999e+2)); 255023dd3b8Sopenharmony_ci 256023dd3b8Sopenharmony_ci t(!new Decimal('1.0000000000000000000001').isInteger()); 257023dd3b8Sopenharmony_ci t(!new Decimal('0.999999999999999999999').isInteger()); 258023dd3b8Sopenharmony_ci t(new Decimal('4e4').isInteger()); 259023dd3b8Sopenharmony_ci t(new Decimal('-4e4').isInteger()); 260023dd3b8Sopenharmony_ci 261023dd3b8Sopenharmony_ci // Decimal.isDecimal 262023dd3b8Sopenharmony_ci 263023dd3b8Sopenharmony_ci t(Decimal.isDecimal(new Decimal(1))); 264023dd3b8Sopenharmony_ci t(Decimal.isDecimal(new Decimal('-2.3'))); 265023dd3b8Sopenharmony_ci t(Decimal.isDecimal(new Decimal(NaN))); 266023dd3b8Sopenharmony_ci t(Decimal.isDecimal(new Decimal('Infinity'))); 267023dd3b8Sopenharmony_ci 268023dd3b8Sopenharmony_ci t(!Decimal.isDecimal()); 269023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(0)); 270023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(1)); 271023dd3b8Sopenharmony_ci t(!Decimal.isDecimal('-2.3')); 272023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(NaN)); 273023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(Infinity)); 274023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(undefined)); 275023dd3b8Sopenharmony_ci t(!Decimal.isDecimal({})); 276023dd3b8Sopenharmony_ci t(!Decimal.isDecimal({isDecimal: true})); 277023dd3b8Sopenharmony_ci t(!Decimal.isDecimal(new Number(4))); 278023dd3b8Sopenharmony_ci}); 279