UNPKG

2.77 kBJavaScriptView Raw
1'use strict';
2
3
4var chai = require('chai');
5var should = chai.should();
6var expect = chai.expect;
7
8var BN = require('../../lib/index').BigNumber
9
10
11
12describe('BigNumber', function() {
13
14 describe('New a big number', function() {
15 it('should return 0x0', function() {
16 let bn = new BN.BigNumber('0x')
17 bn._hex.should.equal('0x0');
18 });
19
20 it('invalid BigNumber string value', function() {
21 (function() {
22 new BN.BigNumber('0xQWER')
23 }.should.throw('invalid BigNumber string value'))
24 });
25
26 it('underflow', function() {
27 (function() {
28 new BN.BigNumber(1.1)
29 }.should.throw('underflow'))
30 });
31
32 it('value is bignumber', function() {
33 let bn = new BN.BigNumber(123)
34 let bn1 = new BN.BigNumber(bn)
35 bn1._hex.should.equal('0x7b');
36 });
37
38 it('invalid BigNumber value', function() {
39 (function() {
40 new BN.BigNumber([123,456])
41 }.should.throw('invalid BigNumber value'))
42 });
43 });
44
45 describe('calculate big number', function() {
46 it('from twos', function() {
47 let bn = new BN.BigNumber(11)
48 bn.fromTwos(2)._hex.should.equal('-0x01');
49 });
50
51 it('add', function() {
52 let bn1 = new BN.BigNumber(11)
53 let bn2 = new BN.BigNumber(12)
54 bn1.add(bn2)._hex.should.equal('0x17');
55 });
56
57 it('sub', function() {
58 let bn1 = new BN.BigNumber(11)
59 let bn2 = new BN.BigNumber(12)
60 bn2.sub(bn1)._hex.should.equal('0x01');
61 });
62
63 it('div', function() {
64 let bn1 = new BN.BigNumber(12)
65 let bn2 = new BN.BigNumber(4)
66 bn1.div(bn2)._hex.should.equal('0x03');
67 });
68
69 it('mul', function() {
70 let bn1 = new BN.BigNumber(3)
71 let bn2 = new BN.BigNumber(4)
72 bn1.mul(bn2)._hex.should.equal('0x0c');
73 });
74
75 it('mod', function() {
76 let bn1 = new BN.BigNumber(9)
77 let bn2 = new BN.BigNumber(4)
78 bn1.mod(bn2)._hex.should.equal('0x01');
79 });
80
81 it('pow', function() {
82 let bn1 = new BN.BigNumber(2)
83 let bn2 = new BN.BigNumber(3)
84 bn1.pow(bn2)._hex.should.equal('0x08');
85 });
86
87 it('eq', function() {
88 let bn1 = new BN.BigNumber(3)
89 let bn2 = new BN.BigNumber(3)
90 bn1.eq(bn2).should.equal(true);
91 });
92
93 it('lte', function() {
94 let bn1 = new BN.BigNumber(3)
95 let bn2 = new BN.BigNumber(4)
96 bn1.lte(bn2).should.equal(true);
97 });
98
99 it('gte', function() {
100 let bn1 = new BN.BigNumber(3)
101 let bn2 = new BN.BigNumber(4)
102 bn1.gte(bn2).should.equal(false);
103 });
104
105 it('isZero', function() {
106 let bn1 = new BN.BigNumber(3)
107 bn1.isZero().should.equal(false);
108 });
109
110 it('toString', function() {
111 let bn1 = new BN.BigNumber(3)
112 bn1.toString().should.equal('3');
113 });
114
115 });
116});