| 50 | |
| 51 | |
| 52 | static void CheckAdd(const int64_t& num1, const int64_t& num2) |
| 53 | { |
| 54 | const CScriptNum10 bignum1(num1); |
| 55 | const CScriptNum10 bignum2(num2); |
| 56 | const CScriptNum scriptnum1(num1); |
| 57 | const CScriptNum scriptnum2(num2); |
| 58 | CScriptNum10 bignum3(num1); |
| 59 | CScriptNum10 bignum4(num1); |
| 60 | CScriptNum scriptnum3(num1); |
| 61 | CScriptNum scriptnum4(num1); |
| 62 | |
| 63 | // int64_t overflow is undefined. |
| 64 | bool invalid = (((num2 > 0) && (num1 > (std::numeric_limits<int64_t>::max() - num2))) || |
| 65 | ((num2 < 0) && (num1 < (std::numeric_limits<int64_t>::min() - num2)))); |
| 66 | if (!invalid) |
| 67 | { |
| 68 | BOOST_CHECK(verify(bignum1 + bignum2, scriptnum1 + scriptnum2)); |
| 69 | BOOST_CHECK(verify(bignum1 + bignum2, scriptnum1 + num2)); |
| 70 | BOOST_CHECK(verify(bignum1 + bignum2, scriptnum2 + num1)); |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | static void CheckNegate(const int64_t& num) |
| 75 | { |
no test coverage detected