コード例 #1
0
ファイル: hash_build.cpp プロジェクト: came/hyrise
TEST_F(HashBuildTest, check_equality) {
  std::shared_ptr<AbstractTable> t = Loader::shortcuts::load("test/10_30_group.tbl");

  HashBuild hb;
  hb.addInput(t);
  hb.addField(1);
  hb.setKey("groupby");
  hb.execute();
  auto hash = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb.getResultHashTable());

  auto t1 = storage::TableRangeView::create(t, 0, 4);
  auto t2 = storage::TableRangeView::create(t, 5, 9);

  HashBuild hb1;
  hb1.addInput(t1);
  hb1.addField(1);
  hb1.setKey("groupby");
  hb1.execute();
  auto hash1 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb1.getResultHashTable());

  HashBuild hb2;
  hb2.addInput(t2);
  hb2.addField(1);
  hb2.setKey("groupby");
  hb2.execute();
  auto hash2 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb2.getResultHashTable());

  ASSERT_TRUE(check_equality(hash, hash));
  ASSERT_FALSE(check_equality(hash1, hash2));
}
コード例 #2
0
ファイル: hash_build.cpp プロジェクト: came/hyrise
TEST_F(HashBuildTest, merge_one_table_test) {
  std::shared_ptr<AbstractTable> t = Loader::shortcuts::load("test/10_30_group.tbl");

  HashBuild hb;
  hb.addInput(t);
  hb.addField(1);
  hb.setKey("groupby");
  hb.execute();
  auto hash1 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb.getResultHashTable());

  MergeHashTables mht;
  mht.addInput(hash1);
  mht.setKey("groupby");
  mht.execute();
  auto hash2 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(mht.getResultHashTable());


  ASSERT_TRUE(check_equality(hash1, hash2));
}
コード例 #3
0
ファイル: hash_build.cpp プロジェクト: came/hyrise
TEST_F(HashBuildTest, merge_two_tables_test) {
  // reference hash Table
  std::shared_ptr<AbstractTable> t = Loader::shortcuts::load("test/10_30_group.tbl");
  HashBuild hb;
  hb.addInput(t);
  hb.addField(1);
  hb.setKey("groupby");
  hb.execute();
  auto hash = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb.getResultHashTable());

  //test to merge two tables
  auto t1 = storage::TableRangeView::create(t, 0, 5);
  auto t2 = storage::TableRangeView::create(t, 5, 10);

  HashBuild hb1;
  hb1.addInput(t1);
  hb1.addField(1);
  hb1.setKey("groupby");
  hb1.execute();
  auto hash1 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb1.getResultHashTable());

  HashBuild hb2;
  hb2.addInput(t2);
  hb2.addField(1);
  hb2.setKey("groupby");
  hb2.execute();
  auto hash2 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(hb2.getResultHashTable());

  MergeHashTables mht;
  mht.addInput(hash1);
  mht.addInput(hash2);
  mht.setKey("groupby");
  mht.execute();
  auto hash3 = std::dynamic_pointer_cast<const SingleAggregateHashTable >(mht.getResultHashTable());

  ASSERT_EQ(hash->size(), hash3->size());
  ASSERT_EQ(hash->numKeys(), hash3->numKeys());
}