diff --git a/core/tests/Data/TestDataSeries.cpp b/core/tests/Data/TestDataSeries.cpp index 22bfc85..1c70a2b 100644 --- a/core/tests/Data/TestDataSeries.cpp +++ b/core/tests/Data/TestDataSeries.cpp @@ -125,6 +125,39 @@ private: expectedValuesData); } + template + void testMergeDifferentTypesStructure() + { + // ////////////// // + // Test structure // + // ////////////// // + + // Data series to merge + QTest::addColumn >("dest"); + QTest::addColumn >("source"); + + // Expected values in the dest data series after merge + QTest::addColumn("expectedXAxisData"); + QTest::addColumn("expectedValuesData"); + } + + template + void testMergeDifferentTypes() + { + // Merges series + QFETCH(std::shared_ptr, source); + QFETCH(std::shared_ptr, dest); + + dest->merge(source.get()); + + // Validates results : we check that the merge is valid and the data series is sorted on its + // x-axis data + QFETCH(DataContainer, expectedXAxisData); + QFETCH(DataContainer, expectedValuesData); + + validateRange(dest->cbegin(), dest->cend(), expectedXAxisData, expectedValuesData); + } + private slots: /// Input test data @@ -142,6 +175,13 @@ private slots: void testMerge(); /// Input test data + /// @sa testMergeVectorInScalar() + void testMergeVectorInScalar_data(); + + /// Tests merge of vector series in scalar series + void testMergeVectorInScalar(); + + /// Input test data /// @sa testPurgeScalar() void testPurgeScalar_data(); @@ -323,6 +363,26 @@ void TestDataSeries::testMerge() validateRange(dataSeries->cbegin(), dataSeries->cend(), expectedXAxisData, expectedValuesData); } +void TestDataSeries::testMergeVectorInScalar_data() +{ + testMergeDifferentTypesStructure(); + + // ////////// // + // Test cases // + // ////////// // + + QTest::newRow("purgeVectorInScalar") + << createScalarSeries({1., 2., 3., 4., 5.}, {100., 200., 300., 400., 500.}) + << createVectorSeries({6., 7., 8., 9., 10.}, {600., 700., 800., 900., 1000.}, + {610., 710., 810., 910., 1010.}, {620., 720., 820., 920., 1020.}) + << DataContainer{1., 2., 3., 4., 5.} << DataContainer{100., 200., 300., 400., 500.}; +} + +void TestDataSeries::testMergeVectorInScalar() +{ + testMergeDifferentTypes(); +} + void TestDataSeries::testPurgeScalar_data() { testPurgeStructure();