diff options
Diffstat (limited to 'python/tests/test_index.py')
| -rw-r--r-- | python/tests/test_index.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/python/tests/test_index.py b/python/tests/test_index.py index 18c639e2..bc3f9966 100644 --- a/python/tests/test_index.py +++ b/python/tests/test_index.py @@ -6,7 +6,7 @@ from pyisda.cdsone import upfront_charge from pyisda.utils import build_yc from pyisda.flat_hazard import strike_vec -from analytics import Index +from analytics import Index, ForwardIndex from analytics.index import g class TestStrike(unittest.TestCase): @@ -42,10 +42,24 @@ class TestStrike(unittest.TestCase): self.index.spread = 75 self.assertAlmostEqual(self.index.clean_pv, r[1]) +class TestForwardIndex(unittest.TestCase): + index = Index.from_name("ig", 26, "5yr", + trade_date = datetime.date(2016, 7, 1)) + index.notional = 50e6 + index.spread = 75 + exercise_date = datetime.date(2016, 8, 19) + fi = ForwardIndex(index, exercise_date) + + def test_forward_pv(self): + """default adjusted forward spread and forward annuity match""" + self.assertAlmostEqual(self.fi.forward_pv, + self.fi.forward_annuity * + (self.fi.index.fixed_rate - self.forward_spread) * 1e-4) + def test_forward_pv(self): """default adjusted forward price for trade_date equals clean pv """ - self.assertAlmostEqual(self.index.forward_pv(self.index.trade_date), - self.index.clean_pv) + fi = ForwardIndex(self.index, self.index.trade_date) + self.assertAlmostEqual(fi.forward_pv, self.index.clean_pv / self.index.notional) if __name__=="__main__": unittest.main() |
