summaryrefslogtreecommitdiff
path: root/tools/test
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2007-07-03 11:33:03 +0000
committerRüdiger Timm <rt@openoffice.org>2007-07-03 11:33:03 +0000
commitc40ff500606ec79c84d58132010fc3966810fe07 (patch)
tree85f5958b0a53c479a8c45c7807730f5016368db6 /tools/test
parent4d13576cc03c7d99bb392bafd78017a6b082da9b (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.map42
-rw-r--r--tools/test/makefile.mk70
-rw-r--r--tools/test/tests.cxx134
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;
+