           int... cols>
 struct TestParameters
 {
-
   static_assert((std::tuple_size<tuple_of_vectors>::value >= sizeof...(cols)), 
       "The number of columns to hash must be less than or equal to the total number of columns.");
 
   // The tuple of vectors that determines the number and types of the columns 
   using multi_column_t = tuple_of_vectors;
 
+  // The number of columns to hash
   constexpr static const int num_cols_to_hash{sizeof...(cols)};
 
-  // The columns that will be hashed to determine the partitions
+  // The indices of the columns that will be hashed to determine the partitions
   constexpr static const std::array<int, sizeof...(cols)> cols_to_hash{{cols...}};
-  //constexpr static const std::vector<size_t> cols_to_hash{{cols...}};
 };
 
 

  std::vector<gdf_col_pointer> gdf_input_columns;
  std::vector<gdf_col_pointer> gdf_output_columns;


  // Containers for the raw pointers to the gdf_columns
  std::vector<gdf_column*> raw_gdf_input_columns;
  std::vector<gdf_column*> raw_gdf_output_columns;

#include <gdf/cffi/functions.h>

#include "gdf_test_utils.cuh"
#include "../../gdf_table.cuh"
#include "../../hashmap/hash_functions.cuh"

template <template <typename> class hash_function,
         typename size_type>
struct row_partition_mapper
{
  __device__
  row_partition_mapper(gdf_table<size_type> const & table_to_hash, const size_type _num_partitions)
    : the_table{table_to_hash}, num_partitions{_num_partitions}
  {}

  __device__
  hash_value_type operator()(size_type row_index) const
  {
    return the_table.template hash_row<hash_function>(row_index) % num_partitions;
  }

  gdf_table<size_type> const & the_table;
  const size_type num_partitions;
};

// Put all repeated setup and validation stuff here
template <class test_parameters>
struct HashPartitionTest : public testing::Test
{
  const int num_cols_to_hash = test_parameters::num_cols_to_hash;
  std::array<int, test_parameters::num_cols_to_hash> cols_to_hash = test_parameters::cols_to_hash;

  // multi_column_t is a tuple of vectors. The number of vectors in the tuple
