diff options
Diffstat (limited to 'universe/data_structures_and_algorithms/temperature-tracker.py')
-rw-r--r-- | universe/data_structures_and_algorithms/temperature-tracker.py | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/universe/data_structures_and_algorithms/temperature-tracker.py b/universe/data_structures_and_algorithms/temperature-tracker.py deleted file mode 100644 index 6b042182f01c..000000000000 --- a/universe/data_structures_and_algorithms/temperature-tracker.py +++ /dev/null @@ -1,84 +0,0 @@ -import unittest - - -################################################################################ -# Solution -################################################################################ -class TempTracker(object): - def __init__(self): - # min / max - self.min = None - self.max = None - # mean - self.sum = 0 - self.num = 0 - # mode - self.nums = [0] * 111 - self.mode_num = 0 - self.mode = None - - def insert(self, x): - # min / max - if not self.min or x < self.min: - self.min = x - if not self.max or x > self.max: - self.max = x - # mean - self.sum += x - self.num += 1 - # mode - self.nums[x] += 1 - if self.nums[x] >= self.mode_num: - self.mode_num = self.nums[x] - self.mode = x - - def get_max(self): - return self.max - - def get_min(self): - return self.min - - def get_mean(self): - return self.sum / self.num - - def get_mode(self): - return self.mode - - -# Tests - - -class Test(unittest.TestCase): - def test_tracker_usage(self): - tracker = TempTracker() - - tracker.insert(50) - msg = 'failed on first temp recorded' - self.assertEqual(tracker.get_max(), 50, msg='max ' + msg) - self.assertEqual(tracker.get_min(), 50, msg='min ' + msg) - self.assertEqual(tracker.get_mean(), 50.0, msg='mean ' + msg) - self.assertEqual(tracker.get_mode(), 50, msg='mode ' + msg) - - tracker.insert(80) - msg = 'failed on higher temp recorded' - self.assertEqual(tracker.get_max(), 80, msg='max ' + msg) - self.assertEqual(tracker.get_min(), 50, msg='min ' + msg) - self.assertEqual(tracker.get_mean(), 65.0, msg='mean ' + msg) - self.assertIn(tracker.get_mode(), [50, 80], msg='mode ' + msg) - - tracker.insert(80) - msg = 'failed on third temp recorded' - self.assertEqual(tracker.get_max(), 80, msg='max ' + msg) - self.assertEqual(tracker.get_min(), 50, msg='min ' + msg) - self.assertEqual(tracker.get_mean(), 70.0, msg='mean ' + msg) - self.assertEqual(tracker.get_mode(), 80, msg='mode ' + msg) - - tracker.insert(30) - msg = 'failed on lower temp recorded' - self.assertEqual(tracker.get_max(), 80, msg='max ' + msg) - self.assertEqual(tracker.get_min(), 30, msg='min ' + msg) - self.assertEqual(tracker.get_mean(), 60.0, msg='mean ' + msg) - self.assertEqual(tracker.get_mode(), 80, msg='mode ' + msg) - - -unittest.main(verbosity=2) |