MCPcopy Create free account
hub / github.com/ElementsProject/elements / TestAddMatrix

Function TestAddMatrix

src/test/util_tests.cpp:1493–1511  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1491/* Check for overflow or underflow */
1492template <typename T>
1493static void TestAddMatrix()
1494{
1495 TestAddMatrixOverflow<T>();
1496 constexpr T MINI{std::numeric_limits<T>::min()};
1497 constexpr T MAXI{std::numeric_limits<T>::max()};
1498 BOOST_CHECK(!CheckedAdd(T{-1}, MINI));
1499 BOOST_CHECK(!CheckedAdd(MINI, MINI));
1500 BOOST_CHECK_EQUAL(MINI, SaturatingAdd(T{-1}, MINI));
1501 BOOST_CHECK_EQUAL(MINI, SaturatingAdd(MINI, MINI));
1502
1503 BOOST_CHECK_EQUAL(MINI, CheckedAdd(T{0}, MINI).value());
1504 BOOST_CHECK_EQUAL(MINI, CheckedAdd(T{-1}, MINI + 1).value());
1505 BOOST_CHECK_EQUAL(-1, CheckedAdd(MINI, MAXI).value());
1506 BOOST_CHECK_EQUAL(MINI + 1, CheckedAdd(T{-1}, MINI + 2).value());
1507 BOOST_CHECK_EQUAL(MINI, SaturatingAdd(T{0}, MINI));
1508 BOOST_CHECK_EQUAL(MINI, SaturatingAdd(T{-1}, MINI + 1));
1509 BOOST_CHECK_EQUAL(MINI + 1, SaturatingAdd(T{-1}, MINI + 2));
1510 BOOST_CHECK_EQUAL(-1, SaturatingAdd(MINI, MAXI));
1511}
1512
1513BOOST_AUTO_TEST_CASE(util_overflow)
1514{

Callers

nothing calls this directly

Calls 3

CheckedAddFunction · 0.85
SaturatingAddFunction · 0.85
valueMethod · 0.45

Tested by

no test coverage detected