mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
switch to range-based for loops (#7278)
* switch to range-based for loops * Update Code/GraphMol/testChirality.cpp Co-authored-by: Greg Landrum <greg.landrum@gmail.com> * fix a leak in the new DCLV code (#7279) * fixes #7295 (#7303) * tag 2024.03 release (#7308) * tag release * attempt to solve constant MD5 problems * switch to getting the ComicNeue font from github instead of as a zip * open new release cycle (#7314) * restrict the application of 1,3- 1,5- conjugated cation normalization (#7287) * propagate yaehmop build status (#7316) * Fixes #7299 (#7304) * clean up of python and c++ for-loops * clang formatted testChirality * fix test file --------- Co-authored-by: Greg Landrum <greg.landrum@gmail.com> Co-authored-by: Riccardo Vianello <riccardo.vianello@gmail.com>
This commit is contained in:
@@ -32,7 +32,7 @@ class TestCase(unittest.TestCase):
|
||||
self.assertRaises(ValueError, lambda: v1.__setitem__(5, 2))
|
||||
|
||||
v1 = ds.DiscreteValueVect(ds.DiscreteValueType.TWOBITVALUE, 30)
|
||||
for i in range(len(v1)):
|
||||
for i, _ in enumerate(v1):
|
||||
v1[i] = i % 4
|
||||
|
||||
self.assertTrue(len(v1) == 30)
|
||||
@@ -42,7 +42,7 @@ class TestCase(unittest.TestCase):
|
||||
self.assertRaises(ValueError, lambda: v1.__setitem__(10, 6))
|
||||
|
||||
v1 = ds.DiscreteValueVect(ds.DiscreteValueType.FOURBITVALUE, 30)
|
||||
for i in range(len(v1)):
|
||||
for i, _ in enumerate(v1):
|
||||
v1[i] = i % 16
|
||||
|
||||
self.assertTrue(len(v1) == 30)
|
||||
@@ -53,7 +53,7 @@ class TestCase(unittest.TestCase):
|
||||
self.assertRaises(ValueError, lambda: v1.__setitem__(10, 16))
|
||||
|
||||
v1 = ds.DiscreteValueVect(ds.DiscreteValueType.EIGHTBITVALUE, 32)
|
||||
for i in range(len(v1)):
|
||||
for i, _ in enumerate(v1):
|
||||
v1[i] = i % 256
|
||||
|
||||
self.assertTrue(len(v1) == 32)
|
||||
@@ -64,7 +64,7 @@ class TestCase(unittest.TestCase):
|
||||
self.assertRaises(ValueError, lambda: v1.__setitem__(10, 256))
|
||||
|
||||
v1 = ds.DiscreteValueVect(ds.DiscreteValueType.SIXTEENBITVALUE, 300)
|
||||
for i in range(len(v1)):
|
||||
for i, _ in enumerate(v1):
|
||||
v1[i] = i % 300
|
||||
|
||||
self.assertTrue(len(v1) == 300)
|
||||
|
||||
@@ -2651,8 +2651,8 @@ void stereochemTester(RWMol *m, std::string expectedCIP,
|
||||
TEST_ASSERT(!m->getAtomWithIdx(1)->hasProp(common_properties::_CIPCode));
|
||||
TEST_ASSERT(m->getBondWithIdx(3)->getStereo() == Bond::STEREONONE);
|
||||
// the mol file parser assigned bond dirs, get rid of them
|
||||
for (ROMol::BondIterator bIt = m->beginBonds(); bIt != m->endBonds(); ++bIt) {
|
||||
(*bIt)->setBondDir(Bond::NONE);
|
||||
for (const auto bond : m->bonds()) {
|
||||
bond->setBondDir(Bond::NONE);
|
||||
}
|
||||
MolOps::assignStereochemistryFrom3D(*m);
|
||||
TEST_ASSERT(m->getAtomWithIdx(1)->hasProp(common_properties::_CIPCode));
|
||||
@@ -2818,17 +2818,17 @@ class TestAssignChiralTypesFromMolParity {
|
||||
{Atom::CHI_UNSPECIFIED, 0},
|
||||
{Atom::CHI_OTHER, 0}};
|
||||
MolOps::assignChiralTypesFrom3D(*d_rwMol);
|
||||
for (auto ai = d_rwMol->beginAtoms(); ai != d_rwMol->endAtoms(); ++ai) {
|
||||
int parity = parityMap.at((*ai)->getChiralTag());
|
||||
(*ai)->setProp(common_properties::molParity, parity);
|
||||
(*ai)->setChiralTag(Atom::CHI_UNSPECIFIED);
|
||||
for (const auto atom : d_rwMol->atoms()) {
|
||||
int parity = parityMap.at(atom->getChiralTag());
|
||||
(atom)->setProp(common_properties::molParity, parity);
|
||||
(atom)->setChiralTag(Atom::CHI_UNSPECIFIED);
|
||||
}
|
||||
}
|
||||
void fillBondDefVect() {
|
||||
for (auto bi = d_rwMol->beginBonds(); bi != d_rwMol->endBonds(); ++bi) {
|
||||
d_bondDefVect.emplace_back(BondDef((*bi)->getBeginAtomIdx(),
|
||||
(*bi)->getEndAtomIdx(),
|
||||
(*bi)->getBondType()));
|
||||
for (const auto bond : d_rwMol->bonds()) {
|
||||
d_bondDefVect.emplace_back(BondDef((bond)->getBeginAtomIdx(),
|
||||
(bond)->getEndAtomIdx(),
|
||||
(bond)->getBondType()));
|
||||
}
|
||||
}
|
||||
void stripBonds() {
|
||||
@@ -3069,8 +3069,8 @@ void testGithub3314() {
|
||||
|
||||
{ // this one was working
|
||||
auto m = R"CTAB(
|
||||
Mrv2014 07312010092D
|
||||
|
||||
Mrv2014 07312010092D
|
||||
|
||||
0 0 0 0 0 999 V3000
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 7 6 0 0 1
|
||||
@@ -3100,8 +3100,8 @@ M END)CTAB"_ctab;
|
||||
std::cerr << "--------------------------------------------------"
|
||||
<< std::endl;
|
||||
auto m = R"CTAB(
|
||||
Mrv2014 07312010092D
|
||||
|
||||
Mrv2014 07312010092D
|
||||
|
||||
0 0 0 0 0 999 V3000
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 7 6 0 0 1
|
||||
@@ -3137,7 +3137,7 @@ void testGithub4494() {
|
||||
<< std::endl;
|
||||
|
||||
auto molblock = R"CTAB(
|
||||
MJ201500
|
||||
MJ201500
|
||||
|
||||
9 9 0 0 0 0 0 0 0 0999 V2000
|
||||
-5.9375 1.9076 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
@@ -3204,32 +3204,32 @@ M END)CTAB";
|
||||
}
|
||||
|
||||
void testGithub7115() {
|
||||
BOOST_LOG(rdInfoLog) << "-------------------------------------" << std::endl;
|
||||
BOOST_LOG(rdInfoLog)
|
||||
<< "GitHub #7115: Quaternary nitrogens with hydrogens are not a candidate for stereo."
|
||||
<< std::endl;
|
||||
|
||||
{
|
||||
auto s = "C[C@]1(F)C[N@H+](O)C1"_smiles;
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
{
|
||||
auto s = "C[C@]1(F)C[N@+]([H])(O)C1"_smiles;
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
{
|
||||
auto insmi = "C[C@]1(F)C[N@+]([H])(O)C1";
|
||||
SmilesParserParams params;
|
||||
params.removeHs = false;
|
||||
std::unique_ptr<RWMol> s(SmilesToMol(insmi, params));
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "[H][N@+]1(O)C[C@](C)(F)C1");
|
||||
// round trip
|
||||
std::unique_ptr<RWMol> s2(SmilesToMol(smi));
|
||||
TEST_ASSERT(MolToSmiles(*s2) == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
BOOST_LOG(rdInfoLog) << "-------------------------------------" << std::endl;
|
||||
BOOST_LOG(rdInfoLog)
|
||||
<< "GitHub #7115: Quaternary nitrogens with hydrogens are not a candidate for stereo."
|
||||
<< std::endl;
|
||||
|
||||
{
|
||||
auto s = "C[C@]1(F)C[N@H+](O)C1"_smiles;
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
{
|
||||
auto s = "C[C@]1(F)C[N@+]([H])(O)C1"_smiles;
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
{
|
||||
auto insmi = "C[C@]1(F)C[N@+]([H])(O)C1";
|
||||
SmilesParserParams params;
|
||||
params.removeHs = false;
|
||||
std::unique_ptr<RWMol> s(SmilesToMol(insmi, params));
|
||||
auto smi = MolToSmiles(*s);
|
||||
TEST_ASSERT(smi == "[H][N@+]1(O)C[C@](C)(F)C1");
|
||||
// round trip
|
||||
std::unique_ptr<RWMol> s2(SmilesToMol(smi));
|
||||
TEST_ASSERT(MolToSmiles(*s2) == "C[C@]1(F)C[N@H+](O)C1");
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
||||
@@ -20,6 +20,7 @@ GitHub)
|
||||
## Code removed in this release:
|
||||
|
||||
## Deprecated code (to be removed in a future release):
|
||||
|
||||
- AtomPairs.Utils.NumPiElectrons is deprecated in favor of Chem.GetNumPiElectrons.
|
||||
AtomPairs.Utils.NumPiElectrons failed if the atom had outgoing dative bonds (see Issue #7318).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user