// $Id$ // // Copyright (C) 2002-2006 Rational Discovery LLC // // @@ All Rights Reserved @@ // This file is part of the RDKit. // The contents are covered by the terms of the BSD license // which is included in the file license.txt, found at the root // of the RDKit source tree. // #include #include #include #include #include #include #include using namespace RDKit; using namespace std; void test1(){ char smi[512],id[256]; char *fName = "Wrap/test_data/rtecs_smiles.5000.txt"; FILE *inF = fopen(fName,"r"); int n = 2; Mol *m; string canonSmi; vector smis; n = 2; while(n==2){ n=fscanf(inF,"%s %s",id,smi); if(n==2 && id[0]!='#') smis.push_back(smi); } vector::const_iterator smilIt; for(int i=0;i<5;i++){ BOOST_LOG(rdInfoLog) << "******* Pass " << i+1 << endl; for(smilIt=smis.begin();smilIt!=smis.end();smilIt++){ m = SmilesToMol(*smilIt,false); //m = SmilesToMol(*(smis.begin()),false); if(!m){ BOOST_LOG(rdErrorLog) << "failure:" << *smilIt << endl; } #if 0 CHECK_INVARIANT(m,"Smiles parse failed:"); canonSmi = MolToSmiles(*m); string pickle; MolPickler::pickleMol(*m,pickle); Mol newM(pickle); string trySmi = MolToSmiles(newM); if(canonSmi!=trySmi){ BOOST_LOG(rdErrorLog) << "failure:" << *smilIt << endl; BOOST_LOG(rdErrorLog) << canonSmi << endl; BOOST_LOG(rdErrorLog) << " != " << endl; BOOST_LOG(rdErrorLog) << trySmi << endl; } CHECK_INVARIANT(canonSmi==trySmi,(char *)(string("pickling/depickling failed: ")+trySmi).c_str()); #endif delete m; } } }; int main(){ RDLog::InitLogs() test1(); return 0; }