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

Function TestAddMatrixOverflow

src/test/util_tests.cpp:1473–1489  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1471/* Check for overflow */
1472template <typename T>
1473static void TestAddMatrixOverflow()
1474{
1475 constexpr T MAXI{std::numeric_limits<T>::max()};
1476 BOOST_CHECK(!CheckedAdd(T{1}, MAXI));
1477 BOOST_CHECK(!CheckedAdd(MAXI, MAXI));
1478 BOOST_CHECK_EQUAL(MAXI, SaturatingAdd(T{1}, MAXI));
1479 BOOST_CHECK_EQUAL(MAXI, SaturatingAdd(MAXI, MAXI));
1480
1481 BOOST_CHECK_EQUAL(0, CheckedAdd(T{0}, T{0}).value());
1482 BOOST_CHECK_EQUAL(MAXI, CheckedAdd(T{0}, MAXI).value());
1483 BOOST_CHECK_EQUAL(MAXI, CheckedAdd(T{1}, MAXI - 1).value());
1484 BOOST_CHECK_EQUAL(MAXI - 1, CheckedAdd(T{1}, MAXI - 2).value());
1485 BOOST_CHECK_EQUAL(0, SaturatingAdd(T{0}, T{0}));
1486 BOOST_CHECK_EQUAL(MAXI, SaturatingAdd(T{0}, MAXI));
1487 BOOST_CHECK_EQUAL(MAXI, SaturatingAdd(T{1}, MAXI - 1));
1488 BOOST_CHECK_EQUAL(MAXI - 1, SaturatingAdd(T{1}, MAXI - 2));
1489}
1490
1491/* Check for overflow or underflow */
1492template <typename T>

Callers

nothing calls this directly

Calls 3

CheckedAddFunction · 0.85
SaturatingAddFunction · 0.85
valueMethod · 0.45

Tested by

no test coverage detected