Skip to content

Commit 37545ac

Browse files
pcaspersjenkins
authored andcommitted
QPR-11568 reorganize, init builders in test fixture
1 parent 9f99533 commit 37545ac

10 files changed

Lines changed: 459 additions & 451 deletions

File tree

App/ore.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include <iostream>
2828

2929
#include <orea/app/oreapp.hpp>
30-
#include <orea/app/initbuilders.hpp>
30+
#include <ored/utilities/initbuilders.hpp>
3131

3232
#ifdef BOOST_MSVC
3333
#include <orea/auto_link.hpp>
@@ -67,7 +67,7 @@ int main(int argc, char** argv) {
6767
return -1;
6868
}
6969

70-
ore::analytics::initBuilders();
70+
ore::data::initBuilders();
7171

7272
string inputFile(argv[1]);
7373

OREAnalytics/orea/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ aggregation/staticcreditxvacalculator.cpp
1414
aggregation/xvacalculator.cpp
1515
app/analytic.cpp
1616
app/analyticsmanager.cpp
17-
app/initbuilders.cpp
1817
app/inputparameters.cpp
1918
app/marketcalibrationreport.cpp
2019
app/marketdatacsvloader.cpp
@@ -93,7 +92,6 @@ aggregation/staticcreditxvacalculator.hpp
9392
aggregation/xvacalculator.hpp
9493
app/analytic.hpp
9594
app/analyticsmanager.hpp
96-
app/initbuilders.hpp
9795
app/inputparameters.hpp
9896
app/marketcalibrationreport.hpp
9997
app/marketdatacsvloader.hpp

OREAnalytics/orea/app/initbuilders.cpp

Lines changed: 0 additions & 416 deletions
This file was deleted.

OREAnalytics/orea/app/initbuilders.hpp

Lines changed: 0 additions & 29 deletions
This file was deleted.

OREAnalytics/orea/orea.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include <orea/aggregation/xvacalculator.hpp>
2020
#include <orea/app/analytic.hpp>
2121
#include <orea/app/analyticsmanager.hpp>
22-
#include <orea/app/initbuilders.hpp>
2322
#include <orea/app/inputparameters.hpp>
2423
#include <orea/app/marketcalibrationreport.hpp>
2524
#include <orea/app/marketdatacsvloader.hpp>

OREData/ored/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ utilities/flowanalysis.cpp
264264
utilities/indexnametranslator.cpp
265265
utilities/indexparser.cpp
266266
utilities/inflationstartdate.cpp
267+
utilities/initbuilders.cpp
267268
utilities/log.cpp
268269
utilities/marketdata.cpp
269270
utilities/osutils.cpp
@@ -566,6 +567,7 @@ utilities/flowanalysis.hpp
566567
utilities/indexnametranslator.hpp
567568
utilities/indexparser.hpp
568569
utilities/inflationstartdate.hpp
570+
utilities/initbuilders.hpp
569571
utilities/log.hpp
570572
utilities/marketdata.hpp
571573
utilities/osutils.hpp

OREData/ored/ored.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@
294294
#include <ored/utilities/indexnametranslator.hpp>
295295
#include <ored/utilities/indexparser.hpp>
296296
#include <ored/utilities/inflationstartdate.hpp>
297+
#include <ored/utilities/initbuilders.hpp>
297298
#include <ored/utilities/log.hpp>
298299
#include <ored/utilities/marketdata.hpp>
299300
#include <ored/utilities/osutils.hpp>

OREData/ored/utilities/initbuilders.cpp

