diff options
author | Rüdiger Timm <rt@openoffice.org> | 2007-07-03 11:33:03 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2007-07-03 11:33:03 +0000 |
commit | c40ff500606ec79c84d58132010fc3966810fe07 (patch) | |
tree | 85f5958b0a53c479a8c45c7807730f5016368db6 /tools/test | |
parent | 4d13576cc03c7d99bb392bafd78017a6b082da9b (diff) |
INTEGRATION: CWS sixtyfour12 (1.1.2); FILE ADDED
2007/06/20 09:45:13 thb 1.1.2.1: #i78392# Added unit test for Fraction
Diffstat (limited to 'tools/test')
-rw-r--r-- | tools/test/export.map | 42 | ||||
-rw-r--r-- | tools/test/makefile.mk | 70 | ||||
-rw-r--r-- | tools/test/tests.cxx | 134 |
3 files changed, 246 insertions, 0 deletions
diff --git a/tools/test/export.map b/tools/test/export.map new file mode 100644 index 000000000000..1b7e6d980b16 --- /dev/null +++ b/tools/test/export.map @@ -0,0 +1,42 @@ +#************************************************************************* +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: export.map,v $ +# +# $Revision: 1.2 $ +# +# last change: $Author: rt $ $Date: 2007-07-03 12:32:34 $ +# +# 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 +# +#************************************************************************* + +UDK_3.1 { + global: + registerAllTestFunction; + + local: + *; +}; diff --git a/tools/test/makefile.mk b/tools/test/makefile.mk new file mode 100644 index 000000000000..1e8db464c9cf --- /dev/null +++ b/tools/test/makefile.mk @@ -0,0 +1,70 @@ +#************************************************************************* +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.2 $ +# +# last change: $Author: rt $ $Date: 2007-07-03 12:32:49 $ +# +# 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 +# +#************************************************************************* + +PRJ=.. + +PRJNAME=tools +TARGET=tests + +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Common ---------------------------------------------------------- + +SHL1OBJS= \ + $(SLO)$/tests.obj + +SHL1TARGET= tests +SHL1STDLIBS= $(SALLIB) \ + $(TOOLSLIB) \ + $(CPPUNITLIB) + +SHL1IMPLIB= i$(SHL1TARGET) + +DEF1NAME =$(SHL1TARGET) +SHL1VERSIONMAP = export.map + +#------------------------------- All object files ---------------------------- + +# do this here, so we get right dependencies +SLOFILES=$(SHL1OBJS) + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : _cppunit.mk diff --git a/tools/test/tests.cxx b/tools/test/tests.cxx new file mode 100644 index 000000000000..3b39da9b1b8c --- /dev/null +++ b/tools/test/tests.cxx @@ -0,0 +1,134 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: tests.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2007-07-03 12:33:03 $ + * + * 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 + * + ************************************************************************/ + + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_tools.hxx" +// autogenerated file with codegen.pl + +#include <cppunit/simpleheader.hxx> +#include <rtl/math.hxx> +#include <tools/fract.hxx> + +#include <stdio.h> + +namespace tools +{ + +class FractionTest : public CppUnit::TestFixture +{ +public: + void setUp() + { + } + + void tearDown() + { + } + + void testFraction() + { + const Fraction aFract(1082130431,1073741824); + CPPUNIT_ASSERT_MESSAGE( "Fraction #1 not approximately equal to 1.007812499068677", + rtl::math::approxEqual((double)aFract,1.007812499068677) ); + + Fraction aFract2( aFract ); + aFract2.ReduceInaccurate(8); + CPPUNIT_ASSERT_MESSAGE( "Fraction #2 not 1", + aFract2.GetNumerator() == 1 && + aFract2.GetDenominator() == 1 ); + + Fraction aFract3( 0x7AAAAAAA, 0x35555555 ); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 cancellation wrong", + aFract3.GetNumerator() == 0x7AAAAAAA && + aFract3.GetDenominator() == 0x35555555 ); + aFract3.ReduceInaccurate(30); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 ReduceInaccurate errorneously cut precision", + aFract3.GetNumerator() == 0x7AAAAAAA && + aFract3.GetDenominator() == 0x35555555 ); + + aFract3.ReduceInaccurate(29); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 reduce to 29 bits failed", + aFract3.GetNumerator() == 0x3D555555 && + aFract3.GetDenominator() == 0x1AAAAAAA ); + + aFract3.ReduceInaccurate(9); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 reduce to 9 bits failed", + aFract3.GetNumerator() == 0x0147 && + aFract3.GetDenominator() == 0x008E ); + + aFract3.ReduceInaccurate(1); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 reduce to 1 bit failed", + aFract3.GetNumerator() == 2 && + aFract3.GetDenominator() == 1 ); + + aFract3.ReduceInaccurate(0); + CPPUNIT_ASSERT_MESSAGE( "Fraction #3 reduce to 0 bits failed", + aFract3.GetNumerator() == 2 && + aFract3.GetDenominator() == 1 ); + +#if SAL_TYPES_SIZEOFLONG == 8 + Fraction aFract4(0x7AAAAAAAAAAAAAAA, 0x3555555555555555); + CPPUNIT_ASSERT_MESSAGE( "Fraction #4 cancellation wrong", + aFract4.GetNumerator() == 0x7AAAAAAAAAAAAAAA && + aFract4.GetDenominator() == 0x3555555555555555 ); + aFract4.ReduceInaccurate(62); + CPPUNIT_ASSERT_MESSAGE( "Fraction #4 ReduceInaccurate errorneously cut precision", + aFract4.GetNumerator() == 0x7AAAAAAAAAAAAAAA && + aFract4.GetDenominator() == 0x3555555555555555 ); + + aFract4.ReduceInaccurate(61); + CPPUNIT_ASSERT_MESSAGE( "Fraction #4 ReduceInaccurate reduce to 61 bit failed", + aFract4.GetNumerator() == 0x3D55555555555555 && + aFract4.GetDenominator() == 0x1AAAAAAAAAAAAAAA ); +#endif + } + + CPPUNIT_TEST_SUITE(FractionTest); + CPPUNIT_TEST(testFraction); + CPPUNIT_TEST_SUITE_END(); +}; + +// ----------------------------------------------------------------------------- +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(tools::FractionTest, "FractionTest"); +} // namespace tools + + +// ----------------------------------------------------------------------------- + +// this macro creates an empty function, which will called by the RegisterAllFunctions() +// to let the user the possibility to also register some functions by hand. +NOADDITIONAL; + |