#include #include #include "rangechecked_cast.h" #include "PrintTo_Qt.h" using namespace testing; TEST(rangechecked_cast, in_range) { ASSERT_NO_THROW({ int8_t in = 42; int expected = 42; auto output = rangechecked_cast(in); ASSERT_EQ(output, expected); }); } TEST(rangechecked_cast, above_max) { int64_t in = std::numeric_limits::max() + static_cast(1); ASSERT_THROW({ rangechecked_cast(in); }, std::runtime_error); } TEST(rangechecked_cast, below_lowest) { int64_t in = std::numeric_limits::lowest() - static_cast(1); ASSERT_THROW({ rangechecked_cast(in); }, std::runtime_error); }