MDMolecule extends AtomContainer { public MDMolecule() { super(); } MDMolecule();  MDMolecule(IAtomContainer container); List<Residue> getResidues(); void setResidues(List<Residue> residues); void addResidue(Residue residue); List<ChargeGroup> getChargeGroups(); void setChargeGroups(List<ChargeGroup> chargeGroups); void addChargeGroup(ChargeGroup chargeGroup);  }
@Test public void testMDMolecule() { MDMolecule mol = new MDMolecule(); mol.addAtom(new Atom("C")); mol.addAtom(new Atom("C")); mol.addAtom(new Atom("C")); mol.addAtom(new Atom("C")); mol.addAtom(new Atom("C")); mol.addAtom(new Atom("C")); mol.addBond(0, 1, IBond.Order.SINGLE); mol.addBond(1, 2, IBond.Order.DOUBLE); mol.addBond(2, 3, IBond.Order.SINGLE); mol.addBond(3, 4, IBond.Order.DOUBLE); mol.addBond(4, 5, IBond.Order.SINGLE); mol.addBond(5, 0, IBond.Order.DOUBLE); AtomContainer ac = new AtomContainer(); ac.addAtom(mol.getAtom(0)); ac.addAtom(mol.getAtom(1)); ac.addAtom(mol.getAtom(2)); Residue res1 = new Residue(ac, 0, mol); res1.setName("myResidue1"); mol.addResidue(res1); AtomContainer ac2 = new AtomContainer(); ac2.addAtom(mol.getAtom(3)); ac2.addAtom(mol.getAtom(4)); ac2.addAtom(mol.getAtom(5)); Residue res2 = new Residue(ac2, 1, mol); res2.setName("myResidue2"); mol.addResidue(res2); Assert.assertEquals(res1.getParentMolecule(), mol); Assert.assertEquals(res2.getParentMolecule(), mol); Assert.assertEquals(res1.getAtomCount(), 3); Assert.assertEquals(res2.getAtomCount(), 3); Assert.assertEquals(res1.getName(), "myResidue1"); Assert.assertEquals(res2.getName(), "myResidue2"); Assert.assertNotNull(mol.getResidues()); Assert.assertEquals(mol.getResidues().size(), 2); Assert.assertEquals(mol.getResidues().get(0), res1); Assert.assertEquals(mol.getResidues().get(1), res2); AtomContainer ac3 = new AtomContainer(); ac3.addAtom(mol.getAtom(0)); ac3.addAtom(mol.getAtom(1)); ChargeGroup chg1 = new ChargeGroup(ac3, 0, mol); mol.addChargeGroup(chg1); AtomContainer ac4 = new AtomContainer(); ac4.addAtom(mol.getAtom(2)); ac4.addAtom(mol.getAtom(3)); ac4.addAtom(mol.getAtom(4)); ac4.addAtom(mol.getAtom(5)); ChargeGroup chg2 = new ChargeGroup(ac4, 1, mol); mol.addChargeGroup(chg2); Assert.assertEquals(chg1.getParentMolecule(), mol); Assert.assertEquals(chg2.getParentMolecule(), mol); Assert.assertEquals(chg1.getAtomCount(), 2); Assert.assertEquals(chg2.getAtomCount(), 4); Assert.assertNotNull(mol.getChargeGroups()); Assert.assertEquals(mol.getChargeGroups().size(), 2); Assert.assertEquals(mol.getChargeGroups().get(0), chg1); Assert.assertEquals(mol.getChargeGroups().get(1), chg2); }