diff options
Diffstat (limited to 'tests/auto/qcl/tst_qcl.cpp')
-rw-r--r-- | tests/auto/qcl/tst_qcl.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/auto/qcl/tst_qcl.cpp b/tests/auto/qcl/tst_qcl.cpp index 81de300..07d8a02 100644 --- a/tests/auto/qcl/tst_qcl.cpp +++ b/tests/auto/qcl/tst_qcl.cpp @@ -65,6 +65,8 @@ private slots: void eventProfiling(); void sampler(); void workSize(); + void roundWorkSize_data(); + void roundWorkSize(); void imageFormat(); void qimageFormat_data(); void qimageFormat(); @@ -605,6 +607,72 @@ void tst_QCL::workSize() QVERIFY(size4 == QCLWorkSize()); } +// Test QCLWorkSize::roundTo(). +void tst_QCL::roundWorkSize_data() +{ + QTest::addColumn<int>("value"); + QTest::addColumn<int>("multiple"); + QTest::addColumn<int>("result"); + + QTest::newRow("0-20") << 0 << 20 << 0; + QTest::newRow("23-20") << 23 << 20 << 40; + QTest::newRow("23-2") << 23 << 2 << 24; + QTest::newRow("23-1") << 23 << 1 << 23; + QTest::newRow("23-0") << 23 << 0 << 23; +} +void tst_QCL::roundWorkSize() +{ + QFETCH(int, value); + QFETCH(int, multiple); + QFETCH(int, result); + + size_t svalue = size_t(value); + size_t smultiple = size_t(multiple); + size_t sresult = size_t(result); + + QCLWorkSize size1(svalue); + QCLWorkSize size2 = size1.roundTo(smultiple); + QCOMPARE(size2.width(), sresult); + QCOMPARE(size2.height(), size_t(1)); + QCOMPARE(size2.depth(), size_t(1)); + QCOMPARE(size2.dimensions(), size_t(1)); + + QCLWorkSize size3(svalue, 1); + QCLWorkSize size4 = size3.roundTo(QCLWorkSize(smultiple, smultiple)); + QCOMPARE(size4.width(), sresult); + QCOMPARE(size4.height(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size4.depth(), size_t(1)); + QCOMPARE(size4.dimensions(), size_t(2)); + + QCLWorkSize size5(1, svalue); + QCLWorkSize size6 = size5.roundTo(QCLWorkSize(smultiple, smultiple)); + QCOMPARE(size6.width(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size6.height(), sresult); + QCOMPARE(size6.depth(), size_t(1)); + QCOMPARE(size6.dimensions(), size_t(2)); + + QCLWorkSize size7(svalue, 1, 1); + QCLWorkSize size8 = size7.roundTo(QCLWorkSize(smultiple, smultiple, smultiple)); + QCOMPARE(size8.width(), sresult); + QCOMPARE(size8.height(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size8.depth(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size8.dimensions(), size_t(3)); + + QCLWorkSize size9(1, svalue, 1); + QCLWorkSize size10 = size9.roundTo(QCLWorkSize(smultiple, smultiple, smultiple)); + QCOMPARE(size10.width(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size10.height(), sresult); + QCOMPARE(size10.depth(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size10.dimensions(), size_t(3)); + + QCLWorkSize size11(1, 1, svalue); + QCLWorkSize size12 = size11.roundTo(QCLWorkSize(smultiple, smultiple, smultiple)); + QCOMPARE(size12.width(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size12.height(), smultiple ? smultiple : size_t(1)); + QCOMPARE(size12.depth(), sresult); + QCOMPARE(size12.dimensions(), size_t(3)); +} + // Test QCLImageFormat. void tst_QCL::imageFormat() { |