[Python-checkins] bpo-38521: Fix error in NormalDist.__eq__() (GH-16840)
Raymond Hettinger
webhook-mailer at python.org
Fri Oct 18 17:20:41 EDT 2019
https://github.com/python/cpython/commit/5eabec022b9a10734fcf58faad02c4d233592f64
commit: 5eabec022b9a10734fcf58faad02c4d233592f64
branch: master
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-10-18T14:20:35-07:00
summary:
bpo-38521: Fix error in NormalDist.__eq__() (GH-16840)
files:
A Misc/NEWS.d/next/Library/2019-10-18-13-57-31.bpo-38521.U-7aaM.rst
M Lib/statistics.py
M Lib/test/test_statistics.py
diff --git a/Lib/statistics.py b/Lib/statistics.py
index 0d747b3d6c053..461ffae3f4914 100644
--- a/Lib/statistics.py
+++ b/Lib/statistics.py
@@ -1092,7 +1092,7 @@ def __eq__(x1, x2):
"Two NormalDist objects are equal if their mu and sigma are both equal."
if not isinstance(x2, NormalDist):
return NotImplemented
- return (x1._mu, x2._sigma) == (x2._mu, x2._sigma)
+ return x1._mu == x2._mu and x1._sigma == x2._sigma
def __hash__(self):
"NormalDist objects hash equal if their mu and sigma are both equal."
diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py
index af26473e8fdfc..bebd9b5d6f502 100644
--- a/Lib/test/test_statistics.py
+++ b/Lib/test/test_statistics.py
@@ -2651,9 +2651,13 @@ def test_equality(self):
nd2 = NormalDist(2, 4)
nd3 = NormalDist()
nd4 = NormalDist(2, 4)
+ nd5 = NormalDist(2, 8)
+ nd6 = NormalDist(8, 4)
self.assertNotEqual(nd1, nd2)
self.assertEqual(nd1, nd3)
self.assertEqual(nd2, nd4)
+ self.assertNotEqual(nd2, nd5)
+ self.assertNotEqual(nd2, nd6)
# Test NotImplemented when types are different
class A:
diff --git a/Misc/NEWS.d/next/Library/2019-10-18-13-57-31.bpo-38521.U-7aaM.rst b/Misc/NEWS.d/next/Library/2019-10-18-13-57-31.bpo-38521.U-7aaM.rst
new file mode 100644
index 0000000000000..9335bdc9545c4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-18-13-57-31.bpo-38521.U-7aaM.rst
@@ -0,0 +1 @@
+Fixed erroneous equality comparison in statistics.NormalDist().
More information about the Python-checkins
mailing list