/** {@inheritDoc} */ @Override public void setHybridization(IAtomType.Hybridization hybridization) { logger.debug("Setting hybridization: ", hybridization); super.setHybridization(hybridization); }
@Test public void testIsSaturated_MissingBondOrders_Ethane() throws Exception { // test ethane with explicit hydrogen IAtomContainer mol = new AtomContainer(); CDKValencyChecker checker = CDKValencyChecker.getInstance(mol.getBuilder()); Atom c1 = new Atom("C"); c1.setImplicitHydrogenCount(2); c1.setHybridization(IAtomType.Hybridization.SP2); Atom c2 = new Atom("C"); c2.setHybridization(IAtomType.Hybridization.SP2); c2.setImplicitHydrogenCount(2); mol.addAtom(c1); mol.addAtom(c2); IBond bond = new Bond(c1, c2, Order.SINGLE); mol.addBond(bond); findAndConfigureAtomTypesForAllAtoms(mol); Assert.assertFalse(checker.isSaturated(mol)); // sanity check bond.setOrder(Order.DOUBLE); findAndConfigureAtomTypesForAllAtoms(mol); Assert.assertTrue(checker.isSaturated(mol)); }
@Test public void testSFBug956923_nonAromatic() throws Exception { String smiles = ""; IAtomContainer molecule = new AtomContainer(); SmilesGenerator sg = new SmilesGenerator(); Atom sp2CarbonWithOneHydrogen = new Atom("C"); sp2CarbonWithOneHydrogen.setHybridization(IAtomType.Hybridization.SP2); sp2CarbonWithOneHydrogen.setImplicitHydrogenCount(1); molecule.addAtom(sp2CarbonWithOneHydrogen); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addBond(0, 1, IBond.Order.SINGLE); molecule.addBond(1, 2, IBond.Order.SINGLE); molecule.addBond(2, 3, IBond.Order.SINGLE); molecule.addBond(3, 4, IBond.Order.SINGLE); molecule.addBond(4, 5, IBond.Order.SINGLE); molecule.addBond(5, 0, IBond.Order.SINGLE); smiles = sg.create(molecule); Assert.assertEquals("[CH]1[CH][CH][CH][CH][CH]1", smiles); }
/** * A bug reported for JChemPaint. * * @cdk.bug 956923 */ @Test public void testSFBug956923_aromatic() throws Exception { String smiles = ""; IAtomContainer molecule = new AtomContainer(); SmilesGenerator sg = new SmilesGenerator().aromatic(); Atom sp2CarbonWithOneHydrogen = new Atom("C"); sp2CarbonWithOneHydrogen.setHybridization(IAtomType.Hybridization.SP2); sp2CarbonWithOneHydrogen.setImplicitHydrogenCount(1); molecule.addAtom(sp2CarbonWithOneHydrogen); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addAtom((Atom) sp2CarbonWithOneHydrogen.clone()); molecule.addBond(0, 1, IBond.Order.SINGLE); molecule.addBond(1, 2, IBond.Order.SINGLE); molecule.addBond(2, 3, IBond.Order.SINGLE); molecule.addBond(3, 4, IBond.Order.SINGLE); molecule.addBond(4, 5, IBond.Order.SINGLE); molecule.addBond(5, 0, IBond.Order.SINGLE); AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); Aromaticity.cdkLegacy().apply(molecule); smiles = sg.create(molecule); Assert.assertEquals("c1ccccc1", smiles); }