fixint.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <msgpack.hpp>
  2. #include <gtest/gtest.h>
  3. template <typename T>
  4. void check_size(size_t size) {
  5. T v(0);
  6. msgpack::sbuffer sbuf;
  7. msgpack::pack(sbuf, v);
  8. EXPECT_EQ(size, sbuf.size());
  9. }
  10. TEST(fixint, size)
  11. {
  12. check_size<msgpack::type::fix_int8>(2);
  13. check_size<msgpack::type::fix_int16>(3);
  14. check_size<msgpack::type::fix_int32>(5);
  15. check_size<msgpack::type::fix_int64>(9);
  16. check_size<msgpack::type::fix_uint8>(2);
  17. check_size<msgpack::type::fix_uint16>(3);
  18. check_size<msgpack::type::fix_uint32>(5);
  19. check_size<msgpack::type::fix_uint64>(9);
  20. }
  21. template <typename T>
  22. void check_convert() {
  23. T v1(-11);
  24. msgpack::sbuffer sbuf;
  25. msgpack::pack(sbuf, v1);
  26. msgpack::object_handle oh =
  27. msgpack::unpack(sbuf.data(), sbuf.size());
  28. T v2;
  29. oh.get().convert(v2);
  30. EXPECT_EQ(v1.get(), v2.get());
  31. EXPECT_EQ(oh.get(), msgpack::object(T(v1.get())));
  32. }
  33. TEST(fixint, convert)
  34. {
  35. check_convert<msgpack::type::fix_int8>();
  36. check_convert<msgpack::type::fix_int16>();
  37. check_convert<msgpack::type::fix_int32>();
  38. check_convert<msgpack::type::fix_int64>();
  39. check_convert<msgpack::type::fix_uint8>();
  40. check_convert<msgpack::type::fix_uint16>();
  41. check_convert<msgpack::type::fix_uint32>();
  42. check_convert<msgpack::type::fix_uint64>();
  43. }