void test5() { // test working from SMILES std::cout << " ----------> Test5 " << std::endl; RWMol *m1 = SmilesToMol("[Xa]CC([Xb])CC", 0, 0); CHECK_INVARIANT(m1, ""); markAttachmentPoints(m1, 'X'); RWMOL_SPTR_VECT sidechains; sidechains.push_back(RWMOL_SPTR(SmilesToMol("[X]OC(=O)", 0, 0))); sidechains.push_back(RWMOL_SPTR(SmilesToMol("[X]OC(=O)C", 0, 0))); sidechains.push_back(RWMOL_SPTR(SmilesToMol("[X]OC(=O)CCC", 0, 0))); prepareSidechains(&sidechains, 'X'); VECT_RWMOL_SPTR_VECT allSideChains; allSideChains.push_back(sidechains); allSideChains.push_back(sidechains); RWMOL_SPTR_VECT library; library = enumerateLibrary(m1, allSideChains, false); CHECK_INVARIANT(library.size() == 9, ""); CHECK_INVARIANT(library[0]->getNumAtoms() == 10, ""); CHECK_INVARIANT(library[1]->getNumAtoms() == 11, ""); CHECK_INVARIANT(library[2]->getNumAtoms() == 13, ""); CHECK_INVARIANT(library[3]->getNumAtoms() == 11, ""); CHECK_INVARIANT(library[4]->getNumAtoms() == 12, ""); CHECK_INVARIANT(library[5]->getNumAtoms() == 14, ""); CHECK_INVARIANT(library[6]->getNumAtoms() == 13, ""); CHECK_INVARIANT(library[7]->getNumAtoms() == 14, ""); CHECK_INVARIANT(library[8]->getNumAtoms() == 16, ""); library.clear(); std::cout << " <---------- Done " << std::endl; }