diff --git a/emmet-core/emmet/core/mpid.py b/emmet-core/emmet/core/mpid.py index bdf0aa988b..fd51ed8002 100644 --- a/emmet-core/emmet/core/mpid.py +++ b/emmet-core/emmet/core/mpid.py @@ -54,6 +54,9 @@ def __lt__(self, other: Union["MPID", int, str]): return self.parts < other_parts + def __hash__(self): + return hash(self.parts) + @classmethod def __get_validators__(cls): yield cls.validate diff --git a/tests/emmet-core/test_mpid.py b/tests/emmet-core/test_mpid.py index a7b6c7ddc5..b43ccd1402 100644 --- a/tests/emmet-core/test_mpid.py +++ b/tests/emmet-core/test_mpid.py @@ -11,6 +11,11 @@ def test_mpid(): assert min([MPID("mp-44545"), MPID("mp-33"), MPID("mp-2134234")]) == MPID("mp-33") + assert ( + len(set([MPID("mp-33"), MPID("mp-44545"), MPID("mp-33"), MPID("mp-2134234")])) + == 3 + ) + def test_to_str(): assert str(MPID("mp-149")) == "mp-149"