Savarese Software ResearchSava Algorithms 0.1.1 C++ Unit Test Coverage
Current view: directory - tests/c++/spatial - PointTest.cc
Test: Sava Algorithms 0.1.1 C++ Unit Tests
Date: 2005-10-29 Instrumented lines: 70
Code covered: 100.0 % Executed lines: 70

       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 : }

Savarese Software Research