import unittest import datetime from quantlib.indexes.swap.usd_libor_swap import UsdLiborSwapIsdaFixAm from quantlib.time.api import Date, Period, Years from quantlib.settings import Settings from serenitas.analytics.yieldcurve import YC class UsdLiborSwap(unittest.TestCase): def test_creation(self): settings = Settings() settings.evaluation_date = Date.from_datetime(datetime.date(2020, 1, 24)) yc = YC(evaluation_date=datetime.date(2020, 1, 24)) yc.extrapolation = True USISDA30 = UsdLiborSwapIsdaFixAm( Period(30, Years), forwarding=yc, discounting=yc ) USISDA30.add_fixing(Date(25, 1, 2018), 0.02781) USISDA02 = UsdLiborSwapIsdaFixAm( Period(2, Years), forwarding=yc, discounting=yc ) USISDA02.add_fixing(Date(25, 1, 2018), 0.02283) USFS022 = USISDA02.underlying_swap(Date(27, 1, 2020)) USFS0230 = USISDA30.underlying_swap(Date(27, 1, 2020)) self.assertEqual(USFS022.fair_rate, USISDA02.fixing(Date(27, 1, 2020))) self.assertEqual(USFS0230.fair_rate, USISDA30.fixing(Date(27, 1, 2020)))