aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests/test_dates.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/test_dates.py')
-rw-r--r--python/tests/test_dates.py43
1 files changed, 32 insertions, 11 deletions
diff --git a/python/tests/test_dates.py b/python/tests/test_dates.py
index 643a618c..85d631f8 100644
--- a/python/tests/test_dates.py
+++ b/python/tests/test_dates.py
@@ -4,9 +4,14 @@ import pandas as pd
import sys
sys.path.append('..')
-from analytics.utils import *
+from analytics.utils import roll_date
from analytics.tranche_functions import cds_accrued
-from pyisda.date import roll_date as roll_date_c, cds_accrued as cds_accrued_c, previous_twentieth
+from pyisda.date import (roll_date as roll_date_c,
+ cds_accrued as cds_accrued_c,
+ previous_twentieth,
+ pydate_to_TDate,
+ TDate_to_pydate)
+from dates import days_accrued
class TestStartDate(unittest.TestCase):
@@ -34,6 +39,7 @@ class TestStartDate(unittest.TestCase):
self.assertEqual(previous_twentieth(pd.Timestamp('2017-03-19')),
datetime.date(2016, 12, 20))
+
class TestEndDate(unittest.TestCase):
def test_enddate(self):
self.assertEqual(roll_date(datetime.date(2016, 9, 20), 5),
@@ -59,9 +65,8 @@ class TestEndDate(unittest.TestCase):
self.assertEqual(roll_date(datetime.date(2015, 12, 20), 5),
datetime.date(2020, 12, 20))
-class TestEndDateC(unittest.TestCase):
- roll_date_c = lambda d, t: TDate_to_pydate(end_dates(pydate_to_TDate(d), t))
+class TestEndDateC(unittest.TestCase):
def test_enddate(self):
self.assertEqual(roll_date_c(datetime.date(2016, 9, 20), 5),
datetime.date(2021, 12, 20))
@@ -86,30 +91,46 @@ class TestEndDateC(unittest.TestCase):
self.assertEqual(roll_date_c(datetime.date(2015, 12, 20), 5),
datetime.date(2020, 12, 20))
+
class TestCdsAccrued(unittest.TestCase):
def test_cdsaccrued(self):
self.assertAlmostEqual(cds_accrued(datetime.date(2016, 4, 1), 100),
- cds_accrued_c(datetime.date(2016, 4, 1), 100))
+ cds_accrued_c(datetime.date(2016, 4, 1), 100))
self.assertAlmostEqual(cds_accrued(datetime.date(2016, 3, 21), 100),
- 0.2777777777777778)
+ 0.2777777777777778)
self.assertAlmostEqual(cds_accrued(datetime.date(2016, 3, 18), 100),
- 24.72222222222222)
+ 24.72222222222222)
#buggy
# self.assertAlmostEqual(cds_accrued(datetime.date(2016, 9, 19), 100),
# 0.)
def test_cdsaccrued_c(self):
self.assertAlmostEqual(cds_accrued_c(datetime.date(2016, 4, 1), 100),
- 3.3333333333333)
+ 3.3333333333333)
self.assertAlmostEqual(cds_accrued_c(datetime.date(2016, 3, 21), 100),
- 0.27777777777777)
+ 0.27777777777777)
self.assertAlmostEqual(cds_accrued_c(datetime.date(2016, 3, 18), 100),
- 24.72222222222)
+ 24.72222222222)
self.assertAlmostEqual(cds_accrued_c(datetime.date(2016, 9, 19), 100),
0.)
self.assertAlmostEqual(cds_accrued_c(datetime.date(2014, 9, 19), 100),
25.55555555556)
-if __name__=="__main__":
+class TestDaysAccrued(unittest.TestCase):
+ def test_days_accrued(self):
+ dates = [
+ ("2015-01-07", 17),
+ ("2015-06-19", 92),
+ ("2015-03-19", 0),
+ ("2015-06-20", 93),
+ ("2015-06-21", 0),
+ ("2015-12-21", 1),
+ ("2015-12-28", 8),
+ ]
+ for date, days in dates:
+ self.assertEqual(days_accrued(date), days)
+
+
+if __name__ == "__main__":
unittest.main()