// DatasetMergeResult_t.cxx #include "dataset_split/DatasetMergeResult.h" #include #include #include "dataset_util/getcwd.h" #include "dataset_base/Dataset_t.h" using std::string; using std::cout; using std::endl; using dset::Dataset; using dset::DatasetList; using dset::DatasetMergeResult; void msg(string txt) { cout << "*** "; cout << txt; cout << " ***" << endl; } int DatasetMerger_t() { msg("Create invalid merge result"); DatasetMergeResult resbad; cout << resbad << endl; assert( ! resbad.is_valid() ); assert( resbad.input_datasets().size() == 0 ); assert( resbad.merged_datasets().size() == 0 ); assert( resbad.rejected_datasets().size() == 0 ); assert( resbad.dataset() == 0 ); msg("Create dataset lists"); TestDataset dst1; TestDataset dst2; TestDataset dst3; TestDataset dst4; TestDataset dstr; dst1.lock(); dst2.lock(); dst3.lock(); dst4.lock(); DatasetList idsts; DatasetList mdsts; DatasetList rdsts; idsts.push_back(&dst1); idsts.push_back(&dst2); idsts.push_back(&dst3); mdsts.push_back(&dst1); mdsts.push_back(&dst2); rdsts.push_back(&dst3); msg("Create valid merged result"); DatasetMergeResult res(idsts, mdsts, rdsts, &dstr); cout << res << endl; assert( res.is_valid() ); assert( res.input_datasets().size() == 3 ); assert( res.input_datasets() == idsts ); assert( res.merged_datasets().size() == 2 ); assert( res.merged_datasets() == mdsts ); assert( res.rejected_datasets().size() == 1 ); assert( res.rejected_datasets() == rdsts ); assert( res.dataset() == &dstr ); msg("Equality"); assert( res == res ); assert( res != resbad ); msg("Testing complete"); return 0; } #ifdef CTEST_MAIN int main() { return DatasetMerger_t(); } #endif