[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月18日T14: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

AltStyle によって変換されたページ (->オリジナル) /