#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