From c246bc7d09c728e1c5440320f235f05ebdc9ff87 Mon Sep 17 00:00:00 2001 From: Leonardo Balter <leonardo.balter@gmail.com> Date: Mon, 20 Jun 2016 14:37:27 -0400 Subject: [PATCH] Add tests for Number.isInteger --- .../isInteger/Number.isInteger_NonNumber.js | 12 --------- .../isInteger/Number.isInteger_String.js | 12 --------- .../isInteger/Number.isInteger_Success.js | 10 -------- .../Number/isInteger/arg-is-not-number.js | 25 +++++++++++++++++++ ...mber.isInteger_Infinity.js => infinity.js} | 3 ++- test/built-ins/Number/isInteger/integers.js | 17 +++++++++++++ .../{Number.isInteger_NaN.js => nan.js} | 0 ...er.isInteger_Double.js => non-integers.js} | 5 +++- test/built-ins/Number/isInteger/prop-desc.js | 20 +++++++++++++++ 9 files changed, 68 insertions(+), 36 deletions(-) delete mode 100644 test/built-ins/Number/isInteger/Number.isInteger_NonNumber.js delete mode 100644 test/built-ins/Number/isInteger/Number.isInteger_String.js delete mode 100644 test/built-ins/Number/isInteger/Number.isInteger_Success.js create mode 100644 test/built-ins/Number/isInteger/arg-is-not-number.js rename test/built-ins/Number/isInteger/{Number.isInteger_Infinity.js => infinity.js} (65%) create mode 100644 test/built-ins/Number/isInteger/integers.js rename test/built-ins/Number/isInteger/{Number.isInteger_NaN.js => nan.js} (100%) rename test/built-ins/Number/isInteger/{Number.isInteger_Double.js => non-integers.js} (50%) create mode 100644 test/built-ins/Number/isInteger/prop-desc.js diff --git a/test/built-ins/Number/isInteger/Number.isInteger_NonNumber.js b/test/built-ins/Number/isInteger/Number.isInteger_NonNumber.js deleted file mode 100644 index 382c52a4a2..0000000000 --- a/test/built-ins/Number/isInteger/Number.isInteger_NonNumber.js +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2014 Ryan Lewis. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es6id: 20.1.2.3 -author: Ryan Lewis -description: > - Number.isInteger should return false if called with a string - (non-Number) ----*/ - -assert.sameValue(Number.isInteger('2'), false, 'Number.isInteger("2")'); diff --git a/test/built-ins/Number/isInteger/Number.isInteger_String.js b/test/built-ins/Number/isInteger/Number.isInteger_String.js deleted file mode 100644 index 71ddf854de..0000000000 --- a/test/built-ins/Number/isInteger/Number.isInteger_String.js +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2014 Ryan Lewis. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es6id: 20.1.2.3 -author: Ryan Lewis -description: > - Number.isInteger should return false if called with a string - (non-Number) ----*/ - -assert.sameValue(Number.isInteger('word'), false, 'Number.isInteger("word")'); diff --git a/test/built-ins/Number/isInteger/Number.isInteger_Success.js b/test/built-ins/Number/isInteger/Number.isInteger_Success.js deleted file mode 100644 index d80454ef3d..0000000000 --- a/test/built-ins/Number/isInteger/Number.isInteger_Success.js +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2014 Ryan Lewis. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es6id: 20.1.2.3 -author: Ryan Lewis -description: Number.isInteger should return true if called with an integer. ----*/ - -assert.sameValue(Number.isInteger(478), true, 'Number.isInteger(478)'); diff --git a/test/built-ins/Number/isInteger/arg-is-not-number.js b/test/built-ins/Number/isInteger/arg-is-not-number.js new file mode 100644 index 0000000000..81614c2396 --- /dev/null +++ b/test/built-ins/Number/isInteger/arg-is-not-number.js @@ -0,0 +1,25 @@ +// Copyright (C) 2016 The V8 Project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 20.1.2.3 +esid: sec-number.isinteger +description: > + Return false if argument is not Number +info: | + Number.isInteger ( number ) + + 1. If Type(number) is not Number, return false. + [...] +features: [Symbol] +---*/ + +assert.sameValue(Number.isInteger("1"), false, "string"); +assert.sameValue(Number.isInteger([1]), false, "[1]"); +assert.sameValue(Number.isInteger(new Number(42)), false, "Number object"); +assert.sameValue(Number.isInteger(false), false, "false"); +assert.sameValue(Number.isInteger(true), false, "true"); +assert.sameValue(Number.isInteger(undefined), false, "undefined"); +assert.sameValue(Number.isInteger(null), false, "null"); +assert.sameValue(Number.isInteger(Symbol("1")), false, "symbol"); +assert.sameValue(Number.isInteger(), false, "no arg"); diff --git a/test/built-ins/Number/isInteger/Number.isInteger_Infinity.js b/test/built-ins/Number/isInteger/infinity.js similarity index 65% rename from test/built-ins/Number/isInteger/Number.isInteger_Infinity.js rename to test/built-ins/Number/isInteger/infinity.js index 4eb3282371..0897e79a8e 100644 --- a/test/built-ins/Number/isInteger/Number.isInteger_Infinity.js +++ b/test/built-ins/Number/isInteger/infinity.js @@ -7,4 +7,5 @@ author: Ryan Lewis description: Number.isInteger should return false if called with Infinity. ---*/ -assert.sameValue(Number.isInteger(Infinity), false, 'Number.isInteger(Infinity)'); +assert.sameValue(Number.isInteger(Infinity), false, 'Infinity'); +assert.sameValue(Number.isInteger(-Infinity), false, '-Infinity'); diff --git a/test/built-ins/Number/isInteger/integers.js b/test/built-ins/Number/isInteger/integers.js new file mode 100644 index 0000000000..10d5aff50c --- /dev/null +++ b/test/built-ins/Number/isInteger/integers.js @@ -0,0 +1,17 @@ +// Copyright (c) 2014 Ryan Lewis. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 20.1.2.3 +author: Ryan Lewis +description: Number.isInteger should return true if called with an integer. +---*/ + +assert.sameValue(Number.isInteger(478), true, 'Number.isInteger(478)'); +assert.sameValue(Number.isInteger(-0), true, '-0'); +assert.sameValue(Number.isInteger(0), true, '0'); +assert.sameValue(Number.isInteger(-1), true, '-1'); +assert.sameValue(Number.isInteger(9007199254740991), true, '9007199254740991'); +assert.sameValue(Number.isInteger(-9007199254740991), true, '-9007199254740991'); +assert.sameValue(Number.isInteger(9007199254740992), true, '9007199254740992'); +assert.sameValue(Number.isInteger(-9007199254740992), true, '-9007199254740992'); diff --git a/test/built-ins/Number/isInteger/Number.isInteger_NaN.js b/test/built-ins/Number/isInteger/nan.js similarity index 100% rename from test/built-ins/Number/isInteger/Number.isInteger_NaN.js rename to test/built-ins/Number/isInteger/nan.js diff --git a/test/built-ins/Number/isInteger/Number.isInteger_Double.js b/test/built-ins/Number/isInteger/non-integers.js similarity index 50% rename from test/built-ins/Number/isInteger/Number.isInteger_Double.js rename to test/built-ins/Number/isInteger/non-integers.js index 7cf69d73bf..dd0e6b1078 100644 --- a/test/built-ins/Number/isInteger/Number.isInteger_Double.js +++ b/test/built-ins/Number/isInteger/non-integers.js @@ -7,4 +7,7 @@ author: Ryan Lewis description: Number.isInteger should return false if called with a double. ---*/ -assert.sameValue(Number.isInteger(6.75), false, 'Number.isInteger(6.75)'); +assert.sameValue(Number.isInteger(6.75), false, '6.75'); +assert.sameValue(Number.isInteger(0.000001), false, '0.000001'); +assert.sameValue(Number.isInteger(-0.000001), false, '-0.000001'); +assert.sameValue(Number.isInteger(11e-1), false, '11e-1'); diff --git a/test/built-ins/Number/isInteger/prop-desc.js b/test/built-ins/Number/isInteger/prop-desc.js new file mode 100644 index 0000000000..5ac538f5da --- /dev/null +++ b/test/built-ins/Number/isInteger/prop-desc.js @@ -0,0 +1,20 @@ +// Copyright (C) 2016 The V8 Project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 20.1.2.3 +esid: sec-number.isinteger +description: > + "isInteger" property of Number +info: > + 17 ECMAScript Standard Built-in Objects: + + Every other data property described in clauses 18 through 26 and in Annex B.2 + has the attributes { [[Writable]]: true, [[Enumerable]]: false, + [[Configurable]]: true } unless otherwise specified. +includes: [propertyHelper.js] +---*/ + +verifyNotEnumerable(Number, "isInteger"); +verifyWritable(Number, "isInteger"); +verifyConfigurable(Number, "isInteger"); -- GitLab