From 914454e4bae2e41db9db3c60e74f9e71a7b24904 Mon Sep 17 00:00:00 2001 From: Do Nhat Minh Date: Mon, 10 Feb 2020 11:19:38 -0500 Subject: [PATCH] Add __pos__ to PyComplex --- tests/snippets/builtin_complex.py | 7 +++++++ vm/src/obj/objcomplex.rs | 5 +++++ 2 files changed, 12 insertions(+) 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