32 #define NCBI_TEST_APPLICATION
34 #define NCBI_BOOST_NO_AUTO_TEST_MAIN
46 #if defined(NCBI_COMPILER_WORKSHOP) && defined(NDEBUG) && defined(NCBI_WITHOUT_MT) && defined(__i386) && NCBI_COMPILER_VERSION == 550
47 # define BUGGY_COMPILER
50 #if !defined(SKIP_DOXYGEN_PROCESSING) && !defined(BUGGY_COMPILER)
59 =
"BLASTDB_PROT_DATA_LOADER";
61 =
"BLASTDB_NUCL_DATA_LOADER";
70 "QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAEKMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTSVLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHPFLFLIKHNPTNTIVYFGRYWSP";
79 string data_loader_name(
"BLASTDB_");
81 data_loader_name +=
"Protein";
82 BOOST_REQUIRE_EQUAL(data_loader_name,
88 for (
size_t i = 0;
i < sv.
size();
i++) {
89 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
99 "QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAEKMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTSVLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHPFLFLIKHNPTNTIVYFGRYWSP";
111 string data_loader_name(
"BLASTDB_");
113 data_loader_name +=
"Protein";
114 BOOST_REQUIRE_EQUAL(data_loader_name,
120 for (
size_t i = 0;
i < sv.
size();
i++) {
121 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
129 vector<string> accessions;
131 accessions.push_back(
"CCD68076");
132 accessions.push_back(
"NP_001024503");
134 const string kNonStdDb(
"prot_dbs");
140 string data_loader_name(
"BLASTDB_");
141 data_loader_name += kNonStdDb;
142 data_loader_name +=
"Protein";
143 BOOST_REQUIRE_EQUAL(data_loader_name,
146 ITERATE(vector<string>, acc, accessions) {
150 MADDSENFVLTVDIGTTTIRSVVYDSKCKERGSYQEKVNTIYTTRNDDEVLVEIEPEQLFLQFLRVIKKAYETLPPNAHV\
151 DVGLCTQRNSIVLWNKRTLKEETRIICWNDKRANNKCHNLNNSFLLKALNLAGGFLHFVTRKNRFLAAQRLKFLGGMVSH\
152 RLMVTIDRSEKLKLMKADGDLCYGSLETWLLMRSSKSNILCVEASNISPSGMFDPWIGAYNTLIMKIIGFPTDMLFPIVD\
153 SNLKDMNKLPIIDSSHIGKEFTISSIIADQQAAMFGCGTWERGDVKITLGTGTFVNVHTGKVPYASMSGLYPLVGWRING\
154 ETDFIAEGNAHDTAVILHWAQSIGLFNDVTETSDIALSVNDSNGVVFIPAFCGIQTPINDETACSGFMCIRPDTTKVHMV\
155 RAILESIAFRVYQIYAAAESEVNINKNSPVRICGGVSNNNFICQCIADLLGRKVERMTDSDHVAARGVALLTGFSSGIWT\
156 KEKLRELVTVEDIFTPNYESRKGLLKTFQTWKKAVDRCLGFYH";
162 os <<
"Failed on accession " << *acc;
164 for (
size_t i = 0;
i < sv.
size();
i++) {
165 BOOST_REQUIRE_MESSAGE((
char)seq[
i] == (
char)sv[
i], msg);
175 "QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAEKMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTSVLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHPFLFLIKHNPTNTIVYFGRYWSP";
187 string data_loader_name(
"BLASTDB_");
189 data_loader_name +=
"Protein";
190 BOOST_REQUIRE_EQUAL(data_loader_name,
196 for (
size_t i = 0;
i < sv.
size();
i++) {
197 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
202 (ConfigFileTest_RetrieveFromNonStandardBlastDb_Config_TestSequenceData)
206 const char* seq =
"MKAIFVLKGWWRTS";
208 const string kNonStdDb(
"ecoli.aa");
217 string data_loader_name(
"BLASTDB_");
218 data_loader_name += kNonStdDb +
"Protein";
219 BOOST_REQUIRE_EQUAL(data_loader_name,
225 for (
size_t i = 0;
i < sv.
size();
i++) {
226 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
233 (ConfigFileTest_RetrieveFromNonStandardBlastDb_ForcedDb_TestSequenceData)
237 const char* seq =
"MKAIFVLKGWWRTS";
239 const string kNonStdDb(
"ecoli.aa");
249 string data_loader_name(
"BLASTDB_");
250 data_loader_name += kNonStdDb +
"Protein";
251 BOOST_REQUIRE_EQUAL(data_loader_name,
257 for (
size_t i = 0;
i < sv.
size();
i++) {
258 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
267 "QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAEKMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTSVLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHPFLFLIKHNPTNTIVYFGRYWSP";
282 for (
size_t i = 0;
i < sv.
size();
i++) {
283 BOOST_CHECK_EQUAL((
char)seq[
i], (
char)sv[
i]);
324 BOOST_CHECK_EQUAL(kExpectedLength, length);
340 t.SetCurrent().SetFormat(
"Y/M/D");
341 const string query_str(
t.AsString() +
"[PDAT]");
346 entrez.
Query(query_str,
"nucleotide", results);
347 if (results.empty()) {
364 const TSeqPos kExpectedLength = 443;
365 BOOST_CHECK_EQUAL(kExpectedLength, length);
384 const string kExpectedMsg(
" BLAST database 'dummy' does not exist in");
385 BOOST_CHECK(e.
GetMsg().find(kExpectedMsg) !=
NPOS);
406 const TSeqPos kExpectedLength = 232;
407 BOOST_CHECK_EQUAL(kExpectedLength, length);
409 string data_loader_name(
"REMOTE_BLASTDB_");
411 data_loader_name +=
"Protein";
412 BOOST_REQUIRE_EQUAL(data_loader_name,
418 const string dbname=
"data/pdb_test";
429 while (getline(ids_file, line)) {
Declares CBlastScopeSource class to create properly configured CScope objects to invoke the BLAST dat...
static void s_RetrieveSequenceLength(TGi gi, const string &dbname, bool is_prot, TSeqPos kExpectedLength)
BOOST_AUTO_TEST_CASE(RetrieveFromBlastDb_TestSequenceData)
CAutoEnvironmentVariable –.
Auxiliary class to write temporary NCBI configuration files in the local directory for the purpose of...
RAII class for the CBlastScopeSource.
void Query(const string &query, const string &db, vector< TUid > &result_uids, size_t start_offs=0, size_t count=0, TReply *reply=0)
Some other simplified interfaces.
static CNcbiApplication * Instance(void)
Singleton method.
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
static const char * kSection
void RemoveBLASTDBEnvVar()
static const char * kProtBlastDbDataLoader
static const char * kNuclBlastDbDataLoader
CRef< CScope > NewScope()
static const char * kDataLoaders
string GetBlastDbLoaderName() const
void SetProteinBlastDbDataLoader(const string &prot_db_name)
void SetNucleotideBlastDbDataLoader(const string &nucl_db_name)
bool ReloadConfig(CMetaRegistry::TFlags flags=CMetaRegistry::fReloadIfChanged, IRegistry::TFlags reg_flags=IRegistry::fWithNcbirc)
Reload the configuration file.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
EDiagSev SetDiagPostLevel(EDiagSev post_sev=eDiag_Error)
Set the threshold severity for posting the messages.
EDiagSev
Severity level for the posted diagnostics.
const string & GetMsg(void) const
Get message string.
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
bool State_NoData(void) const
CSeqVector GetSeqVector(EVectorCoding coding, ENa_strand strand=eNa_strand_plus) const
Get sequence: Iupacna or Iupacaa if use_iupac_coding is true.
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
bool IncludeNcbircIfAllowed(TFlags flags=fWithNcbirc)
Attempt to load a systemwide configuration file (.ncbirc on Unix, ncbi.ini on Windows) as a low-prior...
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
CNcbiRegistry & NcbiTestGetRWConfig(void)
Wrapper to get the application's configuration parameters, accessible to read-write.
@ e_Gi
GenInfo Integrated Database.
char * dbname(DBPROCESS *dbproc)
Get name of current database.
BOOST_AUTO_TEST_SUITE(psiblast_iteration)
Definition of SSeqLoc structure.
Configuration structure for the CBlastScopeSource.
bool m_UseGenbank
Use the Genbank data loader.
static const char * kDefaultProteinBlastDb
Default protein BLAST database to use for the BLAST DB data loaders.
string m_BlastDbName
Name of the BLAST database to use (non-empty if m_UseBlastDbs is true)
bool m_UseBlastDbs
Use the BLAST database data loaders.
@ eUseNoDataLoaders
Do not add any data loaders.
@ eUseBlastDbDataLoader
Use the local BLAST database loader first, if this fails, use the remote BLAST database data loader.
@ eUseGenbankDataLoader
Use the Genbank data loader.
Utility stuff for more convenient using of Boost.Test library.