basedOpinionated utility library |
git clone git://git.dimitrijedobrota.com/based.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
literals.cpp (1677B)
0 #define CATCH_CONFIG_RUNTIME_STATIC_REQUIRE
2 #include "based/types/literals.hpp"
4 #include <catch2/catch_test_macros.hpp>
6 #include "based/concepts/is/castable.hpp"
8 using namespace based::literals; // NOLINT(*namespace*)
10 using based::CastableTo;
12 TEST_CASE("unsigned", "[types/literals]")
13 {
14 STATIC_REQUIRE(CastableTo<decltype(0_u), based::u8>);
15 STATIC_REQUIRE(CastableTo<decltype(255_u), based::u8>);
16 STATIC_REQUIRE(CastableTo<decltype(256_u), based::u16>);
17 STATIC_REQUIRE(CastableTo<decltype(65535_u), based::u16>);
18 STATIC_REQUIRE(CastableTo<decltype(65536_u), based::u32>);
19 STATIC_REQUIRE(CastableTo<decltype(4294967295_u), based::u32>);
20 STATIC_REQUIRE(CastableTo<decltype(4294967296_u), based::u64>);
21 STATIC_REQUIRE(CastableTo<decltype(18446744073709551615_u), based::u64>);
22 }
24 TEST_CASE("signed", "[types/literals]")
25 {
26 STATIC_REQUIRE(CastableTo<decltype(0_i), based::i8>);
27 STATIC_REQUIRE(CastableTo<decltype(127_i), based::i8>);
28 STATIC_REQUIRE(CastableTo<decltype(128_i), based::i16>);
29 STATIC_REQUIRE(CastableTo<decltype(32767_i), based::i16>);
30 STATIC_REQUIRE(CastableTo<decltype(2147483647_i), based::i32>);
31 STATIC_REQUIRE(CastableTo<decltype(2147483648_i), based::i64>);
32 STATIC_REQUIRE(CastableTo<decltype(9223372036854775807_i), based::i64>);
34 STATIC_REQUIRE(CastableTo<decltype(-127_i), based::i8>);
35 STATIC_REQUIRE(CastableTo<decltype(-128_i), based::i16>);
36 STATIC_REQUIRE(CastableTo<decltype(-32767_i), based::i16>);
37 STATIC_REQUIRE(CastableTo<decltype(-2147483647_i), based::i32>);
38 STATIC_REQUIRE(CastableTo<decltype(-2147483648_i), based::i64>);
39 STATIC_REQUIRE(CastableTo<decltype(-9223372036854775807_i), based::i64>);
40 }