ASSERT_THROW_EQUALS_2(::strToInt<int>(""), std::runtime_error, "converting '' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<std::size_t>(""), std::runtime_error, "converting '' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<int>(""), std::runtime_error, "converting ' ' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<std::size_t>(""), std::runtime_error, "converting ' ' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<unsignedint>("-1"), std::runtime_error, "converting '-1' to integer failed - needs to be positive");
ASSERT_THROW_EQUALS_2(::strToInt<int>("1ms"), std::runtime_error, "converting '1ms' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<int>("1.0"), std::runtime_error, "converting '1.0' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<int>("one"), std::runtime_error, "converting 'one' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<unsignedint>("1ms"), std::runtime_error, "converting '1ms' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<unsignedint>("1.0"), std::runtime_error, "converting '1.0' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<unsignedint>("one"), std::runtime_error, "converting 'one' to integer failed - not an integer");
ASSERT_THROW_EQUALS_2(::strToInt<int>(std::to_string(static_cast<int64_t>(std::numeric_limits<int>::max()) + 1)), std::runtime_error, "converting '2147483648' to integer failed - out of range (limits)");
ASSERT_THROW_EQUALS_2(::strToInt<int>(std::to_string(static_cast<int64_t>(std::numeric_limits<int>::min()) - 1)), std::runtime_error, "converting '-2147483649' to integer failed - out of range (limits)");
ASSERT_THROW_EQUALS_2(::strToInt<int8_t>(std::to_string(static_cast<int64_t>(std::numeric_limits<int8_t>::max()) + 1)), std::runtime_error, "converting '128' to integer failed - out of range (limits)");
ASSERT_THROW_EQUALS_2(::strToInt<int8_t>(std::to_string(static_cast<int64_t>(std::numeric_limits<int8_t>::min()) - 1)), std::runtime_error, "converting '-129' to integer failed - out of range (limits)");
ASSERT_THROW_EQUALS_2(::strToInt<unsignedint>(std::to_string(static_cast<uint64_t>(std::numeric_limits<unsignedint>::max()) + 1)), std::runtime_error, "converting '4294967296' to integer failed - out of range (limits)");
ASSERT_THROW_EQUALS_2(::strToInt<int>("9223372036854775808"), std::runtime_error, "converting '9223372036854775808' to integer failed - out of range (stoll)"); // LLONG_MAX + 1
ASSERT_THROW_EQUALS_2(::strToInt<std::size_t>("18446744073709551616"), std::runtime_error, "converting '18446744073709551616' to integer failed - out of range (stoull)"); // ULLONG_MAX + 1