diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2022-05-10 21:06:22 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2022-05-11 10:12:59 +0200 |
commit | 04669a3a466d34d3452c88f4712b6ea6befb4d53 (patch) | |
tree | 449e6a8a70200fb03c471dc28fb2e11edfb09540 /basegfx | |
parent | 24417d8c3c9e1c619936e85fa7a20481a24e3530 (diff) |
basegfx: generalize B2DRange and B2IRange with Range2D template
Also add and/or re-arrange B2DRange and B2IRange tests
Change-Id: I0f582b30c92776ffbab8b69810ec855da0931714
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134111
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'basegfx')
-rw-r--r-- | basegfx/CppunitTest_basegfx.mk | 1 | ||||
-rw-r--r-- | basegfx/source/range/b2drange.cxx | 12 | ||||
-rw-r--r-- | basegfx/test/B2DRangeTest.cxx | 17 | ||||
-rw-r--r-- | basegfx/test/B2IRangeTest.cxx | 47 |
4 files changed, 69 insertions, 8 deletions
diff --git a/basegfx/CppunitTest_basegfx.mk b/basegfx/CppunitTest_basegfx.mk index 310424bd6446..d0a6739a34ef 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/B2DRangeTest \ + basegfx/test/B2IRangeTest \ basegfx/test/B2DPolyRangeTest \ basegfx/test/B2DHomMatrixTest \ basegfx/test/B2DPointTest \ diff --git a/basegfx/source/range/b2drange.cxx b/basegfx/source/range/b2drange.cxx index be025cc64b1d..1f20cce90a48 100644 --- a/basegfx/source/range/b2drange.cxx +++ b/basegfx/source/range/b2drange.cxx @@ -23,12 +23,12 @@ namespace basegfx { - B2DRange::B2DRange( const B2IRange& rRange ) + B2DRange::B2DRange(const B2IRange& rRange) { - if( !rRange.isEmpty() ) + if (!rRange.isEmpty()) { - maRangeX = MyBasicRange(rRange.getMinX()); - maRangeY = MyBasicRange(rRange.getMinY()); + maRangeX = basegfx::BasicRange<ValueType, TraitsType>(rRange.getMinX()); + maRangeY = basegfx::BasicRange<ValueType, TraitsType>(rRange.getMinY()); maRangeX.expand(rRange.getMaxX()); maRangeY.expand(rRange.getMaxY()); @@ -48,9 +48,9 @@ namespace basegfx } } - B2DRange& B2DRange::operator*=( const ::basegfx::B2DHomMatrix& rMat ) + B2DRange& B2DRange::operator*=(const basegfx::B2DHomMatrix& rMatrix) { - transform(rMat); + transform(rMatrix); return *this; } diff --git a/basegfx/test/B2DRangeTest.cxx b/basegfx/test/B2DRangeTest.cxx index fb23398ef55f..862fe7e5ba64 100644 --- a/basegfx/test/B2DRangeTest.cxx +++ b/basegfx/test/B2DRangeTest.cxx @@ -27,7 +27,7 @@ class B2DRangeTest : public CppUnit::TestFixture { - void testRange() + void testCreation() { basegfx::B2DRange aRange(1.2, 2.3, 3.5, 4.8); CPPUNIT_ASSERT_EQUAL(1.2, aRange.getMinX()); @@ -37,17 +37,30 @@ class B2DRangeTest : public CppUnit::TestFixture CPPUNIT_ASSERT_EQUAL(2.3, aRange.getWidth()); CPPUNIT_ASSERT_EQUAL(2.5, aRange.getHeight()); + } + void testRound() + { + basegfx::B2DRange aRange(1.2, 2.3, 3.5, 4.8); CPPUNIT_ASSERT_EQUAL_MESSAGE("simple range rounding from double to integer", basegfx::B2IRange(1, 2, 4, 5), fround(aRange)); } + void testCenter() + { + basegfx::B2DRange aRange(1.0, 2.0, 2.0, 3.0); + CPPUNIT_ASSERT_EQUAL(1.5, aRange.getCenterX()); + CPPUNIT_ASSERT_EQUAL(2.5, aRange.getCenterY()); + } + // 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(B2DRangeTest); - CPPUNIT_TEST(testRange); + CPPUNIT_TEST(testCreation); + CPPUNIT_TEST(testRound); + CPPUNIT_TEST(testCenter); CPPUNIT_TEST_SUITE_END(); }; diff --git a/basegfx/test/B2IRangeTest.cxx b/basegfx/test/B2IRangeTest.cxx new file mode 100644 index 000000000000..89d0d029f9de --- /dev/null +++ b/basegfx/test/B2IRangeTest.cxx @@ -0,0 +1,47 @@ +/* -*- 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/. + * + */ + +#include <cppunit/TestAssert.h> +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/plugin/TestPlugIn.h> + +#include <basegfx/range/b2irange.hxx> + +class B2IRangeTest : public CppUnit::TestFixture +{ + void testCreation() + { + basegfx::B2IRange aRange(1, 2, 3, 4); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), aRange.getMinX()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3), aRange.getMaxX()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aRange.getMinY()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(4), aRange.getMaxY()); + + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aRange.getWidth()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aRange.getHeight()); + } + + void testCenter() + { + basegfx::B2IRange aRange(1, 2, 2, 3); + CPPUNIT_ASSERT_EQUAL(1.5, aRange.getCenterX()); + CPPUNIT_ASSERT_EQUAL(2.5, aRange.getCenterY()); + } + + CPPUNIT_TEST_SUITE(B2IRangeTest); + CPPUNIT_TEST(testCreation); + CPPUNIT_TEST(testCenter); + CPPUNIT_TEST_SUITE_END(); +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(B2IRangeTest); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |