#include "Data/ArrayData.h" #include #include class TestOneDimArrayData : public QObject { Q_OBJECT private slots: /// Tests @sa ArrayData::data(int componentIndex) void testDataByComponentIndex_data(); void testDataByComponentIndex(); /// Tests @sa ArrayData::add() void testAdd_data(); void testAdd(); }; void TestOneDimArrayData::testDataByComponentIndex_data() { // Test structure QTest::addColumn >("inputData"); // array data's input QTest::addColumn("componentIndex"); // component index to test QTest::addColumn >("expectedData"); // expected data // Test cases QTest::newRow("validIndex") << QVector{1., 2., 3., 4., 5.} << 0 << QVector{1., 2., 3., 4., 5.}; QTest::newRow("invalidIndex1") << QVector{1., 2., 3., 4., 5.} << -1 << QVector{}; QTest::newRow("invalidIndex2") << QVector{1., 2., 3., 4., 5.} << 1 << QVector{}; } void TestOneDimArrayData::testDataByComponentIndex() { QFETCH(QVector, inputData); QFETCH(int, componentIndex); QFETCH(QVector, expectedData); ArrayData<1> arrayData{inputData}; QVERIFY(arrayData.data(componentIndex) == expectedData); } void TestOneDimArrayData::testAdd_data() { // Test structure QTest::addColumn >("inputData"); // array's data input QTest::addColumn >("otherData"); // array data's input to merge with QTest::addColumn("prepend"); // prepend or append merge QTest::addColumn >("expectedData"); // expected data after merge // Test cases QTest::newRow("appendMerge") << QVector{1., 2., 3., 4., 5.} << QVector{6., 7., 8.} << false << QVector{1., 2., 3., 4., 5., 6., 7., 8.}; QTest::newRow("prependMerge") << QVector{1., 2., 3., 4., 5.} << QVector{6., 7., 8.} << true << QVector{6., 7., 8., 1., 2., 3., 4., 5.}; } void TestOneDimArrayData::testAdd() { QFETCH(QVector, inputData); QFETCH(QVector, otherData); QFETCH(bool, prepend); QFETCH(QVector, expectedData); ArrayData<1> arrayData{inputData}; ArrayData<1> other{otherData}; arrayData.add(other, prepend); QVERIFY(arrayData.data() == expectedData); } QTEST_MAIN(TestOneDimArrayData) #include "TestOneDimArrayData.moc"