Files
comaps/base/base_tests/checked_cast_tests.cpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

75 lines
2.4 KiB
C++

#include "testing/testing.hpp"
#include "base/checked_cast.hpp"
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wimplicitly-unsigned-literal"
#endif // #ifdef __clang__
UNIT_TEST(IsCastValid)
{
{
int8_t value = -1;
TEST(base::IsCastValid<int8_t>(value), ());
TEST(base::IsCastValid<int16_t>(value), ());
TEST(base::IsCastValid<int32_t>(value), ());
TEST(base::IsCastValid<int64_t>(value), ());
TEST(!base::IsCastValid<uint8_t>(value), ());
TEST(!base::IsCastValid<uint16_t>(value), ());
TEST(!base::IsCastValid<uint32_t>(value), ());
TEST(!base::IsCastValid<uint64_t>(value), ());
}
{
int64_t value = -1;
TEST(base::IsCastValid<int8_t>(value), ());
TEST(base::IsCastValid<int16_t>(value), ());
TEST(base::IsCastValid<int32_t>(value), ());
TEST(base::IsCastValid<int64_t>(value), ());
TEST(!base::IsCastValid<uint8_t>(value), ());
TEST(!base::IsCastValid<uint16_t>(value), ());
TEST(!base::IsCastValid<uint32_t>(value), ());
TEST(!base::IsCastValid<uint64_t>(value), ());
}
{
uint8_t value = 128;
TEST(!base::IsCastValid<int8_t>(value), ());
TEST(base::IsCastValid<int16_t>(value), ());
TEST(base::IsCastValid<int32_t>(value), ());
TEST(base::IsCastValid<int64_t>(value), ());
TEST(base::IsCastValid<uint8_t>(value), ());
TEST(base::IsCastValid<uint16_t>(value), ());
TEST(base::IsCastValid<uint32_t>(value), ());
TEST(base::IsCastValid<uint64_t>(value), ());
}
{
uint64_t value = 9223372036854775808ULL;
TEST(!base::IsCastValid<int8_t>(value), ());
TEST(!base::IsCastValid<int16_t>(value), ());
TEST(!base::IsCastValid<int32_t>(value), ());
TEST(!base::IsCastValid<int64_t>(value), ());
TEST(!base::IsCastValid<uint8_t>(value), ());
TEST(!base::IsCastValid<uint16_t>(value), ());
TEST(!base::IsCastValid<uint32_t>(value), ());
TEST(base::IsCastValid<uint64_t>(value), ());
}
{
int64_t value = -9223372036854775807LL;
TEST(!base::IsCastValid<int8_t>(value), ());
TEST(!base::IsCastValid<int16_t>(value), ());
TEST(!base::IsCastValid<int32_t>(value), ());
TEST(base::IsCastValid<int64_t>(value), ());
TEST(!base::IsCastValid<uint8_t>(value), ());
TEST(!base::IsCastValid<uint16_t>(value), ());
TEST(!base::IsCastValid<uint32_t>(value), ());
TEST(!base::IsCastValid<uint64_t>(value), ());
}
}
#ifdef __clang__
#pragma clang diagnostic pop
#endif // #ifdef __clang__