Lines changed: 388 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
Copyright (C) 2023 Quaternion Risk Management Ltd
3+
All rights reserved.
4+
5+
This file is part of ORE, a free-software/open-source library
6+
for transparent pricing and risk analysis - http://opensourcerisk.org
7+
8+
ORE is free software: you can redistribute it and/or modify it
9+
under the terms of the Modified BSD License. You should have received a
10+
copy of the license along with this program.
11+
The license is also available online at <http://opensourcerisk.org>
12+
13+
This program is distributed on the basis that it will form a useful
14+
contribution to risk analytics and model standardisation, but WITHOUT
15+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16+
FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17+
*/
18+
19+
/*! \file orea/app/initbuilders.hpp
20+
\brief add builders to factories
21+
*/
22+
23+
#pragma once
24+
25+
#define ORE_REGISTER_LEG_DATA(NAME, CLASS, OVERWRITE) \
26+
ore::data::LegDataFactory::instance().addBuilder(NAME, &ore::data::createLegData<CLASS>, OVERWRITE);
27+
28+
#define ORE_REGISTER_CALIBRATION_INSTRUMENT(NAME, CLASS, OVERWRITE) \
29+
ore::data::CalibrationInstrumentFactory::instance().addBuilder( \
30+
NAME, &ore::data::createCalibrationInstrument<CLASS>, OVERWRITE);
31+
32+
#define ORE_REGISTER_REFERENCE_DATUM(NAME, CLASS, OVERWRITE) \
33+
ore::data::ReferenceDatumFactory::instance().addBuilder( \
34+
NAME, &ore::data::createReferenceDatumBuilder<ore::data::ReferenceDatumBuilder<CLASS>>, OVERWRITE);
35+
36+
#define ORE_REGISTER_BOND_BUILDER(NAME, CLASS, OVERWRITE) \
37+
ore::data::BondFactory::instance().addBuilder(NAME, boost::make_shared<CLASS>(), OVERWRITE);
38+
39+
#define ORE_REGISTER_TRADE_BUILDER(NAME, CLASS, OVERWRITE) \
40+
ore::data::TradeFactory::instance().addBuilder(NAME, boost::make_shared<ore::data::TradeBuilder<CLASS>>(), \
41+
OVERWRITE);
42+
43+
#define ORE_REGISTER_LEGBUILDER(NAME, CLASS, OVERWRITE) \
44+
ore::data::EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CLASS>(); }, OVERWRITE);
45+
46+
#define ORE_REGISTER_AMC_ENGINE_BUILDER(CLASS, OVERWRITE) \
47+
ore::data::EngineBuilderFactory::instance().addAmcEngineBuilder( \
48+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<ore::data::Date>& grid) { \
49+
return boost::make_shared<CLASS>(cam, grid); \
50+
}, \
51+
OVERWRITE);
52+
53+
#define ORE_REGISTER_ENGINE_BUILDER(CLASS, OVERWRITE) \
54+
ore::data::EngineBuilderFactory::instance().addEngineBuilder([]() { return boost::make_shared<CLASS>(); }, \
55+
OVERWRITE);
56+
57+
#define ORE_REGISTER_TRS_UNDERLYING_BUILDER(NAME, CLASS, OVERWRITE) \
58+
oreplus::data::TrsUnderlyingBuilderFactory::instance().addBuilder(NAME, boost::make_shared<CLASS>(), OVERWRITE);
59+
60+
namespace ore::data {
61+
62+
void initBuilders();
63+
64+
} // namespace ore::data

ORETest/oret/toplevelfixture.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <ored/utilities/indexnametranslator.hpp>
3333
#include <ored/utilities/calendarparser.hpp>
3434
#include <ored/utilities/currencyparser.hpp>
35+
#include <ored/utilities/initbuilders.hpp>
3536

3637
using QuantExt::SavedObservableSettings;
3738
using QuantLib::IndexManager;
@@ -50,7 +51,7 @@ class TopLevelFixture {
5051
/*! Constructor
5152
Add things here that you want to happen at the start of every test case
5253
*/
53-
TopLevelFixture() {}
54+
TopLevelFixture() { ore::data::initBuilders(); }
5455

5556
/*! Destructor
5657
Add things here that you want to happen after _every_ test case

0 commit comments

Comments
 (0)