protected IReaction parseCML(String input) throws FileNotFoundException, CDKException { File f = new File(input); if (!f.isFile()) { LOGGER.warn(WARNING, format("CML file not found! " + f.getName())); exit(1); } String[] split = f.getName().split(".cml"); CMLReader cmlReader = new CMLReader(new FileInputStream(input)); AtomContainer ac = cmlReader.read(new AtomContainer()); IReaction r = new Reaction(); r.addReactant(ac, 1.0); r.addProduct(ac, 1.0); r.setID(split[0]); return r; }
@Test public void testGetReactants() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer sodiumhydroxide = reaction.getBuilder().newInstance(IAtomContainer.class); IAtomContainer aceticAcid = reaction.getBuilder().newInstance(IAtomContainer.class); IAtomContainer water = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(sodiumhydroxide); reaction.addReactant(aceticAcid); reaction.addReactant(water); Assert.assertEquals(3, reaction.getReactants().getAtomContainerCount()); }
@Test public void testGetAllProducts_IReaction() { IReaction reaction = builder.newInstance(IReaction.class); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); Assert.assertEquals(3, ReactionManipulator.getAllReactants(reaction).getAtomContainerCount()); }
@Test public void testGetAllReactants_IReaction() { IReaction reaction = builder.newInstance(IReaction.class); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); Assert.assertEquals(2, ReactionManipulator.getAllProducts(reaction).getAtomContainerCount()); }
@Test public void testGetAllMolecules_IReaction() { IReaction reaction = builder.newInstance(IReaction.class); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addReactant(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); reaction.addProduct(builder.newInstance(IAtomContainer.class)); Assert.assertEquals(5, ReactionManipulator.getAllMolecules(reaction).getAtomContainerCount()); }
@Test public void testAddReactant_IAtomContainer_Double() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer proton = reaction.getBuilder().newInstance(IAtomContainer.class); IAtomContainer sulfate = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(proton, 2d); reaction.addReactant(sulfate, 1d); Assert.assertEquals(2.0, reaction.getReactantCoefficient(proton), 0.00001); Assert.assertEquals(1.0, reaction.getReactantCoefficient(sulfate), 0.00001); }
@Test public void testGetReactantCoefficients() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer ed1 = reaction.getBuilder().newInstance(IAtomContainer.class); IAtomContainer ed2 = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(ed1, 2d); reaction.addReactant(ed2, 3d); Double[] ec = reaction.getReactantCoefficients(); Assert.assertEquals(2.0, ec.length, 0.00001); Assert.assertEquals(reaction.getReactantCoefficient(ed1), ec[0], 0.00001); Assert.assertEquals(3.0, ec[1], 0.00001); }
@Test public void testSetReactantCoefficient_IAtomContainer_Double() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer proton = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(proton, 2.0); reaction.setReactantCoefficient(proton, 3.0); Assert.assertEquals(3.0, reaction.getReactantCoefficient(proton), 0.00001); }
@Test public void testGetAllMolecules_IReactionSet2() { IReactionSet reactionSet = builder.newInstance(IReactionSet.class); IReaction reaction1 = builder.newInstance(IReaction.class); IAtomContainer molecule = builder.newInstance(IAtomContainer.class); reaction1.addProduct(molecule); reaction1.addReactant(builder.newInstance(IAtomContainer.class)); reactionSet.addReaction(reaction1); IReaction reaction2 = builder.newInstance(IReaction.class); reaction2.addProduct(builder.newInstance(IAtomContainer.class)); reaction2.addReactant(molecule); reactionSet.addReaction(reaction2); Assert.assertEquals(3, ReactionSetManipulator.getAllMolecules(reactionSet).getAtomContainerCount()); }
@Test public void testGetAllMolecules_IReactionScheme2() { IReactionScheme reactionScheme = builder.newInstance(IReactionScheme.class); IReaction reaction1 = builder.newInstance(IReaction.class); IAtomContainer molecule = builder.newInstance(IAtomContainer.class); reaction1.addProduct(molecule); reaction1.addReactant(builder.newInstance(IAtomContainer.class)); reactionScheme.addReaction(reaction1); IReaction reaction2 = builder.newInstance(IReaction.class); reaction2.addProduct(builder.newInstance(IAtomContainer.class)); reaction2.addReactant(molecule); reactionScheme.addReaction(reaction2); Assert.assertEquals(3, ReactionSchemeManipulator.getAllAtomContainers(reactionScheme).getAtomContainerCount()); }
@Test public void testGetReactantCount() { IReaction reaction = (IReaction) newChemObject(); Assert.assertEquals(0, reaction.getReactantCount()); reaction.addReactant(reaction.getBuilder().newInstance(IAtomContainer.class)); Assert.assertEquals(1, reaction.getReactantCount()); }
@Test public void testSetReactantCoefficients_arrayDouble() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer ed1 = reaction.getBuilder().newInstance(IAtomContainer.class); IAtomContainer ed2 = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(ed1, 2d); reaction.addReactant(ed2, 3d); Double[] ec = {1.0, 2.0}; boolean coeffSet = reaction.setReactantCoefficients(ec); Assert.assertTrue(coeffSet); Assert.assertEquals(1.0, reaction.getReactantCoefficient(ed1), 0.00001); Assert.assertEquals(2.0, reaction.getReactantCoefficient(ed2), 0.00001); Double[] ecFalse = {1.0}; Assert.assertFalse(reaction.setReactantCoefficients(ecFalse)); }
@Test public void testGetReactantCoefficient_IAtomContainer() { IReaction reaction = (IReaction) newChemObject(); IAtomContainer proton = reaction.getBuilder().newInstance(IAtomContainer.class); reaction.addReactant(proton, 2.0); Assert.assertEquals(2.0, reaction.getReactantCoefficient(proton), 0.00001); Assert.assertEquals(-1.0, reaction.getReactantCoefficient(reaction.getBuilder().newInstance(IAtomContainer.class)), 0.00001); }
/** * Test if we get the expected {@link IllegalArgumentException} when we pass * an {@link IAtomContainer} without 2D coordinates. */ @Test(expected = IllegalArgumentException.class) public void testCalculateBounds_IReaction_SingleAtom() { IAtomContainer container = new AtomContainer(); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); IReaction reaction = container.getBuilder().newInstance(IReaction.class); reaction.addReactant(container.getBuilder().newInstance(IAtomContainer.class, container)); BoundsCalculator.calculateBounds(reaction); }
protected static String cansmi(IReaction rxn) throws CDKException { IReaction copy = rxn.getBuilder().newInstance(IReaction.class); for (IAtomContainer mol : rxn.getReactants().atomContainers()) copy.addReactant(AtomContainerManipulator.copyAndSuppressedHydrogens(mol)); for (IAtomContainer mol : rxn.getProducts().atomContainers()) copy.addProduct(AtomContainerManipulator.copyAndSuppressedHydrogens(mol)); for (IAtomContainer mol : rxn.getAgents().atomContainers()) copy.addAgent(AtomContainerManipulator.copyAndSuppressedHydrogens(mol)); return smigen.create(copy); }
/** * Test if we get the expected {@link IllegalArgumentException} when we pass * an {@link IAtomContainer} without 2D coordinates. */ @Test(expected = IllegalArgumentException.class) public void testCalculateBounds_IReactionSet_SingleAtom() { IAtomContainer container = new AtomContainer(); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); IReaction reaction = container.getBuilder().newInstance(IReaction.class); reaction.addReactant(container.getBuilder().newInstance(IAtomContainer.class, container)); IReactionSet set = container.getBuilder().newInstance(IReactionSet.class); set.addReaction(reaction); BoundsCalculator.calculateBounds(set); }
/** * Test if we get the expected {@link IllegalArgumentException} when we pass * an {@link IAtomContainer} without 2D coordinates. */ @Test(expected = IllegalArgumentException.class) public void testCalculateBounds_IReaction() { IAtomContainer container = new AtomContainer(); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); IReaction reaction = container.getBuilder().newInstance(IReaction.class); reaction.addReactant(container.getBuilder().newInstance(IAtomContainer.class, container)); BoundsCalculator.calculateBounds(reaction); } }
@Test public void testGetBondLengthAverage_IReaction() { IAtom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(0, 0)); IAtom atom2 = new Atom("C"); atom2.setPoint2d(new Point2d(1, 0)); IAtomContainer acont = new AtomContainer(); IReaction reaction = new Reaction(); reaction.addReactant(acont); acont.addAtom(atom1); acont.addAtom(atom2); acont.addBond(0, 1, IBond.Order.SINGLE); Assert.assertEquals(1.0, GeometryUtil.getBondLengthAverage(reaction), 0.0); }
@Test public void testIsEmpty_ReactionSet() { IChemModel model = (IChemModel) newChemObject(); IChemObjectBuilder builder = model.getBuilder(); IAtomContainer molecule = builder.newInstance(IAtomContainer.class); IReaction reaction = builder.newInstance(IReaction.class); reaction.addReactant(molecule); IReactionSet set = builder.newInstance(IReactionSet.class); model.setReactionSet(set); Assert.assertTrue("model has an empty reaction set and should be empty", model.isEmpty()); set.addReaction(reaction); Assert.assertFalse("model has a reaction set and should not be empty", model.isEmpty()); model.setReactionSet(null); Assert.assertTrue("model has no reaction set", model.isEmpty()); }
/** * Test if we get the expected {@link IllegalArgumentException} when we pass * an {@link IAtomContainer} without 2D coordinates. */ @Test(expected = IllegalArgumentException.class) public void testCalculateBounds_IReactionSet() { IAtomContainer container = new AtomContainer(); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); container.addAtom(container.getBuilder().newInstance(IAtom.class, "C")); IReaction reaction = container.getBuilder().newInstance(IReaction.class); reaction.addReactant(container.getBuilder().newInstance(IAtomContainer.class, container)); IReactionSet set = container.getBuilder().newInstance(IReactionSet.class); set.addReaction(reaction); BoundsCalculator.calculateBounds(set); }