00001 #ifndef Impala_Core_Table_Equals_h
00002 #define Impala_Core_Table_Equals_h
00003
00004 #include "Core/Column/Equals.h"
00005
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Table
00011 {
00012
00013
00014 template <class T1, class T2>
00015 inline bool
00016 Equals(T1* t1, T2* t2)
00017 {
00018 if(t1->Size() != t2->Size())
00019 return false;
00020 return Column::Equals(t1->GetColumn1(), t2->GetColumn1(), t2->Size()) &&
00021 Column::Equals(t1->GetColumn2(), t2->GetColumn2(), t2->Size()) &&
00022 Column::Equals(t1->GetColumn3(), t2->GetColumn3(), t2->Size()) &&
00023 Column::Equals(t1->GetColumn4(), t2->GetColumn4(), t2->Size()) &&
00024 Column::Equals(t1->GetColumn5(), t2->GetColumn5(), t2->Size()) &&
00025 Column::Equals(t1->GetColumn6(), t2->GetColumn6(), t2->Size()) &&
00026 Column::Equals(t1->GetColumn7(), t2->GetColumn7(), t2->Size()) &&
00027 Column::Equals(t1->GetColumn8(), t2->GetColumn8(), t2->Size()) &&
00028 Column::Equals(t1->GetColumn9(), t2->GetColumn9(), t2->Size());
00029 }
00030
00036 template <class T1, class T2>
00037 inline bool
00038 Equals(T1* t1, T2* t2, double tolerance)
00039 {
00040 if(t1->Size() != t2->Size())
00041 return false;
00042 double t = tolerance;
00043 return Column::Equals(t1->GetColumn1(), t2->GetColumn1(), t2->Size(), t) &&
00044 Column::Equals(t1->GetColumn2(), t2->GetColumn2(), t2->Size(), t) &&
00045 Column::Equals(t1->GetColumn3(), t2->GetColumn3(), t2->Size(), t) &&
00046 Column::Equals(t1->GetColumn4(), t2->GetColumn4(), t2->Size(), t) &&
00047 Column::Equals(t1->GetColumn5(), t2->GetColumn5(), t2->Size(), t) &&
00048 Column::Equals(t1->GetColumn6(), t2->GetColumn6(), t2->Size(), t) &&
00049 Column::Equals(t1->GetColumn7(), t2->GetColumn7(), t2->Size(), t) &&
00050 Column::Equals(t1->GetColumn8(), t2->GetColumn8(), t2->Size(), t) &&
00051 Column::Equals(t1->GetColumn9(), t2->GetColumn9(), t2->Size(), t);
00052 }
00053
00054 }
00055 }
00056 }
00057
00058 #endif