From 9bcd28a4ff3d01ddbeabecb16b08876c19a652df Mon Sep 17 00:00:00 2001 From: Greg Landrum Date: Wed, 23 Sep 2020 23:28:45 +0200 Subject: [PATCH] MolEnumerator::enumerate() should call updatePropertyCache() (#3420) --- Code/GraphMol/MolEnumerator/MolEnumerator.cpp | 1 + Code/GraphMol/MolEnumerator/enumerator_catch.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Code/GraphMol/MolEnumerator/MolEnumerator.cpp b/Code/GraphMol/MolEnumerator/MolEnumerator.cpp index e741c9d0a..9274b42a3 100644 --- a/Code/GraphMol/MolEnumerator/MolEnumerator.cpp +++ b/Code/GraphMol/MolEnumerator/MolEnumerator.cpp @@ -60,6 +60,7 @@ MolBundle enumerate(const ROMol &mol, const MolEnumeratorParams ¶ms) { enumerateVariations(variations, variationCounts, params); for (const auto &variation : variations) { auto newMol = (*op)(variation); + newMol->updatePropertyCache(false); res.addMol(ROMOL_SPTR(newMol.release())); } return res; diff --git a/Code/GraphMol/MolEnumerator/enumerator_catch.cpp b/Code/GraphMol/MolEnumerator/enumerator_catch.cpp index 188783349..fd0ff2f42 100644 --- a/Code/GraphMol/MolEnumerator/enumerator_catch.cpp +++ b/Code/GraphMol/MolEnumerator/enumerator_catch.cpp @@ -134,6 +134,10 @@ M END new MolEnumerator::PositionVariationOp()); auto bundle = MolEnumerator::enumerate(*mol1, ps); CHECK(bundle.size() == 3); + + CHECK(bundle.getMols()[0]->getAtomWithIdx(0)->getDegree()==3); + CHECK(bundle.getMols()[0]->getAtomWithIdx(0)->getImplicitValence()==0); + std::vector tsmis = {"COc1ccncc1", "COc1ccccn1", "COc1cccnc1"}; std::vector smis; for (const auto molp : bundle.getMols()) {