   const int num_keys = 1<<12;
   const int num_values_per_key = 1;
   auto input = this->create_input(num_keys, num_values_per_key, 1000, 1000);
+  this->compute_reference_solution();
+
   const unsigned int result_size = this->groupby(input.first, input.second);
   this->verify_groupby_result(result_size);
 

  const int num_keys = 1<<12;
  const int num_values_per_key = 1;
  auto input = this->create_input(num_keys, num_values_per_key, 1000, 1000);
  this->build_aggregation_table_device(input);
  this->verify_aggregation_table();
  unsigned int result_size = this->extract_groupby_result_device();

#include <../../src/groupby/hash/aggregation_operations.cuh>

// This is necessary to do a parametrized typed-test over multiple template arguments
template <typename Key, typename Value, template <typename T> class Aggregation_Operator>
struct KeyValueTypes
{
  using key_type = Key;
