Line2DTest.cpp File Reference

#include <gtest/gtest.h>
#include <utils/geom/Line2D.h>
#include <utils/geom/GeomHelper.h>

Go to the source code of this file.

Functions

 TEST (Line2D, test_method_move2side)
 TEST (Line2D, test_method_intersectsAt)
 TEST (Line2D, test_method_intersects)
 TEST (Line2D, test_method_length)
 TEST (Line2D, test_method_rotateAtP1_negative)
 TEST (Line2D, test_method_rotateAtP1)
 TEST (Line2D, test_method_intersectsAtLength_no_intersect)
 TEST (Line2D, test_method_intersectsAtLength_zero)
 TEST (Line2D, test_method_intersectsAtLength)
 TEST (Line2D, test_method_reverse)
 TEST (Line2D, test_method_sub_positive)
 TEST (Line2D, test_method_sub_negative)
 TEST (Line2D, test_method_add_negative)
 TEST (Line2D, test_method_add_positive)


Function Documentation

TEST ( Line2D  ,
test_method_move2side   
)

Definition at line 147 of file Line2DTest.cpp.

References Line2D::move2side(), and SUMOReal.

00147                                     {
00148     Line2D line(Position2D(0,0),Position2D(2,2));
00149     line.move2side(SUMOReal(3));
00150     //TODO what do the method? correct the assertions.
00151     /*
00152     EXPECT_FLOAT_EQ(0,(line.p1()).x());
00153     EXPECT_FLOAT_EQ(3,(line.p1()).y());
00154     EXPECT_FLOAT_EQ(2,(line.p2()).x());
00155     EXPECT_FLOAT_EQ(5,(line.p2()).y());
00156     */
00157 }

TEST ( Line2D  ,
test_method_intersectsAt   
)

Definition at line 139 of file Line2DTest.cpp.

References Line2D::intersectsAt(), Position2D::x(), and Position2D::y().

00139                                        {
00140     Line2D line(Position2D(0,0),Position2D(2,2));
00141     Position2D pos = line.intersectsAt(Line2D(Position2D(2,0),Position2D(0,2)));
00142     EXPECT_FLOAT_EQ(1,pos.x());
00143     EXPECT_FLOAT_EQ(1,pos.y());
00144 }

TEST ( Line2D  ,
test_method_intersects   
)

Definition at line 129 of file Line2DTest.cpp.

References Line2D::intersects().

00129                                      {
00130     Line2D line(Position2D(0,0),Position2D(2,2));
00131     EXPECT_TRUE(line.intersects(Line2D(Position2D(2,0),Position2D(0,2))));
00132     Line2D line2(Position2D(0,0),Position2D(2,2));
00133     EXPECT_FALSE(line.intersects(Line2D(Position2D(0,3),Position2D(0,6))));
00134     Line2D line3(Position2D(0,0),Position2D(2,2));
00135     EXPECT_TRUE(line.intersects(Line2D(Position2D(0,-1),Position2D(0,6))));
00136 }

TEST ( Line2D  ,
test_method_length   
)

Definition at line 119 of file Line2DTest.cpp.

References Line2D::length().

00119                                  {
00120     Line2D line(Position2D(0,0),Position2D(0,2));
00121     EXPECT_FLOAT_EQ(2,line.length());
00122     Line2D line2(Position2D(0,0),Position2D(-1,0));
00123     EXPECT_FLOAT_EQ(1,line2.length());
00124     Line2D line3(Position2D(2,2),Position2D(2,2));
00125     EXPECT_FLOAT_EQ(0,line3.length());
00126 }

TEST ( Line2D  ,
test_method_rotateAtP1_negative   
)

Definition at line 111 of file Line2DTest.cpp.

References Line2D::p2(), PI, Line2D::rotateAtP1(), and SUMOReal.

00111                                               {
00112     Line2D line(Position2D(0,0),Position2D(2,2));
00113     line.rotateAtP1(-3*PI/4);
00114     EXPECT_FLOAT_EQ(1,SUMOReal((line.p2()).x())+1);
00115     EXPECT_FLOAT_EQ(-2*sqrt(SUMOReal(2)),(line.p2()).y());
00116 }

TEST ( Line2D  ,
test_method_rotateAtP1   
)

Definition at line 103 of file Line2DTest.cpp.

References Line2D::p2(), PI, and Line2D::rotateAtP1().

00103                                      {
00104     Line2D line(Position2D(0,0),Position2D(2,2));
00105     line.rotateAtP1(PI/2);
00106     EXPECT_FLOAT_EQ(-2,(line.p2()).x());
00107     EXPECT_FLOAT_EQ(2,(line.p2()).y());
00108 }

