From 6a1e36d96fef4e673c45513ae9a6af94b3ac7936 Mon Sep 17 00:00:00 2001 From: Thorsten Behrens Date: Wed, 31 May 2006 09:12:13 +0000 Subject: #i65904# Corrected license headers, added more tests --- basebmp/test/basictest.cxx | 35 ++++++++++ basebmp/test/bmpdemo.cxx | 4 +- basebmp/test/filltest.cxx | 167 +++++++++++++++++++++++++++++++++++++++++++-- basebmp/test/linetest.cxx | 35 ++++++++++ basebmp/test/makefile.mk | 4 +- 5 files changed, 236 insertions(+), 9 deletions(-) (limited to 'basebmp/test') diff --git a/basebmp/test/basictest.cxx b/basebmp/test/basictest.cxx index ef819c81ab6e..0ad47180988f 100644 --- a/basebmp/test/basictest.cxx +++ b/basebmp/test/basictest.cxx @@ -1,3 +1,38 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: basictest.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: thb $ $Date: 2006-05-31 10:12:13 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + // autogenerated file with codegen.pl #include diff --git a/basebmp/test/bmpdemo.cxx b/basebmp/test/bmpdemo.cxx index 29d5c143b4af..82fadf8d0b18 100644 --- a/basebmp/test/bmpdemo.cxx +++ b/basebmp/test/bmpdemo.cxx @@ -4,9 +4,9 @@ * * $RCSfile: bmpdemo.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: thb $ $Date: 2006-05-31 09:49:44 $ + * last change: $Author: thb $ $Date: 2006-05-31 10:12:13 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. diff --git a/basebmp/test/filltest.cxx b/basebmp/test/filltest.cxx index 8a458cac573f..f3025c55e7bb 100644 --- a/basebmp/test/filltest.cxx +++ b/basebmp/test/filltest.cxx @@ -1,3 +1,38 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: filltest.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: thb $ $Date: 2006-05-31 10:12:13 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + // autogenerated file with codegen.pl #include @@ -49,13 +84,13 @@ private: rDevice->clear(Color(0)); const basegfx::B2DRange aRect(1,1,10,10); - const basegfx::B2DPolygon aRectPoly( - basegfx::tools::createPolygonFromRect( aRect )); const Color aCol(0xFFFFFFFF); - rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon(aRectPoly), - aCol, - DrawMode_PAINT ); + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aRect )), + aCol, + DrawMode_PAINT ); const basegfx::B2IPoint aPt1(1,1); CPPUNIT_ASSERT_MESSAGE("first pixel set", rDevice->getPixel(aPt1) == aCol); @@ -73,6 +108,121 @@ private: countPixel( rDevice, aCol ) == 81); } + void implTestCornerCases(const BitmapDeviceSharedPtr& rDevice) + { + rDevice->clear(Color(0)); + + const basegfx::B2DRange aEmpty(0,0,0,11); + const basegfx::B2DRange aVertLineLeft(0,0,1,11); + const basegfx::B2DRange aVertLineRight(10,0,11,11); + const basegfx::B2DRange aHorzLineTop(0,0,11,1); + const basegfx::B2DRange aHorzLineBottom(0,10,11,11); + + const Color aCol(0xFFFFFFFF); + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aEmpty )), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 0", + countPixel( rDevice, aCol ) == 0); + + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aVertLineLeft )), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 11", + countPixel( rDevice, aCol ) == 11); + const basegfx::B2IPoint aPt1(0,0); + CPPUNIT_ASSERT_MESSAGE("first pixel set", + rDevice->getPixel(aPt1) == aCol); + + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aVertLineRight )), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 22", + countPixel( rDevice, aCol ) == 22); + const basegfx::B2IPoint aPt2(10,10); + CPPUNIT_ASSERT_MESSAGE("last pixel set", + rDevice->getPixel(aPt2) == aCol); + + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aHorzLineTop )), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 31", + countPixel( rDevice, aCol ) == 31); + const basegfx::B2IPoint aPt3(5,0); + CPPUNIT_ASSERT_MESSAGE("top-middle pixel set", + rDevice->getPixel(aPt3) == aCol); + + rDevice->fillPolyPolygon( + basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect( aHorzLineBottom )), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 40", + countPixel( rDevice, aCol ) == 40); + const basegfx::B2IPoint aPt4(5,10); + CPPUNIT_ASSERT_MESSAGE("bottom-middle pixel set", + rDevice->getPixel(aPt4) == aCol); + + std::ofstream output("32bpp_test.dump"); + debugDump( rDevice, output ); + } + + void implTestClipping(const BitmapDeviceSharedPtr& rDevice) + { + rDevice->clear(Color(0)); + + const basegfx::B2DRange aLeftTop(-10,-10,1,1); + const basegfx::B2DRange aRightTop(10,-10,20,1); + const basegfx::B2DRange aLeftBottom(-10,10,1,20); + const basegfx::B2DRange aRightBottom(10,10,20,20); + const basegfx::B2DRange aAllOver(-10,-10,20,20); + + const Color aCol(0xFFFFFFFF); + rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect(aLeftTop)), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 1", + countPixel( rDevice, aCol ) == 1); + + rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect(aRightTop)), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 2", + countPixel( rDevice, aCol ) == 2); + + rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect(aLeftBottom)), + aCol, + DrawMode_PAINT ); + + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 3", + countPixel( rDevice, aCol ) == 3); + + rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect(aRightBottom)), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 4", + countPixel( rDevice, aCol ) == 4); + + rDevice->fillPolyPolygon( basegfx::B2DPolyPolygon( + basegfx::tools::createPolygonFromRect(aAllOver)), + aCol, + DrawMode_PAINT ); + CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 121", + countPixel( rDevice, aCol ) == 121); + } + public: void setUp() { @@ -91,12 +241,19 @@ public: implTestRectFill( mpDevice32bpp ); } + void testClipping() + { + implTestClipping( mpDevice1bpp ); + implTestClipping( mpDevice32bpp ); + } + // 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(FillTest); CPPUNIT_TEST(testRectFill); + CPPUNIT_TEST(testClipping); CPPUNIT_TEST_SUITE_END(); }; diff --git a/basebmp/test/linetest.cxx b/basebmp/test/linetest.cxx index 12e82cd0de3a..2a0d4dfa7594 100644 --- a/basebmp/test/linetest.cxx +++ b/basebmp/test/linetest.cxx @@ -1,3 +1,38 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: linetest.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: thb $ $Date: 2006-05-31 10:12:13 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + // autogenerated file with codegen.pl #include diff --git a/basebmp/test/makefile.mk b/basebmp/test/makefile.mk index e6fec62d9df1..31518e01ed3a 100644 --- a/basebmp/test/makefile.mk +++ b/basebmp/test/makefile.mk @@ -4,9 +4,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.1 $ +# $Revision: 1.2 $ # -# last change: $Author: thb $ $Date: 2006-05-31 09:49:45 $ +# last change: $Author: thb $ $Date: 2006-05-31 10:12:13 $ # # The Contents of this file are made available subject to # the terms of GNU Lesser General Public License Version 2.1. -- cgit v1.2.3