| 488 | |
| 489 | template<typename Tk, typename Tv, typename To> |
| 490 | reduce_by_key_params *rbk_single_data(const string testname, const int testSz, |
| 491 | std::function<Tk()> k_gen, |
| 492 | std::function<Tv()> v_gen) { |
| 493 | vector<Tk> keys(testSz); |
| 494 | vector<Tv> vals(testSz); |
| 495 | |
| 496 | generate(begin(keys), end(keys), k_gen); |
| 497 | generate(begin(vals), end(vals), v_gen); |
| 498 | |
| 499 | vector<Tk> okeys(begin(keys), end(keys)); |
| 500 | auto last = unique(begin(okeys), end(okeys)); |
| 501 | okeys.resize(distance(begin(okeys), last)); |
| 502 | vector<To> ovals(okeys.size(), To(keys.size())); |
| 503 | return new reduce_by_key_params_t<Tk, Tv, To>(keys, vals, okeys, ovals, |
| 504 | testname); |
| 505 | } |
| 506 | |
| 507 | // clang-format off |
| 508 | template<typename Tk, typename Tv, typename To> |