|
27 | 27 | #include <ql/termstructures/yield/piecewiseyieldcurve.hpp> |
28 | 28 | #include <ql/termstructures/yield/flatforward.hpp> |
29 | 29 | #include <ql/time/calendars/nullcalendar.hpp> |
| 30 | +#include <ql/time/calendars/target.hpp> |
30 | 31 | #include <ql/time/daycounters/actual360.hpp> |
31 | 32 | #include <ql/time/daycounters/thirty360.hpp> |
32 | 33 | #include <ql/time/daycounters/actual365fixed.hpp> |
@@ -499,18 +500,34 @@ void OvernightIndexedSwapTest::testBootstrapRegression() { |
499 | 500 | } |
500 | 501 |
|
501 | 502 |
|
| 503 | +void OvernightIndexedSwapTest::test131BootstrapRegression() { |
| 504 | + BOOST_TEST_MESSAGE("Testing 1.31 regression with OIS bootstrap..."); |
| 505 | + |
| 506 | + Date today(11, December, 2012); |
| 507 | + Settings::instance().evaluationDate() = today; |
| 508 | + |
| 509 | + auto eonia = ext::make_shared<Eonia>(); |
| 510 | + |
| 511 | + std::vector<ext::shared_ptr<RateHelper>> helpers; |
| 512 | + helpers.push_back(ext::make_shared<OISRateHelper>(2, 1 * Weeks, Handle<Quote>(ext::make_shared<SimpleQuote>(0.070/100)), eonia)); |
| 513 | + helpers.push_back(ext::make_shared<DatedOISRateHelper>(Date(16, January, 2013), Date(13, February, 2013), Handle<Quote>(ext::make_shared<SimpleQuote>(0.046/100)), eonia)); |
| 514 | + |
| 515 | + auto curve = PiecewiseYieldCurve<ForwardRate,BackwardFlat>(0, TARGET(), helpers, Actual365Fixed()); |
| 516 | + BOOST_CHECK_NO_THROW(curve.nodes()); |
| 517 | +} |
| 518 | + |
| 519 | + |
502 | 520 | test_suite* OvernightIndexedSwapTest::suite() { |
503 | 521 | auto* suite = BOOST_TEST_SUITE("Overnight-indexed swap tests"); |
504 | 522 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testFairRate)); |
505 | 523 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testFairSpread)); |
506 | 524 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testCachedValue)); |
507 | 525 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testBootstrap)); |
508 | 526 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testBootstrapWithArithmeticAverage)); |
509 | | - suite->add(QUANTLIB_TEST_CASE( |
510 | | - &OvernightIndexedSwapTest::testBootstrapWithTelescopicDates)); |
511 | | - suite->add(QUANTLIB_TEST_CASE( |
512 | | - &OvernightIndexedSwapTest::testBootstrapWithTelescopicDatesAndArithmeticAverage)); |
| 527 | + suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testBootstrapWithTelescopicDates)); |
| 528 | + suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testBootstrapWithTelescopicDatesAndArithmeticAverage)); |
513 | 529 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testSeasonedSwaps)); |
514 | 530 | suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::testBootstrapRegression)); |
| 531 | + suite->add(QUANTLIB_TEST_CASE(&OvernightIndexedSwapTest::test131BootstrapRegression)); |
515 | 532 | return suite; |
516 | 533 | } |
0 commit comments