コード例 #1
0
ファイル: test_composition.py プロジェクト: anhhv/pymatgen
    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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: test_composition.py プロジェクト: tongqcx/pymatgen
    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)
コード例 #4
0
ファイル: test_composition.py プロジェクト: tongqcx/pymatgen
 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)