Added missing test annotation

Change-Id: I66318bc6a324de0ed0bb42182e99238896bf2db8
Be more informative when the test fails

Change-Id: I1603134367a41849fa24da10da943f63850f35c0
add isEmpty() to classes/interfaces ChemModel, AtomContainerSet, ReactionSet, Crystal and AtomContainer

Signed-off-by: John May <john.wilkinsonmay@gmail.com>
Added unit test and @TestMehtod annotaitons for new 'isEmpty' mehtods

Change-Id: If3ab0f5797345e40596762afd4f6fc9db80b76fb
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Moved TetrahedralChirality from data to core.

- added missing TestMethod/-Class annotation
- made TetrahedralChirality getBuilder() settable via a setBuilder()
- updated the IChemObjectBuilder implementations to instantiate this
  class via that builder
- added a unit test in AbstractChemObjectBuilderTest to test that
  the properly build TetrahedralChirality instances

Signed-off-by: Rajarshi  Guha <rajarshi.guha@gmail.com>

Conflicts:
	src/test/org/openscience/cdk/AbstractChemObjectBuilderTest.java
	src/test/org/openscience/cdk/modulesuites/McoreTests.java

Change-Id: Iae7ed5dfc75d902d4cde5fc80bdea9de84379884
Signed-off-by: John May <john.wilkinsonmay@gmail.com>
Removed redundant code - we don't need to check whether the bond is already in the container as we create a new instance. We also don't need to check the array size as this is done by addBond(IBond)

Change-Id: I9b7ddfa356874aee18995e766513cdfca9e6acd2
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Removed print to standard out from ChemObjectBuilders

Change-Id: I6e69e8bab5781f67346fc9a33240c357d55ef01e
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added check to ensure a DoubleBondStereochemistry is never created with more then 2 bonds - this would cause errors with some methods.

Change-Id: Icbfb1902560d1588dec7b95aac3a775053728450
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added removal of stereo elements in 'removeAllElements()' - documentation has been updated

Change-Id: I02bd4d114e918c5aaabd881546c29afae55d6800
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Removed redundant code from ChemObj clone - the existing code did exactly what the copy constructor of HashMap does and thus provides a cleaner implementation

Change-Id: I3815bd122d8e1dd943076da434dcda4f40bee35c
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added renderextra to dist-large and test-all targets

Change-Id: Ibba99c18c942f95890a9fcb01c5769dc6e6e09b8
Signed-off-by: John May <john.wilkinsonmay@gmail.com>
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added cdk-silent dependency for test-renderextra

Change-Id: Ie5c9aba77e946a669e173c0cfb6e5079399b0c83
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Fixed closing <ul> (fixes #1265)

Change-Id: Ib903e924bcbc730ec2df1f39b640860f77a7aceb
Added unit test for tetrahedral chirality stereo element

Change-Id: Ia8db95fe4d3af3e518a030f971a525a63ea2dcda
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added ability to setStereoElements - this was required due to clone() being shall on List. We need to be able to set a new array when have cloned a AtomContainer
Added unit tests for DoubleBond and AtomParity cloning

Change-Id: I1c0d5ee2f6bbe931492cf826a25cfde56d758716
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Reworked AtomContainer.clone() so it is clear what is going on. We now use a HashMap between the original and cloned atoms to avoid to a linear search each time the atom mapping is needed. This is also useful when we add StereoElement cloning (not yet implemented). We also store a bond mapping as well - we will need the bond mapping for double bond stereo chemistry. The stereo elements in the clone need to be set to an empty array on the clone so we don't remove elements from the original (cloning odditity). It was also clear we need to change the clone() method on Polymer which currently undoes all the cloning work we do in the AtomContainer. For all clone instances I added some code to correctly create HashMaps that won't need to resized. The default HashMap implementation works best at 0.75 capacity - we therefore need to do some simple arithmetic to ensure we don't get a resize. The implemented method is what is used in the Guava library.

Change-Id: I1b467707c630b1854a6665df67899a695427dfba
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added a 'map' method on all IStereoElements. The map method allows a stereo element on one container/molecule to mapped to a stereo element on another. This mapping is achieved using two symbol tables, one for atoms and one for bonds. All methods are null safe and the mapping will not fail if any content in the stereo elements is null. The mapping simplifies the cloning of molecules/atom containers but could also be used when comparing isomorphic graphs.

Change-Id: I12c40b34a9b0b30f499eaa0ef29ae77e5caf07b0
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added stereo element shallow copy

Change-Id: Icbcb095271a5121c58fec1bca43e1f508b6a0e8c
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Added deep cloning of stereo element to atom containers and polymers (atom container subclass)

Change-Id: I344ba0fb0409f2e35858501e33b7d3ddcc8553a9
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>