def test_stats_add_same_day_weighted(self, mock_logging): moav.log = mock_logging today = {'rate': 10000.00, 'currency': 'USD', 'count': 2} stats = Stats(int(datetime.date.today().strftime("%Y%j")), today) same_day = {'rate': 5000.00, 'currency': 'USD', 'count': 1} stats.add_day(int(datetime.date.today().strftime("%Y%j")), same_day) day = stats.get_day(int(datetime.date.today().strftime("%Y%j"))) self.assertEqual(3, day['count']) self.assertAlmostEqual(8333.33, day['rate'], 2)
def test_stats_get_ma(self, mock_logging): moav.log = mock_logging today = {'rate': 10000.00, 'currency': 'USD', 'count': 1} stats = Stats(int(datetime.date.today().strftime("%Y%j")), today) another_day = {'rate': 5000.00, 'currency': 'USD', 'count': 1} stats.add_day( int(datetime.date.today().strftime("%Y%j")) - 1, another_day) ma = stats.get_ma(2) self.assertEqual(7500.00, ma)
def test_stats_add_same_day(self, mock_logging): moav.LOG = mock_logging today = {'rate': 10000.00, 'currency': 'USD', 'count': 1} stats = Stats(int(datetime.date.today().strftime("%Y%j")), today) same_day = {'rate': 5000.00, 'currency': 'USD', 'count': 1} stats.add_day(int(datetime.date.today().strftime("%Y%j")), same_day) day = stats.get_day(int(datetime.date.today().strftime("%Y%j"))) self.assertEqual(2, day['count']) self.assertEqual(7500.00, day['rate'])
def test_stats_get_ma_not_enough_data(self, mock_logging): moav.log = mock_logging today = {'rate': 10000.00, 'currency': 'USD', 'count': 1} stats = Stats(int(datetime.date.today().strftime("%Y%j")), today) same_day = {'rate': 5000.00, 'currency': 'USD', 'count': 1} stats.add_day(int(datetime.date.today().strftime("%Y%j")), same_day) ma = stats.get_ma(2) mock_logging.warning.assert_called_with( 'Not enough historical data, requested %d, found %d', 2, 1) self.assertTrue(ma == 7500.00)
def test_stats_get_ma_not_incomplete_data(self, mock_logging): moav.log = mock_logging today = {'rate': 10000.00, 'currency': 'USD', 'count': 1} stats = Stats(int(datetime.date.today().strftime("%Y%j")), today) same_day = {'rate': 5000.00, 'currency': 'USD', 'count': 1} stats.add_day( int(datetime.date.today().strftime("%Y%j")) - 2, same_day) earliest_day = int(datetime.date.today().strftime("%Y%j")) - 1 ma = stats.get_ma(2) mock_logging.warning.assert_called_with( 'Incomplete historical data, earliest day requested %d, found %d', earliest_day, earliest_day - 1) self.assertEqual(7500.00, ma)