diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/tests/test_index.py | 7 | ||||
| -rw-r--r-- | python/tests/test_swaption.py | 13 |
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() |
