##// END OF EJS Templates
Adds method to get all variables from model...
Adds method to get all variables from model This method will be used to generate forbidden names when renaming a variable (i.e. names of existing variables)

File last commit:

r647:da7f81670868
r684:c7028b4894dd
Show More
TestOneDimArrayData.cpp
181 lines | 5.4 KiB | text/x-c | CppLexer
/ core / tests / Data / TestOneDimArrayData.cpp
Alexandre Leroux
Inits unit tests for 1-dim and 2-dim array data
r514 #include "Data/ArrayData.h"
#include <QObject>
#include <QtTest>
Alexandre Leroux
Updates unit tests
r647 namespace {
void verifyArrayData(const ArrayData<1> &arrayData, const QVector<double> &expectedData)
{
QVERIFY(std::equal(
arrayData.cbegin(), arrayData.cend(), expectedData.cbegin(), expectedData.cend(),
[](const auto &it, const auto &expectedData) { return it.at(0) == expectedData; }));
}
} // namespace
Alexandre Leroux
Inits unit tests for 1-dim and 2-dim array data
r514 class TestOneDimArrayData : public QObject {
Q_OBJECT
private slots:
Alexandre Leroux
Tests specific methods of 1-dim array data
r519 /// Tests @sa ArrayData::data()
void testData_data();
void testData();
Alexandre Leroux
Tests add() method
r516 /// Tests @sa ArrayData::add()
void testAdd_data();
void testAdd();
Alexandre Leroux
Tests specific methods of 1-dim array data
r519 /// Tests @sa ArrayData::at(int index)
void testAt_data();
void testAt();
Alexandre Leroux
Tests clear() and size() methods
r517 /// Tests @sa ArrayData::clear()
void testClear_data();
void testClear();
/// Tests @sa ArrayData::size()
void testSize_data();
void testSize();
Alexandre Leroux
Tests sort() method
r518 /// Tests @sa ArrayData::sort()
void testSort_data();
void testSort();
Alexandre Leroux
Inits unit tests for 1-dim and 2-dim array data
r514 };
Alexandre Leroux
Tests sort() method
r518 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};
Alexandre Leroux
Updates unit tests
r647 verifyArrayData(arrayData, expectedData);
Alexandre Leroux
Tests get data by index method
r515 }
Alexandre Leroux
Tests add() method
r516 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);
Alexandre Leroux
Updates unit tests
r647 verifyArrayData(arrayData, expectedData);
Alexandre Leroux
Tests add() method
r516 }
Alexandre Leroux
Tests specific methods of 1-dim array data
r519 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.};
}
Alexandre Leroux
Tests clear() and size() methods
r517 void TestOneDimArrayData::testClear()
{
QFETCH(QVector<double>, inputData);
ArrayData<1> arrayData{inputData};
arrayData.clear();
Alexandre Leroux
Updates unit tests
r647 verifyArrayData(arrayData, QVector<double>{});
Alexandre Leroux
Tests clear() and size() methods
r517 }
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);
}
Alexandre Leroux
Tests sort() method
r518 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);
Alexandre Leroux
Fix compilation on Linux
r524 QVERIFY(sortedArrayData != nullptr);
Alexandre Leroux
Updates unit tests
r647 verifyArrayData(*sortedArrayData, expectedData);
Alexandre Leroux
Tests sort() method
r518 }
Alexandre Leroux
Inits unit tests for 1-dim and 2-dim array data
r514 QTEST_MAIN(TestOneDimArrayData)
#include "TestOneDimArrayData.moc"