SafeMath.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. contract('SafeMath', function(accounts) {
  2. let safeMath;
  3. before(async function(done) {
  4. safeMath = await SafeMathMock.new();
  5. done();
  6. });
  7. it("multiplies correctly", async function(done) {
  8. let a = 5678;
  9. let b = 1234;
  10. let mult = await safeMath.multiply(a, b);
  11. let result = await safeMath.result();
  12. assert.equal(result, a*b);
  13. done();
  14. });
  15. it("adds correctly", async function(done) {
  16. let a = 5678;
  17. let b = 1234;
  18. let add = await safeMath.add(a, b);
  19. let result = await safeMath.result();
  20. assert.equal(result, a+b);
  21. done();
  22. });
  23. it("subtracts correctly", async function(done) {
  24. let a = 5678;
  25. let b = 1234;
  26. let subtract = await safeMath.subtract(a, b);
  27. let result = await safeMath.result();
  28. assert.equal(result, a-b);
  29. done();
  30. });
  31. it("should throw an error if subtraction result would be negative", async function (done) {
  32. let a = 1234;
  33. let b = 5678;
  34. try {
  35. let subtract = await safeMath.subtract(a, b);
  36. } catch(error) {
  37. if (error.message.search('invalid JUMP') == -1) throw error
  38. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  39. done();
  40. }
  41. });
  42. it("should throw an error on addition overflow", async function(done) {
  43. let a = 115792089237316195423570985008687907853269984665640564039457584007913129639935;
  44. let b = 1;
  45. try {
  46. let add = await safeMath.add(a, b);
  47. } catch(error) {
  48. if (error.message.search('invalid JUMP') == -1) throw error
  49. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  50. done();
  51. }
  52. });
  53. it("should throw an error on multiplication overflow", async function(done) {
  54. let a = 115792089237316195423570985008687907853269984665640564039457584007913129639933;
  55. let b = 2;
  56. try {
  57. let multiply = await safeMath.multiply(a, b);
  58. } catch(error) {
  59. if (error.message.search('invalid JUMP') == -1) throw error
  60. assert.isAbove(error.message.search('invalid JUMP'), -1, 'Invalid JUMP error must be returned');
  61. done();
  62. }
  63. });
  64. });