|
41 | 41 | import org.openscience.cdk.interfaces.IAtomContainer; |
42 | 42 | import org.openscience.cdk.interfaces.IAtomType; |
43 | 43 | import org.openscience.cdk.interfaces.IBond; |
| 44 | +import org.openscience.cdk.interfaces.IChemObjectBuilder; |
44 | 45 | import org.openscience.cdk.interfaces.IRing; |
45 | 46 | import org.openscience.cdk.interfaces.IRingSet; |
46 | 47 | import org.openscience.cdk.io.MDLV2000Reader; |
|
52 | 53 | import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; |
53 | 54 | import org.openscience.cdk.tools.manipulator.RingSetManipulator; |
54 | 55 |
|
| 56 | +import static org.junit.Assert.assertFalse; |
| 57 | + |
55 | 58 | /** |
56 | 59 | * @author steinbeck |
57 | 60 | * @author egonw |
@@ -974,5 +977,72 @@ public void testBug2853035() throws Exception { |
974 | 977 | } |
975 | 978 | } |
976 | 979 |
|
| 980 | + /** |
| 981 | + * Due to using iterators some Sp3 atoms in the oxaspirodeadiene example |
| 982 | + * would not be removed and the molcule would incorrectly be found to be |
| 983 | + * aromatic. |
| 984 | + * |
| 985 | + * @cdk.bug 1313 |
| 986 | + */ |
| 987 | + @Test public void ensureAtomsRemoved() throws Exception { |
| 988 | + IAtomContainer mol = oxaspirodeadiene(); |
| 989 | + AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol); |
| 990 | + assertFalse(CDKHueckelAromaticityDetector.detectAromaticity(mol)); |
| 991 | + } |
| 992 | + |
| 993 | + |
| 994 | + /** |
| 995 | + * 8-oxaspiro[4.5]deca-6,9-diene |
| 996 | + * C1CCC2(C1)C=COC=C2 |
| 997 | + * @cdk.inchi InChI=1/C9H12O/c1-2-4-9(3-1)5-7-10-8-6-9/h5-8H,1-4H2 |
| 998 | + */ |
| 999 | + static IAtomContainer oxaspirodeadiene() throws Exception { |
| 1000 | + IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); |
| 1001 | + IAtomContainer mol = builder.newInstance(IAtomContainer.class); |
| 1002 | + IAtom a1 = builder.newInstance(IAtom.class,"C"); |
| 1003 | + mol.addAtom(a1); |
| 1004 | + IAtom a2 = builder.newInstance(IAtom.class,"C"); |
| 1005 | + mol.addAtom(a2); |
| 1006 | + IAtom a3 = builder.newInstance(IAtom.class,"C"); |
| 1007 | + mol.addAtom(a3); |
| 1008 | + IAtom a4 = builder.newInstance(IAtom.class,"C"); |
| 1009 | + mol.addAtom(a4); |
| 1010 | + IAtom a5 = builder.newInstance(IAtom.class,"C"); |
| 1011 | + mol.addAtom(a5); |
| 1012 | + IAtom a6 = builder.newInstance(IAtom.class,"C"); |
| 1013 | + mol.addAtom(a6); |
| 1014 | + IAtom a7 = builder.newInstance(IAtom.class,"C"); |
| 1015 | + mol.addAtom(a7); |
| 1016 | + IAtom a8 = builder.newInstance(IAtom.class,"O"); |
| 1017 | + mol.addAtom(a8); |
| 1018 | + IAtom a9 = builder.newInstance(IAtom.class,"C"); |
| 1019 | + mol.addAtom(a9); |
| 1020 | + IAtom a10 = builder.newInstance(IAtom.class,"C"); |
| 1021 | + mol.addAtom(a10); |
| 1022 | + IBond b1 = builder.newInstance(IBond.class,a1, a2, IBond.Order.SINGLE); |
| 1023 | + mol.addBond(b1); |
| 1024 | + IBond b2 = builder.newInstance(IBond.class,a2, a3, IBond.Order.SINGLE); |
| 1025 | + mol.addBond(b2); |
| 1026 | + IBond b3 = builder.newInstance(IBond.class,a3, a4, IBond.Order.SINGLE); |
| 1027 | + mol.addBond(b3); |
| 1028 | + IBond b4 = builder.newInstance(IBond.class,a4, a5, IBond.Order.SINGLE); |
| 1029 | + mol.addBond(b4); |
| 1030 | + IBond b5 = builder.newInstance(IBond.class,a1, a5, IBond.Order.SINGLE); |
| 1031 | + mol.addBond(b5); |
| 1032 | + IBond b6 = builder.newInstance(IBond.class,a4, a6, IBond.Order.SINGLE); |
| 1033 | + mol.addBond(b6); |
| 1034 | + IBond b7 = builder.newInstance(IBond.class,a6, a7, IBond.Order.DOUBLE); |
| 1035 | + mol.addBond(b7); |
| 1036 | + IBond b8 = builder.newInstance(IBond.class,a7, a8, IBond.Order.SINGLE); |
| 1037 | + mol.addBond(b8); |
| 1038 | + IBond b9 = builder.newInstance(IBond.class,a8, a9, IBond.Order.SINGLE); |
| 1039 | + mol.addBond(b9); |
| 1040 | + IBond b10 = builder.newInstance(IBond.class,a9, a10, IBond.Order.DOUBLE); |
| 1041 | + mol.addBond(b10); |
| 1042 | + IBond b11 = builder.newInstance(IBond.class,a4, a10, IBond.Order.SINGLE); |
| 1043 | + mol.addBond(b11); |
| 1044 | + return mol; |
| 1045 | + } |
| 1046 | + |
977 | 1047 | } |
978 | 1048 |
|
0 commit comments