diff options
Diffstat (limited to 'libk/test/types.cc')
-rw-r--r-- | libk/test/types.cc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/libk/test/types.cc b/libk/test/types.cc new file mode 100644 index 0000000..3686a78 --- /dev/null +++ b/libk/test/types.cc @@ -0,0 +1,58 @@ +#include <stdint.h> + +namespace libk { +#include "types.h" +} + +// types +static_assert(sizeof(libk::size_t) >= 2); + +static_assert(sizeof(libk::uint8_t) == 1); +static_assert(libk::uint8_t_max == UINT8_MAX); + +static_assert(sizeof(libk::uint16_t) == 2); +static_assert(libk::uint16_t_max == UINT16_MAX); + +static_assert(sizeof(libk::uint32_t) == 4); +static_assert(libk::uint32_t_max == UINT32_MAX); + +static_assert(sizeof(libk::uint64_t) == 8); +static_assert(libk::uint64_t_max == UINT64_MAX); + +static_assert(sizeof(libk::int8_t) == 1); +static_assert(libk::int8_t_min == INT8_MIN); +static_assert(libk::int8_t_max == INT8_MAX); + +static_assert(sizeof(libk::int16_t) == 2); +static_assert(libk::int16_t_min == INT16_MIN); +static_assert(libk::int16_t_max == INT16_MAX); + +static_assert(sizeof(libk::int32_t) == 4); +static_assert(libk::int32_t_min == INT32_MIN); +static_assert(libk::int32_t_max == INT32_MAX); + +static_assert(sizeof(libk::int64_t) == 8); +static_assert(libk::int64_t_min == INT64_MIN); +static_assert(libk::int64_t_max == INT64_MAX); + +// is_same +static_assert(libk::is_same<int, int>() == true); +static_assert(libk::is_same<int, unsigned int>() == false); + +// is_unsigned +static_assert(libk::is_unsigned<uint8_t>() == true); +static_assert(libk::is_unsigned<uint16_t>() == true); +static_assert(libk::is_unsigned<uint32_t>() == true); +static_assert(libk::is_unsigned<uint64_t>() == true); + +static_assert(libk::is_unsigned<int8_t>() == false); +static_assert(libk::is_unsigned<int16_t>() == false); +static_assert(libk::is_unsigned<int32_t>() == false); +static_assert(libk::is_unsigned<int64_t>() == false); + +// error_enum_t +enum EnumX { x, y, z }; +enum ErrorX { one, two, three, NoError }; + +static_assert(!libk::error_enum_t<EnumX>); +static_assert(libk::error_enum_t<ErrorX>); |