Пример #1
0
 def test_merge(self):
     stats = StatCounter([1.0, 2.0, 3.0, 4.0])
     stats.merge(5.0)
     self.assertEqual(stats.count(), 5)
     self.assertEqual(stats.max(), 5.0)
     self.assertEqual(stats.mean(), 3.0)
     self.assertEqual(stats.min(), 1.0)
     self.assertAlmostEqual(stats.stdev(), 1.414213562373095)
     self.assertAlmostEqual(stats.sampleStdev(), 1.5811388300841898)
     self.assertEqual(stats.sum(), 15.0)
     self.assertAlmostEqual(stats.variance(), 2.0)
     self.assertAlmostEqual(stats.sampleVariance(), 2.5)
Пример #2
0
 def test_merge_stats_with_self(self):
     stats = StatCounter([1.0, 2.0, 3.0, 4.0])
     stats.mergeStats(stats)
     self.assertEqual(stats.count(), 8)
     self.assertEqual(stats.max(), 4.0)
     self.assertEqual(stats.mean(), 2.5)
     self.assertEqual(stats.min(), 1.0)
     self.assertAlmostEqual(stats.stdev(), 1.118033988749895)
     self.assertAlmostEqual(stats.sampleStdev(), 1.1952286093343936)
     self.assertEqual(stats.sum(), 20.0)
     self.assertAlmostEqual(stats.variance(), 1.25)
     self.assertAlmostEqual(stats.sampleVariance(), 1.4285714285714286)
Пример #3
0
    def test_variance_when_size_zero(self):
        # SPARK-38854: Test case to improve test coverage when
        # StatCounter argument is empty list or None
        arguments = [[], None]

        for arg in arguments:
            stats = StatCounter(arg)
            self.assertTrue(math.isnan(stats.variance()))
            self.assertTrue(math.isnan(stats.sampleVariance()))
            self.assertEqual(stats.count(), 0)
            self.assertTrue(math.isinf(stats.max()))
            self.assertTrue(math.isinf(stats.min()))
            self.assertEqual(stats.mean(), 0.0)