SafeMath.js 2.0 KB

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