[Python-checkins] bpo-40331: Increase test coverage for the statistics module (GH-19608)

Tzanetos Balitsaris webhook-mailer at python.org
Wed May 13 06:29:57 EDT 2020


https://github.com/python/cpython/commit/b809717c1ead26b4e3693b8a5505dd8f8f666f08
commit: b809717c1ead26b4e3693b8a5505dd8f8f666f08
branch: master
author: Tzanetos Balitsaris <tbalitsaris at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-05-13T13:29:31+03:00
summary:

bpo-40331: Increase test coverage for the statistics module (GH-19608)

files:
M Lib/test/test_statistics.py

diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py
index 0e46a7119f0ef..5c3b1fdd8b110 100644
--- a/Lib/test/test_statistics.py
+++ b/Lib/test/test_statistics.py
@@ -1004,6 +1004,10 @@ def test_nan(self):
             x = statistics._convert(nan, type(nan))
             self.assertTrue(_nan_equal(x, nan))
 
+    def test_invalid_input_type(self):
+        with self.assertRaises(TypeError):
+            statistics._convert(None, float)
+
 
 class FailNegTest(unittest.TestCase):
     """Test _fail_neg private function."""
@@ -1033,6 +1037,50 @@ def test_error_msg(self):
         self.assertEqual(errmsg, msg)
 
 
+class FindLteqTest(unittest.TestCase):
+    # Test _find_lteq private function.
+
+    def test_invalid_input_values(self):
+        for a, x in [
+            ([], 1),
+            ([1, 2], 3),
+            ([1, 3], 2)
+        ]:
+            with self.subTest(a=a, x=x):
+                with self.assertRaises(ValueError):
+                    statistics._find_lteq(a, x)
+
+    def test_locate_successfully(self):
+        for a, x, expected_i in [
+            ([1, 1, 1, 2, 3], 1, 0),
+            ([0, 1, 1, 1, 2, 3], 1, 1),
+            ([1, 2, 3, 3, 3], 3, 2)
+        ]:
+            with self.subTest(a=a, x=x):
+                self.assertEqual(expected_i, statistics._find_lteq(a, x))
+
+
+class FindRteqTest(unittest.TestCase):
+    # Test _find_rteq private function.
+
+    def test_invalid_input_values(self):
+        for a, l, x in [
+            ([1], 2, 1),
+            ([1, 3], 0, 2)
+        ]:
+            with self.assertRaises(ValueError):
+                statistics._find_rteq(a, l, x)
+
+    def test_locate_successfully(self):
+        for a, l, x, expected_i in [
+            ([1, 1, 1, 2, 3], 0, 1, 2),
+            ([0, 1, 1, 1, 2, 3], 0, 1, 3),
+            ([1, 2, 3, 3, 3], 0, 3, 4)
+        ]:
+            with self.subTest(a=a, l=l, x=x):
+                self.assertEqual(expected_i, statistics._find_rteq(a, l, x))
+
+
 # === Tests for public functions ===
 
 class UnivariateCommonMixin:
@@ -1476,6 +1524,18 @@ def test_negative_error(self):
             with self.subTest(values=values):
                 self.assertRaises(exc, self.func, values)
 
+    def test_invalid_type_error(self):
+        # Test error is raised when input contains invalid type(s)
+        for data in [
+            ['3.14'],               # single string
+            ['1', '2', '3'],        # multiple strings
+            [1, '2', 3, '4', 5],    # mixed strings and valid integers
+            [2.3, 3.4, 4.5, '5.6']  # only one string and valid floats
+        ]:
+            with self.subTest(data=data):
+                with self.assertRaises(TypeError):
+                    self.func(data)
+
     def test_ints(self):
         # Test harmonic mean with ints.
         data = [2, 4, 4, 8, 16, 16]



More information about the Python-checkins mailing list