/** {@inheritDoc} */ @Override public void setPoint3d(Point3d point3d) { logger.debug("Setting point3d: x=" + point3d.x + ", y=" + point3d.y, ", z=" + point3d.z); super.setPoint3d(point3d); }
/** * Clones this atom object and its content. * * @return The cloned object */ @Override public IAtom clone() throws CloneNotSupportedException { Object clone = super.clone(); if (point2d != null) { ((Atom) clone).setPoint2d(new Point2d(point2d.x, point2d.y)); } if (point3d != null) { ((Atom) clone).setPoint3d(new Point3d(point3d.x, point3d.y, point3d.z)); } if (fractionalPoint3d != null) { ((Atom) clone).setFractionalPoint3d(new Point3d(fractionalPoint3d.x, fractionalPoint3d.y, fractionalPoint3d.z)); } return (IAtom) clone; }
/** * Clones this atom object and its content. * * @return The cloned object */ @Override public IAtom clone() throws CloneNotSupportedException { Object clone = super.clone(); if (point2d != null) { ((Atom) clone).setPoint2d(new Point2d(point2d.x, point2d.y)); } if (point3d != null) { ((Atom) clone).setPoint3d(new Point3d(point3d.x, point3d.y, point3d.z)); } if (fractionalPoint3d != null) { ((Atom) clone).setFractionalPoint3d(new Point3d(fractionalPoint3d.x, fractionalPoint3d.y, fractionalPoint3d.z)); } return (IAtom) clone; }
@Test public void testDistanceToAtomDescriptor() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new DistanceToAtomDescriptor(); Object[] params = {Integer.valueOf(2)}; descriptor.setParameters(params); IAtomContainer mol = new AtomContainer(); Atom a0 = new Atom("C"); mol.addAtom(a0); a0.setPoint3d(new Point3d(1.2492, -0.2810, 0.0000)); Atom a1 = new Atom("C"); mol.addAtom(a1); a1.setPoint3d(new Point3d(0.0000, 0.6024, -0.0000)); Atom a2 = new Atom("C"); mol.addAtom(a2); a2.setPoint3d(new Point3d(-1.2492, -0.2810, 0.0000)); mol.addBond(0, 1, IBond.Order.SINGLE); // 1 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 // mol.addBond(2, 3, IBond.Order.SINGLE); // 3 // jwmay: there is no atom at index 3 Assert.assertEquals(2.46, ((DoubleResult) descriptor.calculate(mol.getAtom(0), mol).getValue()).doubleValue(), 0.1); } }
c.setPoint3d(c_coord); f.setPoint3d(f_coord); h1.setPoint3d(h1_coord); h2.setPoint3d(h2_coord); h3.setPoint3d(h3_coord);
c.setPoint3d(c_coord); f.setPoint3d(f_coord); h1.setPoint3d(h1_coord); h2.setPoint3d(h2_coord); h3.setPoint3d(h3_coord);
@Test public void testCalculate() { RDFCalculator calculator = new RDFCalculator(0.0, 5.0, 0.1, 0.0); AtomContainer h2mol = new org.openscience.cdk.AtomContainer(); Atom h1 = new Atom("H"); h1.setPoint3d(new Point3d(-0.5, 0.0, 0.0)); Atom h2 = new Atom("H"); h2.setPoint3d(new Point3d(0.5, 0.0, 0.0)); h2mol.addAtom(h1); h2mol.addAtom(h2); double[] rdf1 = calculator.calculate(h2mol, h1); double[] rdf2 = calculator.calculate(h2mol, h2); // test whether the double array length is ok Assert.assertEquals(51, rdf1.length); // test whether the RDFs are identical Assert.assertEquals(rdf1.length, rdf2.length); for (int i = 0; i < rdf1.length; i++) { Assert.assertEquals(rdf1[i], rdf2[i], 0.00001); } }
c.setPoint3d(c_coord); f.setPoint3d(f_coord); h1.setPoint3d(h1_coord); h2.setPoint3d(h2_coord); h3.setPoint3d(h3_coord);
c.setPoint3d(c_coord); f.setPoint3d(f_coord); h1.setPoint3d(h1_coord); h2.setPoint3d(h2_coord); h3.setPoint3d(h3_coord);
@Test public void testRotate_IAtom_Point3d_Point3d_double() { Atom atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 0)); GeometryUtil.rotate(atom1, new Point3d(2, 0, 0), new Point3d(2, 2, 0), 90); assertEquals(new Point3d(2.0, 1.0, 1.0), atom1.getPoint3d(), 0.2); }
@Test public void testHas2DCoordinates_IBond() { Atom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); Atom atom2 = new Atom("C"); atom2.setPoint2d(new Point2d(1, 0)); IBond bond = new Bond(atom1, atom2); Assert.assertTrue(GeometryUtil.has2DCoordinates(bond)); atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 1)); atom2 = new Atom("C"); atom2.setPoint3d(new Point3d(1, 0, 5)); bond = new Bond(atom1, atom2); Assert.assertFalse(GeometryUtil.has2DCoordinates(bond)); }
@Test public void testCalculate_RDFWeightFunction() { RDFCalculator calculator = new RDFCalculator(0.0, 5.0, 0.1, 0.0, new IRDFWeightFunction() { @Override public double calculate(org.openscience.cdk.interfaces.IAtom atom, org.openscience.cdk.interfaces.IAtom atom2) { return 1.0; } }); AtomContainer h2mol = new org.openscience.cdk.AtomContainer(); Atom h1 = new Atom("H"); h1.setPoint3d(new Point3d(-0.5, 0.0, 0.0)); Atom h2 = new Atom("H"); h2.setPoint3d(new Point3d(0.5, 0.0, 0.0)); h2mol.addAtom(h1); h2mol.addAtom(h2); double[] rdf1 = calculator.calculate(h2mol, h1); double[] rdf2 = calculator.calculate(h2mol, h2); // test whether the double array length is ok Assert.assertEquals(51, rdf1.length); // test whether the RDFs are identical Assert.assertEquals(rdf1.length, rdf2.length); for (int i = 0; i < rdf1.length; i++) { Assert.assertEquals(rdf1[i], rdf2[i], 0.00001); } }
@Test public void testHas2DCoordinates_IAtom() { Atom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); Assert.assertTrue(GeometryUtil.has2DCoordinates(atom1)); atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 1)); Assert.assertFalse(GeometryUtil.has2DCoordinates(atom1)); }
@Test public void testCalculate_RDFWeightFunction2() { RDFCalculator calculator = new RDFCalculator(0.0, 5.0, 0.1, 0.0, new IRDFWeightFunction() { @Override public double calculate(org.openscience.cdk.interfaces.IAtom atom, org.openscience.cdk.interfaces.IAtom atom2) { return atom.getCharge() * atom2.getCharge(); } }); AtomContainer h2mol = new org.openscience.cdk.AtomContainer(); Atom h1 = new Atom("H"); h1.setPoint3d(new Point3d(-0.5, 0.0, 0.0)); h1.setCharge(+1.0); Atom h2 = new Atom("H"); h2.setPoint3d(new Point3d(0.5, 0.0, 0.0)); h2.setCharge(-1.0); h2mol.addAtom(h1); h2mol.addAtom(h2); double[] rdf1 = calculator.calculate(h2mol, h1); double[] rdf2 = calculator.calculate(h2mol, h2); // test whether the double array length is ok Assert.assertEquals(51, rdf1.length); // test whether the RDFs are identical Assert.assertEquals(rdf1.length, rdf2.length); for (int i = 0; i < rdf1.length; i++) { Assert.assertEquals(rdf1[i], rdf2[i], 0.00001); } }
AtomContainer h2mol = new org.openscience.cdk.AtomContainer(); Atom h1 = new Atom("H"); h1.setPoint3d(new Point3d(-0.5, 0.0, 0.0)); h1.setCharge(+1.0); Atom h2 = new Atom("H"); h2.setPoint3d(new Point3d(0.5, 0.0, 0.0)); h2.setCharge(-1.0); h2mol.addAtom(h1);
@Test public void testAtom3D() throws Exception { IAtomContainer mol = new AtomContainer(); Atom atom = new Atom("N"); Point3d p3d = new Point3d(1.3, 1.4, 0.9); atom.setPoint3d(p3d); mol.addAtom(atom); IAtomContainer roundTrippedMol = CMLRoundTripTool.roundTripMolecule(convertor, mol); Assert.assertEquals(1, roundTrippedMol.getAtomCount()); IAtom roundTrippedAtom = roundTrippedMol.getAtom(0); assertEquals(atom.getPoint3d(), roundTrippedAtom.getPoint3d(), 0.00001); }
@Test public void testHas2DCoordinates_IAtomContainer() { Atom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); Atom atom2 = new Atom("C"); atom2.setPoint2d(new Point2d(1, 0)); IAtomContainer container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertTrue(GeometryUtil.has2DCoordinates(container)); atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 1)); atom2 = new Atom("C"); atom2.setPoint3d(new Point3d(1, 0, 5)); container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertFalse(GeometryUtil.has2DCoordinates(container)); }
@Test public void testHas3DCoordinates_IAtomContainer() { Atom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); Atom atom2 = new Atom("C"); atom2.setPoint2d(new Point2d(1, 0)); IAtomContainer container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertFalse(GeometryUtil.has3DCoordinates(container)); atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 1)); atom2 = new Atom("C"); atom2.setPoint3d(new Point3d(1, 0, 5)); container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertTrue(GeometryUtil.has3DCoordinates(container)); }
@Test public void testHas2DCoordinatesNew_IAtomContainer() { Atom atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); Atom atom2 = new Atom("C"); atom2.setPoint2d(new Point2d(1, 0)); IAtomContainer container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertEquals(2, GeometryUtil.has2DCoordinatesNew(container)); atom1 = new Atom("C"); atom1.setPoint2d(new Point2d(1, 1)); atom2 = new Atom("C"); atom2.setPoint3d(new Point3d(1, 0, 1)); container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertEquals(1, GeometryUtil.has2DCoordinatesNew(container)); atom1 = new Atom("C"); atom1.setPoint3d(new Point3d(1, 1, 1)); atom2 = new Atom("C"); atom2.setPoint3d(new Point3d(1, 0, 5)); container = new AtomContainer(); container.addAtom(atom1); container.addAtom(atom2); Assert.assertEquals(0, GeometryUtil.has2DCoordinatesNew(container)); }
@Test public void testAtom2DAnd3D() throws Exception { IAtomContainer mol = new AtomContainer(); Atom atom = new Atom("N"); Point2d p2d = new Point2d(1.3, 1.4); atom.setPoint2d(p2d); Point3d p3d = new Point3d(1.3, 1.4, 0.9); atom.setPoint3d(p3d); mol.addAtom(atom); IAtomContainer roundTrippedMol = CMLRoundTripTool.roundTripMolecule(convertor, mol); Assert.assertEquals(1, roundTrippedMol.getAtomCount()); IAtom roundTrippedAtom = roundTrippedMol.getAtom(0); assertEquals(atom.getPoint2d(), roundTrippedAtom.getPoint2d(), 0.00001); assertEquals(atom.getPoint3d(), roundTrippedAtom.getPoint3d(), 0.00001); }