diff --git a/saucebrush/tests/__init__.py b/saucebrush/tests/__init__.py index 9b8c511..4297ebb 100644 --- a/saucebrush/tests/__init__.py +++ b/saucebrush/tests/__init__.py @@ -3,11 +3,13 @@ from saucebrush.tests.filters import FilterTestCase from saucebrush.tests.sources import SourceTestCase from saucebrush.tests.emitters import EmitterTestCase from saucebrush.tests.recipes import RecipeTestCase +from saucebrush.tests.stats import StatsTestCase filter_suite = unittest.TestLoader().loadTestsFromTestCase(FilterTestCase) source_suite = unittest.TestLoader().loadTestsFromTestCase(SourceTestCase) emitter_suite = unittest.TestLoader().loadTestsFromTestCase(EmitterTestCase) recipe_suite = unittest.TestLoader().loadTestsFromTestCase(RecipeTestCase) +stats_suite = unittest.TestLoader().loadTestsFromTestCase(StatsTestCase) if __name__ == '__main__': unittest.main() diff --git a/saucebrush/tests/stats.py b/saucebrush/tests/stats.py new file mode 100644 index 0000000..f529e07 --- /dev/null +++ b/saucebrush/tests/stats.py @@ -0,0 +1,40 @@ +import unittest +from saucebrush.stats import Sum, Average, Median, MinMax, StandardDeviation + +class StatsTestCase(unittest.TestCase): + + def _simple_data(self): + return [{'a':1, 'b':2, 'c':3}, + {'a':5, 'b':5, 'c':5}, + {'a':1, 'b':10, 'c':100}] + + def test_sum(self): + fltr = Sum('b') + list(fltr.attach(self._simple_data())) + self.assertEqual(fltr.value(), 17) + + def test_average(self): + fltr = Average('c') + list(fltr.attach(self._simple_data())) + self.assertEqual(fltr.value(), 36.0) + + def test_median(self): + fltr = Median('a') + list(fltr.attach(self._simple_data())) + self.assertEqual(fltr.value(), 1) + + def test_minmax(self): + fltr = MinMax('b') + list(fltr.attach(self._simple_data())) + self.assertEqual(fltr.value(), (2, 10)) + + def test_standard_deviation(self): + fltr = StandardDeviation('c') + list(fltr.attach(self._simple_data())) + self.assertEqual(fltr.average(), 36.0) + self.assertEqual(fltr.median(), 5) + self.assertEqual(fltr.value(), (55.4346462061408, 3073.0)) + self.assertEqual(fltr.value(True), (45.2621990922521, 2048.6666666666665)) + +if __name__ == '__main__': + unittest.main()