diff --git a/core/tests/Data/DataSeriesBuilders.cpp b/core/tests/Data/DataSeriesBuilders.cpp new file mode 100644 index 0000000..7ce829e --- /dev/null +++ b/core/tests/Data/DataSeriesBuilders.cpp @@ -0,0 +1,90 @@ +#include "DataSeriesBuilders.h" + +#include +#include +#include +#include + +// ///////////// // +// ScalarBuilder // +// ///////////// // + +ScalarBuilder &ScalarBuilder::setX(std::vector xData) +{ + m_XAxisData = std::move(xData); + return *this; +} + +ScalarBuilder &ScalarBuilder::setValues(std::vector valuesData) +{ + m_ValuesData =std::move(valuesData); + return *this; +} + +std::shared_ptr ScalarBuilder::build() +{ + return std::make_shared(std::move(m_XAxisData), std::move(m_ValuesData), Unit{}, + Unit{}); +} + +// ////////////////// // +// SpectrogramBuilder // +// ////////////////// // + +SpectrogramBuilder &SpectrogramBuilder::setX(std::vector xData) +{ + m_XAxisData = std::move(xData); + return *this; +} + +SpectrogramBuilder &SpectrogramBuilder::setY(std::vector yData) +{ + m_YAxisData =std::move(yData); + return *this; +} + +SpectrogramBuilder &SpectrogramBuilder::setValues(std::vector valuesData) +{ + m_ValuesData =std::move(valuesData); + return *this; +} + +std::shared_ptr SpectrogramBuilder::build() +{ + return std::make_shared(std::move(m_XAxisData), std::move(m_YAxisData), std::move(m_ValuesData), Unit{}, + Unit{}, Unit{}); +} + +// ///////////// // +// VectorBuilder // +// ///////////// // + +VectorBuilder &VectorBuilder::setX(std::vector xData) +{ + m_XAxisData = std::move(xData); + return *this; +} + +VectorBuilder &VectorBuilder::setXValues(std::vector xValuesData) +{ + m_XValuesData =std::move(xValuesData); + return *this; +} + +VectorBuilder &VectorBuilder::setYValues(std::vector yValuesData) +{ + m_YValuesData =std::move(yValuesData); + return *this; +} + +VectorBuilder &VectorBuilder::setZValues(std::vector zValuesData) +{ + m_ZValuesData =std::move(zValuesData); + return *this; +} + +std::shared_ptr VectorBuilder::build() +{ + return std::make_shared(std::move(m_XAxisData), std::move(m_XValuesData), std::move(m_YValuesData), std::move(m_ZValuesData), Unit{}, + Unit{}); +} diff --git a/core/tests/Data/DataSeriesBuilders.h b/core/tests/Data/DataSeriesBuilders.h new file mode 100644 index 0000000..38894f3 --- /dev/null +++ b/core/tests/Data/DataSeriesBuilders.h @@ -0,0 +1,74 @@ +#ifndef SCIQLOP_DATASERIESBUILDERS_H +#define SCIQLOP_DATASERIESBUILDERS_H + +#include +#include + +class ScalarSeries; +class SpectrogramSeries; +class VectorSeries; + +/** + * @brief The ScalarBuilder class aims to facilitate the creation of a ScalarSeries for unit tests + * @sa ScalarSeries + */ +class ScalarBuilder { +public: + /// Sets x-axis data of the series + ScalarBuilder & setX(std::vector xData); + /// Sets values data of the series + ScalarBuilder & setValues(std::vector valuesData); + /// Creates the series + std::shared_ptr build(); + +private: + std::vector m_XAxisData{}; + std::vector m_ValuesData{}; +}; + +/** + * @brief The SpectrogramBuilder class aims to facilitate the creation of a SpectrogramSeries for unit tests + * @sa SpectrogramSeries + */ +class SpectrogramBuilder { +public: + /// Sets x-axis data of the series + SpectrogramBuilder & setX(std::vector xData); + /// Sets y-axis data of the series + SpectrogramBuilder & setY(std::vector yData); + /// Sets values data of the series + SpectrogramBuilder & setValues(std::vector valuesData); + /// Creates the series + std::shared_ptr build(); + +private: + std::vector m_XAxisData{}; + std::vector m_YAxisData{}; + std::vector m_ValuesData{}; +}; + +/** + * @brief The VectorBuilder class aims to facilitate the creation of a VectorSeries for unit tests + * @sa VectorSeries + */ +class VectorBuilder { +public: + /// Sets x-axis data of the series + VectorBuilder & setX(std::vector xData); + /// Sets x-values data of the series + VectorBuilder & setXValues(std::vector xValuesData); + /// Sets y-values data of the series + VectorBuilder & setYValues(std::vector yValuesData); + /// Sets z-values data of the series + VectorBuilder & setZValues(std::vector zValuesData); + /// Creates the series + std::shared_ptr build(); + +private: + std::vector m_XAxisData{}; + std::vector m_XValuesData{}; + std::vector m_YValuesData{}; + std::vector m_ZValuesData{}; +}; + +#endif // SCIQLOP_DATASERIESBUILDERS_H