def test_math(self): fepot = ChemicalPotential({"Fe": 1}) opot = ChemicalPotential({"O": 2.1}) pots = ChemicalPotential({"Fe": 1, "O": 2.1}) potsx2 = ChemicalPotential({"Fe": 2, "O": 4.2}) feo2 = Composition("FeO2") # test get_energy() self.assertAlmostEqual(pots.get_energy(feo2), 5.2) self.assertAlmostEqual(fepot.get_energy(feo2, False), 1) self.assertRaises(ValueError, fepot.get_energy, feo2) # test multiplication self.assertRaises(TypeError, lambda: (pots * pots)) self.assertDictEqual(pots * 2, potsx2) self.assertDictEqual(2 * pots, potsx2) # test division self.assertDictEqual(potsx2 / 2, pots) self.assertRaises(TypeError, lambda: (pots / pots)) self.assertRaises(TypeError, lambda: (pots / feo2)) # test add/subtract self.assertDictEqual(pots + pots, potsx2) self.assertDictEqual(potsx2 - pots, pots) self.assertDictEqual(fepot + opot, pots) self.assertDictEqual(fepot - opot, pots - opot - opot)
def test_math(self): fepot = ChemicalPotential({"Fe": 1}) opot = ChemicalPotential({"O": 2.1}) pots = ChemicalPotential({"Fe": 1, "O": 2.1}) potsx2 = ChemicalPotential({"Fe": 2, "O": 4.2}) feo2 = Composition("FeO2") # test get_energy() self.assertAlmostEqual(pots.get_energy(feo2), 5.2) self.assertAlmostEqual(fepot.get_energy(feo2, False), 1) self.assertRaises(ValueError, fepot.get_energy, feo2) # test multiplication self.assertEqual(pots.__mul__(pots), NotImplemented) self.assertDictEqual(pots * 2, potsx2) self.assertDictEqual(2 * pots, potsx2) # test division self.assertDictEqual(potsx2 / 2, pots) self.assertEqual(pots.__div__(pots), NotImplemented) self.assertEqual(pots.__div__(feo2), NotImplemented) # test add/subtract self.assertDictEqual(pots + pots, potsx2) self.assertDictEqual(potsx2 - pots, pots) self.assertDictEqual(fepot + opot, pots) self.assertDictEqual(fepot - opot, pots - opot - opot)
def test_math(self): fepot = ChemicalPotential({'Fe': 1}) opot = ChemicalPotential({'O': 2.1}) pots = ChemicalPotential({'Fe': 1, 'O': 2.1}) potsx2 = ChemicalPotential({'Fe': 2, 'O': 4.2}) feo2 = Composition('FeO2') # test get_energy() self.assertAlmostEqual(pots.get_energy(feo2), 5.2) self.assertAlmostEqual(fepot.get_energy(feo2, False), 1) self.assertRaises(ValueError, fepot.get_energy, feo2) # test multiplication self.assertRaises(TypeError, lambda: (pots * pots)) self.assertDictEqual(pots * 2, potsx2) self.assertDictEqual(2 * pots, potsx2) # test division self.assertDictEqual(potsx2 / 2, pots) self.assertRaises(TypeError, lambda: (pots / pots)) self.assertRaises(TypeError, lambda: (pots / feo2)) # test add/subtract self.assertDictEqual(pots + pots, potsx2) self.assertDictEqual(potsx2 - pots, pots) self.assertDictEqual(fepot + opot, pots) self.assertDictEqual(fepot - opot, pots - opot - opot)
def test_init(self): d = {'Fe': 1, Element('Fe'): 1} self.assertRaises(ValueError, ChemicalPotential, d) for k in ChemicalPotential(Fe=1).keys(): self.assertIsInstance(k, Element)