aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/tests/test_tranche_basket.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/python/tests/test_tranche_basket.py b/python/tests/test_tranche_basket.py
index a3a13038..6383f6fd 100644
--- a/python/tests/test_tranche_basket.py
+++ b/python/tests/test_tranche_basket.py
@@ -1,6 +1,7 @@
import unittest
import datetime
-from analytics import DualCorrTranche
+from analytics import DualCorrTranche, TrancheBasket
+import numpy as np
import pickle
@@ -12,4 +13,21 @@ class TestPickle(unittest.TestCase):
self.assertTrue(hash(a) == hash(self.bozeman))
def test_pv(self):
- self.assertAlmostEqual(self.bozeman.upfront, 0.)
+ self.assertAlmostEqual(self.bozeman.upfront, 0.0)
+
+
+class TestTopDown(unittest.TestCase):
+ eu30 = TrancheBasket("EU", 30, "5yr", value_date=datetime.date(2019, 8, 15))
+ market_quotes = (
+ eu30.tranche_quotes.running * eu30.accrued() + eu30.tranche_quotes.quotes
+ )
+
+ def test_bottomup(self):
+ self.eu30.build_skew()
+ upfronts = 1 - self.eu30.tranche_pvs().bond_price
+ self.assertTrue(np.allclose(upfronts[:-1], self.market_quotes[:-1]))
+
+ def test_topdown(self):
+ self.eu30.build_skew("topdown")
+ upfronts = 1 - self.eu30.tranche_pvs(complement=True).bond_price
+ self.assertTrue(np.allclose(upfronts[1:], self.market_quotes[1:]))