File indexing completed on 2024-06-09 04:24:42

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "kis_image_view_converter_test.h"
0008 #include <QApplication>
0009 
0010 #include <kis_debug.h>
0011 #include <simpletest.h>
0012 #include <KoColorSpace.h>
0013 #include <KoColorSpaceRegistry.h>
0014 
0015 #include "kis_image_view_converter.h"
0016 #include "kis_paint_device.h"
0017 #include "kis_image.h"
0018 #include "kis_types.h"
0019 
0020 void KisImageViewConverterTest::testDocumentToView()
0021 {
0022     const KoColorSpace * colorSpace = KoColorSpaceRegistry::instance()->rgb8();
0023     KisImageSP image = new KisImage(0, 512, 512, colorSpace, "test");
0024     KisImageViewConverter viewConverter(image);
0025 
0026     image->setResolution(1.38888888, 1.38888888);
0027 
0028     QVERIFY(viewConverter.documentToView(QPointF(0.0, 0.0))
0029             == QPointF(0.0, 0.0));
0030 
0031     QPointF f = viewConverter.documentToView(QPointF(3.2, 5.2));
0032     QVERIFY(f.x() < 4.44445 && f.x() > 4.44443 && f.y() < 7.22223 && f.y() > 7.22221);
0033 
0034     QRectF r = viewConverter.documentToView(QRectF(0.0, 0.0, 10.0, 10.0));
0035     QVERIFY(r.width() < 13.889 && r.width() > 13.8888
0036             && r.height() < 13.889 && r.height() > 13.8888);
0037 
0038     QSizeF s = viewConverter.documentToView(QSizeF(1.0, 1.0));
0039     QVERIFY(s.width() < 1.3888889 && s.width() > 1.388887
0040             && s.height() < 1.3888889 && s.height() > 1.388887);
0041 
0042     double x = viewConverter.documentToViewX(1.0);
0043     QVERIFY(x < 1.3888889 && x > 1.388887);
0044 
0045     double y = viewConverter.documentToViewY(1.0);
0046     QVERIFY(y < 1.3888889 && y > 1.388887);
0047 
0048 }
0049 
0050 void KisImageViewConverterTest::testViewToDocument()
0051 {
0052     const KoColorSpace * colorSpace = KoColorSpaceRegistry::instance()->rgb8();
0053     KisImageSP image = new KisImage(0, 512, 512, colorSpace, "test");
0054     KisImageViewConverter viewConverter(image);
0055 
0056     image->setResolution(1.38888888, 1.38888888);
0057 
0058     QVERIFY(viewConverter.viewToDocument(QPointF(0.0, 0.0))
0059             == QPointF(0.0, 0.0));
0060 
0061     QPointF f = viewConverter.viewToDocument(QPointF(5, 5));
0062     QVERIFY(f.x() < 3.7 && f.x() > 3.5 && f.y() < 3.7 && f.y() > 3.5);
0063 
0064     QRectF r = viewConverter.viewToDocument(QRectF(0.0, 0.0, 5, 5));
0065     QVERIFY(r.width() < 3.7 && r.width() > 3.5
0066             && r.height() < 3.7 && r.height() > 3.5);
0067 
0068     QSizeF s = viewConverter.viewToDocument(QSizeF(1.0, 1.0));
0069     QVERIFY(s.width() < 0.721 && s.width() > 0.719
0070             && s.height() < 0.721 && s.height() > 0.719);
0071 
0072     double x = viewConverter.viewToDocumentX(1.0);
0073     QVERIFY(x < 0.721 && x > 0.719);
0074 
0075     double y = viewConverter.viewToDocumentY(1.0);
0076     QVERIFY(y < 0.721 && y > 0.719);
0077 
0078 }
0079 
0080 void KisImageViewConverterTest::testZoom()
0081 {
0082     const KoColorSpace * colorSpace = KoColorSpaceRegistry::instance()->rgb8();
0083     KisImageSP image = new KisImage(0, 512, 512, colorSpace, "test");
0084     KisImageViewConverter viewConverter(image);
0085 
0086     image->setResolution(1.38888888, 5.38888888);
0087 
0088     qreal zoomX, zoomY;
0089 
0090     viewConverter.zoom(&zoomX, &zoomY);
0091     QVERIFY(zoomX < 1.388889 && zoomX > 1.3888887);
0092     QVERIFY(zoomY < 5.388889 && zoomY > 5.3888887);
0093 }
0094 
0095 SIMPLE_TEST_MAIN(KisImageViewConverterTest)