BoundaryTest.cpp

Go to the documentation of this file.
00001 #include <gtest/gtest.h>
00002 #include <utils/geom/Boundary.h>
00003 
00004 using namespace std;
00005 
00006 /*
00007 Tests the class Boundary
00008 */
00009 
00010 /* Test the method 'add'*/
00011 TEST(Boundary, test_method_add) {
00012     Boundary *bound = new Boundary();
00013     bound->add(1,2);
00014     EXPECT_FLOAT_EQ(bound->xmax(), 1);
00015     EXPECT_FLOAT_EQ(bound->xmin(), 1);
00016     EXPECT_FLOAT_EQ(bound->ymax(), 2);
00017     EXPECT_FLOAT_EQ(bound->ymin(), 2);
00018 }
00019 
00020 /* Test the method 'add' with multiple calls*/
00021 TEST(Boundary, test_method_add_multiple) {
00022     Boundary *bound = new Boundary();
00023     bound->add(-1,-2);
00024     bound->add(3,5);
00025     bound->add(5,8);
00026     EXPECT_FLOAT_EQ(bound->xmax(), 5);
00027     EXPECT_FLOAT_EQ(bound->xmin(), -1);
00028     EXPECT_FLOAT_EQ(bound->ymax(), 8);
00029     EXPECT_FLOAT_EQ(bound->ymin(), -2);
00030 }
00031 
00032 /* Test the method 'getCenter'*/
00033 TEST(Boundary, test_method_getCenter) {
00034     Boundary *bound = new Boundary(-2,-4,4,8);
00035     Position2D pos = bound->getCenter();
00036     EXPECT_FLOAT_EQ(pos.x(), 1);
00037     EXPECT_FLOAT_EQ(pos.y(), 2);
00038 }
00039 
00040 /* Test the method 'getWidth' and getHeight*/
00041 TEST(Boundary, test_method_getWidthHeight) {
00042     Boundary *bound = new Boundary(-2,-4,4,8);
00043     EXPECT_FLOAT_EQ(bound->getHeight(), 12);
00044     EXPECT_FLOAT_EQ(bound->getWidth(), 6);
00045 }
00046 
00047 /* Test the method 'around'*/
00048 TEST(Boundary, test_method_around) {
00049     Boundary *bound = new Boundary(1,2,3,6);
00050     EXPECT_TRUE(bound->around(Position2D(2,4)));
00051     EXPECT_FALSE(bound->around(Position2D(0,4)));
00052     EXPECT_FALSE(bound->around(Position2D(2,7)));
00053     EXPECT_TRUE(bound->around(Position2D(0,7),2));
00054 }
00055 
00056 /* Test the method 'overlapsWith'*/
00057 TEST(Boundary, test_method_overlapsWith) {
00058     Boundary *bound = new Boundary(1,2,3,6);
00059     EXPECT_FALSE(bound->overlapsWith(Boundary(10,17,13,16)));
00060     EXPECT_TRUE(bound->overlapsWith(Boundary(-1,-7,2,4)));
00061     EXPECT_TRUE(bound->overlapsWith(Boundary(1,2,3,6)));    
00062     EXPECT_TRUE(bound->overlapsWith(Boundary(4,2,5,7),1));
00063 }
00064 
00065 /* Test the method 'crosses'*/
00066 TEST(Boundary, test_method_crosses) {
00067     Boundary *bound = new Boundary(1,2,3,6);
00068     EXPECT_TRUE(bound->crosses(Position2D(3,2),Position2D(4,2)));
00069     EXPECT_TRUE(bound->crosses(Position2D(2,1),Position2D(0,3)));
00070     EXPECT_TRUE(bound->crosses(Position2D(1,2),Position2D(3,6)));
00071     EXPECT_FALSE(bound->crosses(Position2D(0,0),Position2D(0,8)));
00072 }
00073 
00074 /* Test the method 'partialWithin'*/
00075 TEST(Boundary, test_method_partialWithin) {
00076     Boundary *bound = new Boundary(1,2,3,6);
00077     EXPECT_TRUE(bound->partialWithin(Boundary(1,2,1,2)));
00078     EXPECT_FALSE(bound->partialWithin(Boundary(10,17,13,16)));
00079     EXPECT_TRUE(bound->partialWithin(Boundary(1,2,3,6)));   
00080     EXPECT_TRUE(bound->partialWithin(Boundary(4,2,5,7),1));
00081 }
00082 
00083 /* Test the method 'flipY'*/
00084 TEST(Boundary, test_method_flipY) {
00085     Boundary *bound = new Boundary(1,2,3,6);
00086     bound->flipY();
00087     EXPECT_FLOAT_EQ(bound->xmax(), 3);
00088     EXPECT_FLOAT_EQ(bound->xmin(), 1);
00089     EXPECT_FLOAT_EQ(bound->ymax(), -2);
00090     EXPECT_FLOAT_EQ(bound->ymin(), -6);
00091 }
00092 
00093 /* Test the method 'moveby'*/
00094 TEST(Boundary, test_method_moveby) {
00095     Boundary *bound = new Boundary(1,2,3,6);
00096     bound->moveby(2.5,-3.5);
00097     EXPECT_FLOAT_EQ(bound->xmax(), 5.5);
00098     EXPECT_FLOAT_EQ(bound->xmin(), 3.5);
00099     EXPECT_FLOAT_EQ(bound->ymax(), 2.5);
00100     EXPECT_FLOAT_EQ(bound->ymin(), -1.5);
00101 }

Generated on Wed May 5 00:06:28 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6