/** * {@inheritDoc} */ @Override public Stereo getStereo() { return bond.getStereo(); }
/** * A bond is wedge if it points up or down. * * @param bond a non-null bond * @return the bond is wedge (bold or hashed) */ static boolean isWedged(IBond bond) { return (bond.getStereo() == IBond.Stereo.UP || bond.getStereo() == IBond.Stereo.DOWN || bond.getStereo() == IBond.Stereo.UP_INVERTED || bond.getStereo() == IBond.Stereo.DOWN_INVERTED); }
/** * Check to see if a bond is a stereo bond. * * @param bond the bond to check * @return true if the bond has stero information */ private boolean isStereoBond(IBond bond) { return bond.getStereo() != IBond.Stereo.NONE && bond.getStereo() != (IBond.Stereo) CDKConstants.UNSET && bond.getStereo() != IBond.Stereo.E_Z_BY_COORDINATES; }
/** * {@inheritDoc} */ @Override public Stereo getStereo() { return bond.getStereo(); }
/** * A plain bond is a non-stereo sigma bond that is displayed simply as a line. * * @param bond a non-null bond * @return the bond is plain */ static boolean isPlainBond(IBond bond) { return bond.getOrder() == IBond.Order.SINGLE && (bond.getStereo() == IBond.Stereo.NONE || bond.getStereo() == null); }
/** * Helper method determines if a bond is defined (not null) and whether * it is a sigma (single) bond with no stereo attribute (wedge/hatch). * * @param bond the bond to test * @return the bond is a planar sigma bond */ private static boolean isPlanarSigmaBond(IBond bond) { return bond != null && IBond.Order.SINGLE.equals(bond.getOrder()) && IBond.Stereo.NONE.equals(bond.getStereo()); }
private ValidationReport validateStereoChemistry(IBond bond) { ValidationReport report = new ValidationReport(); ValidationTest bondStereo = new ValidationTest(bond, "Defining stereochemistry on bonds is not safe.", "Use atom based stereochemistry."); if (bond.getStereo() != IBond.Stereo.NONE) { report.addWarning(bondStereo); } else { report.addOK(bondStereo); } return report; }
@Test public void testElevation_Up() throws Exception { IBond bond = mock(IBond.class); when(bond.getStereo()).thenReturn(IBond.Stereo.UP); assertThat(GeometricCumulativeDoubleBondFactory.elevation(bond), is(+1)); }
@Test public void upBond() throws Exception { String input = " 1 3 1 1 0 0 0"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond.getStereo(), is(IBond.Stereo.UP)); }
@Test public void singleOrDoubleBond() throws Exception { String input = " 1 3 5 0 0 0 0"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); assertThat(bond, is(instanceOf(QueryBond.class))); assertThat(((QueryBond) bond).getExpression().type(), is(Expr.Type.SINGLE_OR_DOUBLE)); }
@Test public void shortLineWithPadding() throws Exception { String input = " 1 3 1 0 "; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getBegin(), is(atoms[0])); assertThat(bond.getEnd(), is(atoms[2])); assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); }
@Test public void shortLineNoStereo() throws Exception { String input = " 1 3 1"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getBegin(), is(atoms[0])); assertThat(bond.getEnd(), is(atoms[2])); assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); } }
@Test public void singleBond() throws Exception { String input = " 1 3 1 0 0 0 0"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); }
@Test public void aromaticBond() throws Exception { String input = " 1 3 4 0 0 0 0"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertTrue(bond.getFlag(CDKConstants.ISAROMATIC)); assertTrue(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); }
@Test public void dontCrossEtheneDoubleBond() { IAtomContainer m = new AtomContainer(); m.addAtom(atom("C", 2, 0.000, 0.000)); m.addAtom(atom("C", 2, 1.299, -0.750)); m.addBond(0, 1, IBond.Order.DOUBLE); NonplanarBonds.assign(m); assertThat(m.getBond(0).getStereo(), is(IBond.Stereo.NONE)); }
@Test public void testGetStereo() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond b = object.getBuilder().newInstance(IBond.class, c, o, IBond.Order.DOUBLE, IBond.Stereo.UP); Assert.assertEquals(IBond.Stereo.UP, b.getStereo()); }
@Test public void testBond() { IBond bond = new Bond(); Assert.assertEquals(0, bond.getAtomCount()); Assert.assertNull(bond.getBegin()); Assert.assertNull(bond.getEnd()); Assert.assertNull(bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void testBond_IAtom_IAtom() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertEquals(IBond.Order.SINGLE, bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void testBond_IAtom_IAtom_IBond_Order() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o, IBond.Order.DOUBLE); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertTrue(bond.getOrder() == IBond.Order.DOUBLE); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void testBond_IAtom_IAtom() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertEquals(IBond.Order.SINGLE, bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }