3 #include <antares/expressions/Registry.hxx>
4 #include <antares/expressions/nodes/ExpressionsNodes.h>
5 #include <antares/solver/optim-model-filler/ReadLinearConstraintVisitor.h>
6 #include "antares/exception/InvalidArgumentError.hpp"
7 #include "antares/modeler-optimisation-container/OptimEntityContainer.h"
8 #include "antares/optimisation/linear-problem-data-impl/Scenario.h"
9 #include "antares/optimisation/linear-problem-data-impl/linearProblemData.h"
11 #include "UtilMocks.h"
14 using namespace Antares::Expressions;
15 using namespace Antares::ModelerStudy;
16 using namespace Antares::Expressions::Nodes;
17 using namespace Antares::Expressions::Visitors;
22 auto scenarioPtr = std::make_unique<LinearProblemDataImpl::Scenario>(
"SCENARIO_GROUP");
23 scenarioPtr->setTimeSerieNumber(0, 1);
24 scenarioGroupRepository.addScenario(
"SCENARIO_GROUP", std::move(scenarioPtr));
25 scenarioPtr = std::make_unique<LinearProblemDataImpl::Scenario>(
"GROUP");
26 scenarioPtr->setTimeSerieNumber(0, 1);
27 scenarioGroupRepository.addScenario(
"GROUP", std::move(scenarioPtr));
28 return scenarioGroupRepository;
33 [[nodiscard]]
double getData([[maybe_unused]]
const std::string& dataSetId,
34 [[maybe_unused]]
unsigned scenario,
35 unsigned hour)
const override
40 [[nodiscard]] std::span<const double> getData(
const std::string& dataSetId,
41 unsigned timeSeriesNumber,
43 unsigned lastHour)
const override
45 return {v_.begin(), lastHour - firstHour + 1};
48 const std::vector<double> v_{0., 1., 2., 3., 4., 5.};
51 template<
class Visitor>
61 std::vector<SystemModel::Component> components;
66 scenarioGroupRepository(createScenario()),
67 optimContainer(linearProblem, &data, &scenarioGroupRepository),
68 components(1, setupComponent())
70 optimContainer.addFromSystemComponents(components);
71 auto& optimComponent = optimContainer.getOptimComponent(0);
72 optimComponent.modelVariableGlobalIndices = {0, 1, 2};
74 optimContainer.addStartColumn();
76 optimContainer.addStartColumn();
78 optimContainer.addStartColumn();
85 return Visitor(optimContainer, ctx, components[0]);
91 return setComponentParameterValues(
92 {{
"param_3", VariabilityType::CONSTANT_IN_TIME_AND_SCENARIO,
"3."},
93 {
"param_m5", VariabilityType::CONSTANT_IN_TIME_AND_SCENARIO,
"-5."},
94 {
"param_ts", VariabilityType::VARYING_IN_TIME_ONLY,
"0_1_2"},
95 {
"param1", VariabilityType::CONSTANT_IN_TIME_AND_SCENARIO,
"-2."},
96 {
"param2", VariabilityType::CONSTANT_IN_TIME_AND_SCENARIO,
"8."}});
100 const std::vector<std::tuple<std::string, VariabilityType, std::string>>& values)
102 std::map<std::string, Antares::ModelerStudy::SystemModel::ParameterTypeAndValue> map;
103 std::vector<SystemModel::Parameter> parameters;
104 for (
auto value: values)
107 .id = std::get<0>(value),
108 .type = std::get<1>(value),
109 .value = std::get<2>(value)};
111 SystemModel::TimeDependent::YES,
112 SystemModel::ScenarioDependent::YES};
113 parameters.push_back(parameter);
118 return componentBuilder.
withId(
"compo")
Definition: Registry.hxx:33
Definition: component.h:134
ComponentBuilder & withScenarioGroupId(const std::string &scenario_group_id)
Sets the ID of the scenario group to which the component belongs.
Definition: component.cpp:236
ComponentBuilder & withModel(const Model *model)
Sets the model of the component.
Definition: component.cpp:204
Component build()
Builds and returns the Component object.
Definition: component.cpp:247
ComponentBuilder & withId(std::string_view id)
Sets the ID of the component.
Definition: component.cpp:192
ComponentBuilder & withParameterValues(std::map< std::string, ParameterTypeAndValue > parameter_values)
Sets the parameter values of the component. The parameters included should be all of the model's para...
Definition: component.cpp:223
Definition: component.h:69
ModelBuilder & withParameters(std::vector< Parameter > &¶meters)
Sets the parameters of the model.
Definition: model.cpp:152
Model build()
Builds and returns the Model object.
Definition: model.cpp:94
ModelBuilder & withId(std::string_view id)
Sets the ID of the model.
Definition: model.cpp:122
Definition: parameter.h:37
Empty scenario implementation of IScenario. Provide a default implementation of IScenario that return...
Definition: IScenario.h:65
Context for filling linear problem data. Contains temporal information.
Definition: ILinearProblemData.h:35
Interface for linear problem data. Provides a method to retrieve data for a specific dataset,...
Definition: ILinearProblemData.h:114
Definition: OptimEntityContainer.h:46
Definition: scenarioGroupRepo.h:12
Definition: UtilMocks.h:166
Antares::Optimisation::LinearProblemApi::IMipVariable * addNumVariable(double, double, const std::string &) override
Create a continuous variable.
Definition: UtilMocks.h:219
Definition: VariableNode.h:9
Definition: component.h:37
Definition: test_PrintAndEvalVisitors.cpp:703
Definition: visitorFixture.hpp:53