| 1327 | // --------------------------------------------------------------------------- |
| 1328 | |
| 1329 | static 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 ¶mName = opParamvalue->parameter()->nameStr(); |
| 1350 | const auto ¶meterValue = 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 ¶mName = opParamvalue->parameter()->nameStr(); |
| 1362 | const auto ¶meterValue = 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 ¶mName = opParamvalue->parameter()->nameStr(); |
| 1374 | const auto ¶meterValue = 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 ¶mName = opParamvalue->parameter()->nameStr(); |
| 1386 | const auto ¶meterValue = opParamvalue->parameterValue(); |
no test coverage detected