24 const size_t num_addresses,
25 const size_t value_size,
26 const size_t block1_size,
27 const size_t block2_size)
29 const size_t max_unit = 1ul << value_size;
32 for (
size_t i = 0; i < block1_size; ++i) {
33 result[i] = std::rand() % max_unit;
36 for (
size_t i = 0; i < block2_size; ++i) {
37 result[num_addresses / 2 + i] = std::rand() % max_unit;
44 const size_t num_addresses,
45 const size_t value_size,
46 const size_t num_filled)
48 const size_t max_unit = 1ul << value_size;
50 std::set<size_t> unfilled;
51 for (
size_t i = 0; i < num_addresses; ++i) {
56 for (
size_t i = 0; i < num_filled; ++i) {
57 auto it = unfilled.begin();
58 std::advance(it, std::rand() % unfilled.size());
59 result[*it] = std::rand() % max_unit;