Ensure correct stereo consistency (Fix #812) #813
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #812. This was quite a tricky one and very subtle. The minimal example is
*/C=C/C>> |$R$|
, essentially due to AtomContainer2 AtomRef/BondRef the stereo gets in an inconsistent state. To handle these these implementations now remap stereo chemistry to their internal references when adding stereo.A side-effect is addStereo() is now more robust and so some tests needed updating. There was also a slight miss-use of the connected components in SDG (my own doing) to split a single molecule. In this case we need to check if we split in the middle of stereochemistry. This also exposes another issue with Sgroups which I will open an issue for.