aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests/test_index.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/test_index.py')
-rw-r--r--python/tests/test_index.py20
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()