29 #include "antares/study/binding_constraint/BindingConstraintGroup.h"
30 #include "antares/study/parts/hydro/series.h"
31 #include "antares/study/parts/short-term-storage/cluster.h"
32 #include "antares/study/scenario-builder/TSnumberData.h"
34 namespace Antares::Data::ScenarioBuilder
37 static constexpr
unsigned maxErrors = 20;
40 static inline bool CheckValidity(uint value,
const D& data, uint tsGenMax)
43 return (!tsGenMax) ? (value < data.timeSeries.width) : (value < tsGenMax);
47 inline bool CheckValidity<Data::DataSeriesHydro>(uint value,
52 return (!tsGenMax) ? (value < data.TScount()) : (value < tsGenMax);
56 inline bool CheckValidity<Data::AreaLink>(uint value,
63 return value < data.directCapacities.timeSeries.
width;
67 inline bool CheckValidity<BindingConstraintGroup>(uint value,
68 const BindingConstraintGroup& group,
71 return value < group.numberOfTimeseries();
74 template<
class StringT,
class D>
75 bool ApplyToMatrix(uint& errors,
84 const uint nbYears = data.timeseriesNumbers.height();
86 auto& target = data.timeseriesNumbers;
88 for (uint y = 0; y != nbYears; ++y)
93 uint32_t tsNum = years[y] - 1;
96 if (!CheckValidity(tsNum, data, tsGenMax))
98 if (errors <= maxErrors)
100 if (++errors == maxErrors)
102 logs.warning() <<
"scenario-builder: ... (skipped)";
106 logs.warning() <<
"scenario-builder: " << logprefix
107 <<
"value out of bounds for the year " << (y + 1);
Definition of a link between two areas (Interconnection)
Definition: links.h:58
Data series (Hydro)
Definition: series.h:38
typename Antares::Memory::Stored< uint32_t >::Type ColumnType
Column type.
Definition: matrix.h:62
uint width
Width of the matrix.
Definition: matrix.h:441