diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7ca125a1..f23c9f62 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -23,6 +23,6 @@ CREATE_TEST(testvolume.h testvolume.cpp testvolume) ADD_TEST(VolumeSizeTest ${LATEST_TEST} testSize) #Vector tests -#CREATE_TEST(testvector.h testvector.cpp testvector) -#ADD_TEST(VectorLengthTest ${LATEST_TEST} testLength) -#ADD_TEST(VectorDotProductTest ${LATEST_TEST} testDotProduct) +CREATE_TEST(testvector.h testvector.cpp testvector) +ADD_TEST(VectorLengthTest ${LATEST_TEST} testLength) +ADD_TEST(VectorDotProductTest ${LATEST_TEST} testDotProduct) diff --git a/tests/testvector.cpp b/tests/testvector.cpp new file mode 100644 index 00000000..5fe6b2f0 --- /dev/null +++ b/tests/testvector.cpp @@ -0,0 +1,46 @@ +/******************************************************************************* +Copyright (c) 2010 Matt Williams + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*******************************************************************************/ + +#include "testvector.h" + +#include + +#include + +using namespace PolyVox; + +void TestVector::testLength() +{ + Vector3DInt8 vec(3, 4, 5); + QCOMPARE(vec.lengthSquared(), double(3*3+4*4+5*5)); +} + +void TestVector::testDotProduct() +{ + Vector3DInt8 vecxy(3, 4, 0); + Vector3DInt8 vecz(0, 0, 1); + + QCOMPARE(vecxy.dot(vecz), PolyVox::int8_t(0)); //QCOMPARE is very strict on the types matching +} + +QTEST_MAIN(TestVector) diff --git a/tests/testvector.h b/tests/testvector.h new file mode 100644 index 00000000..f9aa2746 --- /dev/null +++ b/tests/testvector.h @@ -0,0 +1,38 @@ +/******************************************************************************* +Copyright (c) 2010 Matt Williams + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*******************************************************************************/ + +#ifndef __PolyVox_TestVector_H__ +#define __PolyVox_TestVector_H__ + +#include + +class TestVector: public QObject +{ + Q_OBJECT + + private slots: + void testLength(); + void testDotProduct(); +}; + +#endif