diff --git a/tests/snippets/builtin_complex.py b/tests/snippets/builtin_complex.py index ae83aec26..4e6004940 100644 --- a/tests/snippets/builtin_complex.py +++ b/tests/snippets/builtin_complex.py @@ -57,6 +57,13 @@ assert_raises(TypeError, lambda: divmod(2, complex(2, -3))) assert complex(1) ** 2 == 1 assert 2 ** complex(2) == 4 +# __pos__ + +assert +complex(0, 1) == complex(0, 1) +assert +complex(1, 0) == complex(1, 0) +assert +complex(1, -1) == complex(1, -1) +assert +complex(0, 0) == complex(0, 0) + # __neg__ assert -complex(1, -1) == complex(-1, 1) diff --git a/vm/src/obj/objcomplex.rs b/vm/src/obj/objcomplex.rs index fa39c1797..c42882047 100644 --- a/vm/src/obj/objcomplex.rs +++ b/vm/src/obj/objcomplex.rs @@ -183,6 +183,11 @@ impl PyComplex { self.divmod(other, vm) } + #[pymethod(name = "__pos__")] + fn pos(&self) -> Complex64 { + self.value + } + #[pymethod(name = "__neg__")] fn neg(&self) -> Complex64 { -self.value