1 /*
2  *  Copyright (c) 2007 Boudewijn Rempt <boud@valdyas.org>
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  */
18 
19 #ifndef KIS_PAINT_DEVICE_TESTER_H
20 #define KIS_PAINT_DEVICE_TESTER_H
21 
22 #include <QtTest>
23 
24 class KisPaintDeviceTest : public QObject
25 {
26     Q_OBJECT
27 
28 private Q_SLOTS:
29 
30     void testCreation();
31     void testStore();
32     void testGeometry();
33     void testClear();
34     void testCrop();
35     void testThumbnail();
36     void testThumbnailDeviceWithOffset();
37     void testCaching();
38     void testRegion();
39     void testPixel();
40     void testRoundtripReadWrite();
41     void testPlanarReadWrite();
42     void testRoundtripConversion();
43     void testFastBitBlt();
44     void testMakeClone();
45     void testBltPerformance();
46     void testColorSpaceConversion();
47     void testDeviceDuplication();
48     void testTranslate();
49     void testOpacity();
50     void testExactBoundsWeirdNullAlphaCase();
51     void benchmarkExactBoundsNullDefaultPixel();
52     void testAmortizedExactBounds();
53     void testNonDefaultPixelArea();
54     void testExactBoundsNonTransparent();
55 
56     void testReadBytesWrapAround();
57     void testWrappedRandomAccessor();
58     void testWrappedHLineIterator();
59     void testWrappedVLineIterator();
60     void testWrappedHLineIteratorReadMoreThanBounds();
61     void testWrappedVLineIteratorReadMoreThanBounds();
62     void testMoveWrapAround();
63 
64     void testCacheState();
65 
66     void testLodTransform();
67     void testLodDevice();
68     void benchmarkLod1Generation();
69     void benchmarkLod2Generation();
70     void benchmarkLod3Generation();
71     void benchmarkLod4Generation();
72 
73     void testFramesLeaking();
74     void testFramesUndoRedo();
75     void testFramesUndoRedoWithChannel();
76     void testCrossDeviceFrameCopyDirect();
77     void testCrossDeviceFrameCopyChannel();
78     void testLazyFrameCreation();
79     void testCopyPaintDeviceWithFrames();
80 
81     void testCompositionAssociativity();
82 
83     void stressTestMemoryFragmentation();
84 };
85 
86 #endif
87 
88