void operator()( const CDirEntry & dirEntry ) { //const static size_t kInvalidFileNumber = numeric_limits<size_t>::max(); if( ! dirEntry.IsFile() ) { return; } CFile file(dirEntry); string name = file.GetName(); if (NStr::EndsWith(name, ".txt") || NStr::StartsWith(name, ".")) { return; } if (NStr::EndsWith(name, extKeep)) { return; } // extract info from the file name const string sFileName = file.GetName(); vector<string> vecFileNamePieces; NStr::Split( sFileName, ".", vecFileNamePieces ); BOOST_REQUIRE(vecFileNamePieces.size() == 3); string sTestName = vecFileNamePieces[0]; BOOST_REQUIRE(!sTestName.empty()); string sObjType = vecFileNamePieces[1]; BOOST_REQUIRE(!sObjType.empty()); string sFileType = vecFileNamePieces[2]; BOOST_REQUIRE(!sFileType.empty()); STestInfo & test_info_to_load = (*m_pTestNameToInfoMap)[vecFileNamePieces[0]]; // assign object type contained in test input if (sObjType == "entry" || sObjType == "annot") { test_info_to_load.mObjType = sObjType; } else { BOOST_FAIL("Unknown object type " << sObjType << "."); } // figure out what type of file we have and set appropriately if (sFileType == mExtInput) { BOOST_REQUIRE( test_info_to_load.mInFile.GetPath().empty() ); test_info_to_load.mInFile = file; } else if (sFileType == mExtOutput) { BOOST_REQUIRE( test_info_to_load.mOutFile.GetPath().empty() ); test_info_to_load.mOutFile = file; } else if (sFileType == mExtErrors) { BOOST_REQUIRE( test_info_to_load.mErrorFile.GetPath().empty() ); test_info_to_load.mErrorFile = file; } else { BOOST_FAIL("Unknown file type " << sFileName << "."); } }
void operator()( const CDirEntry & dirEntry ) { if( ! dirEntry.IsFile() ) { return; } CFile file(dirEntry); string name = file.GetName(); if (NStr::EndsWith(name, ".txt") || NStr::StartsWith(name, ".")) { return; } // extract info from the file name const string sFileName = file.GetName(); vector<CTempString> vecFileNamePieces; NStr::Split( sFileName, ".", vecFileNamePieces ); BOOST_REQUIRE(vecFileNamePieces.size() == 2); CTempString tsTestName = vecFileNamePieces[0]; BOOST_REQUIRE(!tsTestName.empty()); CTempString tsFileType = vecFileNamePieces[1]; BOOST_REQUIRE(!tsFileType.empty()); STestInfo & test_info_to_load = (*m_pTestNameToInfoMap)[vecFileNamePieces[0]]; // figure out what type of file we have and set appropriately if (tsFileType == mExtInput) { BOOST_REQUIRE( test_info_to_load.mInFile.GetPath().empty() ); test_info_to_load.mInFile = file; } else if (tsFileType == mExtOutput) { BOOST_REQUIRE( test_info_to_load.mOutFile.GetPath().empty() ); test_info_to_load.mOutFile = file; } else if (tsFileType == mExtErrors) { BOOST_REQUIRE( test_info_to_load.mErrorFile.GetPath().empty() ); test_info_to_load.mErrorFile = file; } else { BOOST_FAIL("Unknown file type " << sFileName << "."); } }
void operator()( const CDirEntry & dirEntry ) { const static size_t kInvalidFileNumber = numeric_limits<size_t>::max(); if( ! dirEntry.IsFile() ) { return; } CFile file(dirEntry); // skip the README file if( file.GetName() == "README.txt" ) { return; } // skip .svn files if( NStr::Find(file.GetPath(), ".svn") != NPOS ) { return; } const string sFilePath = file.GetPath(); cout << "Parsing file name: " << sFilePath << endl; // extract info from the file name const string sFileName = file.GetName(); vector<CTempString> vecFileNamePieces; NStr::Tokenize( sFileName, ".", vecFileNamePieces ); BOOST_REQUIRE( vecFileNamePieces.size() == 2 || vecFileNamePieces.size() == 3 ); CTempString tsTestName = vecFileNamePieces[0]; BOOST_REQUIRE( ! tsTestName.empty() ); CTempString tsFileType = vecFileNamePieces[1]; size_t iFileNumber = kInvalidFileNumber; if( vecFileNamePieces.size() > 2 ) { iFileNumber = NStr::StringToUInt(vecFileNamePieces[2]); } STestInfo & test_info_to_load = (*m_pTestNameToInfoMap)[vecFileNamePieces[0]]; // figure out what type of file we have and set appropriately if( tsFileType == "agp" && iFileNumber == kInvalidFileNumber ) { // handle agp file // (and make sure we don't have duplicates) BOOST_REQUIRE( test_info_to_load.m_AGPFile.GetPath().empty() ); test_info_to_load.m_AGPFile = file; } else if( tsFileType == "expected_seq_entry" && iFileNumber != kInvalidFileNumber ) { // handle expected seq-entry file // (Note that the files could come in in any order) vector<CFile> & vecExpectedSeqEntryFiles = test_info_to_load.m_vecExpectedSeqEntryFiles; if( vecExpectedSeqEntryFiles.size() <= iFileNumber ) { // expand the vector to include this file number vecExpectedSeqEntryFiles.resize( 1 + iFileNumber ); } // make sure no duplicates BOOST_REQUIRE( vecExpectedSeqEntryFiles[iFileNumber].GetPath().empty() ); vecExpectedSeqEntryFiles[iFileNumber] = file; } else if( tsFileType == "flags" && iFileNumber == kInvalidFileNumber ) { // handle flags file BOOST_REQUIRE( test_info_to_load.m_FlagFile.GetPath().empty() ); test_info_to_load.m_FlagFile = file; } else { BOOST_FAIL("Unknown file type"); } }