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