|
||||||||||||||||||||
1 : /* 2 : * $Id: PointTest.cc 5866 2005-10-25 21:13:32Z dfs $ 3 : * 4 : * Copyright 2003-2005 Daniel F. Savarese 5 : * Copyright 2005 Savarese Software Research 6 : * 7 : * Licensed under the Apache License, Version 2.0 (the "License"); 8 : * you may not use this file except in compliance with the License. 9 : * You may obtain a copy of the License at 10 : * 11 : * https://www.savarese.com/software/ApacheLicense-2.0 12 : * 13 : * Unless required by applicable law or agreed to in writing, software 14 : * distributed under the License is distributed on an "AS IS" BASIS, 15 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 : * See the License for the specific language governing permissions and 17 : * limitations under the License. 18 : */ 19 : 20 : #include <libsava/spatial/Point.h> 21 : 22 : #include <cppunit/TestCase.h> 23 : #include <cppunit/extensions/HelperMacros.h> 24 : #include <cppunit/extensions/TestFactoryRegistry.h> 25 : #include <cppunit/TextTestRunner.h> 26 : 27 : using namespace sava::spatial; 28 : using namespace CppUnit; 29 : 30 8 : class PointTest : public TestCase { 31 : public: 32 : 33 : // Tests both assignment and equality 34 1 : void testAssignment() { 35 1 : Point<4, int> p1, p2; 36 : 37 1 : p1[0] = 8, p1[1] = -1, p1[2] = -20, p1[3] = 5; 38 : 39 1 : CPPUNIT_ASSERT(!(p2 == p1)); 40 2 : CPPUNIT_ASSERT(p2 != p1); 41 : 42 1 : p2 = p1; 43 : 44 : // Perform some extra sanity checks before using equality operator. 45 2 : CPPUNIT_ASSERT(p1[0] == 8); 46 2 : CPPUNIT_ASSERT(p1[1] == -1); 47 2 : CPPUNIT_ASSERT(p1[2] == -20); 48 2 : CPPUNIT_ASSERT(p1[3] == 5); 49 2 : CPPUNIT_ASSERT(p1[0] == p2[0]); 50 2 : CPPUNIT_ASSERT(p1[1] == p2[1]); 51 2 : CPPUNIT_ASSERT(p1[2] == p2[2]); 52 2 : CPPUNIT_ASSERT(p1[3] == p2[3]); 53 2 : CPPUNIT_ASSERT(p1 == p2); 54 2 : CPPUNIT_ASSERT(p2 == p1); 55 1 : } 56 : 57 : // Tests both assignment and equality 58 1 : void testAssignment2D() { 59 1 : Point2D<> p1(3, 1), p2(0, 0); 60 : 61 1 : p2 = p1; 62 : 63 : // Perform some extra sanity checks before using equality operator. 64 1 : CPPUNIT_ASSERT(p1[0] == 3); 65 2 : CPPUNIT_ASSERT(p1[1] == 1); 66 2 : CPPUNIT_ASSERT(p1[0] == p2[0]); 67 2 : CPPUNIT_ASSERT(p1[1] == p2[1]); 68 2 : CPPUNIT_ASSERT(p1 == p2); 69 2 : CPPUNIT_ASSERT(p2 == p1); 70 1 : } 71 : 72 : // Tests both assignment and equality 73 1 : void testAssignment3D() { 74 1 : Point3D<> p1(100, 200, 300), p2(0, 0, 0); 75 : 76 1 : p2 = p1; 77 : 78 : // Perform some extra sanity checks before using equality operator. 79 1 : CPPUNIT_ASSERT(p1[0] == 100); 80 2 : CPPUNIT_ASSERT(p1[1] == 200); 81 2 : CPPUNIT_ASSERT(p1[2] == 300); 82 2 : CPPUNIT_ASSERT(p1[0] == p2[0]); 83 2 : CPPUNIT_ASSERT(p1[1] == p2[1]); 84 2 : CPPUNIT_ASSERT(p1[2] == p2[2]); 85 2 : CPPUNIT_ASSERT(p1 == p2); 86 2 : CPPUNIT_ASSERT(p2 == p1); 87 1 : } 88 : 89 1 : void testIsContained() { 90 1 : Point<2, int> point, lower, upper; 91 : 92 1 : point[0] = -1; 93 1 : point[1] = -5; 94 : 95 1 : lower = upper = point; 96 : 97 1 : CPPUNIT_ASSERT(isContained(point, lower, upper)); 98 : 99 1 : upper[0] = 1; 100 1 : upper[1] = 5; 101 : 102 2 : CPPUNIT_ASSERT(isContained(point, lower, upper)); 103 : 104 1 : lower[0] = -20; 105 1 : lower[1] = -60; 106 : 107 2 : CPPUNIT_ASSERT(isContained(point, lower, upper)); 108 : 109 1 : lower[0] = 0; 110 1 : lower[1] = -4; 111 : 112 2 : CPPUNIT_ASSERT(!isContained(point, lower, upper)); 113 1 : } 114 : 115 3 : CPPUNIT_TEST_SUITE(PointTest); 116 1 : CPPUNIT_TEST(testAssignment); 117 2 : CPPUNIT_TEST(testAssignment2D); 118 2 : CPPUNIT_TEST(testAssignment3D); 119 2 : CPPUNIT_TEST(testIsContained); 120 2 : CPPUNIT_TEST_SUITE_END(); 121 : }; 122 : 123 2 : CPPUNIT_TEST_SUITE_REGISTRATION(PointTest); 124 : 125 1 : int main(int argc, char **argv) { 126 1 : TextTestRunner runner; 127 1 : TestFactoryRegistry & registry = TestFactoryRegistry::getRegistry(); 128 : 129 2 : runner.addTest(registry.makeTest()); 130 : 131 1 : return (runner.run() ? 0 : -1); 132 1 : } |