diff --git a/CHANGELOG.md b/CHANGELOG.md index abb2084e..a2b7a9f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Release notes +## Unreleased - Version 3.0.2 + +### Added + +- A string representation of `SpaceGroup` with key information. + +### Changed + +### Deprecated + +### Removed + +### Fixed + + ## Version 3.0.1 – 2019-06-27 ### Added diff --git a/src/diffpy/structure/spacegroupmod.py b/src/diffpy/structure/spacegroupmod.py index a5a451e6..2b2a31d8 100644 --- a/src/diffpy/structure/spacegroupmod.py +++ b/src/diffpy/structure/spacegroupmod.py @@ -262,6 +262,19 @@ def __init__(self, self.pdb_name = pdb_name self.symop_list = symop_list + def __repr__(self): + """Return a string representation of the space group.""" + return ( + "SpaceGroup #%i (%s, %s). Symmetry matrices: %i, " + "point sym. matr.: %i" + ) % ( + self.number, + self.short_name, + self.crystal_system[0] + self.crystal_system[1:].lower(), + self.num_sym_equiv, + self.num_primitive_sym_equiv, + ) + def iter_symops(self): """Iterate over all symmetry operations in the space group. diff --git a/src/diffpy/structure/tests/testspacegroups.py b/src/diffpy/structure/tests/testspacegroups.py index 96b519dc..40c87927 100644 --- a/src/diffpy/structure/tests/testspacegroups.py +++ b/src/diffpy/structure/tests/testspacegroups.py @@ -86,6 +86,44 @@ def test__hashSymOpList(self): self.assertEqual(len(SpaceGroupList), len(hset)) return + def test_spacegroup_representation(self): + """Verify SpaceGroup.__repr__().""" + self.assertEqual( + repr(GetSpaceGroup(1)), + "SpaceGroup #1 (P1, Triclinic). Symmetry matrices: 1, point sym. matr.: 1" + ) + self.assertEqual( + repr(GetSpaceGroup(3)), + "SpaceGroup #3 (P2, Monoclinic). Symmetry matrices: 2, point sym. matr.: 2" + ) + self.assertEqual( + repr(GetSpaceGroup(16)), + ( + "SpaceGroup #16 (P222, Orthorhombic). Symmetry matrices: 4, point sym. " + "matr.: 4" + ) + ) + self.assertEqual( + repr(GetSpaceGroup(75)), + "SpaceGroup #75 (P4, Tetragonal). Symmetry matrices: 4, point sym. matr.: 4" + ) + self.assertEqual( + repr(GetSpaceGroup(143)), + "SpaceGroup #143 (P3, Trigonal). Symmetry matrices: 3, point sym. matr.: 3" + ) + self.assertEqual( + repr(GetSpaceGroup(168)), + "SpaceGroup #168 (P6, Hexagonal). Symmetry matrices: 6, point sym. matr.: 6" + ) + self.assertEqual( + repr(GetSpaceGroup(229)), + ( + "SpaceGroup #229 (Im-3m, Cubic). Symmetry matrices: 96, point sym. " + "matr.: 48" + ) + ) + return + # End of class TestRoutines # ----------------------------------------------------------------------------