Kaydet (Commit) dfc4d2b0 authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Tomaž Vajngerl

split basegfx 2d tests to separate files (one per tested class)

Change-Id: Icb2f745851ba3de31f6a672d1bc20659de687d2e
Reviewed-on: https://gerrit.libreoffice.org/67031
Tested-by: Jenkins
Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
üst a2f5a7d6
......@@ -22,7 +22,18 @@ $(eval $(call gb_CppunitTest_use_libraries,basegfx,\
))
$(eval $(call gb_CppunitTest_add_exception_objects,basegfx,\
basegfx/test/basegfx2d \
basegfx/test/B2DRangeTest \
basegfx/test/B2DPolyRangeTest \
basegfx/test/B2DHomMatrixTest \
basegfx/test/B2DPointTest \
basegfx/test/B2DPolygonTest \
basegfx/test/B2DPolygonToolsTest \
basegfx/test/B2DPolyPolygonTest \
basegfx/test/B1DRangeTest \
basegfx/test/B2XRangeTest \
basegfx/test/B2IBoxTest \
basegfx/test/B2DTupleTest \
basegfx/test/BColorTest \
basegfx/test/SvgPathImportExport \
basegfx/test/basegfx3d \
basegfx/test/boxclipper \
......
/* -*- 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/range/b1drange.hxx>
namespace basegfx
{
class b1Xrange : public CppUnit::TestFixture
{
public:
template <class Type> void implCheck()
{
// test interval axioms
// (http://en.wikipedia.org/wiki/Interval_%28mathematics%29)
Type aRange;
CPPUNIT_ASSERT_MESSAGE("default ctor - empty range", aRange.isEmpty());
CPPUNIT_ASSERT_MESSAGE("center - get cop-out value since range is empty",
aRange.getCenter() == 0);
// degenerate interval
aRange.expand(1);
CPPUNIT_ASSERT_MESSAGE("degenerate range - still, not empty!", !aRange.isEmpty());
CPPUNIT_ASSERT_MESSAGE("degenerate range - size of 0", aRange.getRange() == 0);
CPPUNIT_ASSERT_MESSAGE("same value as degenerate range - is inside range",
aRange.isInside(1));
CPPUNIT_ASSERT_MESSAGE("center - must be the single range value", aRange.getCenter() == 1);
// proper interval
aRange.expand(2);
CPPUNIT_ASSERT_MESSAGE("proper range - size of 1", aRange.getRange() == 1);
CPPUNIT_ASSERT_MESSAGE("smaller value of range - is inside *closed* range",
aRange.isInside(1));
CPPUNIT_ASSERT_MESSAGE("larger value of range - is inside *closed* range",
aRange.isInside(2));
// center for proper interval that works for ints, too
aRange.expand(3);
CPPUNIT_ASSERT_MESSAGE("center - must be half of the range", aRange.getCenter() == 2);
// check overlap
Type aRange2(0, 1);
CPPUNIT_ASSERT_MESSAGE("range overlapping *includes* upper bound",
aRange.overlaps(aRange2));
CPPUNIT_ASSERT_MESSAGE("range overlapping *includes* upper bound, but only barely",
!aRange.overlapsMore(aRange2));
Type aRange3(0, 2);
CPPUNIT_ASSERT_MESSAGE("range overlapping is fully overlapping now",
aRange.overlapsMore(aRange3));
// check intersect
Type aRange4(3, 4);
aRange.intersect(aRange4);
CPPUNIT_ASSERT_MESSAGE("range intersection is yielding empty range!", !aRange.isEmpty());
Type aRange5(5, 6);
aRange.intersect(aRange5);
CPPUNIT_ASSERT_MESSAGE("range intersection is yielding nonempty range!", aRange.isEmpty());
}
void check() { implCheck<B1DRange>(); }
// 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(b1Xrange);
CPPUNIT_TEST(check);
CPPUNIT_TEST_SUITE_END();
}; // class b1Xrange
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b1Xrange);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
/* -*- 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>
namespace basegfx
{
class b2dpoint : public CppUnit::TestFixture
{
public:
// insert your test code here.
// this is only demonstration code
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
}
// 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(b2dpoint);
CPPUNIT_TEST(EmptyMethod);
CPPUNIT_TEST_SUITE_END();
}; // class b2dpoint
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpoint);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dtrapezoid.hxx>
#include "boxclipper.hxx"
namespace basegfx
{
using ::basegfx2d::getRandomOrdinal;
class b2dpolypolygon : public CppUnit::TestFixture
{
public:
// insert your test code here.
void testTrapezoidHelper()
{
B2DPolygon aPolygon;
// provoke the PointBlockAllocator to exercise the freeIfLast path
for (int i = 0; i < 16 * 10; i++)
{
B2DPoint aPoint(getRandomOrdinal(1000), getRandomOrdinal(1000));
aPolygon.append(aPoint);
}
// scatter some duplicate points in to stress things more.
for (int i = 0; i < 16 * 10; i++)
{
aPolygon.insert(getRandomOrdinal(aPolygon.count() - 1),
aPolygon.getB2DPoint(getRandomOrdinal(aPolygon.count() - 1)));
}
B2DPolygon aPolygonOffset;
// duplicate the polygon and offset it slightly.
for (size_t i = 0; i < aPolygon.count(); i++)
{
B2DPoint aPoint(aPolygon.getB2DPoint(i));
aPoint += B2DPoint(0.5 - getRandomOrdinal(1), 0.5 - getRandomOrdinal(1));
aPolygonOffset.append(aPoint);
}
B2DPolyPolygon aPolyPolygon;
aPolyPolygon.append(aPolygon);
aPolyPolygon.append(aPolygonOffset);
B2DTrapezoidVector aVector;
basegfx::utils::trapezoidSubdivide(aVector, aPolyPolygon);
CPPUNIT_ASSERT_MESSAGE("more than zero sub-divided trapezoids", !aVector.empty());
}
// 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(b2dpolypolygon);
CPPUNIT_TEST(testTrapezoidHelper);
CPPUNIT_TEST_SUITE_END();
}; // class b2dpolypolygon
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolypolygon);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/range/b2drange.hxx>
#include <basegfx/range/b2dpolyrange.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
namespace basegfx
{
class b2dpolyrange : public CppUnit::TestFixture
{
private:
public:
void check()
{
B2DPolyRange aRange;
aRange.appendElement(B2DRange(0, 0, 1, 1), B2VectorOrientation::Positive);
aRange.appendElement(B2DRange(2, 2, 3, 3), B2VectorOrientation::Positive);
CPPUNIT_ASSERT_EQUAL_MESSAGE("simple poly range - count", sal_uInt32(2), aRange.count());
CPPUNIT_ASSERT_EQUAL_MESSAGE("simple poly range - first element", B2DRange(0, 0, 1, 1),
std::get<0>(aRange.getElement(0)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("simple poly range - second element", B2DRange(2, 2, 3, 3),
std::get<0>(aRange.getElement(1)));
// B2DPolyRange relies on correctly orientated rects
const B2DRange aRect(0, 0, 1, 1);
CPPUNIT_ASSERT_EQUAL_MESSAGE("createPolygonFromRect - correct orientation",
B2VectorOrientation::Positive,
utils::getOrientation(utils::createPolygonFromRect(aRect)));
}
// 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(b2dpolyrange);
CPPUNIT_TEST(check);
CPPUNIT_TEST_SUITE_END();
};
}
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolyrange);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/b2dpolygon.hxx>
#include <basegfx/point/b2dpoint.hxx>
namespace basegfx
{
class b2dpolygon : public CppUnit::TestFixture
{
public:
void testBasics()
{
B2DPolygon aPoly;
aPoly.appendBezierSegment(B2DPoint(1, 1), B2DPoint(2, 2), B2DPoint(3, 3));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#1 first polygon point wrong", B2DPoint(3, 3),
aPoly.getB2DPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#1 first control point wrong", B2DPoint(2, 2),
aPoly.getPrevControlPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#1 second control point wrong", B2DPoint(3, 3),
aPoly.getNextControlPoint(0));
CPPUNIT_ASSERT_MESSAGE("next control point not used", !aPoly.isNextControlPointUsed(0));
aPoly.setNextControlPoint(0, B2DPoint(4, 4));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#1.1 second control point wrong", B2DPoint(4, 4),
aPoly.getNextControlPoint(0));
CPPUNIT_ASSERT_MESSAGE("next control point used", aPoly.isNextControlPointUsed(0));
CPPUNIT_ASSERT_MESSAGE("areControlPointsUsed() wrong", aPoly.areControlPointsUsed());
CPPUNIT_ASSERT_EQUAL_MESSAGE("getContinuityInPoint() wrong", B2VectorContinuity::C2,
aPoly.getContinuityInPoint(0));
aPoly.resetControlPoints();
CPPUNIT_ASSERT_EQUAL_MESSAGE("resetControlPoints() did not clear", B2DPoint(3, 3),
aPoly.getB2DPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("resetControlPoints() did not clear", B2DPoint(3, 3),
aPoly.getPrevControlPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("resetControlPoints() did not clear", B2DPoint(3, 3),
aPoly.getNextControlPoint(0));
CPPUNIT_ASSERT_MESSAGE("areControlPointsUsed() wrong #2", !aPoly.areControlPointsUsed());
aPoly.clear();
aPoly.append(B2DPoint(0, 0));
aPoly.appendBezierSegment(B2DPoint(1, 1), B2DPoint(2, 2), B2DPoint(3, 3));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 first polygon point wrong", B2DPoint(0, 0),
aPoly.getB2DPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 first control point wrong", B2DPoint(0, 0),
aPoly.getPrevControlPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 second control point wrong", B2DPoint(1, 1),
aPoly.getNextControlPoint(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 third control point wrong", B2DPoint(2, 2),
aPoly.getPrevControlPoint(1));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 fourth control point wrong", B2DPoint(3, 3),
aPoly.getNextControlPoint(1));
CPPUNIT_ASSERT_EQUAL_MESSAGE("#2 second polygon point wrong", B2DPoint(3, 3),
aPoly.getB2DPoint(1));
}
// 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(b2dpolygon);
CPPUNIT_TEST(testBasics);
CPPUNIT_TEST_SUITE_END();
}; // class b2dpolygon
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolygon);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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>
namespace basegfx
{
class b2dpolygontools : public CppUnit::TestFixture
{
public:
// insert your test code here.
// this is only demonstration code
void testIsRectangle()
{
B2DPolygon aRect1(utils::createPolygonFromRect(B2DRange(0, 0, 1, 1)));
B2DPolygon aRect2{ { 0, 0 }, { 1, 0 }, { 1, 0.5 }, { 1, 1 }, { 0, 1 } };
aRect2.setClosed(true);
B2DPolygon aNonRect1{ { 0, 0 }, { 1, 0 }, { 0.5, 1 }, { 0.5, 0 } };
aNonRect1.setClosed(true);
B2DPolygon aNonRect2{ { 0, 0 }, { 1, 1 }, { 1, 0 }, { 0, 1 } };
aNonRect2.setClosed(true);
B2DPolygon aNonRect3{ { 0, 0 }, { 1, 0 }, { 1, 1 } };
aNonRect3.setClosed(true);
B2DPolygon aNonRect4{ { 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 } };
B2DPolygon aNonRect5{ { 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 } };
aNonRect5.setControlPoints(1, B2DPoint(1, 0), B2DPoint(-11, 0));
aNonRect5.setClosed(true);
CPPUNIT_ASSERT_MESSAGE("checking rectangle-ness of rectangle 1",
utils::isRectangle(aRect1));
CPPUNIT_ASSERT_MESSAGE("checking rectangle-ness of rectangle 2",
utils::isRectangle(aRect2));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 1",
!utils::isRectangle(aNonRect1));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 2",
!utils::isRectangle(aNonRect2));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 3",
!utils::isRectangle(aNonRect3));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 4",
!utils::isRectangle(aNonRect4));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 5",
!utils::isRectangle(aNonRect5));
}
// 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(b2dpolygontools);
CPPUNIT_TEST(testIsRectangle);
CPPUNIT_TEST_SUITE_END();
}; // class b2dpolygontools
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dpolygontools);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/range/b2drange.hxx>
#include <basegfx/range/b1drange.hxx>
#include <basegfx/range/b2irange.hxx>
namespace basegfx
{
class b2drange : public CppUnit::TestFixture
{
private:
public:
void check()
{
CPPUNIT_ASSERT_EQUAL_MESSAGE("simple range rounding from double to integer",
B2IRange(1, 2, 4, 5), fround(B2DRange(1.2, 2.3, 3.5, 4.8)));
}
// 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(b2drange);
CPPUNIT_TEST(check);
CPPUNIT_TEST_SUITE_END();
};
}
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2drange);
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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>
namespace basegfx
{
class b2dtuple : public CppUnit::TestFixture
{
public:
// insert your test code here.
// this is only demonstration code
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
}
// 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(b2dtuple);
CPPUNIT_TEST(EmptyMethod);
CPPUNIT_TEST_SUITE_END();
};
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2dtuple);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/range/b2ibox.hxx>
#include <basegfx/point/b2ipoint.hxx>
#include <basegfx/utils/rectcliptools.hxx>
namespace basegfx
{
class b2ibox : public CppUnit::TestFixture
{
public:
void TestBox()
{
// cohen sutherland clipping
B2IBox aBox(0, 0, 10, 10);
CPPUNIT_ASSERT_EQUAL_MESSAGE("(0,0) is outside range!", sal_uInt32(0),
utils::getCohenSutherlandClipFlags(B2IPoint(0, 0), aBox));
CPPUNIT_ASSERT_EQUAL_MESSAGE("(-1,-1) is inside range!",
utils::RectClipFlags::LEFT | utils::RectClipFlags::TOP,
utils::getCohenSutherlandClipFlags(B2IPoint(-1, -1), aBox));
CPPUNIT_ASSERT_EQUAL_MESSAGE("(9,9) is outside range!", sal_uInt32(0),
utils::getCohenSutherlandClipFlags(B2IPoint(9, 9), aBox));
CPPUNIT_ASSERT_EQUAL_MESSAGE("(10,10) is inside range!",
utils::RectClipFlags::RIGHT | utils::RectClipFlags::BOTTOM,
utils::getCohenSutherlandClipFlags(B2IPoint(10, 10), aBox));
}
// 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(b2ibox);
CPPUNIT_TEST(TestBox);
CPPUNIT_TEST_SUITE_END();
}; // class b2ibox
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2ibox);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/range/b2drange.hxx>
#include <basegfx/range/b2irange.hxx>
#include <basegfx/utils/rectcliptools.hxx>
namespace basegfx
{
class b2Xrange : public CppUnit::TestFixture
{
public:
template <class Type> void implCheck()
{
// cohen sutherland clipping
Type aRange(0, 0, 10, 10);
CPPUNIT_ASSERT_MESSAGE("(0,0) is outside range!",
utils::getCohenSutherlandClipFlags(B2IPoint(0, 0), aRange) == 0);
CPPUNIT_ASSERT_MESSAGE("(-1,-1) is inside range!",
utils::getCohenSutherlandClipFlags(B2IPoint(-1, -1), aRange)
== (utils::RectClipFlags::LEFT | utils::RectClipFlags::TOP));
CPPUNIT_ASSERT_MESSAGE("(10,10) is outside range!",
utils::getCohenSutherlandClipFlags(B2IPoint(10, 10), aRange) == 0);
CPPUNIT_ASSERT_MESSAGE("(11,11) is inside range!",
utils::getCohenSutherlandClipFlags(B2IPoint(11, 11), aRange)
== (utils::RectClipFlags::RIGHT | utils::RectClipFlags::BOTTOM));
}
void check()
{
implCheck<B2DRange>();
implCheck<B2IRange>();
}
// 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(b2Xrange);
CPPUNIT_TEST(check);
CPPUNIT_TEST_SUITE_END();
}; // class b2Xrange
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::b2Xrange);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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/color/bcolor.hxx>
#include <basegfx/color/bcolortools.hxx>
namespace basegfx
{
class bcolor : public CppUnit::TestFixture
{
BColor maWhite;
BColor maBlack;
BColor maRed;
BColor maGreen;
BColor maBlue;
BColor maYellow;
BColor maMagenta;
BColor maCyan;
public:
bcolor()
: maWhite(1, 1, 1)
, maBlack(0, 0, 0)
, maRed(1, 0, 0)
, maGreen(0, 1, 0)
, maBlue(0, 0, 1)
, maYellow(1, 1, 0)
, maMagenta(1, 0, 1)
, maCyan(0, 1, 1)
{
}
// insert your test code here.
void hslTest()
{
CPPUNIT_ASSERT_EQUAL_MESSAGE("white", BColor(0, 0, 1), utils::rgb2hsl(maWhite));
CPPUNIT_ASSERT_EQUAL_MESSAGE("black", BColor(0, 0, 0), utils::rgb2hsl(maBlack));
CPPUNIT_ASSERT_EQUAL_MESSAGE("red", BColor(0, 1, 0.5), utils::rgb2hsl(maRed));
CPPUNIT_ASSERT_EQUAL_MESSAGE("green", BColor(120, 1, 0.5), utils::rgb2hsl(maGreen));
CPPUNIT_ASSERT_EQUAL_MESSAGE("blue", BColor(240, 1, 0.5), utils::rgb2hsl(maBlue));
CPPUNIT_ASSERT_EQUAL_MESSAGE("yellow", BColor(60, 1, 0.5), utils::rgb2hsl(maYellow));
CPPUNIT_ASSERT_EQUAL_MESSAGE("magenta", BColor(300, 1, 0.5), utils::rgb2hsl(maMagenta));
CPPUNIT_ASSERT_EQUAL_MESSAGE("cyan", BColor(180, 1, 0.5), utils::rgb2hsl(maCyan));
CPPUNIT_ASSERT_EQUAL_MESSAGE("third hue case", BColor(210, 1, 0.5),
utils::rgb2hsl(BColor(0, 0.5, 1)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip white", maWhite,
utils::hsl2rgb(utils::rgb2hsl(maWhite)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip black", maBlack,
utils::hsl2rgb(utils::rgb2hsl(maBlack)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip red", maRed, utils::hsl2rgb(utils::rgb2hsl(maRed)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip green", maGreen,
utils::hsl2rgb(utils::rgb2hsl(maGreen)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip blue", maBlue,
utils::hsl2rgb(utils::rgb2hsl(maBlue)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip yellow", maYellow,
utils::hsl2rgb(utils::rgb2hsl(maYellow)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip magenta", maMagenta,
utils::hsl2rgb(utils::rgb2hsl(maMagenta)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip cyan", maCyan,
utils::hsl2rgb(utils::rgb2hsl(maCyan)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("grey10", BColor(0, 0, .1), utils::rgb2hsl(maWhite * .1));
CPPUNIT_ASSERT_EQUAL_MESSAGE("grey90", BColor(0, 0, .9), utils::rgb2hsl(maWhite * .9));
CPPUNIT_ASSERT_EQUAL_MESSAGE("red/2", BColor(0, 1, 0.25), utils::rgb2hsl(maRed * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("green/2", BColor(120, 1, 0.25), utils::rgb2hsl(maGreen * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("blue/2", BColor(240, 1, 0.25), utils::rgb2hsl(maBlue * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("yellow/2", BColor(60, 1, 0.25),
utils::rgb2hsl(maYellow * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("magenta/2", BColor(300, 1, 0.25),
utils::rgb2hsl(maMagenta * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("cyan/2", BColor(180, 1, 0.25), utils::rgb2hsl(maCyan * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("pastel", BColor(0, .5, .5),
utils::rgb2hsl(BColor(.75, .25, .25)));
}
// insert your test code here.
void hsvTest()
{
CPPUNIT_ASSERT_EQUAL_MESSAGE("white", BColor(0, 0, 1), utils::rgb2hsv(maWhite));
CPPUNIT_ASSERT_EQUAL_MESSAGE("black", BColor(0, 0, 0), utils::rgb2hsv(maBlack));
CPPUNIT_ASSERT_EQUAL_MESSAGE("red", BColor(0, 1, 1), utils::rgb2hsv(maRed));
CPPUNIT_ASSERT_EQUAL_MESSAGE("green", BColor(120, 1, 1), utils::rgb2hsv(maGreen));
CPPUNIT_ASSERT_EQUAL_MESSAGE("blue", BColor(240, 1, 1), utils::rgb2hsv(maBlue));
CPPUNIT_ASSERT_EQUAL_MESSAGE("yellow", BColor(60, 1, 1), utils::rgb2hsv(maYellow));
CPPUNIT_ASSERT_EQUAL_MESSAGE("magenta", BColor(300, 1, 1), utils::rgb2hsv(maMagenta));
CPPUNIT_ASSERT_EQUAL_MESSAGE("cyan", BColor(180, 1, 1), utils::rgb2hsv(maCyan));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip white", maWhite,
utils::hsv2rgb(utils::rgb2hsv(maWhite)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip black", maBlack,
utils::hsv2rgb(utils::rgb2hsv(maBlack)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip red", maRed, utils::hsv2rgb(utils::rgb2hsv(maRed)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip green", maGreen,
utils::hsv2rgb(utils::rgb2hsv(maGreen)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip blue", maBlue,
utils::hsv2rgb(utils::rgb2hsv(maBlue)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip yellow", maYellow,
utils::hsv2rgb(utils::rgb2hsv(maYellow)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip magenta", maMagenta,
utils::hsv2rgb(utils::rgb2hsv(maMagenta)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("roundtrip cyan", maCyan,
utils::hsv2rgb(utils::rgb2hsv(maCyan)));
CPPUNIT_ASSERT_EQUAL_MESSAGE("grey10", BColor(0, 0, .1), utils::rgb2hsv(maWhite * .1));
CPPUNIT_ASSERT_EQUAL_MESSAGE("grey90", BColor(0, 0, .9), utils::rgb2hsv(maWhite * .9));
CPPUNIT_ASSERT_EQUAL_MESSAGE("red/2", BColor(0, 1, 0.5), utils::rgb2hsv(maRed * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("green/2", BColor(120, 1, 0.5), utils::rgb2hsv(maGreen * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("blue/2", BColor(240, 1, 0.5), utils::rgb2hsv(maBlue * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("yellow/2", BColor(60, 1, 0.5), utils::rgb2hsv(maYellow * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("magenta/2", BColor(300, 1, 0.5),
utils::rgb2hsv(maMagenta * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("cyan/2", BColor(180, 1, 0.5), utils::rgb2hsv(maCyan * .5));
CPPUNIT_ASSERT_EQUAL_MESSAGE("pastel", BColor(0, .5, .5),
utils::rgb2hsv(BColor(.5, .25, .25)));
}
CPPUNIT_TEST_SUITE(bcolor);
CPPUNIT_TEST(hslTest);
CPPUNIT_TEST(hsvTest);
CPPUNIT_TEST_SUITE_END();
};
} // namespace basegfx
CPPUNIT_TEST_SUITE_REGISTRATION(basegfx::bcolor);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment