Test results, smdebug

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.

Whoop-de-doo, nothing failed!


Summary

11.3.1 Postfix Increment Operator

expression result
eval("var MYVAR=1.10m; MYVAR++") 1.10m
eval("var MYVAR=1.10m; MYVAR++; MYVAR") 2.10m

11.3.2 Postfix Decrement Operator

expression result
eval("var MYVAR=3.10m; MYVAR--") 3.10m
eval("var MYVAR=3.10m; MYVAR--; MYVAR") 2.10m

11.4.1 The delete Operator

expression result
delete new Decimal(1) true

11.4.3 The typeof Operator

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"

11.4.4 Prefix Increment Operator

expression result
eval("var MYVAR=1.10m; ++MYVAR") 2.10m
eval("var MYVAR=1.10m; ++MYVAR; MYVAR") 2.10m

11.4.5 Prefix Decrement Operator

expression result
eval("var MYVAR=3.10m; --MYVAR") 2.10m
eval("var MYVAR=3.10m; --MYVAR; MYVAR") 2.10m

11.4.6 Unary + Operator

expression result
(+Decimal("1.10")).toString() "1.10"
(+Decimal("-1.10")).toString() "-1.10"

11.4.7 Unary - Operator

expression result
(-Decimal("1.10")).toString() "-1.10"
(-Decimal("-1.10")).toString() "1.10"
(-(1m/0m)).toString() "-Infinity"
(-(0m/0m)).toString() "NaN"

11.4.8 Bitwise NOT Operator ( ~ )

expression result
~1e12m 727379967
(-Decimal("-1.10")).toString() "1.10"

11.4.9 Logical NOT Operator ( ! )

expression result
!3.1m false
!0.00m true
!(-0m) true
!(1m/0m) false
!(Decimal('foo')) false

11.5.1 Applying the * Operator

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"

11.5.2 Applying the / Operator

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"

11.5.3 Applying the % Operator

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"

11.6.1 The Addition operator ( + )

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"

11.7.1 The Left Shift Operator ( << )

expression result
1234.56789m << 21 -1707081728
(-0m) << 2 0
(1m/0m) << 2 0
(Decimal('foo')) << 2 0

11.7.2 The Signed Right Shift Operator ( >> )

expression result
-1234.56789m >> 2 -309
(-0m) >> 2 0
(1m/0m) >> 2 0
(Decimal('foo')) >> 2 0

11.7.3 The Unsigned Right Shift Operator ( >>> )

expression result
-1234.56789m >>> 2 1073741515
(-0m) >>> 2 0
(1m/0m) >>> 2 0
(Decimal('foo')) >>> 2 0

11.8.1 The Less-than Operator ( < )

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

11.8.2 The Greater-than Operator ( > )

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

11.8.3 The Less-than-or-equal Operator ( <= )

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

11.8.4 The Greater-than-or-equal Operator ( >= )

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

11.8.6 instanceof Operator

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

11.8.7 The in Operator

expression result
'add' in Decimal true
'add' in 7.1m true
'substr' in Decimal false
'substr' in 7.1m false

11.9.1 The Equals Operator ( == )

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

11.9.2 The Does-not-equals Operator ( != )

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

11.9.4 The Strict Equals Operator ( === )

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

11.9.5 The Strict Does-not-equals Operator ( !== )

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

11.10 Binary Bitwise Operators

expression result
2e10m & 2e5m 198656
2e10m | 2e5m -1474835136
2e10m ^ 2e5m -1475033792

11.11 Binary Logical Operators

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

15.1.2.4 isNaN

expression result
isNaN(0m/0m) true
isNaN(-(0m/0m)) true
isNaN(-(1m/0m)) false
isNaN(-(1m/0m)) false
isNaN(1e309m) false

15.1.2.5 isFinite

expression result
isFinite(0m/0m) false
isFinite(-(0m/0m)) false
isFinite(-(1m/0m)) false
isFinite(-(1m/0m)) false
isFinite(1e309m) true

15.13.2 The Decimal Constructor Called as a Function

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"

15.13.3 The Decimal Constructor

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"

15.13.4.2 Decimal.abs

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"

15.13.4.3 Decimal.digits

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

15.13.4.4 Decimal.divideInteger

expression result
Decimal.divideInteger(100m, 7m) 14m
Decimal.divideInteger(100m, 13m) 7m
Decimal.divideInteger(100m, 13m, {round: Decimal.ROUND_UP}) 7m

15.13.4.5 Decimal.getExponent

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

15.13.4.6 Decimal.max

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"

15.13.4.7 Decimal.min

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"

15.13.4.8 Decimal.reduce

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"

15.13.4.9 Decimal.quantize

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"

15.13.5.5 Decimal.prototype.toString()

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"

15.13.5.6 Decimal.prototype.toEngString()

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"

15.13.5.14 Decimal.prototype.Infinity

expression result
Decimal.Infinity.toString() "Infinity"

15.13.5.15 Decimal.prototype.NaN

expression result
Decimal.NaN.toString() "NaN"