39 std::vector<char> chars(
access.count);
40 std::generate(chars.begin(), chars.end(), []() { return rand() % 256; });
41 std::vector<int> ints(
access.count);
42 std::generate(ints.begin(), ints.end(), []() { return rand() % 256; });
43 std::vector<float> floats(
access.count);
44 std::generate(floats.begin(), floats.end(), []() { return rand() % 256; });
45 access.chars = chars.data();
47 access.floats = floats.data();
50 char* wrtptr = raw.data();
53 char* checkptr = raw.data();
54 BOOST_CHECK(memcmp(checkptr, chars.data(), chars.size() *
sizeof(
decltype(chars)::value_type)) == 0);
55 checkptr += flatten::calc_size(
nullptr, chars.size(), chars.data());
56 BOOST_CHECK(memcmp(checkptr, ints.data(), ints.size() *
sizeof(
decltype(ints)::value_type)) == 0);
57 checkptr += flatten::calc_size(
nullptr, ints.size(), ints.data());
58 BOOST_CHECK(memcmp(checkptr, floats.data(), floats.size() *
sizeof(
decltype(floats)::value_type)) == 0);
59 checkptr += flatten::calc_size(
nullptr, floats.size(), floats.data());
62 char* readptr = raw.data();
65 checkptr = raw.data();
67 checkptr += flatten::calc_size(
nullptr, chars.size(), chars.data());
69 checkptr += flatten::calc_size(
nullptr, ints.size(), ints.data());
71 checkptr += flatten::calc_size(
nullptr, floats.size(), floats.data());