Round Infinity with a precision argument returns Infinity (#4272)

* Round Infinity with a precision argument returns Infinity

* Also making sure this is true for -Infinity
* Tested with _.round(), _.floor() and _.ceil()

* Switch to using isFinite to check if number should be rounded

* Add tests for rounding NaN now that there is an isFinite check
This commit is contained in:
Jeff Friesen
2019-04-18 14:04:18 -06:00
committed by John-David Dalton
parent 0b8592a35c
commit 343456d696
2 changed files with 69 additions and 1 deletions

View File

@@ -19810,6 +19810,74 @@
assert.deepEqual(actual, expected);
});
QUnit.test('`_.' + methodName + '` should return `Infinity` given `Infinity` regardless of `precision`', function(assert) {
assert.expect(6);
var actual = func(Infinity);
assert.strictEqual(actual, Infinity);
actual = func(Infinity, 0)
assert.strictEqual(actual, Infinity);
actual = func(Infinity, 2)
assert.strictEqual(actual, Infinity);
actual = func(Infinity, -2)
assert.strictEqual(actual, Infinity);
actual = func(Infinity, 2);
assert.strictEqual(actual, isFloor ? Infinity : Infinity);
actual = func(Infinity, 2);
assert.strictEqual(actual, isCeil ? Infinity : Infinity);
});
QUnit.test('`_.' + methodName + '` should return `-Infinity` given `-Infinity` regardless of `precision`', function(assert) {
assert.expect(6);
var actual = func(-Infinity);
assert.strictEqual(actual, -Infinity);
actual = func(-Infinity, 0)
assert.strictEqual(actual, -Infinity);
actual = func(-Infinity, 2)
assert.strictEqual(actual, -Infinity);
actual = func(-Infinity, -2)
assert.strictEqual(actual, -Infinity);
actual = func(-Infinity, 2);
assert.strictEqual(actual, isFloor ? -Infinity : -Infinity);
actual = func(-Infinity, 2);
assert.strictEqual(actual, isCeil ? -Infinity : -Infinity);
});
QUnit.test('`_.' + methodName + '` should return `NaN` given `NaN` regardless of `precision`', function(assert) {
assert.expect(6);
var actual = func(NaN)
assert.deepEqual(actual, NaN);
actual = func(NaN, 0)
assert.deepEqual(actual, NaN);
actual = func(NaN, 2)
assert.deepEqual(actual, NaN);
actual = func(NaN, -2)
assert.deepEqual(actual, NaN);
actual = func(NaN, 2);
assert.deepEqual(actual, isFloor ? NaN : NaN);
actual = func(NaN, 2);
assert.deepEqual(actual, isCeil ? NaN : NaN);
});
});
/*--------------------------------------------------------------------------*/