def test_simple(self):
     """ Tests converting standard Gromacs system into Amber prmtop """
     top = load_file(get_fn(os.path.join('03.AlaGlu', 'topol.top')))
     self.assertEqual(top.combining_rule, 'lorentz')
     parm = amber.AmberParm.from_structure(top)
     parm.write_parm(get_fn('ala_glu.parm7', written=True))
     parm = load_file(get_fn('ala_glu.parm7', written=True))
     self.assertIsInstance(parm, amber.AmberParm)
     self.assertEqual(len(top.atoms), len(parm.atoms))
     self.assertEqual(len(top.bonds), len(parm.bonds))
     self.assertEqual(len(top.angles), len(parm.angles))
     self.assertEqual(len(top.residues), len(parm.residues))
     for a1, a2 in zip(top.atoms, parm.atoms):
         self.assertEqual(a1.name, a2.name)
         self.assertEqual(a1.type, a2.type)
         self.assertEqual(a1.atomic_number, a2.atomic_number)
         self.assertEqual(a1.residue.name, a2.residue.name)
         self.assertEqual(a1.residue.idx, a2.residue.idx)
         self.assertAlmostEqual(a1.mass, a2.mass)
         self.assertIs(type(a1), type(a2))
         self.assertAlmostEqual(a1.charge, a2.charge)
         self.assertEqual(set([a.idx for a in a1.bond_partners]),
                          set([a.idx for a in a2.bond_partners]))
         self.assertEqual(set([a.idx for a in a1.angle_partners]),
                          set([a.idx for a in a2.angle_partners]))
         self.assertEqual(set([a.idx for a in a1.dihedral_partners]),
                          set([a.idx for a in a2.dihedral_partners]))
     # Make sure that assign_nbidx_from_types compresses maximally. First
     # add a new, equivalent L-J type. Then call assign_nbidx_from_types
     # again, which should recompress
     before_nbidx = [a.nb_idx for a in parm.atoms]
     addLJType(parm, '@1').execute()
     after_nbidx = [a.nb_idx for a in parm.atoms]
     self.assertEqual(before_nbidx[1:], after_nbidx[1:])
     self.assertEqual(after_nbidx[0], max(before_nbidx) + 1)
     parm.atoms.assign_nbidx_from_types()
     # Should recompress
     self.assertEqual(before_nbidx, [a.nb_idx for a in parm.atoms])
 def test_simple(self):
     """ Tests converting standard Gromacs system into Amber prmtop """
     top = load_file(get_fn(os.path.join('03.AlaGlu', 'topol.top')))
     self.assertEqual(top.combining_rule, 'lorentz')
     parm = amber.AmberParm.from_structure(top)
     parm.write_parm(get_fn('ala_glu.parm7', written=True))
     parm = load_file(get_fn('ala_glu.parm7', written=True))
     self.assertIsInstance(parm, amber.AmberParm)
     self.assertEqual(len(top.atoms), len(parm.atoms))
     self.assertEqual(len(top.bonds), len(parm.bonds))
     self.assertEqual(len(top.angles), len(parm.angles))
     self.assertEqual(len(top.residues), len(parm.residues))
     for a1, a2 in zip(top.atoms, parm.atoms):
         self.assertEqual(a1.name, a2.name)
         self.assertEqual(a1.type, a2.type)
         self.assertEqual(a1.atomic_number, a2.atomic_number)
         self.assertEqual(a1.residue.name, a2.residue.name)
         self.assertEqual(a1.residue.idx, a2.residue.idx)
         self.assertAlmostEqual(a1.mass, a2.mass)
         self.assertIs(type(a1), type(a2))
         self.assertAlmostEqual(a1.charge, a2.charge)
         self.assertEqual(set([a.idx for a in a1.bond_partners]),
                          set([a.idx for a in a2.bond_partners]))
         self.assertEqual(set([a.idx for a in a1.angle_partners]),
                          set([a.idx for a in a2.angle_partners]))
         self.assertEqual(set([a.idx for a in a1.dihedral_partners]),
                          set([a.idx for a in a2.dihedral_partners]))
     # Make sure that assign_nbidx_from_types compresses maximally. First
     # add a new, equivalent L-J type. Then call assign_nbidx_from_types
     # again, which should recompress
     before_nbidx = [a.nb_idx for a in parm.atoms]
     addLJType(parm, '@1').execute()
     after_nbidx = [a.nb_idx for a in parm.atoms]
     self.assertEqual(before_nbidx[1:], after_nbidx[1:])
     self.assertEqual(after_nbidx[0], max(before_nbidx)+1)
     parm.atoms.assign_nbidx_from_types()
     # Should recompress
     self.assertEqual(before_nbidx, [a.nb_idx for a in parm.atoms])