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())