You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
const assertJump = require('./helpers/assertJump');
|
|
|
|
contract('SafeMath', function(accounts) {
|
|
|
|
let safeMath;
|
|
|
|
before(async function() {
|
|
safeMath = await SafeMathMock.new();
|
|
});
|
|
|
|
it("multiplies correctly", async function() {
|
|
let a = 5678;
|
|
let b = 1234;
|
|
let mult = await safeMath.multiply(a, b);
|
|
let result = await safeMath.result();
|
|
assert.equal(result, a*b);
|
|
});
|
|
|
|
it("adds correctly", async function() {
|
|
let a = 5678;
|
|
let b = 1234;
|
|
let add = await safeMath.add(a, b);
|
|
let result = await safeMath.result();
|
|
|
|
assert.equal(result, a+b);
|
|
});
|
|
|
|
it("subtracts correctly", async function() {
|
|
let a = 5678;
|
|
let b = 1234;
|
|
let subtract = await safeMath.subtract(a, b);
|
|
let result = await safeMath.result();
|
|
|
|
assert.equal(result, a-b);
|
|
});
|
|
|
|
it("should throw an error if subtraction result would be negative", async function () {
|
|
let a = 1234;
|
|
let b = 5678;
|
|
try {
|
|
let subtract = await safeMath.subtract(a, b);
|
|
} catch(error) {
|
|
assertJump(error);
|
|
}
|
|
});
|
|
|
|
it("should throw an error on addition overflow", async function() {
|
|
let a = 115792089237316195423570985008687907853269984665640564039457584007913129639935;
|
|
let b = 1;
|
|
try {
|
|
let add = await safeMath.add(a, b);
|
|
} catch(error) {
|
|
assertJump(error);
|
|
}
|
|
});
|
|
|
|
it("should throw an error on multiplication overflow", async function() {
|
|
let a = 115792089237316195423570985008687907853269984665640564039457584007913129639933;
|
|
let b = 2;
|
|
try {
|
|
let multiply = await safeMath.multiply(a, b);
|
|
} catch(error) {
|
|
assertJump(error);
|
|
}
|
|
});
|
|
|
|
});
|
|
|