Skip to content

Instantly share code, notes, and snippets.

@motonacciu
Last active December 17, 2015 09:48
Show Gist options
  • Select an option

  • Save motonacciu/5589667 to your computer and use it in GitHub Desktop.

Select an option

Save motonacciu/5589667 to your computer and use it in GitHub Desktop.
#include <gtest/gtest.h>
#include "utils/serialize.h"
TEST(get_size, Ints) {
uint16_t v1 = 2u;
EXPECT_EQ(sizeof(decltype(v1)), get_size(v1));
EXPECT_EQ(2u, get_size(v1));
uint32_t v2 = 10u;
EXPECT_EQ(sizeof(decltype(v2)), get_size(v2));
EXPECT_EQ(4u, get_size(v2));
}
TEST(get_size, Vector) {
std::vector<uint8_t> v1{ 0u, 1u, 2u };
EXPECT_EQ(sizeof(size_t)+v1.size(), get_size(v1));
std::vector<uint64_t> v2{ 0u, 8u };
EXPECT_EQ(sizeof(size_t)+v2.size()*sizeof(uint64_t), get_size(v2));
}
TEST(get_size, String) {
std::string s1 = "hello";
EXPECT_EQ(sizeof(size_t)+s1.length(), get_size(s1));
std::string s2;
EXPECT_EQ(sizeof(size_t), get_size(s2));
}
TEST(get_size, Tuple) {
auto t1 = std::make_tuple(0ul, std::string("hi"));
EXPECT_EQ(sizeof(unsigned long)+sizeof(size_t)+2u, get_size(t1));
auto t2 = std::make_tuple(std::vector<uint16_t>{'a','b','c'}, 10, 20);
EXPECT_EQ(sizeof(size_t)+3*2+sizeof(int)*2, get_size(s2));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment