def test_forcefield(self): atoms = {'H': 'H', 'C': 'C', 'O': 'O'} bonds = {(u'C', u'O'): [1000, 1.4115], (u'C', u'H'): [1000, 1.1041], (u'C', u'C'): [1000, 1.5075]} angles = {(u'C', u'C', u'H'): [42.9, 110.1], (u'H', u'C', u'H'): [38.5, 109.47], (u'H', u'C', u'O'): [56.0, 109.48], (u'C', u'C', u'O'): [86.0, 108.54], (u'C', u'O', u'C'): [74.5, 108.05]} dihedrals = {(u'H', u'C', u'O', u'C'): [0.0, 0.0, -0.73, 0.0], (u'H', u'C', u'C', u'O'): [0.0, 0.0, 0.28, 0.0], (u'C', u'C', u'O', u'C'): [1.76, 0.67, 0.04, 0.0], (u'H', u'C', u'C', u'H'): [0.0, 0.0, 0.28, 0.0], (u'O', u'C', u'C', u'O'): [0.41, -2.1, -0.6, -0.82]} pairs = {(u'C', u'C'): [14976.0, 0.3236, 637.6], (u'H', u'H'): [2649.6, 0.2674, 27.22], (u'O', u'O'): [75844.8, 0.2461, 396.9]} self.assertEqual(self.forcefield.atoms, atoms) self.assertEqual(self.forcefield.bonds, bonds) self.assertEqual(self.forcefield.angles, angles) self.assertEqual(self.forcefield.dihedrals, dihedrals) self.assertEqual(self.forcefield.pairs, pairs) ff = ForceField.from_dict(self.forcefield.as_dict()) self.assertEqual(ff.atoms, atoms) self.assertEqual(ff.bonds, bonds) self.assertEqual(ff.angles, angles) self.assertEqual(ff.dihedrals, dihedrals) self.assertEqual(ff.pairs, pairs)
def test_forcefield_serialization(self): ff = ForceField.from_dict(self.forcefield.as_dict()) self.assertDictEqual(self.forcefield.as_dict(), ff.as_dict())