* run clang-tidy with readability-braces-around-statements
clang-format the results
clean up all the parts that clang-tidy-8 broke
* fix problem on windows
* a round of cleanups courtesy of PVS studio
* add a test to make sure that a warning is a false alarm
* bug fix
* Fix a UFF bug
* more PVS studio cleanups
* next round of PVS studio cleanups
* completely remove the chances for that bug
* changes in response to review
* add an additional test
+ a bit of reformatting that snuck in
* - MatchFusedRings does not imply CompleteRingsOnly anymore
* - use a more specific query molecule rather than an ambiguous SMARTS string in MCSResult
* - changes in response to review
* - fixes#2663 (The C++ MCS code generates ambiguous SMARTS strings)
* - fixes#2662 (C++ MCS code returns a null MCS between
methylcyclopentane and methylcyclohexane)
Fixes#2420
Tests updated to reflect changes.
The existing CompleteRingsOnly code wasn't actually guaranteeing CompleteRingsOnly at all, it was just causing #2420.
The updated code actually makes sure that bonds that were ring bonds in one of the queries are ring bonds in the final MCS.
This is done via a relatively simple DFS.
* add cis and trans to bond stereo
* compiles, does not work
* tests all pass
* Whitespace cleanup to recent changes.
* C++ test case for Bond::setStereo using Bond::STEREOCIS and Bond::STEREOTRANS
* Adding a PRECONDITION to Bond::setStereo to make sure the stereo atoms
are already specified if CIS or TRANS is being specified.
E/Z is technically defined by the topology of the molecule so the
stereo atoms are redundant (easier to understand and use!), but
ultimately redundant with the graph. However, CIS and TRANS is _only_
defined in this usage as the orientation of the atoms in the
getStereoAtoms vector.
* Exposing Bond::setStereo to Python and adding test cases to make sure
it can be used to set CIS/TRANS stereochemistry.
* verify substructure matching works
* Adding Bond::setStereoAtoms to C++ Bond class.
This allows setting the atoms to be considered for CIS or TRANS
directly without a much more costly determination of ranking that E/Z
requires.
* Wrap Bond::SetStereoAtoms into python with a new type of test case.
* docs
* - added -DBOOST_SYSTEM_NO_DEPRECATED to definitions for MINGW builds
- modified a few #ifdef's to discriminate better between MINGW and MSVC
- added a ios::binary to Code/GraphMol/FileParsers/testMolSupplier.cpp
(I already had to add some of those in the past to avoid the CR+LF issues on Windows)
- modified Code/GraphMol/FMCS/MaximumCommonSubgraph.cpp and
Code/GraphMol/FMCS/FMCS.h because checking the function pointer does not
work with DLLs as the function pointer changes upon different calls
- builds under MinGW with -DRDK_USE_BOOST_SERIALIZATION=OFF and
RDK_BUILD_THREADSAFE_SSS=OFF
* - added the possibility to define MSVC_RUNTIME_DLL to point to the
absolute path of an appropriate MSVC runtime DLL to enable
multi-threaded builds with MinGW
- modified C++ and Python tests of the multi-threaded conformation
embedder as under 32-bit MinGW lower numeric precision introduces minimal
coordinate differences with result in ~1-kcal energy difference.
Therefore the energy criterion has been made more lenient, and a
coordinate MSD criterion has been introduce to compare substantial
identity of conformations
* - reverted Code/GraphMol/DistGeomHelpers/Wrap/testDistGeom.py and Code/GraphMol/DistGeomHelpers/testDgeomHelpers.cpp
to the upstream/master version