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