diff options
author | Raymond Hettinger <rhettinger@users.noreply.github.com> | 2024-05-05 17:29:23 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-05 17:29:23 (GMT) |
commit | 5092ea238e28c7d099c662d416b2a96fdbea4790 (patch) | |
tree | 0266e5db030fd8f5544c5689949e1cb896ef88bb /Lib/test/test_statistics.py | |
parent | 9c13d9e37a194f574b8591da634bf98419786448 (diff) | |
download | cpython-5092ea238e28c7d099c662d416b2a96fdbea4790.zip cpython-5092ea238e28c7d099c662d416b2a96fdbea4790.tar.gz cpython-5092ea238e28c7d099c662d416b2a96fdbea4790.tar.bz2 |
Fix negative bandwidth test and add online code path test. (gh-118600)
Diffstat (limited to 'Lib/test/test_statistics.py')
-rw-r--r-- | Lib/test/test_statistics.py | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py index a60791e..4068075 100644 --- a/Lib/test/test_statistics.py +++ b/Lib/test/test_statistics.py @@ -2402,7 +2402,7 @@ class TestKDE(unittest.TestCase): with self.assertRaises(StatisticsError): kde(sample, h=0.0) # Zero bandwidth with self.assertRaises(StatisticsError): - kde(sample, h=0.0) # Negative bandwidth + kde(sample, h=-1.0) # Negative bandwidth with self.assertRaises(TypeError): kde(sample, h='str') # Wrong bandwidth type with self.assertRaises(StatisticsError): @@ -2426,6 +2426,14 @@ class TestKDE(unittest.TestCase): self.assertEqual(f_hat(-1.0), 1/2) self.assertEqual(f_hat(1.0), 1/2) + # Test online updates to data + + data = [1, 2] + f_hat = kde(data, 5.0, 'triangular') + self.assertEqual(f_hat(100), 0.0) + data.append(100) + self.assertGreater(f_hat(100), 0.0) + def test_kde_kernel_invcdfs(self): kernel_invcdfs = statistics._kernel_invcdfs kde = statistics.kde @@ -2462,7 +2470,7 @@ class TestKDE(unittest.TestCase): with self.assertRaises(TypeError): kde_random(iter(sample), 1.5) # Data is not a sequence with self.assertRaises(StatisticsError): - kde_random(sample, h=0.0) # Zero bandwidth + kde_random(sample, h=-1.0) # Zero bandwidth with self.assertRaises(StatisticsError): kde_random(sample, h=0.0) # Negative bandwidth with self.assertRaises(TypeError): @@ -2474,10 +2482,10 @@ class TestKDE(unittest.TestCase): h = 1.5 kernel = 'cosine' - prng = kde_random(sample, h, kernel) - self.assertEqual(prng.__name__, 'rand') - self.assertIn(kernel, prng.__doc__) - self.assertIn(repr(h), prng.__doc__) + rand = kde_random(sample, h, kernel) + self.assertEqual(rand.__name__, 'rand') + self.assertIn(kernel, rand.__doc__) + self.assertIn(repr(h), rand.__doc__) # Approximate distribution test: Compare a random sample to the expected distribution @@ -2507,6 +2515,14 @@ class TestKDE(unittest.TestCase): for x in xarr: self.assertTrue(math.isclose(p_observed(x), p_expected(x), abs_tol=0.0005)) + # Test online updates to data + + data = [1, 2] + rand = kde_random(data, 5, 'triangular') + self.assertLess(max([rand() for i in range(5000)]), 10) + data.append(100) + self.assertGreater(max(rand() for i in range(5000)), 10) + class TestQuantiles(unittest.TestCase): |