Ejemplo n.º 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)
Ejemplo n.º 2
0
class NAStatCounter:
    def __init__(self):
        self.stats = StatCounter()
        self.missing = long(0)

    def add(self, x):
        if x is None:
            self.missing += 1
        else:
            self.stats.merge(x)

        return self

    def mergeStats(self, other):

        self.stats.mergeStats(other.stats)
        self.missing += other.missing

        return self

    def __repr__(self):
        return "stats: {0}, NaN: {1}".format(self.stats, self.missing)
class NAStatCounter:

    def __init__(self):
        self.stats = StatCounter()
        self.missing = long(0)

    def add(self, x):
        if x is None:
            self.missing += 1
        else:
            self.stats.merge(x)

        return self

    def mergeStats(self, other):

        self.stats.mergeStats(other.stats)
        self.missing += other.missing

        return self

    def __repr__(self):
        return "stats: {0}, NaN: {1}".format(self.stats, self.missing)
 def stats(d):
     s = StatCounter()
     return s.merge(((d.days * 24 * 3600) + d.seconds))