From 909f7c66626bab00a3402fa5fc6b7387d6721409 Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Fri, 19 Feb 2021 23:34:21 +0100 Subject: [PATCH 1/3] Use initializer lists to create test data --- test-suite/andreasenhugevolatilityinterpl.cpp | 12 +- test-suite/barrieroption.cpp | 7 +- test-suite/basismodels.cpp | 65 ++--- test-suite/basketoption.cpp | 23 +- test-suite/brownianbridge.cpp | 31 +-- test-suite/capfloor.cpp | 27 +- test-suite/cms.cpp | 61 ++--- test-suite/covariance.cpp | 19 +- test-suite/creditdefaultswap.cpp | 120 ++++---- test-suite/curvestates.cpp | 3 - test-suite/daycounters.cpp | 37 ++- test-suite/defaultprobabilitycurves.cpp | 26 +- test-suite/dividendoption.cpp | 29 +- test-suite/europeanoption.cpp | 19 +- test-suite/fdmlinearop.cpp | 137 ++++------ test-suite/forwardrateagreement.cpp | 9 +- test-suite/hestonmodel.cpp | 63 ++--- test-suite/hestonslvmodel.cpp | 38 ++- test-suite/hybridhestonhullwhiteprocess.cpp | 55 ++-- test-suite/inflation.cpp | 24 +- test-suite/inflationcapfloor.cpp | 30 +- test-suite/inflationcapflooredcoupon.cpp | 12 +- test-suite/inflationcpibond.cpp | 12 +- test-suite/inflationcpiswap.cpp | 3 +- test-suite/inflationvolatility.cpp | 4 - test-suite/interpolations.cpp | 170 +++++------- test-suite/libormarketmodel.cpp | 16 +- test-suite/libormarketmodelprocess.cpp | 8 +- test-suite/linearleastsquaresregression.cpp | 36 +-- test-suite/margrabeoption.cpp | 12 +- test-suite/marketmodel.cpp | 3 - test-suite/marketmodel_cms.cpp | 3 - test-suite/marketmodel_smm.cpp | 3 - .../marketmodel_smmcapletalphacalibration.cpp | 3 - .../marketmodel_smmcapletcalibration.cpp | 3 - .../marketmodel_smmcaplethomocalibration.cpp | 3 - test-suite/markovfunctional.cpp | 258 +++++++----------- test-suite/nthtodefault.cpp | 22 +- test-suite/observable.cpp | 15 +- test-suite/optimizers.cpp | 97 +++---- test-suite/optionletstripper.cpp | 229 ++++++++-------- .../piecewisezerospreadedtermstructure.cpp | 109 +++----- test-suite/rangeaccrual.cpp | 147 +++------- test-suite/riskneutraldensitycalculator.cpp | 19 +- test-suite/schedule.cpp | 14 +- test-suite/shortratemodels.cpp | 10 +- test-suite/swapforwardmappings.cpp | 3 - test-suite/termstructures.cpp | 115 ++------ test-suite/timegrid.cpp | 63 +---- test-suite/timeseries.cpp | 32 +-- test-suite/utilities.hpp | 2 +- test-suite/vpp.cpp | 24 +- 52 files changed, 873 insertions(+), 1412 deletions(-) diff --git a/test-suite/andreasenhugevolatilityinterpl.cpp b/test-suite/andreasenhugevolatilityinterpl.cpp index 4e1b3d61c91..a1b779566b3 100644 --- a/test-suite/andreasenhugevolatilityinterpl.cpp +++ b/test-suite/andreasenhugevolatilityinterpl.cpp @@ -147,9 +147,7 @@ namespace andreasen_huge_volatility_interpl_test { } } - CalibrationData data = { spot, rTS, qTS, calibrationSet }; - - return data; + return { spot, rTS, qTS, calibrationSet }; } void testAndreasenHugeVolatilityInterpolation( @@ -346,9 +344,7 @@ namespace andreasen_huge_volatility_interpl_test { ext::make_shared(vol))); } - CalibrationData data = { spot, rTS, qTS, calibrationSet }; - - return data; + return { spot, rTS, qTS, calibrationSet }; } } @@ -1030,8 +1026,8 @@ void AndreasenHugeVolatilityInterplTest::testFlatVolCalibration() { const Time t = rTS->timeFromReference(expiry); const Real fwd = spot->value() / rTS->discount(t) * qTS->discount(t); - for (double moneynes : moneyness) { - const Real strike = fwd * moneynes; + for (double m : moneyness) { + const Real strike = fwd * m; const Real mn = std::log(fwd/strike)/std::sqrt(t); if (std::fabs(mn) < 3.72*vol->value()) { diff --git a/test-suite/barrieroption.cpp b/test-suite/barrieroption.cpp index 76ac7fb6189..3187e938336 100644 --- a/test-suite/barrieroption.cpp +++ b/test-suite/barrieroption.cpp @@ -794,11 +794,10 @@ void BarrierOptionTest::testLocalVolAndHestonComparison() { const Handle s0(ext::make_shared(4500.00)); - Real tmp[] = { 100 ,500 ,2000,3400,3600,3800,4000,4200,4400,4500, - 4600,4800,5000,5200,5400,5600,7500,10000,20000,30000 }; - const std::vector strikes(tmp, tmp+LENGTH(tmp)); + const std::vector strikes = { 100 ,500 ,2000,3400,3600,3800,4000,4200,4400,4500, + 4600,4800,5000,5200,5400,5600,7500,10000,20000,30000 }; - Volatility v[] = + const std::vector v = { 1.015873, 1.015873, 1.015873, 0.89729, 0.796493, 0.730914, 0.631335, 0.568895, 0.711309, 0.711309, 0.711309, 0.641309, 0.635593, 0.583653, 0.508045, 0.463182, 0.516034, 0.500534, 0.500534, 0.500534, 0.448706, 0.416661, 0.375470, 0.353442, diff --git a/test-suite/basismodels.cpp b/test-suite/basismodels.cpp index 721dda4ca8d..524d5a83125 100644 --- a/test-suite/basismodels.cpp +++ b/test-suite/basismodels.cpp @@ -87,27 +87,6 @@ namespace { Real capletStrikesData[] = {-0.0050, 0.0000, 0.0050, 0.0100, 0.0150, 0.0200, 0.0300, 0.0500}; std::vector capletStrikes(capletStrikesData, capletStrikesData + 8); - Real cplRow01[] = {0.003010094, 0.002628065, 0.00456118, 0.006731268, - 0.008678572, 0.010570881, 0.014149552, 0.021000638}; - Real cplRow02[] = {0.004173715, 0.003727039, 0.004180263, 0.005726083, - 0.006905876, 0.008263514, 0.010555395, 0.014976523}; - Real cplRow03[] = {0.005870143, 0.005334526, 0.005599775, 0.006633987, - 0.007773317, 0.009036581, 0.011474391, 0.016277549}; - Real cplRow04[] = {0.007458597, 0.007207522, 0.007263995, 0.007308727, - 0.007813586, 0.008274858, 0.009743988, 0.012555171}; - Real cplRow05[] = {0.007711531, 0.007608826, 0.007572816, 0.007684107, - 0.007971932, 0.008283118, 0.009268828, 0.011574083}; - Real cplRow06[] = {0.007619605, 0.007639059, 0.007719825, 0.007823373, - 0.00800813, 0.008113384, 0.008616374, 0.009785436}; - Real cplRow07[] = {0.007312199, 0.007352993, 0.007369116, 0.007468333, - 0.007515657, 0.00767695, 0.008020447, 0.009072769}; - Real cplRow08[] = {0.006905851, 0.006966315, 0.007056413, 0.007116494, - 0.007259661, 0.00733308, 0.007667563, 0.008419696}; - Real cplRow09[] = {0.006529553, 0.006630731, 0.006749022, 0.006858027, - 0.007001959, 0.007139097, 0.007390404, 0.008036255}; - Real cplRow10[] = {0.006225482, 0.006404012, 0.00651594, 0.006642273, - 0.006640887, 0.006885713, 0.007093024, 0.00767373}; - Handle getOptionletTS() { Date today = Settings::instance().evaluationDate(); @@ -116,17 +95,19 @@ namespace { for (auto& capletTerm : capletTerms) dates.push_back(TARGET().advance(today, capletTerm, Following)); // set up vol data manually - std::vector > capletVols; - capletVols.emplace_back(cplRow01, cplRow01 + 8); - capletVols.emplace_back(cplRow02, cplRow02 + 8); - capletVols.emplace_back(cplRow03, cplRow03 + 8); - capletVols.emplace_back(cplRow04, cplRow04 + 8); - capletVols.emplace_back(cplRow05, cplRow05 + 8); - capletVols.emplace_back(cplRow06, cplRow06 + 8); - capletVols.emplace_back(cplRow07, cplRow07 + 8); - capletVols.emplace_back(cplRow08, cplRow08 + 8); - capletVols.emplace_back(cplRow09, cplRow09 + 8); - capletVols.emplace_back(cplRow10, cplRow10 + 8); + std::vector > capletVols = + { + {0.003010094, 0.002628065, 0.00456118, 0.006731268, 0.008678572, 0.010570881, 0.014149552, 0.021000638}, + {0.004173715, 0.003727039, 0.004180263, 0.005726083, 0.006905876, 0.008263514, 0.010555395, 0.014976523}, + {0.005870143, 0.005334526, 0.005599775, 0.006633987, 0.007773317, 0.009036581, 0.011474391, 0.016277549}, + {0.007458597, 0.007207522, 0.007263995, 0.007308727, 0.007813586, 0.008274858, 0.009743988, 0.012555171}, + {0.007711531, 0.007608826, 0.007572816, 0.007684107, 0.007971932, 0.008283118, 0.009268828, 0.011574083}, + {0.007619605, 0.007639059, 0.007719825, 0.007823373, 0.00800813, 0.008113384, 0.008616374, 0.009785436}, + {0.007312199, 0.007352993, 0.007369116, 0.007468333, 0.007515657, 0.00767695, 0.008020447, 0.009072769}, + {0.006905851, 0.006966315, 0.007056413, 0.007116494, 0.007259661, 0.00733308, 0.007667563, 0.008419696}, + {0.006529553, 0.006630731, 0.006749022, 0.006858027, 0.007001959, 0.007139097, 0.007390404, 0.008036255}, + {0.006225482, 0.006404012, 0.00651594, 0.006642273, 0.006640887, 0.006885713, 0.007093024, 0.00767373} + }; // create quotes std::vector > > capletVolQuotes; for (auto& capletVol : capletVols) { @@ -150,19 +131,15 @@ namespace { }; std::vector swaptionVTSTerms(swaptionVTSTermsData, swaptionVTSTermsData + 5); - Real swtRow01[] = {0.002616, 0.00468, 0.0056, 0.005852, 0.005823}; - Real swtRow02[] = {0.006213, 0.00643, 0.006622, 0.006124, 0.005958}; - Real swtRow03[] = {0.006658, 0.006723, 0.006602, 0.005802, 0.005464}; - Real swtRow04[] = {0.005728, 0.005814, 0.005663, 0.004689, 0.004276}; - Real swtRow05[] = {0.005041, 0.005059, 0.004746, 0.003927, 0.003608}; - Handle getSwaptionVTS() { - std::vector > swaptionVols; - swaptionVols.emplace_back(swtRow01, swtRow01 + 5); - swaptionVols.emplace_back(swtRow02, swtRow02 + 5); - swaptionVols.emplace_back(swtRow03, swtRow03 + 5); - swaptionVols.emplace_back(swtRow04, swtRow04 + 5); - swaptionVols.emplace_back(swtRow05, swtRow05 + 5); + std::vector > swaptionVols = + { + {0.002616, 0.00468, 0.0056, 0.005852, 0.005823}, + {0.006213, 0.00643, 0.006622, 0.006124, 0.005958}, + {0.006658, 0.006723, 0.006602, 0.005802, 0.005464}, + {0.005728, 0.005814, 0.005663, 0.004689, 0.004276}, + {0.005041, 0.005059, 0.004746, 0.003927, 0.003608} + }; std::vector > > swaptionVolQuotes; for (auto& swaptionVol : swaptionVols) { std::vector > row; diff --git a/test-suite/basketoption.cpp b/test-suite/basketoption.cpp index cd7718d2578..48f09d0957c 100644 --- a/test-suite/basketoption.cpp +++ b/test-suite/basketoption.cpp @@ -323,9 +323,7 @@ void BasketOptionTest::testEuroTwoValues() { QL_FAIL("unknown basket type"); } - std::vector > procs; - procs.push_back(p1); - procs.push_back(p2); + std::vector > procs = { p1, p2 }; Matrix correlationMatrix(2, 2, value.rho); for (Integer j=0; j < 2; j++) { @@ -521,10 +519,8 @@ void BasketOptionTest::testBarraquandThreeValues() { Handle(rTS), Handle(volTS3))); - std::vector > procs; - procs.push_back(stochProcess1); - procs.push_back(stochProcess2); - procs.push_back(stochProcess3); + std::vector > procs + = {stochProcess1, stochProcess2, stochProcess3 }; Matrix correlation(3, 3, value.rho); for (Integer j=0; j < 3; j++) { @@ -658,10 +654,9 @@ void BasketOptionTest::testTavellaValues() { Handle(rTS), Handle(volTS3))); - std::vector > procs; - procs.push_back(stochProcess1); - procs.push_back(stochProcess2); - procs.push_back(stochProcess3); + std::vector > procs = {stochProcess1, + stochProcess2, + stochProcess3}; Matrix correlation(3,3, 0.0); for (Integer j=0; j < 3; j++) { @@ -775,8 +770,7 @@ void BasketOptionTest::testOneDAmericanValues(std::size_t from, std::size_t to) Handle(rTS), Handle(volTS1))); - std::vector > procs; - procs.push_back(stochProcess1); + std::vector > procs = {stochProcess1}; Matrix correlation(1, 1, 1.0); @@ -863,8 +857,7 @@ void BasketOptionTest::testOddSamples() { Handle(rTS), Handle(volTS1))); - std::vector > procs; - procs.push_back(stochProcess1); + std::vector > procs = {stochProcess1}; Matrix correlation(1, 1, 1.0); diff --git a/test-suite/brownianbridge.cpp b/test-suite/brownianbridge.cpp index 7ef783ea094..99f097c2ad3 100644 --- a/test-suite/brownianbridge.cpp +++ b/test-suite/brownianbridge.cpp @@ -62,19 +62,7 @@ namespace { void BrownianBridgeTest::testVariates() { BOOST_TEST_MESSAGE("Testing Brownian-bridge variates..."); - std::vector