+++ /dev/null
-#include "VectorTest.h"
-
-#include <limits>
-
-CPPUNIT_TEST_SUITE_REGISTRATION(test_geometry::VectorTest);
-
-using geometry::Vector;
-
-
-namespace test_geometry {
-
-void VectorTest::setUp() {
-
-}
-
-void VectorTest::tearDown() {
-
-}
-
-
-void VectorTest::testComparison() {
- CPPUNIT_ASSERT_EQUAL(Vector<int>(0, 0), Vector<int>(0, 0));
-
- CPPUNIT_ASSERT(Vector<int>(0, 0) != Vector<int>(0, 1));
- CPPUNIT_ASSERT(Vector<int>(0, 0) != Vector<int>(1, 0));
- CPPUNIT_ASSERT(Vector<int>(0, 0) != Vector<int>(1, 1));
-}
-
-void VectorTest::testSum() {
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(1, 1),
- Vector<int>(1, 1) + Vector<int>(0, 0));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(1, 1),
- Vector<int>(0, 1) + Vector<int>(1, 0));
-
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(1, 1),
- Vector<int>(1, 1) - Vector<int>(0, 0));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(0, 1),
- Vector<int>(1, 1) - Vector<int>(1, 0));
-}
-
-void VectorTest::testProduct() {
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(2, 3),
- Vector<int>(2, 3) * Vector<int>(1, 1));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(10, 12),
- Vector<int>(2, 3) * Vector<int>(5, 4));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(2, 3),
- Vector<int>(2, 3) * 1);
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(4, 6),
- Vector<int>(2, 3) * 2);
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(2, 3),
- 1 * Vector<int>(2, 3));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(4, 6),
- 2 * Vector<int>(2, 3));
-
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(10, 12),
- Vector<int>(10, 12) / Vector<int>(1, 1));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(2, 3),
- Vector<int>(10, 12) / Vector<int>(5, 4));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(4, 6),
- Vector<int>(4, 6) / 1);
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(2, 3),
- Vector<int>(4, 6) / 2);
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(3, 4),
- 12 / Vector<int>(4, 3));
-}
-
-void VectorTest::testModulo() {
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(0, 0),
- Vector<int>(1, 2) % Vector<int>(1, 1));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(0, 0),
- Vector<int>(1, 2) % 1);
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(3, 1),
- Vector<int>(3, 5) % Vector<int>(4, 2));
- CPPUNIT_ASSERT_EQUAL(
- Vector<int>(3, 1),
- Vector<int>(3, 5) % 4);
-
- Vector<float> vecf = Vector<float>(4.0f, 5.0f) % Vector<float>(2.0f, 3.0f);
- CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0f, vecf.X(), std::numeric_limits<float>::epsilon());
- CPPUNIT_ASSERT_DOUBLES_EQUAL(2.0f, vecf.Y(), std::numeric_limits<float>::epsilon());
-
- vecf = Vector<float>(4.0f, 5.0f) % 4.0f;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0f, vecf.X(), std::numeric_limits<float>::epsilon());
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0f, vecf.Y(), std::numeric_limits<float>::epsilon());
-
- Vector<double> vecd = Vector<double>(4.0, 5.0) % Vector<double>(2.0, 3.0);
- CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, vecd.X(), std::numeric_limits<double>::epsilon());
- CPPUNIT_ASSERT_DOUBLES_EQUAL(2.0, vecd.Y(), std::numeric_limits<double>::epsilon());
-
- vecd = Vector<double>(4.0, 5.0) % 4.0;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, vecd.X(), std::numeric_limits<double>::epsilon());
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vecd.Y(), std::numeric_limits<double>::epsilon());
-}
-
-void VectorTest::testFunctional() {
- const Vector<int> vec(2, 5);
- CPPUNIT_ASSERT_EQUAL(2, vec.X());
- CPPUNIT_ASSERT_EQUAL(5, vec.Y());
- CPPUNIT_ASSERT_EQUAL(52, vec.Index(10));
-
- const Vector<int> indexVec = Vector<int>::FromIndex(52, 10);
- CPPUNIT_ASSERT_EQUAL(vec, indexVec);
-
- Vector<int> lockedVec = Vector<int>(vec);
- lockedVec.Lock(Vector<int>(2, 2));
- CPPUNIT_ASSERT_EQUAL(Vector<int>(2, 4), lockedVec);
-}
-
-}