[Libreoffice-commits] core.git: basegfx/CppunitTest_basegfx.mk basegfx/test solenv/clang-format

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Thu Jan 4 06:39:12 UTC 2018


 basegfx/CppunitTest_basegfx.mk       |    1 
 basegfx/test/SvgPathImportExport.cxx |  241 +++++++++++++++++++++++++++++++++++
 basegfx/test/basegfx2d.cxx           |  233 ++-------------------------------
 solenv/clang-format/blacklist        |    1 
 4 files changed, 257 insertions(+), 219 deletions(-)

New commits:
commit d1296f4e02631c06e374a391a6dc12dc35d599e4
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Wed Jan 3 18:25:28 2018 +0900

    basegfx: extract svg path import/export test to own file
    
    Change-Id: If9925540feb54e5a101c76f8d4cebaa305ac4c75
    Reviewed-on: https://gerrit.libreoffice.org/47299
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/basegfx/CppunitTest_basegfx.mk b/basegfx/CppunitTest_basegfx.mk
index 1710423b5e50..472c6ff11049 100644
--- a/basegfx/CppunitTest_basegfx.mk
+++ b/basegfx/CppunitTest_basegfx.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_use_libraries,basegfx,\
 
 $(eval $(call gb_CppunitTest_add_exception_objects,basegfx,\
     basegfx/test/basegfx2d \
+    basegfx/test/SvgPathImportExport \
     basegfx/test/basegfx3d \
     basegfx/test/boxclipper \
     basegfx/test/basegfxtools \
diff --git a/basegfx/test/SvgPathImportExport.cxx b/basegfx/test/SvgPathImportExport.cxx
new file mode 100644
index 000000000000..fe2c6f500d0a
--- /dev/null
+++ b/basegfx/test/SvgPathImportExport.cxx
@@ -0,0 +1,241 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <cppunit/TestAssert.h>
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+
+namespace basegfx
+{
+
+class SvgPathImportExport : public CppUnit::TestFixture
+{
+private:
+    OUString aPath0;
+    OUString aPath1;
+    OUString aPath2;
+    OUString aPath3;
+
+public:
+    // initialise your test code values here.
+    void setUp() override
+    {
+        // simple rectangle
+        aPath0 = "M 10 10-10 10-10-10 10-10Z";
+
+        // simple bezier polygon
+        aPath1 = "m11430 0c-8890 3810 5715 6985 5715 6985 "
+            "0 0-17145-1905-17145-1905 0 0 22860-10160 "
+            "16510 6350-6350 16510-3810-11430-3810-11430z";
+
+        // '@' as a bezier polygon
+        aPath2 = "m1917 1114c-89-189-233-284-430-284-167 "
+            "0-306 91-419 273-113 182-170 370-170 564 "
+            "0 145 33 259 98 342 65 84 150 126 257 126 "
+            "77 0 154-19 231-57 77-38 147-97 210-176 63"
+            "-79 99-143 109-190 38-199 76-398 114-598z"
+            "m840 1646c-133 73-312 139-537 197-225 57"
+            "-440 86-644 87-483-1-866-132-1150-392-284"
+            "-261-426-619-426-1076 0-292 67-560 200-803 "
+            "133-243 321-433 562-569 241-136 514-204 821"
+            "-204 405 0 739 125 1003 374 264 250 396 550 "
+            "396 899 0 313-88 576-265 787-177 212-386 318"
+            "-627 318-191 0-308-94-352-281-133 187-315 281"
+            "-546 281-172 0-315-67-428-200-113-133-170-301"
+            "-170-505 0-277 90-527 271-751 181-223 394"
+            "-335 640-335 196 0 353 83 470 250 13-68 26"
+            "-136 41-204 96 0 192 0 288 0-74 376-148 752"
+            "-224 1128-21 101-31 183-31 245 0 39 9 70 26 "
+            "93 17 24 39 36 67 36 145 0 279-80 400-240 121"
+            "-160 182-365 182-615 0-288-107-533-322-734"
+            "-215-201-487-301-816-301-395 0-715 124-960 "
+            "373-245 249-368 569-368 958 0 385 119 685 "
+            "357 900 237 216 557 324 958 325 189-1 389-27 "
+            "600-77 211-52 378-110 503-174 27 70 54 140 81 210z";
+
+        // first part of 'Hello World' as a line polygon
+        aPath3 = "m1598 125h306v2334h-306v-1105h-1293v1105h-305v"
+            "-2334h305v973h1293zm2159 1015 78-44 85 235-91 "
+            "47-91 40-90 34-90 29-89 21-88 16-88 10-88 3-102"
+            "-4-97-12-91-19-85-26-40-16-39-18-38-20-36-22-34"
+            "-24-33-26-32-27-30-30-29-31-27-33-25-33-23-36-21"
+            "-36-19-38-18-40-16-40-26-86-18-91-11-97-4-103 3"
+            "-98 11-94 17-89 24-84 31-79 37-75 22-35 23-34 24"
+            "-33 27-32 28-30 29-28 31-27 31-24 33-22 34-21 35"
+            "-18 37-17 38-14 38-13 41-11 41-8 86-12 91-4 82 4 "
+            "78 10 37 9 37 9 36 12 35 14 33 15 33 17 32 19 31 "
+            "21 30 22 30 25 55 54 26 29 24 31 22 32 21 33 19 "
+            "34 18 36 30 74 23 80 17 84 10 89 3 94v78h-1277l6 "
+            "75 10 70 14 66 19 62 23 57 13 26 14 26 15 25 17 "
+            "23 17 22 19 21 19 20 21 18 21 18 23 16 23 14 24 "
+            "14 26 12 26 11 27 10 28 8 59 13 63 7 67 3 80-3 81"
+            "-9 79-14 80-21 78-26 79-32zm-1049-808-12 53h963l"
+            "-7-51-11-49-14-46-17-43-21-40-24-38-27-36-31-32"
+            "-33-29-35-25-37-22-38-17-40-14-41-9-42-6-44-2-48 "
+            "2-46 6-44 9-42 13-40 17-38 21-36 24-34 28-32 32"
+            "-29 34-26 38-23 41-20 44-17 47zm1648-1293h288v"
+            "2459h-288zm752-2459h288v2459h-288zm1286-1750 86-11 "
+            "91-4 91 4 85 12 42 8 39 11 39 13 38 14 36 17 35 18 "
+            "34 20 33 23 31 24 30 26 29 28 28 30 26 32 25 33 23 "
+            "34 21 35 37 75 31 80 24 84 16 90 11 94 3 100-3 100"
+            "-11 95-16 89-24 85-31 80-37 74-21 35-23 35-25 32-26 "
+            "32-28 30-29 28-30 26-31 24-33 22-34 21-35 18-36 17"
+            "-38 14-39 13-39 10-42 9-85 12-91 4-91-4-86-12-41-9"
+            "-40-10-39-13-37-14-36-17-35-18-34-21-33-22-31-24-30"
+            "-26-29-28-28-30-26-32-25-32-23-35-21-35-38-74-30-80"
+            "-24-85-17-89-11-95-3-100 3-101 11-95 17-90 24-85 30"
+            "-79 38-75 21-35 23-35 25-32 26-32 28-30 29-28 30-26 "
+            "31-24 33-22 34-20 35-18 36-16 37-15 39-12 40-11z";
+    }
+
+    void testImportExport()
+    {
+        B2DPolyPolygon  aPoly;
+        OUString aExport;
+
+        CPPUNIT_ASSERT_MESSAGE("importing simple rectangle from SVG-D",
+                               utils::importFromSvgD( aPoly, aPath0, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+        const char sExportString[] = "m10 10h-20v-20h20z";
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting rectangle to SVG-D",
+                               OUString(sExportString), aExport );
+        CPPUNIT_ASSERT_MESSAGE("importing simple rectangle from SVG-D (round-trip",
+                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting rectangle to SVG-D (round-trip)",
+                               OUString(sExportString), aExport);
+
+        CPPUNIT_ASSERT_MESSAGE("importing simple bezier polygon from SVG-D",
+                               utils::importFromSvgD( aPoly, aPath1, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+
+        // Adaptions for B2DPolygon bezier change (see #i77162#):
+
+        // The import/export of aPath1 does not reproduce aExport again. This is
+        // correct since aPath1 contains a segment with non-used control points
+        // which gets exported now correctly as 'l' and also a point (#4, index 3)
+        // with C2 continuity which produces a 's' statement now.
+
+        // The old SVGexport identified nun-used ControlVectors erraneously as bezier segments
+        // because the 2nd vector at the start point was used, even when added
+        // with start point was identical to end point. Exactly for that reason
+        // i reworked the B2DPolygon to use prev, next control points.
+
+        // so for correct unit test i add the new exported string here as sExportStringSimpleBezier
+        // and compare to it.
+        const char sExportStringSimpleBezier[] =
+            "m11430 0c-8890 3810 5715 6985 5715 6985"
+            "l-17145-1905c0 0 22860-10160 16510 6350"
+            "s-3810-11430-3810-11430z";
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting bezier polygon to SVG-D", OUString(sExportStringSimpleBezier), aExport);
+
+        // Adaptions for B2DPolygon bezier change (see #i77162#):
+
+        // a 2nd good test is that re-importing of aExport has to create the same
+        // B2DPolPolygon again:
+        B2DPolyPolygon aReImport;
+        CPPUNIT_ASSERT_MESSAGE("importing simple bezier polygon from SVG-D", utils::importFromSvgD( aReImport, aExport, false, nullptr));
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("re-imported polygon needs to be identical", aPoly, aReImport);
+
+        CPPUNIT_ASSERT_MESSAGE("importing '@' from SVG-D", utils::importFromSvgD( aPoly, aPath2, false, nullptr));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+
+        // Adaptions for B2DPolygon bezier change (see #i77162#):
+
+        // same here, the corrected export with the corrected B2DPolygon is simply more efficient,
+        // so i needed to change the compare string. Also adding the re-import comparison below.
+        const char sExportString1[] =
+            "m1917 1114c-89-189-233-284-430-284-167 0-306 91-419 273s-170 370-17"
+            "0 564c0 145 33 259 98 342 65 84 150 126 257 126q115.5 0 231-57s147-97 210-176 99-143 109-190c38-199 76-398 114"
+            "-598zm840 1646c-133 73-312 139-537 197-225 57-440 86-644 87-483-1-866-132-1150-392-284-261-426-619-426-1076 0-"
+            "292 67-560 200-803s321-433 562-569 514-204 821-204c405 0 739 125 1003 374 264 250 396 550 396 899 0 313-88 576"
+            "-265 787q-265.5 318-627 318c-191 0-308-94-352-281-133 187-315 281-546 281-172 0-315-67-428-200s-170-301-170-50"
+            "5c0-277 90-527 271-751 181-223 394-335 640-335 196 0 353 83 470 250 13-68 26-136 41-204q144 0 288 0c-74 376-14"
+            "8 752-224 1128-21 101-31 183-31 245 0 39 9 70 26 93 17 24 39 36 67 36 145 0 279-80 400-240s182-365 182-615c0-2"
+            "88-107-533-322-734s-487-301-816-301c-395 0-715 124-960 373s-368 569-368 958q0 577.5 357 900c237 216 557 324 95"
+            "8 325 189-1 389-27 600-77 211-52 378-110 503-174q40.5 105 81 210z";
+        CPPUNIT_ASSERT_MESSAGE("re-importing '@' from SVG-D", utils::importFromSvgD( aReImport, aExport, false, nullptr));
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("re-imported '@' needs to be identical", aPoly, aReImport);
+
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting '@' to SVG-D", OUString(sExportString1), aExport);
+        CPPUNIT_ASSERT_MESSAGE("importing '@' from SVG-D (round-trip",
+                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting '@' to SVG-D (round-trip)",
+                               OUString(sExportString1), aExport);
+
+        CPPUNIT_ASSERT_MESSAGE("importing complex polygon from SVG-D",
+                               utils::importFromSvgD( aPoly, aPath3, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+        const char sExportString2[] =
+            "m1598 125h306v2334h-306v-1105h-1293v1105h-305v-2334h305v973h1293"
+            "zm2159 1015 78-44 85 235-91 47-91 40-90 34-90 29-89 21-88 16-88 10-88 3-102-4-97"
+            "-12-91-19-85-26-40-16-39-18-38-20-36-22-34-24-33-26-32-27-30-30-29-31-27-33-25-3"
+            "3-23-36-21-36-19-38-18-40-16-40-26-86-18-91-11-97-4-103 3-98 11-94 17-89 24-84 3"
+            "1-79 37-75 22-35 23-34 24-33 27-32 28-30 29-28 31-27 31-24 33-22 34-21 35-18 37-"
+            "17 38-14 38-13 41-11 41-8 86-12 91-4 82 4 78 10 37 9 37 9 36 12 35 14 33 15 33 1"
+            "7 32 19 31 21 30 22 30 25 55 54 26 29 24 31 22 32 21 33 19 34 18 36 30 74 23 80 "
+            "17 84 10 89 3 94v78h-1277l6 75 10 70 14 66 19 62 23 57 13 26 14 26 15 25 17 23 1"
+            "7 22 19 21 19 20 21 18 21 18 23 16 23 14 24 14 26 12 26 11 27 10 28 8 59 13 63 7"
+            " 67 3 80-3 81-9 79-14 80-21 78-26 79-32zm-1049-808-12 53h963l-7-51-11-49-14-46-1"
+            "7-43-21-40-24-38-27-36-31-32-33-29-35-25-37-22-38-17-40-14-41-9-42-6-44-2-48 2-4"
+            "6 6-44 9-42 13-40 17-38 21-36 24-34 28-32 32-29 34-26 38-23 41-20 44-17 47zm1648"
+            "-1293h288v2459h-288zm752-2459h288v2459h-288zm1286-1750 86-11 91-4 91 4 85 12 42 "
+            "8 39 11 39 13 38 14 36 17 35 18 34 20 33 23 31 24 30 26 29 28 28 30 26 32 25 33 "
+            "23 34 21 35 37 75 31 80 24 84 16 90 11 94 3 100-3 100-11 95-16 89-24 85-31 80-37"
+            " 74-21 35-23 35-25 32-26 32-28 30-29 28-30 26-31 24-33 22-34 21-35 18-36 17-38 1"
+            "4-39 13-39 10-42 9-85 12-91 4-91-4-86-12-41-9-40-10-39-13-37-14-36-17-35-18-34-2"
+            "1-33-22-31-24-30-26-29-28-28-30-26-32-25-32-23-35-21-35-38-74-30-80-24-85-17-89-"
+            "11-95-3-100 3-101 11-95 17-90 24-85 30-79 38-75 21-35 23-35 25-32 26-32 28-30 29"
+            "-28 30-26 31-24 33-22 34-20 35-18 36-16 37-15 39-12 40-11z";
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting complex polygon to SVG-D",
+                               OUString(sExportString2), aExport);
+        CPPUNIT_ASSERT_MESSAGE("importing complex polygon from SVG-D (round-trip",
+                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
+        aExport = utils::exportToSvgD( aPoly, true, true, false );
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting complex polygon to SVG-D (round-trip)",
+                               OUString(sExportString2), aExport);
+
+        const B2DPolygon aRect(
+            utils::createPolygonFromRect( B2DRange(0.0,0.0,4000.0,4000.0) ));
+        aExport = utils::exportToSvgD( B2DPolyPolygon(aRect), false, false, false );
+
+        const char sExportStringRect[] = "M0 0H4000V4000H0Z";
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting to rectangle svg-d string",
+                               OUString(sExportStringRect), aExport);
+    }
+
+    // Change the following lines only, if you add, remove or rename
+    // member functions of the current class,
+    // because these macros are need by auto register mechanism.
+
+    CPPUNIT_TEST_SUITE(SvgPathImportExport);
+    CPPUNIT_TEST(testImportExport);
+    CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::SvgPathImportExport);
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basegfx/test/basegfx2d.cxx b/basegfx/test/basegfx2d.cxx
index 516e57ba1f86..a840e283132f 100644
--- a/basegfx/test/basegfx2d.cxx
+++ b/basegfx/test/basegfx2d.cxx
@@ -49,214 +49,10 @@
 #include "boxclipper.hxx"
 
 using namespace ::basegfx;
+using basegfx2d::getRandomOrdinal;
 
-namespace basegfx2d
+namespace basegfx
 {
-class b2dsvgdimpex : public CppUnit::TestFixture
-{
-private:
-    OUString aPath0;
-    OUString aPath1;
-    OUString aPath2;
-    OUString aPath3;
-
-public:
-    // initialise your test code values here.
-    void setUp() override
-    {
-        // simple rectangle
-        aPath0 = "M 10 10-10 10-10-10 10-10Z";
-
-        // simple bezier polygon
-        aPath1 = "m11430 0c-8890 3810 5715 6985 5715 6985 "
-            "0 0-17145-1905-17145-1905 0 0 22860-10160 "
-            "16510 6350-6350 16510-3810-11430-3810-11430z";
-
-        // '@' as a bezier polygon
-        aPath2 = "m1917 1114c-89-189-233-284-430-284-167 "
-            "0-306 91-419 273-113 182-170 370-170 564 "
-            "0 145 33 259 98 342 65 84 150 126 257 126 "
-            "77 0 154-19 231-57 77-38 147-97 210-176 63"
-            "-79 99-143 109-190 38-199 76-398 114-598z"
-            "m840 1646c-133 73-312 139-537 197-225 57"
-            "-440 86-644 87-483-1-866-132-1150-392-284"
-            "-261-426-619-426-1076 0-292 67-560 200-803 "
-            "133-243 321-433 562-569 241-136 514-204 821"
-            "-204 405 0 739 125 1003 374 264 250 396 550 "
-            "396 899 0 313-88 576-265 787-177 212-386 318"
-            "-627 318-191 0-308-94-352-281-133 187-315 281"
-            "-546 281-172 0-315-67-428-200-113-133-170-301"
-            "-170-505 0-277 90-527 271-751 181-223 394"
-            "-335 640-335 196 0 353 83 470 250 13-68 26"
-            "-136 41-204 96 0 192 0 288 0-74 376-148 752"
-            "-224 1128-21 101-31 183-31 245 0 39 9 70 26 "
-            "93 17 24 39 36 67 36 145 0 279-80 400-240 121"
-            "-160 182-365 182-615 0-288-107-533-322-734"
-            "-215-201-487-301-816-301-395 0-715 124-960 "
-            "373-245 249-368 569-368 958 0 385 119 685 "
-            "357 900 237 216 557 324 958 325 189-1 389-27 "
-            "600-77 211-52 378-110 503-174 27 70 54 140 81 210z";
-
-        // first part of 'Hello World' as a line polygon
-        aPath3 = "m1598 125h306v2334h-306v-1105h-1293v1105h-305v"
-            "-2334h305v973h1293zm2159 1015 78-44 85 235-91 "
-            "47-91 40-90 34-90 29-89 21-88 16-88 10-88 3-102"
-            "-4-97-12-91-19-85-26-40-16-39-18-38-20-36-22-34"
-            "-24-33-26-32-27-30-30-29-31-27-33-25-33-23-36-21"
-            "-36-19-38-18-40-16-40-26-86-18-91-11-97-4-103 3"
-            "-98 11-94 17-89 24-84 31-79 37-75 22-35 23-34 24"
-            "-33 27-32 28-30 29-28 31-27 31-24 33-22 34-21 35"
-            "-18 37-17 38-14 38-13 41-11 41-8 86-12 91-4 82 4 "
-            "78 10 37 9 37 9 36 12 35 14 33 15 33 17 32 19 31 "
-            "21 30 22 30 25 55 54 26 29 24 31 22 32 21 33 19 "
-            "34 18 36 30 74 23 80 17 84 10 89 3 94v78h-1277l6 "
-            "75 10 70 14 66 19 62 23 57 13 26 14 26 15 25 17 "
-            "23 17 22 19 21 19 20 21 18 21 18 23 16 23 14 24 "
-            "14 26 12 26 11 27 10 28 8 59 13 63 7 67 3 80-3 81"
-            "-9 79-14 80-21 78-26 79-32zm-1049-808-12 53h963l"
-            "-7-51-11-49-14-46-17-43-21-40-24-38-27-36-31-32"
-            "-33-29-35-25-37-22-38-17-40-14-41-9-42-6-44-2-48 "
-            "2-46 6-44 9-42 13-40 17-38 21-36 24-34 28-32 32"
-            "-29 34-26 38-23 41-20 44-17 47zm1648-1293h288v"
-            "2459h-288zm752-2459h288v2459h-288zm1286-1750 86-11 "
-            "91-4 91 4 85 12 42 8 39 11 39 13 38 14 36 17 35 18 "
-            "34 20 33 23 31 24 30 26 29 28 28 30 26 32 25 33 23 "
-            "34 21 35 37 75 31 80 24 84 16 90 11 94 3 100-3 100"
-            "-11 95-16 89-24 85-31 80-37 74-21 35-23 35-25 32-26 "
-            "32-28 30-29 28-30 26-31 24-33 22-34 21-35 18-36 17"
-            "-38 14-39 13-39 10-42 9-85 12-91 4-91-4-86-12-41-9"
-            "-40-10-39-13-37-14-36-17-35-18-34-21-33-22-31-24-30"
-            "-26-29-28-28-30-26-32-25-32-23-35-21-35-38-74-30-80"
-            "-24-85-17-89-11-95-3-100 3-101 11-95 17-90 24-85 30"
-            "-79 38-75 21-35 23-35 25-32 26-32 28-30 29-28 30-26 "
-            "31-24 33-22 34-20 35-18 36-16 37-15 39-12 40-11z";
-    }
-
-    void impex()
-    {
-        B2DPolyPolygon  aPoly;
-        OUString aExport;
-
-        CPPUNIT_ASSERT_MESSAGE("importing simple rectangle from SVG-D",
-                               utils::importFromSvgD( aPoly, aPath0, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-        const char sExportString[] = "m10 10h-20v-20h20z";
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting rectangle to SVG-D",
-                               OUString(sExportString), aExport );
-        CPPUNIT_ASSERT_MESSAGE("importing simple rectangle from SVG-D (round-trip",
-                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting rectangle to SVG-D (round-trip)",
-                               OUString(sExportString), aExport);
-
-        CPPUNIT_ASSERT_MESSAGE("importing simple bezier polygon from SVG-D",
-                               utils::importFromSvgD( aPoly, aPath1, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-
-        // Adaptions for B2DPolygon bezier change (see #i77162#):
-
-        // The import/export of aPath1 does not reproduce aExport again. This is
-        // correct since aPath1 contains a segment with non-used control points
-        // which gets exported now correctly as 'l' and also a point (#4, index 3)
-        // with C2 continuity which produces a 's' statement now.
-
-        // The old SVGexport identified nun-used ControlVectors erraneously as bezier segments
-        // because the 2nd vector at the start point was used, even when added
-        // with start point was identical to end point. Exactly for that reason
-        // i reworked the B2DPolygon to use prev, next control points.
-
-        // so for correct unit test i add the new exported string here as sExportStringSimpleBezier
-        // and compare to it.
-        const char sExportStringSimpleBezier[] =
-            "m11430 0c-8890 3810 5715 6985 5715 6985"
-            "l-17145-1905c0 0 22860-10160 16510 6350"
-            "s-3810-11430-3810-11430z";
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting bezier polygon to SVG-D", OUString(sExportStringSimpleBezier), aExport);
-
-        // Adaptions for B2DPolygon bezier change (see #i77162#):
-
-        // a 2nd good test is that re-importing of aExport has to create the same
-        // B2DPolPolygon again:
-        B2DPolyPolygon aReImport;
-        CPPUNIT_ASSERT_MESSAGE("importing simple bezier polygon from SVG-D", utils::importFromSvgD( aReImport, aExport, false, nullptr));
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("re-imported polygon needs to be identical", aPoly, aReImport);
-
-        CPPUNIT_ASSERT_MESSAGE("importing '@' from SVG-D", utils::importFromSvgD( aPoly, aPath2, false, nullptr));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-
-        // Adaptions for B2DPolygon bezier change (see #i77162#):
-
-        // same here, the corrected export with the corrected B2DPolygon is simply more efficient,
-        // so i needed to change the compare string. Also adding the re-import comparison below.
-        const char sExportString1[] =
-            "m1917 1114c-89-189-233-284-430-284-167 0-306 91-419 273s-170 370-17"
-            "0 564c0 145 33 259 98 342 65 84 150 126 257 126q115.5 0 231-57s147-97 210-176 99-143 109-190c38-199 76-398 114"
-            "-598zm840 1646c-133 73-312 139-537 197-225 57-440 86-644 87-483-1-866-132-1150-392-284-261-426-619-426-1076 0-"
-            "292 67-560 200-803s321-433 562-569 514-204 821-204c405 0 739 125 1003 374 264 250 396 550 396 899 0 313-88 576"
-            "-265 787q-265.5 318-627 318c-191 0-308-94-352-281-133 187-315 281-546 281-172 0-315-67-428-200s-170-301-170-50"
-            "5c0-277 90-527 271-751 181-223 394-335 640-335 196 0 353 83 470 250 13-68 26-136 41-204q144 0 288 0c-74 376-14"
-            "8 752-224 1128-21 101-31 183-31 245 0 39 9 70 26 93 17 24 39 36 67 36 145 0 279-80 400-240s182-365 182-615c0-2"
-            "88-107-533-322-734s-487-301-816-301c-395 0-715 124-960 373s-368 569-368 958q0 577.5 357 900c237 216 557 324 95"
-            "8 325 189-1 389-27 600-77 211-52 378-110 503-174q40.5 105 81 210z";
-        CPPUNIT_ASSERT_MESSAGE("re-importing '@' from SVG-D", utils::importFromSvgD( aReImport, aExport, false, nullptr));
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("re-imported '@' needs to be identical", aPoly, aReImport);
-
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting '@' to SVG-D", OUString(sExportString1), aExport);
-        CPPUNIT_ASSERT_MESSAGE("importing '@' from SVG-D (round-trip",
-                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting '@' to SVG-D (round-trip)",
-                               OUString(sExportString1), aExport);
-
-        CPPUNIT_ASSERT_MESSAGE("importing complex polygon from SVG-D",
-                               utils::importFromSvgD( aPoly, aPath3, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-        const char sExportString2[] =
-            "m1598 125h306v2334h-306v-1105h-1293v1105h-305v-2334h305v973h1293"
-            "zm2159 1015 78-44 85 235-91 47-91 40-90 34-90 29-89 21-88 16-88 10-88 3-102-4-97"
-            "-12-91-19-85-26-40-16-39-18-38-20-36-22-34-24-33-26-32-27-30-30-29-31-27-33-25-3"
-            "3-23-36-21-36-19-38-18-40-16-40-26-86-18-91-11-97-4-103 3-98 11-94 17-89 24-84 3"
-            "1-79 37-75 22-35 23-34 24-33 27-32 28-30 29-28 31-27 31-24 33-22 34-21 35-18 37-"
-            "17 38-14 38-13 41-11 41-8 86-12 91-4 82 4 78 10 37 9 37 9 36 12 35 14 33 15 33 1"
-            "7 32 19 31 21 30 22 30 25 55 54 26 29 24 31 22 32 21 33 19 34 18 36 30 74 23 80 "
-            "17 84 10 89 3 94v78h-1277l6 75 10 70 14 66 19 62 23 57 13 26 14 26 15 25 17 23 1"
-            "7 22 19 21 19 20 21 18 21 18 23 16 23 14 24 14 26 12 26 11 27 10 28 8 59 13 63 7"
-            " 67 3 80-3 81-9 79-14 80-21 78-26 79-32zm-1049-808-12 53h963l-7-51-11-49-14-46-1"
-            "7-43-21-40-24-38-27-36-31-32-33-29-35-25-37-22-38-17-40-14-41-9-42-6-44-2-48 2-4"
-            "6 6-44 9-42 13-40 17-38 21-36 24-34 28-32 32-29 34-26 38-23 41-20 44-17 47zm1648"
-            "-1293h288v2459h-288zm752-2459h288v2459h-288zm1286-1750 86-11 91-4 91 4 85 12 42 "
-            "8 39 11 39 13 38 14 36 17 35 18 34 20 33 23 31 24 30 26 29 28 28 30 26 32 25 33 "
-            "23 34 21 35 37 75 31 80 24 84 16 90 11 94 3 100-3 100-11 95-16 89-24 85-31 80-37"
-            " 74-21 35-23 35-25 32-26 32-28 30-29 28-30 26-31 24-33 22-34 21-35 18-36 17-38 1"
-            "4-39 13-39 10-42 9-85 12-91 4-91-4-86-12-41-9-40-10-39-13-37-14-36-17-35-18-34-2"
-            "1-33-22-31-24-30-26-29-28-28-30-26-32-25-32-23-35-21-35-38-74-30-80-24-85-17-89-"
-            "11-95-3-100 3-101 11-95 17-90 24-85 30-79 38-75 21-35 23-35 25-32 26-32 28-30 29"
-            "-28 30-26 31-24 33-22 34-20 35-18 36-16 37-15 39-12 40-11z";
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting complex polygon to SVG-D",
-                               OUString(sExportString2), aExport);
-        CPPUNIT_ASSERT_MESSAGE("importing complex polygon from SVG-D (round-trip",
-                               utils::importFromSvgD( aPoly, aExport, false, nullptr ));
-        aExport = utils::exportToSvgD( aPoly, true, true, false );
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting complex polygon to SVG-D (round-trip)",
-                               OUString(sExportString2), aExport);
-
-        const B2DPolygon aRect(
-            utils::createPolygonFromRect( B2DRange(0.0,0.0,4000.0,4000.0) ));
-        aExport = utils::exportToSvgD( B2DPolyPolygon(aRect), false, false, false );
-
-        const char sExportStringRect[] = "M0 0H4000V4000H0Z";
-        CPPUNIT_ASSERT_EQUAL_MESSAGE("exporting to rectangle svg-d string",
-                               OUString(sExportStringRect), aExport);
-    }
-
-    // Change the following lines only, if you add, remove or rename
-    // member functions of the current class,
-    // because these macros are need by auto register mechanism.
-
-    CPPUNIT_TEST_SUITE(b2dsvgdimpex);
-    CPPUNIT_TEST(impex);
-    CPPUNIT_TEST_SUITE_END();
-}; // class b2dsvgdimpex
 
 class b2drange : public CppUnit::TestFixture
 {
@@ -1208,19 +1004,18 @@ public:
     CPPUNIT_TEST_SUITE_END();
 }; // class b2dvector
 
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dsvgdimpex);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2drange);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolyrange);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dhommatrix);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpoint);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolygon);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolygontools);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolypolygon);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b1Xrange);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2Xrange);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2ibox);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dtuple);
-CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::bcolor);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2drange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolyrange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dhommatrix);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpoint);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolygon);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolygontools);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolypolygon);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b1Xrange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2Xrange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2ibox);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dtuple);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::bcolor);
 } // namespace basegfx2d
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index d80378d1ab1d..cecc5025d84c 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -386,6 +386,7 @@ basegfx/source/workbench/bezierclip.cxx
 basegfx/source/workbench/bezierclip.hxx
 basegfx/source/workbench/convexhull.cxx
 basegfx/source/workbench/gauss.hxx
+basegfx/test/SvgPathImportExport.cxx
 basegfx/test/basegfx2d.cxx
 basegfx/test/basegfx3d.cxx
 basegfx/test/basegfxtools.cxx


More information about the Libreoffice-commits mailing list