| 8 | #include "fields2cover/types.h" |
| 9 | |
| 10 | TEST(fields2cover_types_linestring, init) { |
| 11 | F2CLineString line1; |
| 12 | line1.addPoint(1,1); |
| 13 | line1.addPoint(2,1); |
| 14 | EXPECT_EQ(line1.size(), 2); |
| 15 | F2CLineString line2({F2CPoint(1,2), F2CPoint(3,2), F2CPoint(1,3)}); |
| 16 | EXPECT_EQ(line2.size(), 3); |
| 17 | EXPECT_EQ(line2.getX(0), 1); |
| 18 | EXPECT_EQ(line2.getX(1), 3); |
| 19 | EXPECT_EQ(line2.X(1), 3); |
| 20 | EXPECT_EQ(line2.Y(1), 2); |
| 21 | EXPECT_EQ(line2.Z(1), 0); |
| 22 | F2CLineString line3{F2CPoint(2,3)}; |
| 23 | EXPECT_EQ(line3.size(), 1); |
| 24 | EXPECT_EQ(line3.getX(0), 2); |
| 25 | const F2CPoint p {20, 30}; |
| 26 | F2CLineString line4{p}; |
| 27 | EXPECT_EQ(line4.size(), 1); |
| 28 | auto p2 = line4.getGeometry(0); |
| 29 | EXPECT_EQ(p2.getX(), 20); |
| 30 | EXPECT_EQ(p2.getY(), 30); |
| 31 | F2CLineString line5(std::vector<F2CPoint>({F2CPoint(1,2), F2CPoint(3,2), F2CPoint(1,3)})); |
| 32 | EXPECT_EQ(line5.size(), 3); |
| 33 | EXPECT_EQ(line5.getX(0), 1); |
| 34 | EXPECT_EQ(line5.getX(1), 3); |
| 35 | |
| 36 | F2CLineString line6(static_cast<OGRGeometry*>(line5.get()), f2c::types::EmptyDestructor()); |
| 37 | EXPECT_EQ(line6.size(), 3); |
| 38 | EXPECT_EQ(line6.getX(0), 1); |
| 39 | EXPECT_EQ(line6.getX(1), 3); |
| 40 | |
| 41 | OGRLineString ogr_line = *(line5.get()); |
| 42 | F2CLineString line7(ogr_line); |
| 43 | EXPECT_EQ(line7.size(), 3); |
| 44 | EXPECT_EQ(line7.getX(0), 1); |
| 45 | EXPECT_EQ(line7.getX(1), 3); |
| 46 | |
| 47 | F2CPoint error_p; |
| 48 | const F2CLineString c_line = line7.clone(); |
| 49 | EXPECT_THROW(line7.getGeometry(100, error_p), std::out_of_range); |
| 50 | EXPECT_THROW(c_line.getGeometry(100, error_p), std::out_of_range); |
| 51 | EXPECT_THROW(line7.getGeometry(100), std::out_of_range); |
| 52 | EXPECT_THROW(c_line.getGeometry(100), std::out_of_range); |
| 53 | } |
| 54 | |
| 55 | TEST(fields2cover_types_linestring, loop) { |
| 56 | F2CLineString line(std::vector<F2CPoint>({F2CPoint(1,2), F2CPoint(3,4), F2CPoint(5,6)})); |
nothing calls this directly
no test coverage detected