int main(int argc, char *argv[]){ char s[] = "abcd1234"; left1(s, 8, 4); puts(s); puts(left2(s, 8, 4)); return 0; }
/* Test the method 'distance'*/ TEST_F(PositionVectorTest, test_method_distance) { { PositionVector vec1; vec1.push_back(Position(1,0)); vec1.push_back(Position(10,0)); vec1.push_back(Position(10,5)); vec1.push_back(Position(20,5)); Position on(4,0); Position left(4,1); Position right(4,-1); Position left2(4,2); Position right2(4,-2); Position cornerRight(13,-4); Position cornerLeft(7,9); Position before(-3,-3); Position beyond(24,8); EXPECT_EQ(0, vec1.distance(on)); EXPECT_EQ(1, vec1.distance(left)); EXPECT_EQ(1, vec1.distance(right)); EXPECT_EQ(2, vec1.distance(left2)); EXPECT_EQ(2, vec1.distance(right2)); EXPECT_EQ(5, vec1.distance(cornerRight)); EXPECT_EQ(5, vec1.distance(cornerLeft)); EXPECT_EQ(GeomHelper::INVALID_OFFSET, vec1.distance(before, true)); EXPECT_EQ(GeomHelper::INVALID_OFFSET, vec1.distance(beyond, true)); EXPECT_EQ(5, vec1.distance(before)); EXPECT_EQ(5, vec1.distance(beyond)); } { PositionVector vec1; // the same tests as before, mirrored on x-axis vec1.push_back(Position(1,0)); vec1.push_back(Position(10,0)); vec1.push_back(Position(10,-5)); vec1.push_back(Position(20,-5)); Position on(4,0); Position left(4,-1); Position right(4,1); Position left2(4,-2); Position right2(4,2); Position cornerRight(13,4); Position cornerLeft(7,-9); Position before(-3,3); Position beyond(24,-8); EXPECT_EQ(0, vec1.distance(on)); EXPECT_EQ(1, vec1.distance(left)); EXPECT_EQ(1, vec1.distance(right)); EXPECT_EQ(2, vec1.distance(left2)); EXPECT_EQ(2, vec1.distance(right2)); EXPECT_EQ(5, vec1.distance(cornerRight)); EXPECT_EQ(5, vec1.distance(cornerLeft)); EXPECT_EQ(GeomHelper::INVALID_OFFSET, vec1.distance(before, true)); EXPECT_EQ(GeomHelper::INVALID_OFFSET, vec1.distance(beyond, true)); EXPECT_EQ(5, vec1.distance(before)); EXPECT_EQ(5, vec1.distance(beyond)); } }
/* Test the method 'transformToVectorCoordinates'*/ TEST_F(PositionVectorTest, test_method_transformToVectorCoordinates) { { PositionVector vec1; vec1.push_back(Position(1,0)); vec1.push_back(Position(10,0)); vec1.push_back(Position(10,5)); vec1.push_back(Position(20,5)); Position on(4,0); Position left(4,1); Position right(4,-1); Position left2(4,2); Position right2(4,-2); Position cornerRight(13,-4); Position cornerLeft(7,9); Position before(0,-1); Position beyond(24,9); EXPECT_EQ(Position(3, 0), vec1.transformToVectorCoordinates(on)); EXPECT_EQ(Position(3, -1), vec1.transformToVectorCoordinates(left)); EXPECT_EQ(Position(3, 1), vec1.transformToVectorCoordinates(right)); EXPECT_EQ(Position(3, -2), vec1.transformToVectorCoordinates(left2)); EXPECT_EQ(Position(3, 2), vec1.transformToVectorCoordinates(right2)); EXPECT_EQ(Position(9, 5), vec1.transformToVectorCoordinates(cornerRight)); EXPECT_EQ(Position(14, -5), vec1.transformToVectorCoordinates(cornerLeft)); EXPECT_EQ(Position::INVALID, vec1.transformToVectorCoordinates(before)); EXPECT_EQ(Position::INVALID, vec1.transformToVectorCoordinates(beyond)); EXPECT_EQ(Position(-1, 1), vec1.transformToVectorCoordinates(before, true)); EXPECT_EQ(Position(28, -4), vec1.transformToVectorCoordinates(beyond, true)); } { PositionVector vec1; // the same tests as before, mirrored on x-axis vec1.push_back(Position(1,0)); vec1.push_back(Position(10,0)); vec1.push_back(Position(10,-5)); vec1.push_back(Position(20,-5)); Position on(4,0); Position left(4,-1); Position right(4,1); Position left2(4,-2); Position right2(4,2); Position cornerRight(13,4); Position cornerLeft(7,-9); Position before(0,1); Position beyond(24,-9); EXPECT_EQ(Position(3, 0), vec1.transformToVectorCoordinates(on)); EXPECT_EQ(Position(3, 1), vec1.transformToVectorCoordinates(left)); EXPECT_EQ(Position(3, -1), vec1.transformToVectorCoordinates(right)); EXPECT_EQ(Position(3, 2), vec1.transformToVectorCoordinates(left2)); EXPECT_EQ(Position(3, -2), vec1.transformToVectorCoordinates(right2)); EXPECT_EQ(Position(9, -5), vec1.transformToVectorCoordinates(cornerRight)); EXPECT_EQ(Position(14, 5), vec1.transformToVectorCoordinates(cornerLeft)); EXPECT_EQ(Position::INVALID, vec1.transformToVectorCoordinates(before)); EXPECT_EQ(Position::INVALID, vec1.transformToVectorCoordinates(beyond)); EXPECT_EQ(Position(-1, -1), vec1.transformToVectorCoordinates(before, true)); EXPECT_EQ(Position(28, 4), vec1.transformToVectorCoordinates(beyond, true)); } }