File indexing completed on 2024-09-15 03:52:54
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 28/08/2021 0007 * Description : an unit-test to detect image quality level 0008 * 0009 * SPDX-FileCopyrightText: 2021-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * SPDX-FileCopyrightText: 2021-2022 by Phuoc Khanh Le <phuockhanhnk94 at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #include "detectblur_utest.h" 0017 0018 // Qt includes 0019 0020 #include <QTest> 0021 #include <QStringList> 0022 #include <QFileInfoList> 0023 #include <QDebug> 0024 #include <QDir> 0025 0026 // Local includes 0027 0028 #include "digikam_globals.h" 0029 #include "imagequalitycontainer.h" 0030 #include "dpluginloader.h" 0031 #include "digikam_debug.h" 0032 0033 using namespace Digikam; 0034 0035 QTEST_MAIN(ImgQSortTestDetectBlur) 0036 0037 ImgQSortTestDetectBlur::ImgQSortTestDetectBlur(QObject* const parent) 0038 : ImgQSortTest(parent) 0039 { 0040 m_dataTestCases = dataTestCases; 0041 } 0042 0043 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection() 0044 { 0045 QHash<QString, bool> results = testParseTestImages(QLatin1String("blurDetection"), 0046 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0047 0048 for (const auto& test_case : results.keys()) 0049 { 0050 QVERIFY(results.value(test_case)); 0051 } 0052 } 0053 0054 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection_SharpImage() 0055 { 0056 QHash<QString, bool> results = testParseTestImages(QLatin1String("sharpImage"), 0057 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0058 0059 for (const auto& test_case : results.keys()) 0060 { 0061 QVERIFY(results.value(test_case)); 0062 } 0063 } 0064 0065 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection_MotionBlurImage() 0066 { 0067 QHash<QString, bool> results = testParseTestImages(QLatin1String("motionBlurImage"), 0068 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0069 0070 for (const auto& test_case : results.keys()) 0071 { 0072 QVERIFY(results.value(test_case)); 0073 } 0074 } 0075 0076 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection_DefocusImage() 0077 { 0078 QHash<QString, bool> results = testParseTestImages(QLatin1String("defocusImage"), 0079 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0080 0081 for (const auto& test_case : results.keys()) 0082 { 0083 QVERIFY(results.value(test_case)); 0084 } 0085 } 0086 0087 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection_BlurBackGroundImage() 0088 { 0089 if (!m_hasExifTool) 0090 { 0091 m_dataTestCases.remove(QLatin1String("blurBackGroundImage")); 0092 m_dataTestCases.insert(QLatin1String("blurBackGroundImage"), 0093 PairImageQuality(QLatin1String("blur_blurbackground_1.jpg"), 2)); 0094 m_dataTestCases.insert(QLatin1String("blurBackGroundImage"), 0095 PairImageQuality(QLatin1String("blur_blurbackground_2.jpg"), 2)); 0096 m_dataTestCases.insert(QLatin1String("blurBackGroundImage"), 0097 PairImageQuality(QLatin1String("blur_blurbackground_3.jpg"), 2)); 0098 } 0099 0100 QHash<QString, bool> results = testParseTestImages(QLatin1String("blurBackGroundImage"), 0101 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0102 0103 for (const auto& test_case : results.keys()) 0104 { 0105 QVERIFY(results.value(test_case)); 0106 } 0107 } 0108 0109 void ImgQSortTestDetectBlur::testParseTestImagesForBlurDetection_FailCase() 0110 { 0111 QHash<QString, bool> results = testParseTestImages(QLatin1String("blurDetectionFailTest"), 0112 ImgQSortTest_ParseTestImagesDefautDetection, DETECTBLUR); 0113 0114 for (const auto& test_case : results.keys()) 0115 { 0116 QEXPECT_FAIL("", "Will fix in the next release", Continue); 0117 0118 QVERIFY(results.value(test_case)); 0119 } 0120 } 0121 0122 #include "moc_detectblur_utest.cpp"