123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- if (typeof Test === 'undefined') require('../tester');
- Test('`is` methods', function () {
- var n;
- // isEqualTo eq
- // isFinite
- // isGreaterThan gt
- // isGreaterThanOrEqualTo gte
- // isInteger
- // isLessThan lt
- // isLessThanOrEqualTo lte
- // isNaN
- // isNegative
- // isPositive
- // isZero
- // valueOf
- function t(expected, value) {
- Test.areEqual(expected, value);
- }
- t(BigNumber.prototype.isEqualTo, BigNumber.prototype.eq);
- t(BigNumber.prototype.isGreaterThan, BigNumber.prototype.gt);
- t(BigNumber.prototype.isGreaterThanOrEqualTo, BigNumber.prototype.gte);
- t(BigNumber.prototype.isLessThan,BigNumber.prototype.lt);
- t(BigNumber.prototype.isLessThanOrEqualTo, BigNumber.prototype.lte);
- BigNumber.config({
- DECIMAL_PLACES: 20,
- ROUNDING_MODE: 4,
- EXPONENTIAL_AT: 1e+9,
- RANGE: 1e+9
- });
- n = new BigNumber(1);
- t(true, n.isFinite());
- t(true, n.isInteger());
- t(false, n.isNaN());
- t(false, n.isNegative());
- t(true, n.isPositive());
- t(false, n.isZero());
- t(true, n.isEqualTo(n));
- t(true, n.isEqualTo(n, 2));
- t(true, n.isEqualTo(1, 3));
- t(true, n.isEqualTo(n, 4));
- t(true, n.isEqualTo(1, 5));
- t(true, n.isEqualTo(n, 6));
- t(true, n.isEqualTo(1, 7));
- t(true, n.isEqualTo(n, 8));
- t(true, n.isEqualTo(1, 9));
- t(true, n.isEqualTo(n, 10));
- t(true, n.isEqualTo(n, 11));
- t(true, n.isEqualTo(1, 12));
- t(true, n.isEqualTo(n, 13));
- t(true, n.isEqualTo(1, 14));
- t(true, n.isEqualTo(n, 15));
- t(true, n.isEqualTo(1, 16));
- t(true, n.isEqualTo(n, 17));
- t(true, n.isEqualTo(1, 18));
- t(true, n.isEqualTo(n, 19));
- t(true, n.isEqualTo('1.0', 20));
- t(true, n.isEqualTo('1.00', 21));
- t(true, n.isEqualTo('1.000', 22));
- t(true, n.isEqualTo('1.0000', 23));
- t(true, n.isEqualTo('1.00000', 24));
- t(true, n.isEqualTo('1.000000', 25));
- t(true, n.isEqualTo(new BigNumber(1, 10), 26));
- t(true, n.isEqualTo(new BigNumber(1), 27));
- t(true, n.isEqualTo(1, 28));
- t(true, n.isEqualTo(1, 29));
- t(true, n.isEqualTo(1, 30));
- t(true, n.isEqualTo(1, 31));
- t(true, n.isEqualTo(1, 32));
- t(true, n.isEqualTo(1, 33));
- t(true, n.isEqualTo(1, 34));
- t(true, n.isEqualTo(1, 35));
- t(true, n.isEqualTo(1, 36));
- t(true, n.isGreaterThan(0.99999));
- t(false, n.isGreaterThanOrEqualTo(1.1));
- t(true, n.isLessThan(1.001));
- t(true, n.isLessThanOrEqualTo(2));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('-0.1');
- t(true, n.isFinite());
- t(false, n.isInteger());
- t(false, n.isNaN());
- t(true, n.isNegative());
- t(false, n.isPositive());
- t(false, n.isZero());
- t(false, n.isEqualTo(0.1));
- t(false, n.isGreaterThan(-0.1));
- t(true, n.isGreaterThanOrEqualTo(-1));
- t(true, n.isLessThan(-0.01));
- t(false, n.isLessThanOrEqualTo(-1));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber(Infinity);
- t(false, n.isFinite());
- t(false, n.isInteger());
- t(false, n.isNaN());
- t(false, n.isNegative());
- t(true, n.isPositive());
- t(false, n.isZero());
- t(true, n.eq('Infinity'));
- t(true, n.eq(1/0));
- t(true, n.gt('9e999'));
- t(true, n.gte(Infinity));
- t(false, n.lt(Infinity));
- t(true, n.lte(Infinity));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('-Infinity');
- t(false, n.isFinite());
- t(false, n.isInteger());
- t(false, n.isNaN());
- t(true, n.isNegative());
- t(false, n.isPositive());
- t(false, n.isZero());
- t(false, n.isEqualTo(Infinity));
- t(true, n.isEqualTo(-1/0));
- t(false, n.isGreaterThan(-Infinity));
- t(true, n.isGreaterThanOrEqualTo('-Infinity', 8));
- t(true, n.isLessThan(0));
- t(true, n.isLessThanOrEqualTo(Infinity));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('0.0000000');
- t(true, n.isFinite());
- t(true, n.isInteger());
- t(false, n.isNaN());
- t(false, n.isNegative());
- t(true, n.isPositive());
- t(true, n.isZero());
- t(true, n.eq(-0));
- t(true, n.gt(-0.000001));
- t(false, n.gte(0.1));
- t(true, n.lt(0.0001));
- t(true, n.lte(-0));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber(-0);
- t(true, n.isFinite());
- t(true, n.isInteger());
- t(false, n.isNaN());
- t(true, n.isNegative());
- t(false, n.isPositive());
- t(true, n.isZero());
- t(true, n.isEqualTo('0.000'));
- t(true, n.isGreaterThan(-1));
- t(false, n.isGreaterThanOrEqualTo(0.1));
- t(false, n.isLessThan(0));
- t(false, n.isLessThan(0, 36));
- t(true, n.isLessThan(0.1));
- t(true, n.isLessThanOrEqualTo(0));
- t(true, n.valueOf() === '-0');
- t(true, n.toJSON() === '-0');
- t(true, n.toString() === '0');
- n = new BigNumber('NaN');
- t(false, n.isFinite());
- t(false, n.isInteger());
- t(true, n.isNaN());
- t(false, n.isNegative());
- t(false, n.isPositive());
- t(false, n.isZero());
- t(false, n.eq(NaN));
- t(false, n.eq(Infinity));
- t(false, n.gt(0));
- t(false, n.gte(0));
- t(false, n.lt(1));
- t(false, n.lte(-0));
- t(false, n.lte(-1));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('-1.234e+2');
- t(true, n.isFinite());
- t(false, n.isInteger());
- t(false, n.isNaN());
- t(true, n.isNegative());
- t(false, n.isPositive());
- t(false, n.isZero());
- t(true, n.eq(-123.4, 10));
- t(true, n.gt('-ff', 16));
- t(true, n.gte('-1.234e+3'));
- t(true, n.lt(-123.39999));
- t(true, n.lte('-123.4e+0'));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('5e-200');
- t(true, n.isFinite());
- t(false, n.isInteger());
- t(false, n.isNaN());
- t(false, n.isNegative());
- t(true, n.isPositive());
- t(false, n.isZero());
- t(true, n.isEqualTo(5e-200));
- t(true, n.isGreaterThan(5e-201));
- t(false, n.isGreaterThanOrEqualTo(1));
- t(true, n.isLessThan(6e-200));
- t(true, n.isLessThanOrEqualTo(5.1e-200));
- t(true, n.toString() === n.valueOf());
- n = new BigNumber('1');
- t(true, n.isEqualTo(n));
- t(true, n.isEqualTo(n.toString()));
- t(true, n.isEqualTo(n.toString()));
- t(true, n.isEqualTo(n.valueOf()));
- t(true, n.isEqualTo(n.toFixed()));
- t(true, n.isEqualTo(1));
- t(true, n.isEqualTo('1e+0'));
- t(false, n.isEqualTo(-1));
- t(false, n.isEqualTo(0.1));
- t(true, new BigNumber(10).isGreaterThan(10, 2));
- t(true, new BigNumber(10).isGreaterThan(10, 3));
- t(true, new BigNumber(10).isGreaterThan(10, 4));
- t(true, new BigNumber(10).isGreaterThan(10, 5));
- t(true, new BigNumber(10).isGreaterThan(10, 6));
- t(true, new BigNumber(10).isGreaterThan(10, 7));
- t(true, new BigNumber(10).isGreaterThan(10, 8));
- t(true, new BigNumber(10).isGreaterThan(10, 9));
- t(false, new BigNumber(10).isGreaterThan(10, 10));
- t(false, new BigNumber(10).isGreaterThan(10, 11));
- t(false, new BigNumber(10).isGreaterThan(10, 12));
- t(false, new BigNumber(10).isGreaterThan(10, 13));
- t(true, new BigNumber(10).isLessThan(10, 11));
- t(true, new BigNumber(10).isLessThan(10, 12));
- t(true, new BigNumber(10).isLessThan(10, 13));
- t(true, new BigNumber(10).isLessThan(10, 14));
- t(true, new BigNumber(10).isLessThan(10, 15));
- t(true, new BigNumber(10).isLessThan(10, 16));
- t(true, new BigNumber(10).isLessThan(10, 17));
- t(true, new BigNumber(10).isLessThan(10, 18));
- t(true, new BigNumber(10).isLessThan(10, 19));
- t(true, new BigNumber(10).isLessThan(10, 20));
- t(true, new BigNumber(10).isLessThan(10, 21));
- t(true, new BigNumber(10).isLessThan(10, 22));
- t(true, new BigNumber(10).isLessThan(10, 34));
- t(true, new BigNumber(10).isLessThan(10, 35));
- t(true, new BigNumber(10).isLessThan(10, 36));
- t(false, new BigNumber(NaN).isLessThan(NaN));
- t(false, new BigNumber(Infinity).isLessThan(-Infinity));
- t(false, new BigNumber(Infinity).isLessThan(Infinity));
- t(true, new BigNumber(Infinity, 10).isLessThanOrEqualTo(Infinity, 2));
- t(false, new BigNumber(NaN).isGreaterThanOrEqualTo(NaN));
- t(true, new BigNumber(Infinity).isGreaterThanOrEqualTo(Infinity));
- t(true, new BigNumber(Infinity).isGreaterThanOrEqualTo(-Infinity));
- t(false, new BigNumber(NaN).isGreaterThanOrEqualTo(-Infinity));
- t(true, new BigNumber(-Infinity).isGreaterThanOrEqualTo(-Infinity));
- t(false, new BigNumber(2, 10).isGreaterThan(10, 2));
- t(false, new BigNumber(10, 2).isLessThan(2, 10));
- t(true, new BigNumber(255).isLessThanOrEqualTo('ff', 16));
- t(true, new BigNumber('a', 16).isGreaterThanOrEqualTo(9, 16));
- t(false, new BigNumber(0).isLessThanOrEqualTo('NaN'));
- t(false, new BigNumber(0).isGreaterThanOrEqualTo(NaN));
- t(false, new BigNumber(NaN, 2).isLessThanOrEqualTo('NaN', 36));
- t(false, new BigNumber(NaN, 36).isGreaterThanOrEqualTo(NaN, 2));
- t(false, new BigNumber(0).isLessThanOrEqualTo(-Infinity));
- t(true, new BigNumber(0).isGreaterThanOrEqualTo(-Infinity));
- t(true, new BigNumber(0).isLessThanOrEqualTo('Infinity', 36));
- t(false, new BigNumber(0).isGreaterThanOrEqualTo('Infinity', 36));
- t(false, new BigNumber(10).isLessThanOrEqualTo(20, 4));
- t(true, new BigNumber(10).isLessThanOrEqualTo(20, 5));
- t(false, new BigNumber(10).isGreaterThanOrEqualTo(20, 6));
- t(false, new BigNumber(1.23001e-2).isLessThan(1.23e-2));
- t(true, new BigNumber(1.23e-2).lt(1.23001e-2));
- t(false, new BigNumber(1e-2).isLessThan(9.999999e-3));
- t(true, new BigNumber(9.999999e-3).lt(1e-2));
- t(false, new BigNumber(1.23001e+2).isLessThan(1.23e+2));
- t(true, new BigNumber(1.23e+2).lt(1.23001e+2));
- t(true, new BigNumber(9.999999e+2).isLessThan(1e+3));
- t(false, new BigNumber(1e+3).lt(9.9999999e+2));
- t(false, new BigNumber(1.23001e-2).isLessThanOrEqualTo(1.23e-2));
- t(true, new BigNumber(1.23e-2).lte(1.23001e-2));
- t(false, new BigNumber(1e-2).isLessThanOrEqualTo(9.999999e-3));
- t(true, new BigNumber(9.999999e-3).lte(1e-2));
- t(false, new BigNumber(1.23001e+2).isLessThanOrEqualTo(1.23e+2));
- t(true, new BigNumber(1.23e+2).lte(1.23001e+2));
- t(true, new BigNumber(9.999999e+2).isLessThanOrEqualTo(1e+3));
- t(false, new BigNumber(1e+3).lte(9.9999999e+2));
- t(true, new BigNumber(1.23001e-2).isGreaterThan(1.23e-2));
- t(false, new BigNumber(1.23e-2).gt(1.23001e-2));
- t(true, new BigNumber(1e-2).isGreaterThan(9.999999e-3));
- t(false, new BigNumber(9.999999e-3).gt(1e-2));
- t(true, new BigNumber(1.23001e+2).isGreaterThan(1.23e+2));
- t(false, new BigNumber(1.23e+2).gt(1.23001e+2));
- t(false, new BigNumber(9.999999e+2).isGreaterThan(1e+3));
- t(true, new BigNumber(1e+3).gt(9.9999999e+2));
- t(true, new BigNumber(1.23001e-2).isGreaterThanOrEqualTo(1.23e-2));
- t(false, new BigNumber(1.23e-2).gte(1.23001e-2));
- t(true, new BigNumber(1e-2).isGreaterThanOrEqualTo(9.999999e-3));
- t(false, new BigNumber(9.999999e-3).gte(1e-2));
- t(true, new BigNumber(1.23001e+2).isGreaterThanOrEqualTo(1.23e+2));
- t(false, new BigNumber(1.23e+2).gte(1.23001e+2));
- t(false, new BigNumber(9.999999e+2).isGreaterThanOrEqualTo(1e+3));
- t(true, new BigNumber(1e+3).gte(9.9999999e+2));
- Test.isException(function () {new BigNumber(1).lt(true, null)}, "new BigNumber(1).lt(true, null)");
- Test.isException(function () {new BigNumber(1).gt('one')}, "new BigNumber(1).gt('one')");
- });
|