aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests')
-rw-r--r--python/tests/test_index.py7
-rw-r--r--python/tests/test_swaption.py13
2 files changed, 17 insertions, 3 deletions
diff --git a/python/tests/test_index.py b/python/tests/test_index.py
index eaea83d6..18c639e2 100644
--- a/python/tests/test_index.py
+++ b/python/tests/test_index.py
@@ -16,9 +16,14 @@ class TestStrike(unittest.TestCase):
index.spread = 75
exercise_date = datetime.date(2016, 8, 19)
+ def test_pv(self):
+ self.assertAlmostEqual(self.index.clean_pv,
+ g(self.index, self.index.spread, self.index.trade_date) *
+ self.index.notional)
+
def test_strike(self):
"""strike price equals clean_pv using expected forward yield curve"""
- strike = g(self.index, self.index.spread, self.exercise_date, False) * self.index.notional
+ strike = g(self.index, self.index.spread, self.exercise_date) * self.index.notional
old_yc = self.index._yc
self.index.trade_date = self.exercise_date
self.index._yc = old_yc.expected_forward_curve(self.exercise_date)
diff --git a/python/tests/test_swaption.py b/python/tests/test_swaption.py
index 46ba83b0..c3b008c6 100644
--- a/python/tests/test_swaption.py
+++ b/python/tests/test_swaption.py
@@ -10,7 +10,7 @@ class TestPutCallParity(unittest.TestCase):
index = Index.from_name("ig", 27, "5yr",
trade_date = datetime.date(2016, 10, 25))
index.spread = 74
- exercise_date = datetime.date(2016, 12, 21)
+ exercise_date = datetime.date(2017, 3, 15)
strike = 82.5
def test_parity(self):
@@ -21,7 +21,16 @@ class TestPutCallParity(unittest.TestCase):
df = self.index._yc.discount_factor(payer.exercise_date_settle)
self.assertAlmostEqual(payer.pv - receiver.pv,
df * (self.index.forward_pv(self.exercise_date)/self.index.notional -
- g(self.index, self.strike, self.exercise_date)))
+ g(self.index, self.strike, self.exercise_date, payer._forward_yc)))
+ def test_parity_pvblack(self):
+ payer = Swaption(self.index, self.exercise_date, self.strike)
+ receiver = Swaption(self.index, self.exercise_date, self.strike, "receiver")
+ payer.sigma = 0.416
+ receiver.sigma = 0.416
+ df = self.index._yc.discount_factor(payer.exercise_date_settle)
+ self.assertAlmostEqual(payer.pv_black - receiver.pv_black,
+ df * (self.index.forward_pv(self.exercise_date)/self.index.notional -
+ g(self.index, self.strike, self.exercise_date, payer._forward_yc)))
if __name__=="__main__":
unittest.main()