 /**
  * Test key sampling distributions
  */
-template <typename KeyT>
+template <typename KeyT, bool WITH_PRE_SORTED>
 void TestGen(
     std::size_t     max_items,
     int             max_segments)

    InitializeKeyBits(INTEGER_SEED, h_keys.get(), max_items, 0);
    TestSizes(h_keys.get(), max_items, max_segments, false);

    if (!std::is_same<KeyT, bool>::value)
    {
        // Presorting is only used for testing large input arrays.
        // Increase above 2^32 once 64-bit indexing is enabled.


#elif TEST_KEY_BYTES == 4

    TestGen<int, true>                (num_items, num_segments);

#ifdef TEST_EXTENDED_KEY_TYPES
    TestGen<float, false>             (num_items, num_segments);
    TestGen<unsigned int, false>      (num_items, num_segments);
#endif // TEST_EXTENDED_KEY_TYPES

#elif TEST_KEY_BYTES == 8

    TestGen<double, true>             (num_items, num_segments);

#ifdef TEST_EXTENDED_KEY_TYPES
    TestGen<long long, false>         (num_items, num_segments);
    TestGen<unsigned long long, false>(num_items, num_segments);
#endif // TEST_EXTENDED_KEY_TYPES

#endif // TEST_KEY_BYTES switch
