/* * Testing */ TEST(MathPoint, Sum_Equal_Operator_Equal) { int summer = 3; const int size = 5; int data1[size] = {0, 0, 0, 0, 0}; int data2[size] = {3, 3, 3, 3, 3}; Point<int> actualPoint(data1, size); Point<int> expectedPoint(data2, size); actualPoint += summer; EXPECT_EQ(expectedPoint, actualPoint); }
/* * Testing adding two pointers */ TEST(MathPoint, Add_Equal_Operator_Points_New_Point) { const int size = 5; int data1[size] = {3, 4, 5, 6, 7}; int data2[size] = {6, 8, 10, 12, 14}; Point<int> actualPoint(data1, size); Point<int> expectedPoint(data2, size); actualPoint += actualPoint; EXPECT_EQ(expectedPoint, actualPoint); }
void runOffsetTest(string const& inputWKT, string const& testPtWKT, double offsetDistance, string const& expectedPtWKT) { GeomPtr input(reader.read(inputWKT)); GeomPtr testPoint(reader.read(testPtWKT)); GeomPtr expectedPoint(reader.read(expectedPtWKT)); const Coordinate* testPt = testPoint->getCoordinate(); const Coordinate* expectedPt = expectedPoint->getCoordinate(); Coordinate offsetPt = extractOffsetAt(input.get(), *testPt, offsetDistance); bool isOk = offsetPt.distance(*expectedPt) < TOLERANCE_DIST; if (! isOk) cout << "Expected = " << *expectedPoint << " Actual = " << offsetPt << endl; ensure(isOk); }
/* * Testing */ TEST(MathPoint, Divider_Operator_Equal) { int divider = 3; const int size = 15; Point<int> expectedPoint(size); Point<int> actualPoint(size); for(int i = 0; i < size; i++){ actualPoint[i] = 9; } actualPoint = actualPoint / divider; for(int i = 0; i < size; i++){ expectedPoint[i] = divider; } EXPECT_EQ(expectedPoint, actualPoint); }
int testCoordTransToCart(FILE * f) { fprintf (f, "\t+++++ Enter testCoordTransToCart() +++++\n"); int ntests=0, res=0; Point Points[] = { Point(1, 2), Point(0, 0), Point(1, 0), Point(cos(pi/3), sin(pi/3)), Point(cos(pi/2), sin(pi/2)), Point(1,0), Point(cos(-pi/3), sin(-pi/3)), Point(cos(-pi/6), sin(-pi/6)), Point(cos(5*pi/6), sin(-2*pi/6)), }; const int NPOINTS = sizeof(Points) / sizeof(*Points); double cosphi=1, sinphi=0; Point transPoint(0,0), expectedPoint(0,0); Point Center(0,0); fprintf (f, "\t\tcosphi=%.2f, sinphi=%.2f, Center(%.2f, %.2f)\n", cosphi, sinphi, Center._x, Center._y); for(int i=0; i<NPOINTS-1; i++) { transPoint = Points[i].TransformToCartesianCoordinates(Center, cosphi, sinphi); res += ( transPoint == Points[i] )?1:0; //phi==0! ntests++; fprintf (f, "%2d. res=%2d, P(%.2f, %.2f), T(%.2f, %.2f)\n", ntests, res, Points[i]._x, Points[i]._y, transPoint._x, transPoint._y); } //-------------------------------------------------------------------------------------- cosphi = 0.5; // pi/3 sinphi = 0.8660254037844386; //pi/3 fprintf (f, "\t\tcosphi=%.2f, sinphi=%.2f, Center(%.2f, %.2f)\n", cosphi, sinphi, Center._x, Center._y); for(int i=0; i<NPOINTS-1; i++) { transPoint = Points[i].TransformToCartesianCoordinates(Center, cosphi, sinphi); expectedPoint = Points[i].Rotate(cosphi, sinphi); res += ( transPoint == expectedPoint )?1:0; //phi==0! ntests++; fprintf (f, "%2d. res=%2d, P(%.2f, %.2f), T(%.2f, %.2f), E(%.2f, %.2f)\n", ntests, res, Points[i]._x, Points[i]._y, transPoint._x, transPoint._y, expectedPoint._x, expectedPoint._y); } //-------------------------------------------------------------------------------------- cosphi = 0.5; // -pi/3 sinphi = -0.8660254037844386; // -pi/3 fprintf (f, "\t\tcosphi=%.2f, sinphi=%.2f, Center(%.2f, %.2f)\n", cosphi, sinphi, Center._x, Center._y); for(int i=0; i<NPOINTS-1; i++) { transPoint = Points[i].TransformToCartesianCoordinates(Center, cosphi, sinphi); expectedPoint = Points[i].Rotate(cosphi, sinphi); res += ( transPoint == expectedPoint )?1:0; //phi==0! ntests++; fprintf (f, "%2d. res=%2d, P(%.2f, %.2f), T(%.2f, %.2f), E(%.2f, %.2f)\n", ntests, res, Points[i]._x, Points[i]._y, transPoint._x, transPoint._y, expectedPoint._x, expectedPoint._y); } //-------------------------------------------------------------------------------------- Center._x =(1); Center._y =(1); cosphi = 0.5; // pi/3 sinphi = 0.8660254037844386; //pi/3 fprintf (f, "\t\tcosphi=%.2f, sinphi=%.2f, Center(%.2f, %.2f)\n", cosphi, sinphi, Center._x, Center._y); for(int i=0; i<NPOINTS-1; i++) { transPoint = Points[i].TransformToCartesianCoordinates(Center, cosphi, sinphi); expectedPoint = Points[i].Rotate(cosphi, sinphi)+Center; res += ( transPoint == expectedPoint )?1:0; //phi==0! ntests++; fprintf (f, "%2d. res=%2d, P(%.2f, %.2f), T(%.2f, %.2f), E(%.2f, %.2f)\n", ntests, res, Points[i]._x, Points[i]._y, transPoint._x, transPoint._y, expectedPoint._x, expectedPoint._y); } fprintf (f, "\t+++++ Leave testCoordTransToCart() +++++\n\n"); return (res==ntests)?1:0; }