     Test<CUB, unsigned long long, unsigned long long, false> (num_items, RANDOM, entropy_reduction, 0, bits, CUB_TYPE_STRING(unsigned long long));
     Test<THRUST, unsigned long long, unsigned long long, false> (num_items, RANDOM, entropy_reduction, 0, bits, CUB_TYPE_STRING(unsigned long long));
 
+
 #else
 
     // Compile/run thorough tests

    if (Traits<Key>::CATEGORY == UNSIGNED_INTEGER)
    {
        // Don't test partial-word sorting for fp or signed types (the bit-flipping techniques get in the way)
        printf("Testing key bits [%d,%d)\n", 3, 4); fflush(stdout);
        TestDirection(h_keys, num_items, 3, 4);
    }

    printf("Testing key bits [%d,%d)\n", 0, sizeof(Key) * 8); fflush(stdout);
    TestDirection(h_keys, num_items, 0, sizeof(Key) * 8);
}


    int num_bits = end_bit - begin_bit;
    for (int i = 0; i < num_items; ++i)
    {

        // Mask off unwanted portions
        if (num_bits < sizeof(Key) * 8)
        {
            unsigned long long base = 0;
            memcpy(&base, &h_keys[i], sizeof(Key));
            base &= ((1ull << num_bits) - 1) << begin_bit;
            memcpy(&h_pairs[i].key, &base, sizeof(Key));
        }
        else
        {
            h_pairs[i].key = h_keys[i];
        }

        h_pairs[i].value = i;
    }
