diff --git a/core/tests/Data/TestDataSeries.cpp b/core/tests/Data/TestDataSeries.cpp index f2c96c6..aed9260 100644 --- a/core/tests/Data/TestDataSeries.cpp +++ b/core/tests/Data/TestDataSeries.cpp @@ -101,6 +101,13 @@ private slots: /// Tests get values bounds of a scalar series void testValuesBoundsScalar(); + + /// Input test data + /// @sa testValuesBoundsVector() + void testValuesBoundsVector_data(); + + /// Tests get values bounds of a vector series + void testValuesBoundsVector(); }; void TestDataSeries::testCtor_data() @@ -172,6 +179,16 @@ std::shared_ptr createSeries(QVector xAxisData, QVector createVectorSeries(QVector xAxisData, + QVector xValuesData, + QVector yValuesData, + QVector zValuesData) +{ + return std::make_shared(std::move(xAxisData), std::move(xValuesData), + std::move(yValuesData), std::move(zValuesData), Unit{}, + Unit{}); +} + } // namespace void TestDataSeries::testMerge_data() @@ -463,5 +480,42 @@ void TestDataSeries::testValuesBoundsScalar() testValuesBounds(); } +void TestDataSeries::testValuesBoundsVector_data() +{ + testValuesBoundsStructure(); + + // ////////// // + // Test cases // + // ////////// // + + QTest::newRow("vectorBounds1") + << createVectorSeries({1., 2., 3., 4., 5.}, {10., 15., 20., 13., 12.}, + {35., 24., 10., 9., 0.3}, {13., 14., 12., 9., 24.}) + << 0. << 6. << true << 0.3 << 35.; // min/max in same component + QTest::newRow("vectorBounds2") + << createVectorSeries({1., 2., 3., 4., 5.}, {2.3, 15., 20., 13., 12.}, + {35., 24., 10., 9., 4.}, {13., 14., 12., 9., 24.}) + << 0. << 6. << true << 2.3 << 35.; // min/max in same entry + QTest::newRow("vectorBounds3") + << createVectorSeries({1., 2., 3., 4., 5.}, {2.3, 15., 20., 13., 12.}, + {35., 24., 10., 9., 4.}, {13., 14., 12., 9., 24.}) + << 2. << 3. << true << 10. << 24.; + + // Tests with NaN values: NaN values are not included in min/max search + QTest::newRow("vectorBounds4") + << createVectorSeries( + {1., 2.}, + {std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN()}, + {std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN()}, + {std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN()}) + << 0. << 6. << true << std::numeric_limits::quiet_NaN() + << std::numeric_limits::quiet_NaN(); +} + +void TestDataSeries::testValuesBoundsVector() +{ + testValuesBounds(); +} + QTEST_MAIN(TestDataSeries) #include "TestDataSeries.moc"