@vuept/loopback-connector-mssql
Version:
Microsoft SQL Server connector for LoopBack
264 lines (262 loc) • 14.2 kB
JavaScript
/*
* written with Mocha Framework
*/
should = require('should')
BigNumber = require('../').n
describe('BigNumber.js', function () {
describe('#initialization', function () {
it('should create a big number from a number', function () {
BigNumber(517).val().should.equal("517");
BigNumber(-517).val().should.equal("-517");
BigNumber(BigNumber(517)).val().should.equal("517");
}),
it('should create a big number from an array', function () {
BigNumber([5,1,7]).val().should.equal("517");
BigNumber(["+",5,1,7]).val().should.equal("517");
BigNumber(["-",5,1,7]).val().should.equal("-517");
}),
it('should create positive or negative numbers from string', function () {
BigNumber(517).sign.should.equal(1);
BigNumber(-517).sign.should.equal(-1);
}),
it('should create positive or negative numbers from array', function () {
BigNumber(["+",5,1,7]).sign.should.equal(1);
BigNumber(["-",5,1,7]).sign.should.equal(-1);
}),
it('should throw error at object creation', function () {
BigNumber("51s7").val().should.equal("Invalid Number");
BigNumber([5, 14, 7, 9]).val().should.equal("Invalid Number");
BigNumber([5, 2, "s", 9]).val().should.equal("Invalid Number");
BigNumber("5s17").val().should.equal("Invalid Number");
BigNumber([5,"s",1,7]).val().should.equal("Invalid Number");
})
}),
describe('#compare()', function () {
it('should compare 2 numbers', function () {
BigNumber(517)._compare().should.equal(0);
BigNumber(517)._compare(5170).should.equal(-1);
BigNumber(517)._compare(65).should.equal(1);
BigNumber(517)._compare(925).should.equal(-1);
BigNumber(29100517)._compare(-32500000).should.equal(1);
BigNumber(["-",5,3,7,9,4,6])._compare(985).should.equal(-1);
BigNumber(9773)._compare(9773).should.equal(0);
BigNumber(199773)._compare(199774).should.equal(-1);
BigNumber(199773)._compare(199772).should.equal(1);
BigNumber(1)._compare(-2).should.equal(1);
BigNumber(-24)._compare(-24).should.equal(0);
BigNumber(-5)._compare(-4).should.equal(-1);
BigNumber(-97)._compare(-12).should.equal(-1);
BigNumber(-97)._compare(-102).should.equal(1);
BigNumber(0)._compare(0).should.equal(0);
BigNumber(97)._compare(0).should.equal(1);
BigNumber(-97)._compare(0).should.equal(-1);
}),
it('should test lt (less than)', function () {
BigNumber(517).lt(518).should.equal(true);
BigNumber(517).lt(517).should.equal(false);
BigNumber(517).lt(516).should.equal(false);
BigNumber(517).lt(516).should.equal(false);
BigNumber(517).lt(518).should.equal(true);
BigNumber(5).lt(33).should.equal(true);
BigNumber(-5).lt(3).should.equal(true);
BigNumber(-5).lt(-3).should.equal(true);
BigNumber(-5).lt(3).should.equal(true);
BigNumber(-5).lt(-7).should.equal(false);
BigNumber(-5).lt(-5).should.equal(false);
}),
it('should test lte (less or equal than)', function () {
BigNumber(517).lte(-517).should.equal(false);
BigNumber(517).lte(517).should.equal(true);
BigNumber(517).lte(518).should.equal(true);
BigNumber(-5).lte(5).should.equal(true);
BigNumber(-5).lte(-5).should.equal(true);
BigNumber(2).lte(-5).should.equal(false);
}),
it('should test equals', function () {
BigNumber(517).equals(516).should.equal(false);
BigNumber(-9).equals(-9).should.equal(true);
BigNumber(-9).equals(-91).should.equal(false);
BigNumber(517).equals(517).should.equal(true);
}),
it('should test gt (greater than)', function () {
BigNumber(517).gt(517).should.equal(false);
BigNumber(518).gt(517).should.equal(true);
BigNumber(516).gt(517).should.equal(false);
BigNumber(-1).gt(9).should.equal(false);
BigNumber(-7).gt(-9).should.equal(true);
BigNumber(0).gt(-9).should.equal(true);
BigNumber(-1).gt(-1).should.equal(false);
BigNumber(0).gt(0).should.equal(false);
}),
it('should test gte (greater or equal than)', function () {
BigNumber(-517).gte(517).should.equal(false);
BigNumber(517).gte(517).should.equal(true);
BigNumber(-517).gte(517).should.equal(false);
BigNumber(-517).gte(-517).should.equal(true);
BigNumber(32).gte(17).should.equal(true);
BigNumber(32).gte(33).should.equal(false);
})
}),
describe('#plus()', function () {
it('should add 2 positive numbers', function () {
BigNumber(1).plus(0).val().should.equal("1");
BigNumber(1).plus(1).val().should.equal("2");
BigNumber(8).plus(8).val().should.equal("16");
BigNumber(27).plus(73).val().should.equal("100");
BigNumber(99).plus(10001).val().should.equal("10100");
BigNumber(517).plus().val().should.equal("517");
BigNumber(2).plus(BigNumber(5999)).val().should.equal("6001");
BigNumber(517).plus(0).val().should.equal("517");
BigNumber(517).plus(5).val().should.equal("522");
BigNumber(517).plus(925).val().should.equal("1442");
BigNumber(29100517).plus(925).val().should.equal("29101442");
BigNumber([5,3,7,9,4,6]).plus(985).val().should.equal("538931");
BigNumber(9773).plus(227).val().should.equal("10000");
BigNumber(199773).plus(227).val().should.equal("200000");
}),
it('should add 2 numbers', function () {
BigNumber(1).plus(-1).val().should.equal("0");
BigNumber(1).plus(-7).val().should.equal("-6");
BigNumber(1).plus(-100).val().should.equal("-99");
BigNumber(-121).plus(-1).val().should.equal("-122");
BigNumber(-121).plus(22).val().should.equal("-99");
BigNumber(-121).plus(1105).val().should.equal("984");
BigNumber(-5).plus(-99).val().should.equal("-104");
})
}),
describe('#minus()', function () {
it('should subtract 2 positive numbers obtaining a positive number', function () {
BigNumber(5).minus().val().should.equal("5");
BigNumber(5).minus(3).val().should.equal("2");
BigNumber(19).minus(17).val().should.equal("2");
BigNumber(57).minus(55).val().should.equal("2");
BigNumber(10000).minus(9999).val().should.equal("1");
BigNumber(10000).minus(10000).val().should.equal("0");
BigNumber(10000).minus(-10000).val().should.equal("20000");
BigNumber(10000).minus(999).val().should.equal("9001");
BigNumber(10000).minus(1).val().should.equal("9999");
BigNumber(2934).minus(999).val().should.equal("1935");
BigNumber(19).minus(0).val().should.equal("19");
BigNumber(10000).minus(227).val().should.equal("9773");
BigNumber(200000).minus(227).val().should.equal("199773");
}),
it('should subtract 2 positive numbers obtaining a negative number', function () {
BigNumber(5).minus(33).val().should.equal("-28");
BigNumber(5).minus(104).val().should.equal("-99");
BigNumber(0).minus(101).val().should.equal("-101");
}),
it('should subtract 2 numbers', function () {
BigNumber(55).minus(57).val().should.equal("-2");
BigNumber(5).minus(-33).val().should.equal("38");
BigNumber(-5).minus(98).val().should.equal("-103");
BigNumber(-33).minus(-5).val().should.equal("-28");
BigNumber(-33).minus(-33).val().should.equal("0");
BigNumber(-33).minus(-32).val().should.equal("-1");
BigNumber(-33).minus(-34).val().should.equal("1");
BigNumber(-5).minus(-33).val().should.equal("28");
BigNumber(-5).minus(-3).val().should.equal("-2");
BigNumber(-101).minus(-1010).val().should.equal("909");
BigNumber(-5).minus(99).val().should.equal("-104");
BigNumber(-5).minus(-15).val().should.equal("10");
})
}),
describe('#multiply()', function () {
it('should multiply 2 positive numbers', function () {
BigNumber(5).multiply(0).val().should.equal("0");
BigNumber(0).multiply(5).val().should.equal("0");
BigNumber(243).multiply(1).val().should.equal("243");
BigNumber(243).multiply(2).val().should.equal("486");
BigNumber(5).multiply(2).val().should.equal("10");
BigNumber(5).multiply(100).val().should.equal("500");
BigNumber(100).multiply(5).val().should.equal("500");
BigNumber(54325).multiply(543).val().should.equal("29498475");
BigNumber(1).multiply(100000).val().should.equal("100000");
}),
it('should multiply 2 positive numbers', function () {
BigNumber(-5).multiply(0).val().should.equal("0");
BigNumber(-1).multiply(-1).val().should.equal("1");
BigNumber(5).multiply(-1).val().should.equal("-5");
BigNumber(-5).multiply(20).val().should.equal("-100");
BigNumber(17).multiply(-12).val().should.equal("-204");
})
}),
describe('#divide()', function () {
it('should divide 2 positive numbers', function () {
BigNumber(5).divide(0).val().should.equal("Invalid Number - Division By Zero");
BigNumber(5).divide(1).val().should.equal("5");
BigNumber(99).divide(5).val().should.equal("19");
BigNumber(7321).divide(153).val().should.equal("47");
BigNumber(919).divide(153).val().should.equal("6");
}),
it('should divide 2 numbers', function () {
BigNumber(-5).divide(1).val().should.equal("-5");
BigNumber(-5).divide(-1).val().should.equal("5");
BigNumber(5).divide(-1).val().should.equal("-5");
BigNumber(9).divide(2).val().should.equal("4");
BigNumber(17).divide(5).val().should.equal("3");
BigNumber(10).divide(2).val().should.equal("5");
BigNumber(-50).divide(-10).val().should.equal("5");
BigNumber(-50).divide(39).val().should.equal("-1");
BigNumber(99).divide(5).val().should.equal("19");
BigNumber(100).divide(5).val().should.equal("20");
BigNumber(101).divide(5).val().should.equal("20");
BigNumber(104).divide(5).val().should.equal("20");
BigNumber(-17).divide(-9).val().should.equal("1");
BigNumber(-17).divide(3).val().should.equal("-5");
BigNumber(99).divide(-17).val().should.equal("-5");
}),
it('should return the division rest', function () {
BigNumber(7321).divide(153).rest.val().should.equal("130");
BigNumber(3).divide(2).rest.val().should.equal("1");
BigNumber(9).divide(3).rest.val().should.equal("0");
BigNumber(93).divide(21).rest.val().should.equal("9");
BigNumber(100).divide(53).rest.val().should.equal("47");
})
}),
describe('#mod()', function () {
it('should return the remainder of 2 numbers division', function () {
BigNumber(7321).mod(153).val().should.equal("130");
BigNumber(3).mod(2).val().should.equal("1");
BigNumber(9).mod(3).val().should.equal("0");
BigNumber(93).mod(21).val().should.equal("9");
BigNumber(100).mod(53).val().should.equal("47");
})
}),
describe('#pow()', function () {
it('should raise a a number to a positive integer power', function () {
BigNumber(5).pow(0).val().should.equal("1");
BigNumber(5).pow(1).val().should.equal("5");
BigNumber(5).pow(4).val().should.equal("625");
BigNumber(1).pow(200).val().should.equal("1");
BigNumber(2).pow(2).val().should.equal("4");
BigNumber(2).pow(3).val().should.equal("8");
BigNumber(2).pow(4).val().should.equal("16");
BigNumber(2).pow(5).val().should.equal("32");
BigNumber(2).pow(6).val().should.equal("64");
BigNumber(2).pow(10).val().should.equal("1024");
BigNumber(2).pow(32).val().should.equal("4294967296");
BigNumber(4).pow(3).val().should.equal("64");
BigNumber(999999).pow(30).val().should.equal("999970000434995940027404857494593772964205852910692880044960372786493105240295422519882625422555240236493170372730045000692855852922964200593774857494027404995940000434999970000001");
})
}),
describe('#isZero()', function () {
it('should test if the big number is zero', function () {
BigNumber(517).isZero().should.equal(false);
BigNumber(0).isZero().should.equal(true);
BigNumber([0]).isZero().should.equal(true);
})
}),
describe('#abs()', function () {
it('should return absolute value of number', function () {
BigNumber(517).abs().val().should.equal("517");
BigNumber(-517).abs().val().should.equal("517");
})
}),
describe('chainable tests', function () {
it('should test random chainable operations', function () {
var a = 1970485694, b = 153487287;
BigNumber(a).add(1).multiply(BigNumber(b).add(1)).multiply(BigNumber(a).add(2).add(BigNumber(b))).divide(2).val().should.equal("321191979129581791629406140");
BigNumber(5).plus(97).minus(53).plus(434).multiply(5435423).add(321453).multiply(21).div(2).val().should.equal("27569123001");
})
})
})