Exemplo n.º 1
0
class SiteTest(PymatgenTest):
    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5}, [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45], {
            'magmom': 5.1,
            'charge': 4.2
        })
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.properties["magmom"], 5.1)
        self.assertEqual(self.propertied_site.properties["charge"], 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.properties["magmom"], 5.1)
        self.assertEqual(site.properties["charge"], 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species, self.dummy_site.species)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)

    def test_setters(self):
        self.disordered_site.species = "Cu"
        self.assertEqual(self.disordered_site.species, Composition("Cu"))
        self.disordered_site.x = 1.25
        self.disordered_site.y = 1.35
        self.assertEqual(self.disordered_site.coords[0], 1.25)
        self.assertEqual(self.disordered_site.coords[1], 1.35)

        def set_bad_species():
            self.disordered_site.species = {"Cu": 0.5, "Gd": 0.6}

        self.assertRaises(ValueError, set_bad_species)
Exemplo n.º 2
0
class SiteTest(PymatgenTest):

    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5},
                                    [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45],
                                    {'magmom': 5.1, 'charge': 4.2})
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.properties["magmom"], 5.1)
        self.assertEqual(self.propertied_site.properties["charge"], 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.properties["magmom"], 5.1)
        self.assertEqual(site.properties["charge"], 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species, self.dummy_site.species)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)

    def test_setters(self):
        self.disordered_site.species = "Cu"
        self.assertEqual(self.disordered_site.species, Composition("Cu"))
        self.disordered_site.x = 1.25
        self.disordered_site.y = 1.35
        self.assertEqual(self.disordered_site.coords[0], 1.25)
        self.assertEqual(self.disordered_site.coords[1], 1.35)

        def set_bad_species():
            self.disordered_site.species = {"Cu": 0.5, "Gd": 0.6}
        self.assertRaises(ValueError, set_bad_species)
Exemplo n.º 3
0
class SiteTest(PymatgenTest):
    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5}, [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45], {
            'magmom': 5.1,
            'charge': 4.2
        })
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.magmom, 5.1)
        self.assertEqual(self.propertied_site.charge, 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.magmom, 5.1)
        self.assertEqual(site.charge, 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species_and_occu,
                         self.dummy_site.species_and_occu)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)
Exemplo n.º 4
0
class SiteTest(PymatgenTest):

    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5},
                                    [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45],
                                    {'magmom': 5.1, 'charge': 4.2})
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.magmom, 5.1)
        self.assertEqual(self.propertied_site.charge, 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.magmom, 5.1)
        self.assertEqual(site.charge, 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species_and_occu, self.dummy_site.species_and_occu)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)