Changeset View
Changeset View
Standalone View
Standalone View
src/test/scriptnum_tests.cpp
Show All 37 Lines | return bignum.getvch() == scriptnum.getvch() && | ||||
bignum.getint() == scriptnum.getint(); | bignum.getint() == scriptnum.getint(); | ||||
} | } | ||||
static void CheckCreateVch(const int64_t &num) { | static void CheckCreateVch(const int64_t &num) { | ||||
CScriptNum10 bignum(num); | CScriptNum10 bignum(num); | ||||
CScriptNum scriptnum(num); | CScriptNum scriptnum(num); | ||||
BOOST_CHECK(verify(bignum, scriptnum)); | BOOST_CHECK(verify(bignum, scriptnum)); | ||||
std::vector<uint8_t> vch = bignum.getvch(); | |||||
CScriptNum10 bignum2(bignum.getvch(), false); | CScriptNum10 bignum2(bignum.getvch(), false); | ||||
vch = scriptnum.getvch(); | |||||
CScriptNum scriptnum2(scriptnum.getvch(), false); | CScriptNum scriptnum2(scriptnum.getvch(), false); | ||||
BOOST_CHECK(verify(bignum2, scriptnum2)); | BOOST_CHECK(verify(bignum2, scriptnum2)); | ||||
CScriptNum10 bignum3(scriptnum2.getvch(), false); | CScriptNum10 bignum3(scriptnum2.getvch(), false); | ||||
CScriptNum scriptnum3(bignum2.getvch(), false); | CScriptNum scriptnum3(bignum2.getvch(), false); | ||||
BOOST_CHECK(verify(bignum3, scriptnum3)); | BOOST_CHECK(verify(bignum3, scriptnum3)); | ||||
} | } | ||||
Show All 40 Lines | if (num != std::numeric_limits<int64_t>::min()) | ||||
BOOST_CHECK(verify(-bignum, -scriptnum)); | BOOST_CHECK(verify(-bignum, -scriptnum)); | ||||
} | } | ||||
static void CheckSubtract(const int64_t &num1, const int64_t &num2) { | static void CheckSubtract(const int64_t &num1, const int64_t &num2) { | ||||
const CScriptNum10 bignum1(num1); | const CScriptNum10 bignum1(num1); | ||||
const CScriptNum10 bignum2(num2); | const CScriptNum10 bignum2(num2); | ||||
const CScriptNum scriptnum1(num1); | const CScriptNum scriptnum1(num1); | ||||
const CScriptNum scriptnum2(num2); | const CScriptNum scriptnum2(num2); | ||||
bool invalid = false; | |||||
// int64_t overflow is undefined. | // int64_t overflow is undefined. | ||||
invalid = | bool invalid = | ||||
((num2 > 0 && num1 < std::numeric_limits<int64_t>::min() + num2) || | ((num2 > 0 && num1 < std::numeric_limits<int64_t>::min() + num2) || | ||||
(num2 < 0 && num1 > std::numeric_limits<int64_t>::max() + num2)); | (num2 < 0 && num1 > std::numeric_limits<int64_t>::max() + num2)); | ||||
if (!invalid) { | if (!invalid) { | ||||
BOOST_CHECK(verify(bignum1 - bignum2, scriptnum1 - scriptnum2)); | BOOST_CHECK(verify(bignum1 - bignum2, scriptnum1 - scriptnum2)); | ||||
BOOST_CHECK(verify(bignum1 - bignum2, scriptnum1 - num2)); | BOOST_CHECK(verify(bignum1 - bignum2, scriptnum1 - num2)); | ||||
} | } | ||||
invalid = | invalid = | ||||
▲ Show 20 Lines • Show All 139 Lines • Show Last 20 Lines |