hydrobricks
Loading...
Searching...
No Matches
TimeSeriesData.h
1#ifndef HYDROBRICKS_TIME_SERIES_DATA_H
2#define HYDROBRICKS_TIME_SERIES_DATA_H
3
4#include "Includes.h"
5
7 public:
9
10 virtual ~TimeSeriesData() = default;
11
18 virtual bool SetValues(vecDouble values);
19
26 [[nodiscard]] virtual double GetValueFor(double date);
27
33 [[nodiscard]] virtual double GetCurrentValue() const;
34
40 [[nodiscard]] virtual double GetSum();
41
48 virtual bool SetCursorToDate(double date) = 0;
49
55 virtual bool AdvanceOneTimeStep() = 0;
56
63 [[nodiscard]] virtual double GetTimeStepInDays() const {
64 return 0;
65 }
66
72 [[nodiscard]] virtual double GetStart() const = 0;
73
79 [[nodiscard]] virtual double GetEnd() const = 0;
80
87 [[nodiscard]] virtual bool IsValid() const = 0;
88
95 virtual void Validate() const = 0;
96
97 protected:
98 vecDouble _values;
99 int _cursor;
100};
101
103 public:
104 TimeSeriesDataRegular(double start, double end, int timeStep, TimeUnit timeStepUnit);
105
106 ~TimeSeriesDataRegular() override = default;
107
111 bool SetValues(vecDouble values) override;
112
116 double GetValueFor(double date) override;
117
121 double GetCurrentValue() const override;
122
126 double GetSum() override;
127
131 bool SetCursorToDate(double date) override;
132
136 bool AdvanceOneTimeStep() override;
137
141 [[nodiscard]] double GetTimeStepInDays() const override;
142
146 double GetStart() const override;
147
151 double GetEnd() const override;
152
156 [[nodiscard]] bool IsValid() const override;
157
161 void Validate() const override;
162
163 protected:
164 double _start;
165 double _end;
166 int _timeStep;
167 TimeUnit _timeStepUnit;
168};
169
171 public:
172 explicit TimeSeriesDataIrregular(vecDouble& dates);
173
174 ~TimeSeriesDataIrregular() override = default;
175
179 bool SetValues(vecDouble values) override;
180
184 double GetValueFor(double date) override;
185
189 double GetCurrentValue() const override;
190
194 double GetSum() override;
195
199 bool SetCursorToDate(double date) override;
200
204 bool AdvanceOneTimeStep() override;
205
209 double GetStart() const override;
210
214 double GetEnd() const override;
215
219 [[nodiscard]] bool IsValid() const override;
220
224 void Validate() const override;
225
226 protected:
227 vecDouble _dates;
228};
229
230#endif // HYDROBRICKS_TIME_SERIES_DATA_H
Definition TimeSeriesData.h:170
double GetStart() const override
Definition TimeSeriesData.cpp:208
double GetCurrentValue() const override
Definition TimeSeriesData.cpp:191
double GetEnd() const override
Definition TimeSeriesData.cpp:213
bool IsValid() const override
Definition TimeSeriesData.cpp:218
double GetSum() override
Definition TimeSeriesData.cpp:196
bool AdvanceOneTimeStep() override
Definition TimeSeriesData.cpp:204
bool SetValues(vecDouble values) override
Definition TimeSeriesData.cpp:177
void Validate() const override
Definition TimeSeriesData.cpp:250
bool SetCursorToDate(double date) override
Definition TimeSeriesData.cpp:200
double GetValueFor(double date) override
Definition TimeSeriesData.cpp:187
Definition TimeSeriesData.h:102
double GetTimeStepInDays() const override
Definition TimeSeriesData.cpp:115
double GetSum() override
Definition TimeSeriesData.cpp:62
double GetEnd() const override
Definition TimeSeriesData.cpp:134
double GetStart() const override
Definition TimeSeriesData.cpp:130
double GetValueFor(double date) override
Definition TimeSeriesData.cpp:52
bool AdvanceOneTimeStep() override
Definition TimeSeriesData.cpp:105
double GetCurrentValue() const override
Definition TimeSeriesData.cpp:57
void Validate() const override
Definition TimeSeriesData.cpp:160
bool SetCursorToDate(double date) override
Definition TimeSeriesData.cpp:69
bool IsValid() const override
Definition TimeSeriesData.cpp:138
bool SetValues(vecDouble values) override
Definition TimeSeriesData.cpp:40
Definition TimeSeriesData.h:6
virtual bool AdvanceOneTimeStep()=0
virtual double GetCurrentValue() const
Definition TimeSeriesData.cpp:21
virtual double GetEnd() const =0
virtual double GetValueFor(double date)
Definition TimeSeriesData.cpp:17
virtual double GetStart() const =0
virtual bool IsValid() const =0
virtual double GetTimeStepInDays() const
Definition TimeSeriesData.h:63
virtual void Validate() const =0
virtual double GetSum()
Definition TimeSeriesData.cpp:25
virtual bool SetValues(vecDouble values)
Definition TimeSeriesData.cpp:12
virtual bool SetCursorToDate(double date)=0