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

Function checkProjected

test/unit/test_io.cpp:1329–1416  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1327// ---------------------------------------------------------------------------
1328
1329static void checkProjected(ProjectedCRSPtr crs, bool checkEPSGCodes = true) {
1330 EXPECT_EQ(crs->nameStr(), "WGS 84 / UTM zone 31N");
1331 ASSERT_EQ(crs->identifiers().size(), 1U);
1332 EXPECT_EQ(crs->identifiers()[0]->code(), "32631");
1333 EXPECT_EQ(*(crs->identifiers()[0]->codeSpace()), "EPSG");
1334
1335 auto geogCRS = nn_dynamic_pointer_cast<GeographicCRS>(crs->baseCRS());
1336 ASSERT_TRUE(geogCRS != nullptr);
1337 checkEPSG_4326(NN_CHECK_ASSERT(geogCRS), true, checkEPSGCodes);
1338
1339 auto conversion = crs->derivingConversion();
1340 EXPECT_EQ(conversion->nameStr(), "UTM zone 31N");
1341 auto method = conversion->method();
1342 EXPECT_EQ(method->nameStr(), "Transverse Mercator");
1343 auto values = conversion->parameterValues();
1344 ASSERT_EQ(values.size(), 5U);
1345 {
1346 const auto &opParamvalue =
1347 nn_dynamic_pointer_cast<OperationParameterValue>(values[0]);
1348 ASSERT_TRUE(opParamvalue);
1349 const auto &paramName = opParamvalue->parameter()->nameStr();
1350 const auto &parameterValue = opParamvalue->parameterValue();
1351 EXPECT_EQ(paramName, "Latitude of natural origin");
1352 EXPECT_EQ(parameterValue->type(), ParameterValue::Type::MEASURE);
1353 auto measure = parameterValue->value();
1354 EXPECT_EQ(measure.unit(), UnitOfMeasure::DEGREE);
1355 EXPECT_EQ(measure.value(), 0);
1356 }
1357 {
1358 const auto &opParamvalue =
1359 nn_dynamic_pointer_cast<OperationParameterValue>(values[1]);
1360 ASSERT_TRUE(opParamvalue);
1361 const auto &paramName = opParamvalue->parameter()->nameStr();
1362 const auto &parameterValue = opParamvalue->parameterValue();
1363 EXPECT_EQ(paramName, "Longitude of natural origin");
1364 EXPECT_EQ(parameterValue->type(), ParameterValue::Type::MEASURE);
1365 auto measure = parameterValue->value();
1366 EXPECT_EQ(measure.unit(), UnitOfMeasure::DEGREE);
1367 EXPECT_EQ(measure.value(), 3);
1368 }
1369 {
1370 const auto &opParamvalue =
1371 nn_dynamic_pointer_cast<OperationParameterValue>(values[2]);
1372 ASSERT_TRUE(opParamvalue);
1373 const auto &paramName = opParamvalue->parameter()->nameStr();
1374 const auto &parameterValue = opParamvalue->parameterValue();
1375 EXPECT_EQ(paramName, "Scale factor at natural origin");
1376 EXPECT_EQ(parameterValue->type(), ParameterValue::Type::MEASURE);
1377 auto measure = parameterValue->value();
1378 EXPECT_EQ(measure.unit(), UnitOfMeasure::SCALE_UNITY);
1379 EXPECT_EQ(measure.value(), 0.9996);
1380 }
1381 {
1382 const auto &opParamvalue =
1383 nn_dynamic_pointer_cast<OperationParameterValue>(values[3]);
1384 ASSERT_TRUE(opParamvalue);
1385 const auto &paramName = opParamvalue->parameter()->nameStr();
1386 const auto &parameterValue = opParamvalue->parameterValue();

Callers 1

TESTFunction · 0.85

Calls 8

checkEPSG_4326Function · 0.85
sizeMethod · 0.80
baseCRSMethod · 0.80
derivingConversionMethod · 0.80
typeMethod · 0.80
valueMethod · 0.80
coordinateSystemMethod · 0.80
unitMethod · 0.45

Tested by

no test coverage detected