test_macros.cpp
Go to the documentation of this file.
00001 /*
00002  * Software License Agreement (BSD License)
00003  *
00004  *  Copyright (c) 2010, Willow Garage, Inc.
00005  *  All rights reserved.
00006  *
00007  *  Redistribution and use in source and binary forms, with or without
00008  *  modification, are permitted provided that the following conditions
00009  *  are met:
00010  *
00011  *   * Redistributions of source code must retain the above copyright
00012  *     notice, this list of conditions and the following disclaimer.
00013  *   * Redistributions in binary form must reproduce the above
00014  *     copyright notice, this list of conditions and the following
00015  *     disclaimer in the documentation and/or other materials provided
00016  *     with the distribution.
00017  *   * Neither the name of Willow Garage, Inc. nor the names of its
00018  *     contributors may be used to endorse or promote products derived
00019  *     from this software without specific prior written permission.
00020  *
00021  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032  *  POSSIBILITY OF SUCH DAMAGE.
00033  *
00034  * $Id: test_macros.cpp 5027 2012-03-12 03:10:45Z rusu $
00035  */
00036 
00037 #include <gtest/gtest.h>
00038 #include <pcl/pcl_config.h>
00039 #include <pcl/pcl_tests.h>
00040 #include <Eigen/Core>
00041 #include <vector>
00042 
00043 using namespace pcl::test;
00044 
00045 std::vector<float> v1, v2;
00046 Eigen::Vector3f ev1, ev2;
00047 
00048 TEST(MACROS, expect_eq_vectors_macro)
00049 {
00050   for (size_t i = 0; i < 3; i++)
00051   {
00052     float val = static_cast<float> (i) * 1.5f;
00053     v1.push_back (val);
00054     v2.push_back (val);
00055     ev1[i] = val;
00056     ev2[i] = val;
00057   }
00058 
00059   EXPECT_EQ_VECTORS (v1, v2);
00060   EXPECT_EQ_VECTORS (ev1, ev2);
00061   EXPECT_EQ_VECTORS (v1, ev2);
00062   EXPECT_EQ_VECTORS (ev1, v2);
00063 //  equal_vectors<std::vector<float>, std::vector<float> >(v1, v2);
00064 }
00065 
00066 TEST(MACROS, expect_near_vectors_macro)
00067 {
00068   v1.clear ();
00069   v2.clear ();
00070   const static float epsilon = 1e-5f;
00071   for (size_t i = 0; i < 3; i++)
00072   {
00073     float val = static_cast<float> (i) * 1.5f;
00074     v1.push_back (val);
00075     v2.push_back (val + epsilon);
00076     ev1[i] = val;
00077     ev2[i] = val + epsilon;
00078   }
00079   EXPECT_NEAR_VECTORS (v1, v2, 2*epsilon);
00080   EXPECT_NEAR_VECTORS (ev1, ev2, 2*epsilon);
00081   EXPECT_NEAR_VECTORS (v1, ev2, 2*epsilon);
00082   EXPECT_NEAR_VECTORS (ev1, v2, 2*epsilon);
00083 }
00084 
00085 int 
00086 main (int argc, char** argv)
00087 {
00088 #if ((PCL_MAJOR_VERSION == 1) && (PCL_MINOR_VERSION == 4))
00089   std::cerr << "1.4.0 detected" << std::endl;
00090 #elif ((PCL_MAJOR_VERSION == 1) && (PCL_MINOR_VERSION == 3))
00091   std::cerr << "1.3.0 detected" << std::endl;
00092 #endif
00093   testing::InitGoogleTest (&argc, argv);
00094   return (RUN_ALL_TESTS ());
00095 }


pcl
Author(s): Open Perception
autogenerated on Mon Oct 6 2014 03:18:20