/** * Create a new atom for the provided symbol. The atom is created by cloning * an existing 'template'. Unfortunately IChemObjectBuilders really show a * slow down when SMILES processing. * * @param element Beam element * @return new atom with configured symbol and atomic number */ private IAtom createAtom(Element element) { IAtom atom = builder.newAtom(); atom.setSymbol(element.symbol()); atom.setAtomicNumber(element.atomicNumber()); return atom; } }
@Test public void ignoreCarbon12() throws Exception { IAtomContainer mol = builder.newAtomContainer(); IAtom atom = builder.newAtom(); atom.setSymbol("C"); atom.setMassNumber(12); mol.addAtom(atom); StringWriter sw = new StringWriter(); try (MDLV2000Writer mdlw = new MDLV2000Writer(sw)) { mdlw.getSetting(MDLV2000Writer.OptWriteMajorIsotopes) .setSetting("false"); mdlw.write(mol); } assertThat(sw.toString(), not(containsString("M ISO 1 1 12"))); }
@Test(expected = NoSuchAtomException.class) public void testGetMinBondOrderNoSuchAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom a1 = builder.newAtom(); IAtom a2 = builder.newAtom(); container.addAtom(a1); assertThat(container.getMinimumBondOrder(a2), is(IBond.Order.UNSET)); }
@Test public void writeDimensionField3D() throws Exception { IAtomContainer mol = builder.newAtomContainer(); IAtom atom = builder.newAtom(); atom.setSymbol("C"); atom.setImplicitHydrogenCount(4); atom.setPoint3d(new Point3d(0.5, 0.5, 0.1)); mol.addAtom(atom); StringWriter sw = new StringWriter(); try (MDLV2000Writer mdlw = new MDLV2000Writer(sw)) { mdlw.write(mol); } assertThat(sw.toString(), containsString("3D")); }
@Test(expected = NoSuchAtomException.class) public void testGetMaxBondOrderNoSuchAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom a1 = builder.newAtom(); IAtom a2 = builder.newAtom(); container.addAtom(a1); assertThat(container.getMaximumBondOrder(a2), is(IBond.Order.UNSET)); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedLongPairsMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedLonePairsList(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedAtomCountMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedAtomsCount(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedLongPairCountMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedLonePairsCount(atom); }
@Test public void testGetMaxBondOrderHighBondOrder() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); container.addAtom(builder.newAtom()); container.addAtom(builder.newAtom()); container.addBond(0, 1, IBond.Order.SEXTUPLE); assertThat(container.getMaximumBondOrder(container.getAtom(0)), is(IBond.Order.SEXTUPLE)); }
@Test public void testGetMinBondOrderHighBondOrder() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); container.addAtom(builder.newAtom()); container.addAtom(builder.newAtom()); container.addBond(0, 1, IBond.Order.SEXTUPLE); assertThat(container.getMinimumBondOrder(container.getAtom(0)), is(IBond.Order.SEXTUPLE)); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedBondsMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedBondsList(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedSingleElecsMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedSingleElectronsList(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedSingleElecCountMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedSingleElectronsCount(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedAtomsMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedAtomsList(atom); }
@Test(expected = NoSuchAtomException.class) public void testGetConnectedBondCountMissingAtom() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.getConnectedBondsCount(atom); }
@Test public void testGetMinBondOrderNoBonds() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.addAtom(atom); assertThat(container.getMinimumBondOrder(atom), is(IBond.Order.UNSET)); }
@Test public void testGetMaxBondOrderNoBonds() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom atom = builder.newAtom(); container.addAtom(atom); assertThat(container.getMaximumBondOrder(atom), is(IBond.Order.UNSET)); }
@Test public void testGetMinBondOrderImplH() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom a = builder.newAtom(); a.setImplicitHydrogenCount(1); container.addAtom(a); assertThat(container.getMinimumBondOrder(a), is(IBond.Order.SINGLE)); }
@Test public void testGetMaxBondOrderImplH() { IAtomContainer container = (IAtomContainer) newChemObject(); IChemObjectBuilder builder = container.getBuilder(); IAtom a = builder.newAtom(); a.setImplicitHydrogenCount(1); container.addAtom(a); assertThat(container.getMaximumBondOrder(a), is(IBond.Order.SINGLE)); }
@Test public void addSameAtomTwice() { IAtomContainer mol = (IAtomContainer) newChemObject(); IAtom atom = mol.getBuilder().newAtom(); mol.addAtom(atom); mol.addAtom(atom); assertThat(mol.getAtomCount(), is(1)); }