TEST ( Line2D  ,
test_method_intersectsAtLength_no_intersect   
)

Definition at line 96 of file Line2DTest.cpp.

References Line2D::intersectsAtLength(), and SUMOReal.

00096                                                           {
00097     Line2D line(Position2D(0,0),Position2D(2,2));
00098     SUMOReal point = line.intersectsAtLength(Line2D(Position2D(0,3),Position2D(0,6)));
00099     EXPECT_FLOAT_EQ(-1, point); 
00100 }

TEST ( Line2D  ,
test_method_intersectsAtLength_zero   
)

Definition at line 89 of file Line2DTest.cpp.

References Line2D::intersectsAtLength(), and SUMOReal.

00089                                                   {
00090     Line2D line(Position2D(0,0),Position2D(2,2));
00091     SUMOReal point = line.intersectsAtLength(Line2D(Position2D(0,0),Position2D(2,0)));
00092     EXPECT_FLOAT_EQ(0, point);  
00093 }

TEST ( Line2D  ,
test_method_intersectsAtLength   
)

Definition at line 82 of file Line2DTest.cpp.

References Line2D::intersectsAtLength(), and SUMOReal.

00082                                              {
00083     Line2D line(Position2D(0,0),Position2D(2,2));
00084     SUMOReal point = line.intersectsAtLength(Line2D(Position2D(0,2),Position2D(2,0)));
00085     EXPECT_FLOAT_EQ(sqrt(SUMOReal(2)), point);  
00086 }

TEST ( Line2D  ,
test_method_reverse   
)

Definition at line 72 of file Line2DTest.cpp.

References Line2D::p1(), Line2D::p2(), and Line2D::reverse().

00072                                   {
00073     Line2D line(Position2D(0,0),Position2D(2,2));
00074     Line2D lineReverse = line.reverse();
00075     EXPECT_FLOAT_EQ(2,(lineReverse.p1()).x());
00076     EXPECT_FLOAT_EQ(2,(lineReverse.p1()).y());
00077     EXPECT_FLOAT_EQ(0,(lineReverse.p2()).x());
00078     EXPECT_FLOAT_EQ(0,(lineReverse.p2()).y());
00079 }

TEST ( Line2D  ,
test_method_sub_positive   
)

Definition at line 62 of file Line2DTest.cpp.

References Line2D::p1(), Line2D::p2(), and Line2D::sub().

00062                                        {
00063     Line2D line(Position2D(0,0),Position2D(2,2));
00064     line.sub(2,2);
00065     EXPECT_FLOAT_EQ(-2,(line.p1()).x());
00066     EXPECT_FLOAT_EQ(-2,(line.p1()).y());
00067     EXPECT_FLOAT_EQ(0,(line.p2()).x());
00068     EXPECT_FLOAT_EQ(0,(line.p2()).y());
00069 }

TEST ( Line2D  ,
test_method_sub_negative   
)

Definition at line 52 of file Line2DTest.cpp.

References Line2D::p1(), Line2D::p2(), and Line2D::sub().

00052                                        {
00053     Line2D line(Position2D(0,0),Position2D(2,2));
00054     line.sub(-2,-2);
00055     EXPECT_FLOAT_EQ(2,(line.p1()).x());
00056     EXPECT_FLOAT_EQ(2,(line.p1()).y());
00057     EXPECT_FLOAT_EQ(4,(line.p2()).x());
00058     EXPECT_FLOAT_EQ(4,(line.p2()).y());
00059 }

TEST ( Line2D  ,
test_method_add_negative   
)

Definition at line 42 of file Line2DTest.cpp.

References Line2D::add(), Line2D::p1(), and Line2D::p2().

00042                                        {
00043     Line2D line(Position2D(0,0),Position2D(2,2));
00044     line.add(Position2D(-2,-2));
00045     EXPECT_FLOAT_EQ(-2,(line.p1()).x());
00046     EXPECT_FLOAT_EQ(-2,(line.p1()).y());
00047     EXPECT_FLOAT_EQ(0,(line.p2()).x());
00048     EXPECT_FLOAT_EQ(0,(line.p2()).y());
00049 }

TEST ( Line2D  ,
test_method_add_positive   
)

Definition at line 32 of file Line2DTest.cpp.

References Line2D::add(), Line2D::p1(), and Line2D::p2().

00032                                        {
00033     Line2D line(Position2D(0,0),Position2D(2,2));
00034     line.add(2,2);
00035     EXPECT_FLOAT_EQ(2,(line.p1()).x());
00036     EXPECT_FLOAT_EQ(2,(line.p1()).y());
00037     EXPECT_FLOAT_EQ(4,(line.p2()).x());
00038     EXPECT_FLOAT_EQ(4,(line.p2()).y());
00039 }


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