From 9e679deefdedccf7a43a233aee4c0a2f9a09d5b8 Mon Sep 17 00:00:00 2001 From: Felix Wittmann Date: Sat, 19 Dec 2020 13:01:56 +0100 Subject: [PATCH 1/2] Update mod.py from mod import Mod Mod(25, 35) // 12 should yield 5, because 5*12=60 which is 25 more the 35. The current implementation however leads to en error: >> Mod(25, 35) // 12 ValueError: the value (25 % 35) cannot be inverted Therefore I propose the change. --- mod.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mod.py b/mod.py index 9c05664..93d57be 100644 --- a/mod.py +++ b/mod.py @@ -195,8 +195,7 @@ def __floordiv__(self, other): 'integer division by {}'.format(converted) ) - inverted = (other * self.inverse) - return inverted.inverse + return self._value* converted.inverse def __rfloordiv__(self, other): converted = self._convert(other) From 2b27ef64155cecafde9b8ec84734e93ebf6a00b9 Mon Sep 17 00:00:00 2001 From: "H. Felix Wittmann" Date: Sun, 17 Jul 2022 12:12:38 +0200 Subject: [PATCH 2/2] Made desired changes --- mod.py | 2 +- tests/test_mod.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mod.py b/mod.py index 93d57be..e59356e 100644 --- a/mod.py +++ b/mod.py @@ -195,7 +195,7 @@ def __floordiv__(self, other): 'integer division by {}'.format(converted) ) - return self._value* converted.inverse + return self._value * converted.inverse def __rfloordiv__(self, other): converted = self._convert(other) diff --git a/tests/test_mod.py b/tests/test_mod.py index f0a36cf..260e955 100644 --- a/tests/test_mod.py +++ b/tests/test_mod.py @@ -24,7 +24,10 @@ def test_new_object(): def test_number(): number = Mod(7, 17) assert int(number) == 7 - + +def test_division(): + number2 = Mod(25, 35) // 12 + assert int(number2) == 5 def test_modulus(): number = Mod(7, 17)