##// END OF EJS Templates
Implementation of V5 acquisition
Implementation of V5 acquisition

File last commit:

r524:609983662e98
r539:7c107b5923b0
Show More
TestOneDimArrayData.cpp
199 lines | 6.2 KiB | text/x-c | CppLexer
/ core / tests / Data / TestOneDimArrayData.cpp
#include "Data/ArrayData.h"
#include <QObject>
#include <QtTest>
class TestOneDimArrayData : public QObject {
Q_OBJECT
private slots:
/// Tests @sa ArrayData::data()
void testData_data();
void testData();
/// Tests @sa ArrayData::data(int componentIndex)
void testDataByComponentIndex_data();
void testDataByComponentIndex();
/// Tests @sa ArrayData::add()
void testAdd_data();
void testAdd();
/// Tests @sa ArrayData::at(int index)
void testAt_data();
void testAt();
/// Tests @sa ArrayData::clear()
void testClear_data();
void testClear();
/// Tests @sa ArrayData::size()
void testSize_data();
void testSize();
/// Tests @sa ArrayData::sort()
void testSort_data();
void testSort();
};
void TestOneDimArrayData::testData_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array's data input
QTest::addColumn<QVector<double> >("expectedData"); // expected data
// Test cases
QTest::newRow("data1") << QVector<double>{1., 2., 3., 4., 5.}
<< QVector<double>{1., 2., 3., 4., 5.};
}
void TestOneDimArrayData::testData()
{
QFETCH(QVector<double>, inputData);
QFETCH(QVector<double>, expectedData);
ArrayData<1> arrayData{inputData};
QVERIFY(arrayData.data() == expectedData);
}
void TestOneDimArrayData::testDataByComponentIndex_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array data's input
QTest::addColumn<int>("componentIndex"); // component index to test
QTest::addColumn<QVector<double> >("expectedData"); // expected data
// Test cases
QTest::newRow("validIndex") << QVector<double>{1., 2., 3., 4., 5.} << 0
<< QVector<double>{1., 2., 3., 4., 5.};
QTest::newRow("invalidIndex1")
<< QVector<double>{1., 2., 3., 4., 5.} << -1 << QVector<double>{};
QTest::newRow("invalidIndex2") << QVector<double>{1., 2., 3., 4., 5.} << 1 << QVector<double>{};
}
void TestOneDimArrayData::testDataByComponentIndex()
{
QFETCH(QVector<double>, inputData);
QFETCH(int, componentIndex);
QFETCH(QVector<double>, expectedData);
ArrayData<1> arrayData{inputData};
QVERIFY(arrayData.data(componentIndex) == expectedData);
}
void TestOneDimArrayData::testAdd_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array's data input
QTest::addColumn<QVector<double> >("otherData"); // array data's input to merge with
QTest::addColumn<bool>("prepend"); // prepend or append merge
QTest::addColumn<QVector<double> >("expectedData"); // expected data after merge
// Test cases
QTest::newRow("appendMerge") << QVector<double>{1., 2., 3., 4., 5.}
<< QVector<double>{6., 7., 8.} << false
<< QVector<double>{1., 2., 3., 4., 5., 6., 7., 8.};
QTest::newRow("prependMerge") << QVector<double>{1., 2., 3., 4., 5.}
<< QVector<double>{6., 7., 8.} << true
<< QVector<double>{6., 7., 8., 1., 2., 3., 4., 5.};
}
void TestOneDimArrayData::testAdd()
{
QFETCH(QVector<double>, inputData);
QFETCH(QVector<double>, otherData);
QFETCH(bool, prepend);
QFETCH(QVector<double>, expectedData);
ArrayData<1> arrayData{inputData};
ArrayData<1> other{otherData};
arrayData.add(other, prepend);
QVERIFY(arrayData.data() == expectedData);
}
void TestOneDimArrayData::testAt_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array data's input
QTest::addColumn<int>("index"); // index to retrieve data
QTest::addColumn<double>("expectedData"); // expected data at index
// Test cases
QTest::newRow("data1") << QVector<double>{1., 2., 3., 4., 5.} << 0 << 1.;
QTest::newRow("data2") << QVector<double>{1., 2., 3., 4., 5.} << 3 << 4.;
}
void TestOneDimArrayData::testAt()
{
QFETCH(QVector<double>, inputData);
QFETCH(int, index);
QFETCH(double, expectedData);
ArrayData<1> arrayData{inputData};
QVERIFY(arrayData.at(index) == expectedData);
}
void TestOneDimArrayData::testClear_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array data's input
// Test cases
QTest::newRow("data1") << QVector<double>{1., 2., 3., 4., 5.};
}
void TestOneDimArrayData::testClear()
{
QFETCH(QVector<double>, inputData);
ArrayData<1> arrayData{inputData};
arrayData.clear();
QVERIFY(arrayData.data() == QVector<double>{});
}
void TestOneDimArrayData::testSize_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array data's input
QTest::addColumn<int>("expectedSize"); // expected array data size
// Test cases
QTest::newRow("data1") << QVector<double>{1., 2., 3., 4., 5.} << 5;
}
void TestOneDimArrayData::testSize()
{
QFETCH(QVector<double>, inputData);
QFETCH(int, expectedSize);
ArrayData<1> arrayData{inputData};
QVERIFY(arrayData.size() == expectedSize);
}
void TestOneDimArrayData::testSort_data()
{
// Test structure
QTest::addColumn<QVector<double> >("inputData"); // array data's input
QTest::addColumn<std::vector<int> >("sortPermutation"); // permutation used to sort data
QTest::addColumn<QVector<double> >("expectedData"); // expected data after sorting
// Test cases
QTest::newRow("data1") << QVector<double>{1., 2., 3., 4., 5.} << std::vector<int>{0, 2, 3, 1, 4}
<< QVector<double>{1., 3., 4., 2., 5.};
QTest::newRow("data2") << QVector<double>{1., 2., 3., 4., 5.} << std::vector<int>{4, 1, 2, 3, 0}
<< QVector<double>{5., 2., 3., 4., 1.};
}
void TestOneDimArrayData::testSort()
{
QFETCH(QVector<double>, inputData);
QFETCH(std::vector<int>, sortPermutation);
QFETCH(QVector<double>, expectedData);
ArrayData<1> arrayData{inputData};
auto sortedArrayData = arrayData.sort(sortPermutation);
QVERIFY(sortedArrayData != nullptr);
QVERIFY(sortedArrayData->data() == expectedData);
}
QTEST_MAIN(TestOneDimArrayData)
#include "TestOneDimArrayData.moc"