|
|
@ -37,8 +37,7 @@ const T AdditionTestValues<T, std::enable_if_t<!std::is_signed_v<T>>>::summand[]
|
|
|
|
0, 1, 2, static_cast<T>(std::numeric_limits<T>::max() - 1), std::numeric_limits<T>::max()};
|
|
|
|
0, 1, 2, static_cast<T>(std::numeric_limits<T>::max() - 1), std::numeric_limits<T>::max()};
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
template <typename T>
|
|
|
|
const bool AdditionTestValues<
|
|
|
|
const bool AdditionTestValues<T, std::enable_if_t<!std::is_signed_v<T>>>::overflow[case_count][case_count] = {
|
|
|
|
T, std::enable_if_t<!std::is_signed_v<T>>>::overflow[case_count][case_count] = {
|
|
|
|
|
|
|
|
// 0
|
|
|
|
// 0
|
|
|
|
{false, false, false, false, false},
|
|
|
|
{false, false, false, false, false},
|
|
|
|
// 1
|
|
|
|
// 1
|
|
|
@ -72,24 +71,23 @@ const T AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>>::summand[]
|
|
|
|
std::numeric_limits<T>::max()};
|
|
|
|
std::numeric_limits<T>::max()};
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
template <typename T>
|
|
|
|
const bool
|
|
|
|
const bool AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>>::overflow[case_count][case_count] = {
|
|
|
|
AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>>::overflow[case_count][case_count] = {
|
|
|
|
// min
|
|
|
|
// min
|
|
|
|
{true, true, true, false, false, false, false, false},
|
|
|
|
{true, true, true, false, false, false, false, false},
|
|
|
|
// min + 1
|
|
|
|
// min + 1
|
|
|
|
{true, true, false, false, false, false, false, false},
|
|
|
|
{true, true, false, false, false, false, false, false},
|
|
|
|
// -1
|
|
|
|
// -1
|
|
|
|
{true, false, false, false, false, false, false, false},
|
|
|
|
{true, false, false, false, false, false, false, false},
|
|
|
|
// 0
|
|
|
|
// 0
|
|
|
|
{false, false, false, false, false, false, false, false},
|
|
|
|
{false, false, false, false, false, false, false, false},
|
|
|
|
// 1
|
|
|
|
// 1
|
|
|
|
{false, false, false, false, false, false, false, true},
|
|
|
|
{false, false, false, false, false, false, false, true},
|
|
|
|
// 2
|
|
|
|
// 2
|
|
|
|
{false, false, false, false, false, false, true, true},
|
|
|
|
{false, false, false, false, false, false, true, true},
|
|
|
|
// max - 1
|
|
|
|
// max - 1
|
|
|
|
{false, false, false, false, false, true, true, true},
|
|
|
|
{false, false, false, false, false, true, true, true},
|
|
|
|
// max
|
|
|
|
// max
|
|
|
|
{false, false, false, false, true, true, true, true}};
|
|
|
|
{false, false, false, false, true, true, true, true}};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
/*!
|
|
|
|
* Test the addition of all combinations of AdditionTestValues<T>::summand[i],
|
|
|
|
* Test the addition of all combinations of AdditionTestValues<T>::summand[i],
|
|
|
|