From 4a8a5c0818826fbb60c653e90c4b2f8a71670bb3 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 18 Feb 2025 09:46:48 +0200 Subject: [PATCH] [3.12] gh-130230: Add new tests for 3-arg pow() with Decimal (GH-130237) (cherry picked from commit b93b7e566e5a4efe7f077af2083140e50bd2b08f) Co-authored-by: Serhiy Storchaka --- Lib/test/test_decimal.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 2ec12439d7fee4..dc1c431a7649fe 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -4463,6 +4463,15 @@ def test_implicit_context(self): self.assertIs(Decimal("NaN").fma(7, 1).is_nan(), True) # three arg power self.assertEqual(pow(Decimal(10), 2, 7), 2) + if self.decimal == C: + self.assertEqual(pow(10, Decimal(2), 7), 2) + self.assertEqual(pow(10, 2, Decimal(7)), 2) + else: + # XXX: Three-arg power doesn't use __rpow__. + self.assertRaises(TypeError, pow, 10, Decimal(2), 7) + # XXX: There is no special method to dispatch on the + # third arg of three-arg power. + self.assertRaises(TypeError, pow, 10, 2, Decimal(7)) # exp self.assertEqual(Decimal("1.01").exp(), 3) # is_normal