Files
lcd-image-converter/tests/parts/testmatrixoptions.cpp
Vladimir a743565796 Apply formatting
find . -iname '*.h' -o -iname '*.cpp' | xargs clang-format -i
2025-01-13 01:23:52 +05:00

192 lines
4.7 KiB
C++

#include "testmatrixoptions.h"
#include "matrixoptions.h"
TestMatrixOptions::TestMatrixOptions(QObject* parent) : QObject(parent) {}
void TestMatrixOptions::initTestCase() { this->mOptions = new Settings::Presets::MatrixOptions(this); }
void TestMatrixOptions::mask()
{
quint32 value1 = 0x12345678;
quint32 value2 = 0x23456789;
quint32 value3 = 0x57890155;
quint32 value4 = 0x4687489a;
for (int i = 0; i < 4; i++) {
this->mOptions->setMaskUsed(value1);
QCOMPARE(this->mOptions->maskUsed(), value1);
this->mOptions->setMaskAnd(value2);
QCOMPARE(this->mOptions->maskAnd(), value2);
this->mOptions->setMaskOr(value3);
QCOMPARE(this->mOptions->maskOr(), value3);
this->mOptions->setMaskFill(value4);
QCOMPARE(this->mOptions->maskFill(), value4);
value1 = value1 >> 1;
value2 = value2 >> 2;
value3 = value3 >> 3;
value4 = value4 >> 4;
}
}
void TestMatrixOptions::operationsCount()
{
this->mOptions->operationsRemoveAll();
this->mOptions->operationAdd(0x12345678, 0, false);
QCOMPARE(this->mOptions->operationsCount(), 1);
this->mOptions->operationAdd(0x23131315, 1, true);
QCOMPARE(this->mOptions->operationsCount(), 2);
}
void TestMatrixOptions::operation()
{
this->mOptions->operationsRemoveAll();
quint32 expectedMask = 0x12345678;
int expectedShift = 10;
bool expectedLeft = true;
for (int i = 0; i < 20; i++) {
this->mOptions->operationAdd(expectedMask, expectedShift, expectedLeft);
quint32 actualMask;
int actualShift;
bool actualLeft;
this->mOptions->operation(i, &actualMask, &actualShift, &actualLeft);
if (expectedShift >= 0) {
QCOMPARE(actualMask, expectedMask);
QCOMPARE(actualShift, expectedShift);
QCOMPARE(actualLeft, expectedLeft);
} else {
QCOMPARE(actualMask, expectedMask);
QVERIFY(actualShift >= 0);
QCOMPARE(actualLeft, expectedLeft);
}
expectedMask = expectedMask >> 3;
expectedShift--;
expectedLeft = !expectedLeft;
}
}
void TestMatrixOptions::operationAdd()
{
this->mOptions->operationsRemoveAll();
quint32 expectedMask = 0x41654649;
int expectedShift = 10;
bool expectedLeft = true;
for (int i = 0; i < 20; i++) {
this->mOptions->operationAdd(expectedMask, expectedShift, expectedLeft);
quint32 actualMask;
int actualShift;
bool actualLeft;
this->mOptions->operation(i, &actualMask, &actualShift, &actualLeft);
if (expectedShift >= 0) {
QCOMPARE(actualMask, expectedMask);
QCOMPARE(actualShift, expectedShift);
QCOMPARE(actualLeft, expectedLeft);
} else {
QCOMPARE(actualMask, expectedMask);
QVERIFY(actualShift >= 0);
QCOMPARE(actualLeft, expectedLeft);
}
expectedMask = expectedMask << 1;
expectedShift--;
expectedLeft = !expectedLeft;
}
}
void TestMatrixOptions::operationRemove()
{
this->mOptions->operationsRemoveAll();
this->mOptions->operationAdd(0x12345678, 5, false);
this->mOptions->operationAdd(0x87654321, 3, true);
quint32 actualMask;
int actualShift;
bool actualLeft;
this->mOptions->operationRemove(0);
this->mOptions->operation(0, &actualMask, &actualShift, &actualLeft);
if (this->mOptions->operationsCount() != 1) {
QFAIL("operationRemove failed");
}
QCOMPARE(actualMask, 0x87654321);
QCOMPARE(actualShift, 3);
QCOMPARE(actualLeft, true);
}
void TestMatrixOptions::operationRemoveAll()
{
this->mOptions->operationsRemoveAll();
quint32 mask = 0x41654649;
int shift = 10;
bool left = true;
for (int i = 0; i < 20; i++) {
this->mOptions->operationAdd(mask, shift, left);
}
QCOMPARE(this->mOptions->operationsCount(), 20);
this->mOptions->operationsRemoveAll();
QCOMPARE(this->mOptions->operationsCount(), 0);
}
void TestMatrixOptions::operationReplace()
{
this->mOptions->operationsRemoveAll();
this->mOptions->operationAdd(0x12345678, 5, false);
this->mOptions->operationAdd(0x87654321, 3, true);
this->mOptions->operationAdd(0x98abcdef, 7, false);
this->mOptions->operationAdd(0xdf546b01, 2, true);
QCOMPARE(this->mOptions->operationsCount(), 4);
quint32 mask;
int shift;
bool left;
// 1
this->mOptions->operationReplace(2, 0x1234f00d, 0, true);
this->mOptions->operation(2, &mask, &shift, &left);
QCOMPARE(this->mOptions->operationsCount(), 4);
QCOMPARE(mask, (quint32)0x1234f00d);
QCOMPARE(shift, 0);
QCOMPARE(left, true);
// 2
this->mOptions->operationReplace(2, 0xab154e46, 7, false);
this->mOptions->operation(2, &mask, &shift, &left);
QCOMPARE(this->mOptions->operationsCount(), 4);
QCOMPARE(mask, (quint32)0xab154e46);
QCOMPARE(shift, 7);
QCOMPARE(left, false);
}
void TestMatrixOptions::cleanupTestCase() { delete this->mOptions; }