summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <rhettinger@users.noreply.github.com>2019-02-28 17:16:25 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-02-28 17:16:25 (GMT)
commitef17fdbc1c274dc84c2f611c40449ab84824607e (patch)
tree10619b6016709e2339455421d15c4b9bac2fd2c4
parentae2ea33d5da34a777e77d489b700ff45d753934f (diff)
downloadcpython-ef17fdbc1c274dc84c2f611c40449ab84824607e.zip
cpython-ef17fdbc1c274dc84c2f611c40449ab84824607e.tar.gz
cpython-ef17fdbc1c274dc84c2f611c40449ab84824607e.tar.bz2
bpo-36018: Add special value tests and make minor tweaks to the docs (GH-12096)
https://bugs.python.org/issue36018
-rw-r--r--Doc/library/statistics.rst6
-rw-r--r--Lib/statistics.py2
-rw-r--r--Lib/test/test_statistics.py8
3 files changed, 12 insertions, 4 deletions
diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst
index a0d4d39..8d961b7 100644
--- a/Doc/library/statistics.rst
+++ b/Doc/library/statistics.rst
@@ -482,9 +482,9 @@ of applications in statistics, including simulations and hypothesis testing.
.. class:: NormalDist(mu=0.0, sigma=1.0)
Returns a new *NormalDist* object where *mu* represents the `arithmetic
- mean <https://en.wikipedia.org/wiki/Arithmetic_mean>`_ of data and *sigma*
+ mean <https://en.wikipedia.org/wiki/Arithmetic_mean>`_ and *sigma*
represents the `standard deviation
- <https://en.wikipedia.org/wiki/Standard_deviation>`_ of the data.
+ <https://en.wikipedia.org/wiki/Standard_deviation>`_.
If *sigma* is negative, raises :exc:`StatisticsError`.
@@ -579,7 +579,7 @@ of applications in statistics, including simulations and hypothesis testing.
:class:`NormalDist` Examples and Recipes
----------------------------------------
-A :class:`NormalDist` readily solves classic probability problems.
+:class:`NormalDist` readily solves classic probability problems.
For example, given `historical data for SAT exams
<https://blog.prepscholar.com/sat-standard-deviation>`_ showing that scores
diff --git a/Lib/statistics.py b/Lib/statistics.py
index bab5857..e917a5d 100644
--- a/Lib/statistics.py
+++ b/Lib/statistics.py
@@ -735,7 +735,7 @@ class NormalDist:
return exp((x - self.mu)**2.0 / (-2.0*variance)) / sqrt(tau * variance)
def cdf(self, x):
- 'Cumulative density function: P(X <= x)'
+ 'Cumulative distribution function: P(X <= x)'
if not self.sigma:
raise StatisticsError('cdf() not defined when sigma is zero')
return 0.5 * (1.0 + erf((x - self.mu) / (self.sigma * sqrt(2.0))))
diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py
index d35cdd8..4adc5e4 100644
--- a/Lib/test/test_statistics.py
+++ b/Lib/test/test_statistics.py
@@ -2113,6 +2113,10 @@ class TestNormalDist(unittest.TestCase):
Y = NormalDist(100, 0)
with self.assertRaises(statistics.StatisticsError):
Y.pdf(90)
+ # Special values
+ self.assertEqual(X.pdf(float('-Inf')), 0.0)
+ self.assertEqual(X.pdf(float('Inf')), 0.0)
+ self.assertTrue(math.isnan(X.pdf(float('NaN'))))
def test_cdf(self):
NormalDist = statistics.NormalDist
@@ -2127,6 +2131,10 @@ class TestNormalDist(unittest.TestCase):
Y = NormalDist(100, 0)
with self.assertRaises(statistics.StatisticsError):
Y.cdf(90)
+ # Special values
+ self.assertEqual(X.cdf(float('-Inf')), 0.0)
+ self.assertEqual(X.cdf(float('Inf')), 1.0)
+ self.assertTrue(math.isnan(X.cdf(float('NaN'))))
def test_properties(self):
X = statistics.NormalDist(100, 15)