 
 	inputCol[1]->data = thrust::raw_pointer_cast(intputDataDev2.data());
 	inputCol[1]->valid = thrust::raw_pointer_cast(inputValidDev.data());
+
+	inputCol[2]->data = thrust::raw_pointer_cast(intputDataDev3.data());
+	inputCol[2]->valid = thrust::raw_pointer_cast(inputValidDev.data());
+
+	inputCol[3]->data = thrust::raw_pointer_cast(intputDataDev4.data());
+	inputCol[3]->valid = thrust::raw_pointer_cast(inputValidDev.data());
+
+	inputCol[4]->data = thrust::raw_pointer_cast(intputDataDev5.data());
+	inputCol[4]->valid = thrust::raw_pointer_cast(inputValidDev.data());
+
+	inputCol[5]->data = thrust::raw_pointer_cast(intputDataDev6.data());
+	inputCol[5]->valid = thrust::raw_pointer_cast(inputValidDev.data());
 
 	outputCol.data = thrust::raw_pointer_cast(outDataDev.data());
 	outputCol.valid = thrust::raw_pointer_cast(outputValidDev.data());


	gdf_column outputCol;

	inputCol[0]->dtype = GDF_INT32;
	inputCol[0]->size = nrows;

	inputCol[1]->dtype = GDF_INT64;
	inputCol[1]->size = nrows;

	outputCol.dtype = GDF_INT32;
	outputCol.size = nrows;

	// Input Data
	std::vector<int32_t> inputData1(nrows);
	inputData1[0] = 0;
	inputData1[1] = 1;
	inputData1[2] = 2;
	inputData1[3] = 3;
	inputData1[4] = 0;

	std::vector<int64_t> inputData2(nrows);
	inputData2[0] = 2;
	inputData2[1] = 34;
	inputData2[2] = 7;
	inputData2[3] = 9;
	inputData2[4] = 2;

	thrust::device_vector<int32_t> intputDataDev1(inputData1);
	thrust::device_vector<gdf_valid_type> inputValidDev(1,0);

	thrust::device_vector<int64_t> intputDataDev2(inputData2);
	// thrust::device_vector<gdf_valid_type> inputValidDev2(1,0);

	thrust::device_vector<int32_t> outDataDev(nrows);
	thrust::device_vector<gdf_valid_type> outputValidDev(1,0);

TEST(gdf_hashing_test, twoColTest) {

	int nrows = 5;
	int ncols = 6;

	gdf_column **inputCol;
	inputCol = (gdf_column**) malloc(sizeof(gdf_column)* ncols);
