SafeMath.js 2.0 KB

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