Skip to content
Snippets Groups Projects
Commit f3139729 authored by Adam Moss's avatar Adam Moss
Browse files

DEV-41345 turn llmodularmath_tut into a real llmath unit test.

parent c7df37b5
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
/**
* @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"
/**
* @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"
/**
* @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);
}
}
......@@ -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
......
......@@ -147,7 +147,7 @@ class LLTestCallback : public tut::callback
stream << "\tPassed Tests:\t" << mPassedTests;
if (mPassedTests == mTotalTests)
{
stream << "\t\\o/ yay!!";
stream << "\tYAY!! \\o/";
}
stream << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment