diff options
| -rw-r--r-- | python/tests/test_cds.py | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/python/tests/test_cds.py b/python/tests/test_cds.py index 921dee62..a01fbe16 100644 --- a/python/tests/test_cds.py +++ b/python/tests/test_cds.py @@ -48,28 +48,39 @@ class TestUpfront(unittest.TestCase): class TestSpreadCurve(unittest.TestCase): - def test_upfront_curves(self): - upfront_curve = 1e-2 * np.array( + def setUp(self): + self.upfront_curve = 1e-2 * np.array( [-2.502394, -4.871879, -9.329793, -12.98734, -15.833254, -17.622571, -20.505054, -24.314297]) spread_curve = 1e-4 * np.array([500, 500, 500, 500, 500, 500, 500, 500]) recovery_curve = np.full(8, 0.3) - trade_date = datetime.date(2018, 6, 18) - step_in_date = datetime.date(2018, 6, 19) - cash_settle_date = datetime.date(2018, 6, 21) + self.trade_date = datetime.date(2018, 6, 18) + self.step_in_date = datetime.date(2018, 6, 19) + self.cash_settle_date = datetime.date(2018, 6, 21) + + self.yc = get_curve(self.trade_date, "USD") + self.tenors = np.array((0.5, 1, 2, 3, 4, 5, 7, 10)) + self.sc = SpreadCurve(self.trade_date, self.yc, None, None, None, + self.tenors, spread_curve, self.upfront_curve, recovery_curve, ticker="AES") - yc = get_curve(trade_date, "USD") - tenors = np.array((0.5, 1, 2, 3, 4, 5, 7, 10)) - sc = SpreadCurve(trade_date, yc, None, None, None, - tenors, spread_curve, upfront_curve, recovery_curve, ticker="AES") - maturities = [roll_date(trade_date, t) for t in tenors] - for m, upf in zip(maturities, upfront_curve): + def test_upfront_curves(self): + + maturities = [roll_date(self.trade_date, t) for t in self.tenors] + for m, upf in zip(maturities, self.upfront_curve): pl = ContingentLeg(datetime.date(2017, 9, 20), m, 1) cl = FeeLeg(datetime.date(2017, 9, 20), m, True, 1, 0.05) - a = pl.pv(trade_date, step_in_date, cash_settle_date, yc, sc, 0.3) - b = cl.pv(trade_date, step_in_date, cash_settle_date, yc, sc, True) + a = pl.pv(self.trade_date, self.step_in_date, self.cash_settle_date, self.yc, self.sc, 0.3) + b = cl.pv(self.trade_date, self.step_in_date, self.cash_settle_date, self.yc, self.sc, True) self.assertAlmostEqual(a - b, upf) + def test_roundtrip(self): + sc_copy = SpreadCurve.from_bytes(self.sc.as_buffer(True), True) + self.assertEqual(sc_copy.inspect(), self.sc.inspect()) + self.assertEqual(sc_copy.full_ticker, self.sc.full_ticker) + sc_copy = SpreadCurve.from_bytes(self.sc.as_buffer(False), False) + self.assertEqual(sc_copy.inspect(), self.sc.inspect()) + self.assertEqual(sc_copy.full_ticker, self.sc.full_ticker) + if __name__ == "__main__": unittest.main() |
