MCPcopy Create free account
hub / github.com/OSGeo/PROJ / TEST

Function TEST

test/unit/test_coordinates.cpp:97–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95// ---------------------------------------------------------------------------
96
97TEST(coordinateMetadata, static_crs) {
98 auto coordinateMetadata =
99 CoordinateMetadata::create(GeographicCRS::EPSG_4326);
100 EXPECT_TRUE(coordinateMetadata->crs()->isEquivalentTo(
101 GeographicCRS::EPSG_4326.get()));
102 EXPECT_FALSE(coordinateMetadata->coordinateEpoch().has_value());
103
104 // We tolerate coordinate epochs for EPSG:4326
105 EXPECT_NO_THROW(
106 CoordinateMetadata::create(GeographicCRS::EPSG_4326, 2025.0));
107
108 // A coordinate epoch should NOT be provided
109 EXPECT_THROW(CoordinateMetadata::create(createVerticalCRS(), 2025.0),
110 Exception);
111
112 WKTFormatterNNPtr f(
113 WKTFormatter::create(WKTFormatter::Convention::WKT2_2019));
114 auto wkt = coordinateMetadata->exportToWKT(f.get());
115 auto obj = WKTParser().createFromWKT(wkt);
116 auto coordinateMetadataFromWkt =
117 nn_dynamic_pointer_cast<CoordinateMetadata>(obj);
118 ASSERT_TRUE(coordinateMetadataFromWkt != nullptr);
119 EXPECT_TRUE(coordinateMetadataFromWkt->crs()->isEquivalentTo(
120 GeographicCRS::EPSG_4326.get()));
121 EXPECT_FALSE(coordinateMetadataFromWkt->coordinateEpoch().has_value());
122
123 auto ctxt = proj_context_create();
124 PjContextKeeper ctxtKeeper(ctxt);
125 auto pjObj = proj_create(ctxt, wkt.c_str());
126 ObjectKeeper objKeeper(pjObj);
127 ASSERT_TRUE(pjObj != nullptr);
128 EXPECT_EQ(proj_get_type(pjObj), PJ_TYPE_COORDINATE_METADATA);
129 EXPECT_TRUE(std::isnan(proj_coordinate_metadata_get_epoch(ctxt, pjObj)));
130 auto pjObj2 = proj_get_source_crs(ctxt, pjObj);
131 ObjectKeeper objKeeper2(pjObj2);
132 EXPECT_TRUE(pjObj2 != nullptr);
133
134 auto projjson =
135 coordinateMetadata->exportToJSON(JSONFormatter::create(nullptr).get());
136 auto obj2 = createFromUserInput(projjson, nullptr);
137 auto coordinateMetadataFromJson =
138 nn_dynamic_pointer_cast<CoordinateMetadata>(obj2);
139 ASSERT_TRUE(coordinateMetadataFromJson != nullptr);
140 EXPECT_TRUE(coordinateMetadataFromJson->crs()->isEquivalentTo(
141 GeographicCRS::EPSG_4326.get()));
142 EXPECT_FALSE(coordinateMetadataFromJson->coordinateEpoch().has_value());
143}
144
145// ---------------------------------------------------------------------------
146

Callers

nothing calls this directly

Calls 15

proj_context_createFunction · 0.85
proj_createFunction · 0.85
proj_get_typeFunction · 0.85
proj_get_source_crsFunction · 0.85
createFromUserInputFunction · 0.85
PropertyMapClass · 0.85
MeasureClass · 0.85
isEquivalentToMethod · 0.80
has_valueMethod · 0.80
exportToWKTMethod · 0.80
createFromWKTMethod · 0.80

Tested by

no test coverage detected