Unit tests to check for encoding of DoubleBondStereochemistry

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Encoder factory for DoubleBondStereoChemistry IStereoElements.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Additional PathTools method to fail fast if too many paths are generated.

Change-Id: I1420df426e52d413d6f65372e2d7e5b5a37125f2
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Bad modules, bad unit tests. I think what has happened is something in the atom typing or the aromaticity changed but the MCS is correct for these molecules seems correct from inspection (spent over an hour looking at this). The original bug report shows there were different counts due to some flags being set/unset etc and I think this is just a case where we handle things a little better. The first molecule here is actually invalid - someone has use the daylight-like aromaticity model to generate a molfile. As the MDL aromaticity model doesn't allow lone pair contribution it's impossible to know which nitrogen on the 6 member ring had the hydrogen. Depending on which nitrogen I choose I get different MCS counts.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Old parser didn't correctly handle, 'CCC[N+]1=c2c(=C(=O)NC1=O)[nH]cn2' (1676), and would match the SMARTS. New parser gives correct structure and no longer matches (verified by Depict Match).

Change-Id: I1d07009d463945bd6f848fe7aa32287ad6252a1d
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Fail fast on Nina's boron ball - I later fix will actually speed up the fingerprints so this case is tribal but for now we have an exception.
Update beam so we can parse aromaticity flags to the CDK but maintain the nice bond order assignments.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Dependency inheritance with maven will making updating library so much easier.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Aromatic flags preserved on load now.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Preserving the aromatic flags means this molecule doesn't match unless we strip of the flags and reassign them.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Now the aromatic flags are kept we need to explicitly specify the single bond.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Set of shortest cycles through each vertex.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Edge short cycles.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Check null on MCB constructor.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Copyright header for VertexShortCycles.java
Copyright header for EdgeShortCycles.java
Removing testing of atom types on molecules which no longer exist.
Hotfix on beam, ring number 0 .. 99 inclusive - there are 100 rings not 99, doh.