diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/tests/test_cds.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/python/tests/test_cds.py b/python/tests/test_cds.py new file mode 100644 index 00000000..f2cef225 --- /dev/null +++ b/python/tests/test_cds.py @@ -0,0 +1,41 @@ +import unittest +from pyisda.cdsone import upfront_charge +from pyisda.utils import build_yc +import datetime + +import sys +sys.path.append('..') +from swaption import Index + +class TestUpfront(unittest.TestCase): + index = Index.from_name("ig", 26, "5yr", + trade_date = datetime.date(2016, 9, 21)) + index.notional = 50e6 + index.spread = 70 + yc = build_yc(index.trade_date, True) + + def test_upfront(self): + self.assertAlmostEqual(-self.index.pv, 685292.81, 2) + + def test_cdsone(self): + + fee_dirty = self.index.notional * ( + upfront_charge(self.index.trade_date, self.index._value_date, + self.index.start_date, + self.index._step_in_date, self.index.start_date, + self.index.end_date, self.index.fixed_rate, + self.index._yc, 70e-4, self.index.recovery, + False)) + fee_clean = self.index.notional * ( + upfront_charge(self.index.trade_date, self.index._value_date, + self.index.start_date, + self.index._step_in_date, self.index.start_date, + self.index.end_date, self.index.fixed_rate, + self.index._yc, 70e-4, self.index.recovery, + True)) + self.assertAlmostEqual(-fee_dirty, 685292.81, 2) + self.assertAlmostEqual(fee_clean, self.index.clean_pv) + + +if __name__=="__main__": + unittest.main() |
