def test_basic(self): self.add_values([(5, 1.0), (10, 2.0), (2, 0.5), (0, 0.1), (-3, 0.2)]) self.assertFalse(self.stats.empty) self.assertTrue(eq(self.stats.sum_weights, 3.8), self.stats.sum_weights) self.assertTrue(eq(self.stats.sum_values, 25.4), self.stats.sum_values) self.assertTrue(eq(self.stats.average, 6.6842105263157894736842105263158), self.stats.average) self.assertEqual(self.stats.minimum, -3) self.assertEqual(self.stats.maximum, 10)
def test_simple(self): self.add_values([(3, 1.5)]) self.assertTrue(eq(self.stats.sum_weights, 1.5), self.stats.sum_weights) self.assertTrue(eq(self.stats.sum_values, 4.5), self.stats.sum_values) self.assertTrue(eq(self.stats.average, 3), self.stats.average) self.assertTrue(eq(self.stats.variance, 0), self.stats.variance) self.assertTrue(eq(self.stats.std_dev, 0), self.stats.std_dev) self.assertEqual(self.stats.minimum, 3) self.assertEqual(self.stats.maximum, 3)
def test_basic(self): self.add_values([(5, 1.0), (10, 2.0), (2, 0.5), (0, 0.1), (-3, 0.2)]) self.assertFalse(self.stats.empty) self.assertTrue(eq(self.stats.sum_weights, 3.8), self.stats.sum_weights) self.assertTrue(eq(self.stats.sum_values, 25.4), self.stats.sum_values) self.assertTrue( eq(self.stats.average, 6.6842105263157894736842105263158), self.stats.average) self.assertEqual(self.stats.minimum, -3) self.assertEqual(self.stats.maximum, 10)
def test_memory_stats(self): stats = MemoryStats(get_engine(STATS_DUMP=True)) self.assertEqual(stats.get_stats(), {}) self.assertEqual(stats.get_value('anything'), None) self.assertEqual(stats.get_value('anything', 'default'), 'default') stats.set_value('test', 'value') self.assertEqual(stats.get_stats(), {'test': 'value'}) stats.set_value('test2', 23) self.assertEqual(stats.get_stats(), {'test': 'value', 'test2': 23}) self.assertEqual(stats.get_value('test2'), 23) stats.inc_value('test2') self.assertEqual(stats.get_value('test2'), 24) stats.inc_value('test2', 6) self.assertEqual(stats.get_value('test2'), 30) stats.max_value('test2', 6) self.assertEqual(stats.get_value('test2'), 30) stats.max_value('test2', 40) self.assertEqual(stats.get_value('test2'), 40) stats.max_value('test3', 1) self.assertEqual(stats.get_value('test3'), 1) stats.min_value('test2', 60) self.assertEqual(stats.get_value('test2'), 40) stats.min_value('test2', 35) self.assertEqual(stats.get_value('test2'), 35) stats.min_value('test4', 7) self.assertEqual(stats.get_value('test4'), 7) stats.add_value('stats', 3) stats.add_value('stats', 2, 2.0) statistics = stats.get_value('stats') self.assertTrue(eq(statistics.average, 7.0/3.0), statistics.average) self.assertRaises(RuntimeError, stats.add_value, 'test4', 1) stats.add_sample('samples', 3, 'hello') stats.add_sample('samples', 2, 'world') samples = stats.get_value('samples') self.assertEqual(len(samples), 2) self.assertListEqual(samples.samples, [(3, 'hello'), (2, 'world')]) self.assertRaises(RuntimeError, stats.add_value, 'test4', 5, '!') stats.dump_stats() logged = self.lw.get_first_line(clear=False) self.assertTrue(logged.startswith('[crawlmi] INFO: Dumping crawlmi stats:')) logged = self.lw.get_logged() self.assertIn('test', logged) self.assertIn('test2', logged) self.assertIn('test3', logged) self.assertIn('test3', logged) self.assertIn('stats', logged) self.assertIn('samples', logged)
def test_variance(self): # example taken from http://en.wikipedia.org/wiki/Standard_deviation self.add_values([2, 4, 4, 4, 5, 5, 7, 9]) self.assertTrue(eq(self.stats.variance, 4), self.stats.variance) self.assertTrue(eq(self.stats.std_dev, 2), self.stats.std_dev)