File indexing completed on 2024-12-22 04:10:14

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Boudewijn Rempt boud @valdyas.org
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KIS_CONVOLUTION_PAINTER_TEST_H
0008 #define KIS_CONVOLUTION_PAINTER_TEST_H
0009 
0010 #include <simpletest.h>
0011 #include <kis_types.h>
0012 
0013 class QBitArray;
0014 
0015 
0016 class KisConvolutionPainterTest : public QObject
0017 {
0018     Q_OBJECT
0019 
0020 private:
0021     void testAsymmConvolutionImp(QBitArray channelFlags);
0022     void testGaussianBase(KisPaintDeviceSP dev, bool useFftw, const QString &prefix);
0023     void testGaussian(bool useFftw);
0024     void testGaussianSmall(bool useFftw);
0025     void testGaussianDetails(bool useFftw);
0026     void testNormalMap(KisPaintDeviceSP dev, bool useFftw, const QString &prefix);
0027     void testNormalMap(bool useFftw);
0028 
0029 private Q_SLOTS:
0030 
0031     void testIdentityConvolution();
0032     void testSymmConvolution();
0033 
0034     void testAsymmAllChannels();
0035     void testAsymmSkipRed();
0036     void testAsymmSkipGreen();
0037     void testAsymmSkipBlue();
0038     void testAsymmSkipAlpha();
0039 
0040     void benchmarkConvolution();
0041     void testGaussianSpatial();
0042     void testGaussianFFTW();
0043 
0044     void testGaussianSmallSpatial();
0045     void testGaussianSmallFFTW();
0046 
0047     void testGaussianDetailsSpatial();
0048     void testGaussianDetailsFFTW();
0049 
0050     void testDilate();
0051     void testErode();
0052 
0053     void testNormalMapSpatial();
0054     void testNormalMapFFTW();
0055 };
0056 
0057 #endif