| 10 | #include "fields2cover.h" |
| 11 | |
| 12 | TEST(fields2cover_utils_transformer, convert_to_F2C_and_return) { |
| 13 | F2CCell poly(F2CLinearRing({ |
| 14 | F2CPoint(6.062131843297665, 51.51238564279176, 0), |
| 15 | F2CPoint(6.062215149507296, 51.51204470468504, 0), |
| 16 | F2CPoint(6.062232423018175, 51.51197104647852, 0), |
| 17 | F2CPoint(6.062259746209906, 51.51187606814959, 0), |
| 18 | F2CPoint(6.062131843297665, 51.51238564279176, 0), |
| 19 | })); |
| 20 | auto poly_to_transform = poly; |
| 21 | EXPECT_TRUE(poly == poly_to_transform); |
| 22 | F2CField field {F2CCells(poly_to_transform)}; |
| 23 | field.setEPSGCoordSystem(4326); |
| 24 | f2c::Transform::transform(field, "EPSG:28992"); |
| 25 | EXPECT_EQ(field.getField().getCellBorder(0).startPoint(), F2CPoint(0, 0, 0)); |
| 26 | EXPECT_EQ(field.getCRS(), "EPSG:28992"); |
| 27 | |
| 28 | auto ref_gps_point = f2c::Transform::getRefPointInGPS(field); |
| 29 | EXPECT_NEAR(ref_gps_point.getX(), 6.062131843297665, 1e-3); |
| 30 | EXPECT_NEAR(ref_gps_point.getY(), 51.51238564279176, 1e-3); |
| 31 | EXPECT_NEAR(ref_gps_point.getZ(), 0, 1e-3); |
| 32 | |
| 33 | f2c::Transform::transform(field, "EPSG:4326"); |
| 34 | auto final_field = (field.getField() + field.getRefPoint()).getCellBorder(0); |
| 35 | for (int i = 0; i < final_field.size(); ++i) { |
| 36 | EXPECT_NEAR(final_field.getGeometry(i).getX(), |
| 37 | poly.getGeometry(0).getGeometry(i).getX(), 1e-3); |
| 38 | EXPECT_NEAR(final_field.getGeometry(i).getY(), |
| 39 | poly.getGeometry(0).getGeometry(i).getY(), 1e-3); |
| 40 | EXPECT_NEAR(final_field.getGeometry(i).getZ(), |
| 41 | poly.getGeometry(0).getGeometry(i).getZ(), 1e-3); |
| 42 | } |
| 43 | |
| 44 | EXPECT_NO_THROW(f2c::Transform::transform(field, "UTM:32N datum:WGS84")); |
| 45 | EXPECT_THROW( f2c::Transform::transform(field, "NONE"), std::invalid_argument); |
| 46 | field.setCRS(""); |
| 47 | EXPECT_THROW( f2c::Transform::transform(field, "EPSG:28992"), std::invalid_argument); |
| 48 | } |
| 49 | |
| 50 | TEST(fields2cover_utils_transformer, convert_to_UTM_and_return) { |
| 51 | F2CCell poly(F2CLinearRing({ |
nothing calls this directly
no test coverage detected