diff options
| -rw-r--r-- | indra/llmath/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | indra/llmath/llmodularmath.cpp | 36 | ||||
| -rw-r--r-- | indra/llmath/llrect.cpp | 2 | ||||
| -rw-r--r-- | indra/llmath/tests/llmodularmath_test.cpp | 82 | ||||
| -rw-r--r-- | indra/test/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | indra/test/test.cpp | 2 | 
6 files changed, 124 insertions, 2 deletions
| diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt index e8b84eeabd..e4a10f8310 100644 --- a/indra/llmath/CMakeLists.txt +++ b/indra/llmath/CMakeLists.txt @@ -15,6 +15,7 @@ set(llmath_SOURCE_FILES      llcamera.cpp      llcoordframe.cpp      llline.cpp +    llmodularmath.cpp      llperlin.cpp      llquaternion.cpp      llrect.cpp @@ -48,6 +49,7 @@ set(llmath_HEADER_FILES      llinterp.h      llline.h      llmath.h +    llmodularmath.h      lloctree.h      llperlin.h      llplane.h @@ -87,6 +89,7 @@ include(LLAddBuildTest)  # UNIT TESTS  SET(llmath_TEST_SOURCE_FILES    llbboxlocal.cpp +  llmodularmath.cpp    llrect.cpp    v2math.cpp    v3color.cpp diff --git a/indra/llmath/llmodularmath.cpp b/indra/llmath/llmodularmath.cpp new file mode 100644 index 0000000000..4a6553ae7c --- /dev/null +++ b/indra/llmath/llmodularmath.cpp @@ -0,0 +1,36 @@ +/**  + * @file llmodularmath.cpp + * @brief LLModularMath class implementation + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + *  + * Copyright (c) 2001-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +// implementation is all in the header, this include dep ensures the unit test is rerun if the implementation changes. +#include "llmodularmath.h" diff --git a/indra/llmath/llrect.cpp b/indra/llmath/llrect.cpp index cba76dd211..14e094792d 100644 --- a/indra/llmath/llrect.cpp +++ b/indra/llmath/llrect.cpp @@ -1,5 +1,6 @@  /**    * @file llrect.cpp + * @brief LLRect class implementation   *   * $LicenseInfo:firstyear=2001&license=viewergpl$   *  @@ -31,4 +32,5 @@  #include "linden_common.h" +// implementation is all in the header, this include dep ensures the unit test is rerun if the implementation changes.  #include "llrect.h" diff --git a/indra/llmath/tests/llmodularmath_test.cpp b/indra/llmath/tests/llmodularmath_test.cpp new file mode 100644 index 0000000000..a998a95618 --- /dev/null +++ b/indra/llmath/tests/llmodularmath_test.cpp @@ -0,0 +1,82 @@ +/** + * @file modularmath_tut.cpp + * @author babbage + * @date 2008-09 + * @brief llmodularmath tests + * + * $LicenseInfo:firstyear=2007&license=viewergpl$ + *  + * Copyright (c) 2007-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +  +#include "linden_common.h" + +#include "../llmodularmath.h" + +#include "../test/lltut.h" + +namespace tut +{ +	struct modularmath_data +	{ +	}; +	typedef test_group<modularmath_data> modularmath_test; +	typedef modularmath_test::object modularmath_object; +	tut::modularmath_test modularmath_testcase("modularmath"); + +	template<> template<> +	void modularmath_object::test<1>() +	{ +		// lhs < rhs +		const U32 lhs = 0x000001; +		const U32 rhs = 0xFFFFFF; +		const U32 width = 24; +		U32 result = LLModularMath::subtract<width>(lhs, rhs);  +		ensure_equals("diff(0x000001, 0xFFFFFF, 24)", result, 2); +	} + +	template<> template<> +	void modularmath_object::test<2>() +	{ +		// lhs > rhs +		const U32 lhs = 0x000002; +		const U32 rhs = 0x000001; +		const U32 width = 24; +		U32 result = LLModularMath::subtract<width>(lhs, rhs);  +		ensure_equals("diff(0x000002, 0x000001, 24)", result, 1); +	} + +	template<> template<> +	void modularmath_object::test<3>() +	{ +		// lhs == rhs +		const U32 lhs = 0xABCDEF; +		const U32 rhs = 0xABCDEF; +		const U32 width = 24; +		U32 result = LLModularMath::subtract<width>(lhs, rhs);  +		ensure_equals("diff(0xABCDEF, 0xABCDEF, 24)", result, 0); +	}	 +} diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index dd11a0bc7e..db78b7b9ec 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -44,7 +44,6 @@ set(test_SOURCE_FILES      lliohttpserver_tut.cpp      llmime_tut.cpp      llmessageconfig_tut.cpp -    llmodularmath_tut.cpp      llpermissions_tut.cpp      llpipeutil.cpp      llsaleinfo_tut.cpp diff --git a/indra/test/test.cpp b/indra/test/test.cpp index 94766a0ba2..c2e0a11156 100644 --- a/indra/test/test.cpp +++ b/indra/test/test.cpp @@ -147,7 +147,7 @@ private:  		stream << "\tPassed Tests:\t" << mPassedTests;  		if (mPassedTests == mTotalTests)  		{ -			stream << "\t\\o/ yay!!"; +			stream << "\tYAY!! \\o/";  		}  		stream << std::endl; | 
