import unittest import datetime import pandas as pd import sys sys.path.append('..') from analytics.utils import * class TestStartDate(unittest.TestCase): def test_previous_twentieth(self): self.assertEqual(previous_twentieth(datetime.date(2016, 9, 20)), datetime.date(2016, 9, 20)) self.assertEqual(previous_twentieth(datetime.date(2016, 10, 15)), datetime.date(2016, 9, 20)) self.assertEqual(previous_twentieth(datetime.date(2016, 12, 20)), datetime.date(2016, 12, 20)) self.assertEqual(previous_twentieth(datetime.date(2017, 3, 19)), datetime.date(2016, 12, 20)) def test_previous_twentieth_timestamp(self): self.assertEqual(previous_twentieth(pd.Timestamp('2016-09-20')), pd.Timestamp('2016-09-20')) self.assertEqual(previous_twentieth(pd.Timestamp('2016-10-15')), pd.Timestamp('2016-09-20')) self.assertEqual(previous_twentieth(pd.Timestamp('2016-12-20')), pd.Timestamp('2016-12-20')) self.assertEqual(previous_twentieth(pd.Timestamp('2017-03-19')), pd.Timestamp('2016-12-20')) class TestEndDate(unittest.TestCase): def test_enddate(self): self.assertEqual(roll_date(datetime.date(2016, 9, 20), 5), datetime.date(2021, 12, 20)) self.assertEqual(roll_date(datetime.date(2016, 10, 15), 5), datetime.date(2021, 12, 20)) self.assertEqual(roll_date(datetime.date(2017, 3, 19), 5), datetime.date(2021, 12, 20)) self.assertEqual(roll_date(datetime.date(2017, 3, 20), 5), datetime.date(2022, 6, 20)) def test_enddate_pre2015(self): self.assertEqual(roll_date(datetime.date(2014, 9, 20), 5), datetime.date(2019, 12, 20)) self.assertEqual(roll_date(datetime.date(2014, 10, 15), 5), datetime.date(2019, 12, 20)) self.assertEqual(roll_date(datetime.date(2015, 3, 19), 5), datetime.date(2020, 3, 20)) self.assertEqual(roll_date(datetime.date(2015, 3, 20), 5), datetime.date(2020, 6, 20)) if __name__=="__main__": unittest.main()