diff --git a/tests/snippets/ints.py b/tests/snippets/ints.py index 40061e7e5..f90a398ce 100644 --- a/tests/snippets/ints.py +++ b/tests/snippets/ints.py @@ -52,6 +52,11 @@ with assertRaises(ZeroDivisionError): # real/imag attributes assert (1).real == 1 assert (1).imag == 0 +# numerator/denominator attributes +assert (1).numerator == 1 +assert (1).denominator == 1 +assert (10).numerator == 10 +assert (1).denominator == 1 assert_raises(OverflowError, lambda: 1 << 10 ** 100000) diff --git a/vm/src/obj/objint.rs b/vm/src/obj/objint.rs index 88e0233b2..bf52bd0a0 100644 --- a/vm/src/obj/objint.rs +++ b/vm/src/obj/objint.rs @@ -623,6 +623,16 @@ impl PyInt { fn imag(&self, _vm: &VirtualMachine) -> usize { 0 } + + #[pyproperty] + fn numerator(zelf: PyRef, _vm: &VirtualMachine) -> PyIntRef { + zelf + } + + #[pyproperty] + fn denominator(&self, _vm: &VirtualMachine) -> usize { + 1 + } } #[derive(FromArgs)]