Example #1
0
// Tests load and save from text file.
TEST(TTable, LoadSave) {
  TTableContext Context;
  // Create schema.
  Schema GradeS;
  GradeS.Add(TPair<TStr,TAttrType>("Class", atStr));
  GradeS.Add(TPair<TStr,TAttrType>("Area", atStr));
  GradeS.Add(TPair<TStr,TAttrType>("Quarter", atStr));
  GradeS.Add(TPair<TStr,TAttrType>("Grade 2011", atInt));
  GradeS.Add(TPair<TStr,TAttrType>("Grade 2012", atInt));
  GradeS.Add(TPair<TStr,TAttrType>("Grade 2013", atInt));
  TIntV RelevantCols;
  RelevantCols.Add(0); RelevantCols.Add(1); RelevantCols.Add(2);
  RelevantCols.Add(3); RelevantCols.Add(4); RelevantCols.Add(5);

  PTable P = TTable::LoadSS(GradeS, "table/grades.txt", &Context, RelevantCols);

  EXPECT_EQ(5, P->GetNumRows().Val);
  EXPECT_EQ(5, P->GetNumValidRows().Val); 

  EXPECT_EQ(7, P->GetIntVal("Grade 2011", 0).Val);
  EXPECT_EQ(9, P->GetIntVal("Grade 2013", 4).Val);
  EXPECT_STREQ("Compilers", P->GetStrVal("Class", 3).CStr());

  P->SaveSS("table/p1.txt");

  // Test SaveSS by loading the saved table and testing values again.
  GradeS.Add(TPair<TStr,TAttrType>("_id", atInt));
  P = TTable::LoadSS(GradeS, "table/p1.txt", &Context, RelevantCols);

  EXPECT_EQ(5, P->GetNumRows().Val);
  EXPECT_EQ(5, P->GetNumValidRows().Val); 

  EXPECT_EQ(7, P->GetIntVal("Grade 2011", 0).Val);
  EXPECT_EQ(9, P->GetIntVal("Grade 2013", 4).Val);
  EXPECT_STREQ("Compilers", P->GetStrVal("Class", 3).CStr());
}
Example #2
0
// Tests parallel join function.
TEST(TTable, ParallelJoin) {
  TTableContext Context;

  Schema LJS;
  LJS.Add(TPair<TStr,TAttrType>("Src", atInt));
  LJS.Add(TPair<TStr,TAttrType>("Dst", atInt));
  TIntV RelevantCols; RelevantCols.Add(0); RelevantCols.Add(1);

  PTable T1 = TTable::LoadSS(LJS, "table/soc-LiveJournal1_small.txt", &Context, RelevantCols);

  EXPECT_EQ(499, T1->GetNumRows().Val);
  EXPECT_EQ(499, T1->GetNumValidRows().Val); 
  
  PTable T2 = TTable::LoadSS(LJS, "table/soc-LiveJournal1_small.txt", &Context, RelevantCols);

  EXPECT_EQ(499, T2->GetNumRows().Val);
  EXPECT_EQ(499, T2->GetNumValidRows().Val); 

  PTable P = T1->Join("Src", T2, "Dst");

  EXPECT_EQ(24, P->GetNumRows().Val);
  EXPECT_EQ(24, P->GetNumValidRows().Val); 
}