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 #ifndef DIGIKAM_IMGQSORT_DETECT_BLUR_UTEST_H 0017 #define DIGIKAM_IMGQSORT_DETECT_BLUR_UTEST_H 0018 0019 // Qt includes 0020 0021 #include <QObject> 0022 #include <QMultiMap> 0023 #include <QString> 0024 0025 // Local includes 0026 0027 #include "imgqsorttest.h" 0028 0029 using namespace Digikam; 0030 0031 class ImgQSortTestDetectBlur : public ImgQSortTest 0032 { 0033 Q_OBJECT 0034 0035 public: 0036 0037 explicit ImgQSortTestDetectBlur(QObject* const parent = nullptr); 0038 0039 private Q_SLOTS: 0040 0041 void testParseTestImagesForBlurDetection(); 0042 void testParseTestImagesForBlurDetection_SharpImage(); 0043 void testParseTestImagesForBlurDetection_MotionBlurImage(); 0044 void testParseTestImagesForBlurDetection_DefocusImage(); 0045 void testParseTestImagesForBlurDetection_BlurBackGroundImage(); 0046 void testParseTestImagesForBlurDetection_FailCase(); 0047 }; 0048 0049 DataTestCases const dataTestCases = 0050 { 0051 {QLatin1String("blurDetection"), PairImageQuality(QLatin1String("test_blurred_1.jpg"), 2)}, 0052 {QLatin1String("blurDetection"), PairImageQuality(QLatin1String("test_blurred_2.jpg"), 2)}, 0053 {QLatin1String("blurDetection"), PairImageQuality(QLatin1String("test_blurred_5.jpg"), 1)}, 0054 {QLatin1String("blurDetection"), PairImageQuality(QLatin1String("test_blurred_9.jpg"), 1)}, 0055 0056 {QLatin1String("sharpImage"), PairImageQuality(QLatin1String("blur_rock_1.jpg"), 3)}, 0057 {QLatin1String("sharpImage"), PairImageQuality(QLatin1String("blur_tree_1.jpg"), 3)}, 0058 {QLatin1String("sharpImage"), PairImageQuality(QLatin1String("blur_street_1.jpg"), 3)}, 0059 0060 {QLatin1String("motionBlurImage"), PairImageQuality(QLatin1String("blur_sky_2.jpg"), 2)}, 0061 {QLatin1String("motionBlurImage"), PairImageQuality(QLatin1String("blur_rock_2.jpg"), 2)}, 0062 {QLatin1String("motionBlurImage"), PairImageQuality(QLatin1String("blur_tree_2.jpg"), 2)}, 0063 {QLatin1String("motionBlurImage"), PairImageQuality(QLatin1String("blur_street_2.jpg"), 2)}, 0064 0065 {QLatin1String("defocusImage"), PairImageQuality(QLatin1String("blur_sky_3.jpg"), 1)}, 0066 {QLatin1String("defocusImage"), PairImageQuality(QLatin1String("blur_street_3.jpg"), 1)}, 0067 0068 {QLatin1String("blurBackGroundImage"), PairImageQuality(QLatin1String("blur_blurbackground_1.jpg"), 3)}, // other result without ExifTool 0069 {QLatin1String("blurBackGroundImage"), PairImageQuality(QLatin1String("blur_blurbackground_2.jpg"), 3)}, // other result without ExifTool 0070 {QLatin1String("blurBackGroundImage"), PairImageQuality(QLatin1String("blur_blurbackground_3.jpg"), 3)}, // other result without ExifTool 0071 0072 {QLatin1String("blurDetectionFailTest"), PairImageQuality(QLatin1String("blur_rock_3.jpg"), 1)}, // False case : Pending instead of Rejected 0073 {QLatin1String("blurDetectionFailTest"), PairImageQuality(QLatin1String("blur_tree_3.jpg"), 1)}, // False case : Pending instead of Rejected 0074 {QLatin1String("blurDetectionFailTest"), PairImageQuality(QLatin1String("blur_sky_1.jpg"), 3)}, // False case : Pending instead of Accepted 0075 }; 0076 0077 #endif // DIGIKAM_IMGQSORT_DETECT_BLUR_UTEST_H