Test List: decimal/ops, decimal/methods
Skip List: (none)
43 test(s) selected, 43 test(s) completed, 0 failures reported (0% failed)
Engine command line: ../src/Linux_All_DBG.OBJ/js
OS type: Linux rubix 2.6.22-15-generic #1 SMP Fri Jul 11 19:25:33 UTC 2008 i686 GNU/Linux
Testcase execution time: 0 seconds.
Tests completed on Sat Sep 20 21:32:24 2008.
| expression | result |
|---|---|
| eval("var MYVAR=1.10m; MYVAR++") | 1.10m |
| eval("var MYVAR=1.10m; MYVAR++; MYVAR") | 2.10m |
| expression | result |
|---|---|
| eval("var MYVAR=3.10m; MYVAR--") | 3.10m |
| eval("var MYVAR=3.10m; MYVAR--; MYVAR") | 2.10m |
| expression | result |
|---|---|
| delete new Decimal(1) | true |
| expression | result |
|---|---|
| typeof 1m | "decimal" |
| typeof Decimal(1m) | "decimal" |
| typeof new Decimal(1m) | "object" |
| typeof Object(1m) | "object" |
| typeof new Object(1m) | "object" |
| typeof Object(1m).valueOf() | "decimal" |
| typeof 1m.valueOf() | "decimal" |
| expression | result |
|---|---|
| eval("var MYVAR=1.10m; ++MYVAR") | 2.10m |
| eval("var MYVAR=1.10m; ++MYVAR; MYVAR") | 2.10m |
| expression | result |
|---|---|
| eval("var MYVAR=3.10m; --MYVAR") | 2.10m |
| eval("var MYVAR=3.10m; --MYVAR; MYVAR") | 2.10m |
| expression | result |
|---|---|
| (+Decimal("1.10")).toString() | "1.10" |
| (+Decimal("-1.10")).toString() | "-1.10" |
| expression | result |
|---|---|
| (-Decimal("1.10")).toString() | "-1.10" |
| (-Decimal("-1.10")).toString() | "1.10" |
| (-(1m/0m)).toString() | "-Infinity" |
| (-(0m/0m)).toString() | "NaN" |
| expression | result |
|---|---|
| ~1e12m | 727379967 |
| (-Decimal("-1.10")).toString() | "1.10" |
| expression | result |
|---|---|
| !3.1m | false |
| !0.00m | true |
| !(-0m) | true |
| !(1m/0m) | false |
| !(Decimal('foo')) | false |
| expression | result |
|---|---|
| 1.50m * 1.05m | 1.5750m |
| 1.50m * 1.5 | 2.250m |
| 1.50 * 1.5m | 2.25m |
| 1.50m * true | 1.50m |
| true * 1.50m | 1.50m |
| 1.50m * '3.10' | 4.650m |
| '3.10' * 1.50m | 4.650m |
| (1.50m * 'm').toString().substr(0,3) | "NaN" |
| ('m' * 1.50m).toString().substr(0,3) | "NaN" |
| (RegExp() * 1m).toString() | "NaN" |
| (1m * RegExp()).toString() | "NaN" |
| (1e+3100m * 1e+3100m).toString() | "Infinity" |
| 1e-3200m * 1e-3200m | 0E-6176m |
| (0m * 0m).toString() | "0" |
| (0m * -0m).toString() | "-0" |
| (-0m * 0m).toString() | "-0" |
| (-0m * -0m).toString() | "0" |
| expression | result |
|---|---|
| 5.60m / 1.4m | 4.0m |
| (5.60m / 0.0m).toString() | "Infinity" |
| 5.60m / 1.4 | 4.000000000000000253765262771464368m |
| 5.60m / true | 5.60m |
| 5.60m / '1.4' | 4.0m |
| (1.50m / 'm').toString().substr(0,3) | "NaN" |
| (RegExp() / 1m).toString() | "NaN" |
| (1e+3100m / 1e-3100m).toString() | "Infinity" |
| 1e-3200m / 1e+3200m | 0E-6176m |
| (1m / 0m).toString() | "Infinity" |
| (1m / -0m).toString() | "-Infinity" |
| (-1m / 0m).toString() | "-Infinity" |
| (-1m / -0m).toString() | "Infinity" |
| expression | result |
|---|---|
| 5.80m % 1.4m | 0.20m |
| (5.80m % 0.0m).toString() | "NaN" |
| 5.80m % 1.4 | 0.200000000000000355271367880050092m |
| 5.80m % true | 0.80m |
| 5.80m % '1.4' | 0.20m |
| (1.50m % 'm').toString().substr(0,3) | "NaN" |
| (RegExp() % 1m).toString() | "NaN" |
| expression | result |
|---|---|
| 1.05m + 1.05m | 2.10m |
| 1.60m + 1.5 | 3.10m |
| 1.50 + 1.6m | 3.1m |
| 1.60m + true | 2.60m |
| true + 1.60m | 2.60m |
| 1.60m + 'm' | "1.60m" |
| 'm' + 1.60m | "m1.60" |
| RegExp() + 1m | "/(?:)/1" |
| 1m + RegExp() | "1/(?:)/" |
| (0m + 0m).toString() | "0" |
| (0m + -0m).toString() | "0" |
| (-0m + 0m).toString() | "0" |
| (-0m + -0m).toString() | "-0" |
| expression | result |
|---|---|
| 1234.56789m << 21 | -1707081728 |
| (-0m) << 2 | 0 |
| (1m/0m) << 2 | 0 |
| (Decimal('foo')) << 2 | 0 |
| expression | result |
|---|---|
| -1234.56789m >> 2 | -309 |
| (-0m) >> 2 | 0 |
| (1m/0m) >> 2 | 0 |
| (Decimal('foo')) >> 2 | 0 |
| expression | result |
|---|---|
| -1234.56789m >>> 2 | 1073741515 |
| (-0m) >>> 2 | 0 |
| (1m/0m) >>> 2 | 0 |
| (Decimal('foo')) >>> 2 | 0 |
| expression | result |
|---|---|
| 1.1m < 1.2m | true |
| 1.2m < 1.1m | false |
| 1.1m < 1.10m | false |
| 1.10m < 1.1m | false |
| 1.1m < 1.1 | true |
| 1.2m < 1.2 | false |
| 1.5m < 1.5 | false |
| -0m < 0m | false |
| -1m/0m < 1m/0m | true |
| Decimal('foo') < Decimal('foo') | false |
| Decimal('foo') < - Decimal('foo') | false |
| expression | result |
|---|---|
| 1.1m > 1.2m | false |
| 1.2m > 1.1m | true |
| 1.1m > 1.10m | false |
| 1.10m > 1.1m | false |
| 1.1m > 1.1 | false |
| 1.2m > 1.2 | true |
| 1.5m > 1.5 | false |
| -0m > 0m | false |
| -1m/0m > 1m/0m | false |
| Decimal('foo') > Decimal('foo') | false |
| Decimal('foo') > - Decimal('foo') | false |
| expression | result |
|---|---|
| 1.1m <= 1.2m | true |
| 1.2m <= 1.1m | false |
| 1.1m <= 1.10m | true |
| 1.10m <= 1.1m | true |
| 1.1m <= 1.1 | true |
| 1.2m <= 1.2 | false |
| 1.5m <= 1.5 | true |
| -0m <= 0m | true |
| -1m/0m <= 1m/0m | true |
| Decimal('foo') <= Decimal('foo') | false |
| Decimal('foo') <= - Decimal('foo') | false |
| expression | result |
|---|---|
| 1.1m >= 1.2m | false |
| 1.2m >= 1.1m | true |
| 1.1m >= 1.10m | true |
| 1.10m >= 1.1m | true |
| 1.1m >= 1.1 | false |
| 1.2m >= 1.2 | true |
| 1.5m >= 1.5 | true |
| -0m >= 0m | true |
| -1m/0m >= 1m/0m | false |
| Decimal('foo') >= Decimal('foo') | false |
| Decimal('foo') >= - Decimal('foo') | false |
| expression | result |
|---|---|
| 1.1m instanceof Decimal | false |
| 1.1 instanceof Decimal | false |
| Decimal('5') instanceof Decimal | false |
| new Decimal('5') instanceof Decimal | true |
| new Object(5m) instanceof Decimal | true |
| Object(5m) instanceof Decimal | true |
| Object(5m).valueOf() instanceof Decimal | false |
| 5m.valueOf() instanceof Decimal | false |
| expression | result |
|---|---|
| 'add' in Decimal | true |
| 'add' in 7.1m | true |
| 'substr' in Decimal | false |
| 'substr' in 7.1m | false |
| expression | result |
|---|---|
| 1.1m == 1.1m | true |
| 1.2m == 1.1m | false |
| 1.1m == 1.10m | true |
| 1.10m == 1.1m | true |
| 1.1m == 1.1 | false |
| 1.2m == 1.2 | false |
| 1.2m == '1.2' | true |
| 1.0m == true | true |
| 1.5m == 1.5 | true |
| -0m == 0m | true |
| -1m/0m == 1m/0m | false |
| Decimal('foo') == Decimal('foo') | false |
| Decimal('foo') == - Decimal('foo') | false |
| Decimal(1) == Decimal(1) | true |
| 1m == Decimal(1) | true |
| new Decimal(1) == new Decimal(1) | false |
| expression | result |
|---|---|
| 1.1m != 1.1m | false |
| 1.2m != 1.1m | true |
| 1.1m != 1.10m | false |
| 1.10m != 1.1m | false |
| 1.1m != 1.1 | true |
| 1.2m != 1.2 | true |
| 1.2m != '1.2' | false |
| 1.0m != true | false |
| 1.5m != 1.5 | false |
| -0m != 0m | false |
| -1m/0m != 1m/0m | true |
| Decimal('foo') != Decimal('foo') | true |
| Decimal('foo') != - Decimal('foo') | true |
| expression | result |
|---|---|
| 1.1m === 1.1m | true |
| 1.2m === 1.1m | false |
| 1.1m === 1.10m | true |
| 1.10m === 1.1m | true |
| 1.1m === 1.1 | false |
| 1.2m === 1.2 | false |
| 1.2m === '1.2' | false |
| 1.0m === true | false |
| 1.5m === 1.5 | false |
| -0m === 0m | true |
| -1m/0m === 1m/0m | false |
| Decimal('foo') === Decimal('foo') | false |
| Decimal('foo') === - Decimal('foo') | false |
| Decimal(1) === Decimal(1) | true |
| 1m === Decimal(1) | true |
| new Decimal(1) === new Decimal(1) | false |
| expression | result |
|---|---|
| 1.1m !== 1.1m | false |
| 1.2m !== 1.1m | true |
| 1.1m !== 1.10m | false |
| 1.10m !== 1.1m | false |
| 1.1m !== 1.1 | true |
| 1.2m !== 1.2 | true |
| 1.2m !== '1.2' | true |
| 1.0m !== true | true |
| 1.5m !== 1.5 | true |
| -0m !== 0m | false |
| -1m/0m !== 1m/0m | true |
| Decimal('foo') !== Decimal('foo') | true |
| expression | result |
|---|---|
| 2e10m & 2e5m | 198656 |
| 2e10m | 2e5m | -1474835136 |
| 2e10m ^ 2e5m | -1475033792 |
| expression | result |
|---|---|
| 12.34m || 56.78m | 12.34m |
| 0.0m || 56.78m | 56.78m |
| 12.34m && 56.78m | 56.78m |
| 0.0m && 56.78m | 0.0m |
| expression | result |
|---|---|
| isNaN(0m/0m) | true |
| isNaN(-(0m/0m)) | true |
| isNaN(-(1m/0m)) | false |
| isNaN(-(1m/0m)) | false |
| isNaN(1e309m) | false |
| expression | result |
|---|---|
| isFinite(0m/0m) | false |
| isFinite(-(0m/0m)) | false |
| isFinite(-(1m/0m)) | false |
| isFinite(-(1m/0m)) | false |
| isFinite(1e309m) | true |
| expression | result |
|---|---|
| Decimal() | 0m |
| Decimal(12.50m) | 12.50m |
| Decimal('12.50') | 12.50m |
| Decimal('123345678901234567890.123456789012345678901234567890') | 123345678901234567890.1234567890123m |
| Decimal('98765432109876543210.987654321098765432109876543210') | 98765432109876543210.98765432109877m |
| Decimal('garbage').toString() | "NaN" |
| Decimal(1) | 1m |
| Decimal(1.1) | 1.100000000000000088817841970012523m |
| (Decimal(-0)).toString() | "-0" |
| (Decimal(Infinity)).toString() | "Infinity" |
| (Decimal(NaN)).toString() | "NaN" |
| Decimal(true) | 1m |
| Decimal(/./).toString() | "NaN" |
| expression | result |
|---|---|
| new Decimal().valueOf() | 0m |
| new Decimal(12.50m).valueOf() | 12.50m |
| new Decimal('12.50').valueOf() | 12.50m |
| new Decimal('123345678901234567890.123456789012345678901234567890').valueOf() | 123345678901234567890.1234567890123m |
| new Decimal('98765432109876543210.987654321098765432109876543210').valueOf() | 98765432109876543210.98765432109877m |
| new Decimal('garbage').toString() | "NaN" |
| new Decimal(1).valueOf() | 1m |
| new Decimal(1.1).valueOf() | 1.100000000000000088817841970012523m |
| (new Decimal(-0)).toString() | "-0" |
| (new Decimal(Infinity)).toString() | "Infinity" |
| (new Decimal(NaN)).toString() | "NaN" |
| new Decimal(true).valueOf() | 1m |
| new Decimal(/./).toString() | "NaN" |
| expression | result |
|---|---|
| Decimal.abs(1m) | 1m |
| Decimal.abs(-1m) | 1m |
| Decimal.abs(1m/0m).toString() | "Infinity" |
| Decimal.abs(-1m/0m).toString() | "Infinity" |
| Decimal.abs(0m/0m).toString() | "NaN" |
| Decimal.abs(-(0m/0m)).toString() | "NaN" |
| expression | result |
|---|---|
| Decimal.digits(-1234m) | 4 |
| Decimal.digits(1234e-17m) | 4 |
| Decimal.digits(0m) | 1 |
| Decimal.digits(-0m) | 1 |
| Decimal.digits(1m/0m) | 1 |
| Decimal.digits(-1m/0m) | 1 |
| Decimal.digits(0m/0m) | 1 |
| Decimal.digits(-(0m/0m)) | 1 |
| expression | result |
|---|---|
| Decimal.divideInteger(100m, 7m) | 14m |
| Decimal.divideInteger(100m, 13m) | 7m |
| Decimal.divideInteger(100m, 13m, {round: Decimal.ROUND_UP}) | 7m |
| expression | result |
|---|---|
| Decimal.getExponent(1e4m) | 4 |
| Decimal.getExponent(1000m) | 0 |
| Decimal.getExponent(12.34m) | -2 |
| Decimal.getExponent(1m/0m) | -134217728 |
| Decimal.getExponent(-1m/0m) | -134217728 |
| Decimal.getExponent(0m/0m) | -67108864 |
| Decimal.getExponent(-(0m/0m)) | -67108864 |
| expression | result |
|---|---|
| Decimal.max(8m, -3m) | 8m |
| Decimal.max().toString() | "Infinity" |
| Decimal.max(8m) | 8m |
| Decimal.max(8m, -3m, -9m, 12m) | 12m |
| Decimal.max(8m, -3m, -9m, 0m/0m, 3m).toString() | "NaN" |
| expression | result |
|---|---|
| Decimal.min(8m, -3m) | -3m |
| Decimal.min().toString() | "-Infinity" |
| Decimal.min(8m) | 8m |
| Decimal.min(8m, -3m, -9m, 12m) | -9m |
| Decimal.min(8m, -3m, -9m, 0m/0m, 3m).toString() | "NaN" |
| expression | result |
|---|---|
| Decimal.reduce(-12.3400m).toString() | "-12.34" |
| Decimal.reduce(1000m).toString() | "1e+3" |
| Decimal.abs(1m/0m).toString() | "Infinity" |
| Decimal.abs(-1m/0m).toString() | "Infinity" |
| Decimal.abs(0m/0m).toString() | "NaN" |
| Decimal.abs(-(0m/0m)).toString() | "NaN" |
| expression | result |
|---|---|
| Decimal.quantize(1m, 0.01m).toString() | "1.00" |
| Decimal.quantize(1m/3m, 0.01m) | 0.33m |
| Decimal.quantize(1m/3m, 0.01m, {round: Decimal.ROUND_UP}) | 0.34m |
| Decimal.quantize(2m/3m, 0.01m, {round: Decimal.ROUND_DOWN}) | 0.66m |
| Decimal.quantize(1.235m, 0.01m, {round: Decimal.ROUND_CEILING}) | 1.24m |
| Decimal.quantize(-1.235m, 0.01m, {round: Decimal.ROUND_CEILING}) | -1.23m |
| Decimal.quantize(1.235m, 0.01m, {round: Decimal.ROUND_FLOOR}) | 1.23m |
| Decimal.quantize(-1.235m, 0.01m, {round: Decimal.ROUND_FLOOR}) | -1.24m |
| Decimal.quantize(1.235m, 0.01m, {round: Decimal.ROUND_HALF_DOWN}) | 1.23m |
| Decimal.quantize(1.235m, 0.01m, {round: Decimal.ROUND_HALF_UP}) | 1.24m |
| Decimal.quantize(1.235m, 0.01m, {round: Decimal.ROUND_HALF_EVEN}) | 1.24m |
| Decimal.quantize(1.245m, 0.01m, {round: Decimal.ROUND_HALF_EVEN}) | 1.24m |
| Decimal.quantize(1m/0m).toString() | "NaN" |
| Decimal.quantize(-1m/0m).toString() | "NaN" |
| Decimal.quantize(0m/0m).toString() | "NaN" |
| Decimal.quantize(-(0m/0m), 0.01m).toString() | "NaN" |
| expression | result |
|---|---|
| (-1.10m).toString() | "-1.10" |
| (1e-6m).toString() | "0.000001" |
| (1e-7m).toString() | "1e-7" |
| (1e+1m).toString() | "1e+1" |
| 12345678901234567890123456789012345m.toString() | "1.234567890123456789012345678901234e+34" |
| 1234567890123456789012345678901234m.toString() | "1234567890123456789012345678901234" |
| (1m/0m).toString() | "Infinity" |
| (-1m/0m).toString() | "-Infinity" |
| (0m/0m).toString() | "NaN" |
| (-(0m/0m)).toString() | "NaN" |
| expression | result |
|---|---|
| (-1.10m).toEngString() | "-1.10" |
| 1.2e+14m.toEngString() | "120e+12" |
| (1m/0m).toEngString() | "Infinity" |
| (-1m/0m).toEngString() | "-Infinity" |
| (0m/0m).toEngString() | "NaN" |
| (-(0m/0m)).toEngString() | "NaN" |
| expression | result |
|---|---|
| Decimal.Infinity.toString() | "Infinity" |
| expression | result |
|---|---|
| Decimal.NaN.toString() | "NaN" |