diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2015-04-03 02:13:32 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2015-04-03 02:13:32 +0200 |
commit | ad8586d69bdac1a1fa19907f830518875e4acd91 (patch) | |
tree | c8052c43cb1754c2ae99c227c7dc61ee309d8a12 | |
parent | 82cc9c0cf2cdb8de17233a2ea943a5247d5da305 (diff) | |
download | usdx-ad8586d69bdac1a1fa19907f830518875e4acd91.tar.gz usdx-ad8586d69bdac1a1fa19907f830518875e4acd91.tar.xz usdx-ad8586d69bdac1a1fa19907f830518875e4acd91.zip |
utils/math: Remove custom implementation of min/max.
The stl provieds sutable implementations.
-rw-r--r-- | src/utils/math.hpp | 67 | ||||
-rw-r--r-- | src/utils/rectangle.hpp | 15 | ||||
-rw-r--r-- | test/utils/math.cpp | 157 |
3 files changed, 8 insertions, 231 deletions
diff --git a/src/utils/math.hpp b/src/utils/math.hpp deleted file mode 100644 index 2e568a5b..00000000 --- a/src/utils/math.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef MATH_HPP -#define MATH_HPP - -namespace usdx -{ - class Math - { - public: - template <class T> - static const T min(const T a, const T b) - { - if (a < b) - return a; - return b; - } - - template <class T> - static const T max(const T a, const T b) - { - if (a > b) - return a; - return b; - } - - template <class T> - static const T abs(const T value) - { - if (value < 0) - return -value; - return value; - } - - private: - /** - * private constructor to ensure, that this class never gets - instanciated - */ - Math() {}; - }; -} - - -#endif diff --git a/src/utils/rectangle.hpp b/src/utils/rectangle.hpp index 9cca9eff..423f309f 100644 --- a/src/utils/rectangle.hpp +++ b/src/utils/rectangle.hpp @@ -25,9 +25,10 @@ #ifndef RECTANGLE_HPP #define RECTANGLE_HPP +#include <algorithm> + #include "point.hpp" #include "dimension.hpp" -#include "math.hpp" namespace usdx { @@ -80,17 +81,17 @@ namespace usdx const T get_width(void) const { - return Math::abs(point2.get_x() - point1.get_x()); + return std::abs(point2.get_x() - point1.get_x()); } const T get_height(void) const { - return Math::abs(point2.get_y() - point1.get_y()); + return std::abs(point2.get_y() - point1.get_y()); } const T get_top(void) const { - return Math::min(point1.get_y(), point2.get_y()); + return std::min(point1.get_y(), point2.get_y()); } void set_top(T value) @@ -102,12 +103,12 @@ namespace usdx const T get_bottom(void) const { - return Math::max(point1.get_y(), point2.get_y()); + return std::max(point1.get_y(), point2.get_y()); } const T get_left(void) const { - return Math::min(point1.get_x(), point2.get_x()); + return std::min(point1.get_x(), point2.get_x()); } void set_left(T value) @@ -124,7 +125,7 @@ namespace usdx const T get_right(void) const { - return Math::max(point1.get_x(), point2.get_x()); + return std::max(point1.get_x(), point2.get_x()); } const Rectangle<T> intersect(const Rectangle<T>& inner) const diff --git a/test/utils/math.cpp b/test/utils/math.cpp deleted file mode 100644 index 3e3ae5e6..00000000 --- a/test/utils/math.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "utils/math.hpp" - -#include <exception> -#include <cppunit/extensions/HelperMacros.h> -#include <log4cpp/Category.hh> - -namespace usdx -{ - class MathTest : public CppUnit::TestFixture { - CPPUNIT_TEST_SUITE(MathTest); - CPPUNIT_TEST(testMinFirst); - CPPUNIT_TEST(testMinSecond); - CPPUNIT_TEST(testMinFloat); - CPPUNIT_TEST(testMaxFirst); - CPPUNIT_TEST(testMaxSecond); - CPPUNIT_TEST(testMaxFloat); - CPPUNIT_TEST(testAbsPositive); - CPPUNIT_TEST(testAbsNegative); - CPPUNIT_TEST(testAbsFloat); - CPPUNIT_TEST_SUITE_END(); - private: - static log4cpp::Category& log; - public: - void setUp() - { - } - - void tearDown() - { - } - - void testMinFirst() - { - int a = 10; - int b = 20; - int c = Math::min(a, b); - - CPPUNIT_ASSERT_EQUAL(10, a); - CPPUNIT_ASSERT_EQUAL(20, b); - CPPUNIT_ASSERT_EQUAL(10, c); - } - - void testMinSecond() - { - int a = 20; - int b = 10; - int c = Math::min(a, b); - - CPPUNIT_ASSERT_EQUAL(20, a); - CPPUNIT_ASSERT_EQUAL(10, b); - CPPUNIT_ASSERT_EQUAL(10, c); - } - - void testMinFloat() - { - float a = 3.15f; - float b = 3.14f; - float c = Math::min(a, b); - - CPPUNIT_ASSERT_EQUAL(3.15f, a); - CPPUNIT_ASSERT_EQUAL(3.14f, b); - CPPUNIT_ASSERT_EQUAL(3.14f, c); - } - - void testMaxFirst() - { - int a = 10; - int b = 20; - int c = Math::max(a, b); - - CPPUNIT_ASSERT_EQUAL(10, a); - CPPUNIT_ASSERT_EQUAL(20, b); - CPPUNIT_ASSERT_EQUAL(20, c); - } - - void testMaxSecond() - { - int a = 20; - int b = 10; - int c = Math::max(a, b); - - CPPUNIT_ASSERT_EQUAL(20, a); - CPPUNIT_ASSERT_EQUAL(10, b); - CPPUNIT_ASSERT_EQUAL(20, c); - } - - void testMaxFloat() - { - float a = 3.15f; - float b = 3.14f; - float c = Math::max(a, b); - - CPPUNIT_ASSERT_EQUAL(3.15f, a); - CPPUNIT_ASSERT_EQUAL(3.14f, b); - CPPUNIT_ASSERT_EQUAL(3.15f, c); - } - - void testAbsPositive() - { - int a = 10; - int b = Math::abs(a); - - CPPUNIT_ASSERT_EQUAL(10, a); - CPPUNIT_ASSERT_EQUAL(10, b); - } - - void testAbsNegative() - { - int a = -10; - int b = Math::abs(a); - - CPPUNIT_ASSERT_EQUAL(-10, a); - CPPUNIT_ASSERT_EQUAL(10, b); - } - - void testAbsFloat() - { - float a = -3.15f; - float b = Math::abs(a); - - CPPUNIT_ASSERT_EQUAL(-3.15f, a); - CPPUNIT_ASSERT_EQUAL(3.15f, b); - } - - }; - - log4cpp::Category& MathTest::log = - log4cpp::Category::getInstance("test.usdx.utils.math"); - - CPPUNIT_TEST_SUITE_REGISTRATION(MathTest); -} |