From f89d2a902dd147d78dc96f83981d3719445cd8cd Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 23 Feb 2019 21:57:39 -0800 Subject: [PATCH] Make __pos__ return a distinct instance --- Lib/statistics.py | 2 +- Lib/test/test_statistics.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Lib/statistics.py b/Lib/statistics.py index a73001ac554c88..bf10e19c0d4138 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -762,7 +762,7 @@ def __truediv__(x1, x2): return NormalDist(x1.mu / x2, x1.sigma / fabs(x2)) def __pos__(x1): - return x1 + return NormalDist(x1.mu, x1.sigma) def __neg__(x1): return NormalDist(-x1.mu, x1.sigma) diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py index a65fbe8dd259f0..9549240f909246 100644 --- a/Lib/test/test_statistics.py +++ b/Lib/test/test_statistics.py @@ -2128,6 +2128,18 @@ def test_cdf(self): with self.assertRaises(statistics.StatisticsError): Y.cdf(90) + def test_unary_operations(self): + NormalDist = statistics.NormalDist + X = NormalDist(100, 12) + Y = +X + self.assertIsNot(X, Y) + self.assertEqual(X.mu, Y.mu) + self.assertEqual(X.sigma, Y.sigma) + Y = -X + self.assertIsNot(X, Y) + self.assertEqual(X.mu, -Y.mu) + self.assertEqual(X.sigma, Y.sigma) + def test_same_type_addition_and_subtraction(self): NormalDist = statistics.NormalDist X = NormalDist(100, 12)