MCPcopy Create free account
hub / github.com/Fields2Cover/Fields2Cover / TEST

Function TEST

tests/cpp/utils/transform_test.cpp:12–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10#include "fields2cover.h"
11
12TEST(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
50TEST(fields2cover_utils_transformer, convert_to_UTM_and_return) {
51 F2CCell poly(F2CLinearRing({

Callers

nothing calls this directly

Calls 15

setEPSGCoordSystemMethod · 0.80
getCellBorderMethod · 0.80
getCRSMethod · 0.80
setCRSMethod · 0.80
getPrevCRSMethod · 0.80
setCellMethod · 0.80
getPathMethod · 0.80
areaCoveredMethod · 0.80
setPrevCRSMethod · 0.80
getCellMethod · 0.80
appendSwathMethod · 0.80
startPointMethod · 0.45

Tested by

no test coverage detected