#define TESTNAME "test_Egm2008"
#define PANASSERT(condition, testname) ASSERT_TRUE(condition)
#define PANASSERTCOMPLETED(testname) return 1
int test_Egm2008()
{
HANDLE hegm = mapOpenEgm2008Un(0);
PANASSERT(hegm, "test_Egm2008:egm2008_1min.mtw/egm2008_2.5min.mtw - not found");
double b, l, h;
double dh = 0;
b = 60. * M_PI / 180.;
l = -100. * M_PI / 180.;
PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME); // Запрашиваем значение поправки для перехода от нормальной высоты (MSL) к геодезической на WGS-84
PANASSERT(Compare(dh, -41.9, 0.5) == 0, TESTNAME);
h = 0;
PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME); // Пересчитываем геодезическую высоту к нормальной, поскольку высоту приравняли нулю, то результат совпадет с поправкой с другим знаком
PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);
PANASSERT(mapNormalHeightToGeoHeightWGS84(b, l, &h, hegm), TESTNAME);
PANASSERT(Compare(h, 0, 0.1) == 0, TESTNAME);
b = 60. * M_PI / 180.;
l = 100. * M_PI / 180.;
PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME); // Запрашиваем значение поправки для перехода от нормальной высоты (MSL) к геодезической на WGS-84
PANASSERT(Compare(dh, -33.96, 0.5) == 0, TESTNAME);
h = 0;
PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME); // Пересчитываем геодезическую высоту к нормальной, поскольку высоту приравняли нулю, то результат совпадет с поправкой с другим знаком
PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);
b = -25. * M_PI / 180.;
l = 120. * M_PI / 180.;
PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);
PANASSERT(Compare(dh, -9.02, 0.5) == 0, TESTNAME);
h = 0;
PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);
PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);
b = -30. * M_PI / 180.;
l = 20. * M_PI / 180.;
PANASSERT(mapReadEgm2008(hegm, 2, b, l, &dh), TESTNAME);
PANASSERT(Compare(dh, 33.32, 0.5) == 0, TESTNAME);
h = 0;
PANASSERT(mapGeoHeightToNormalHeightWGS84(b, l, &h, hegm), TESTNAME);
PANASSERT(Compare(h, -dh, 0.1) == 0, TESTNAME);
mapCloseEgm(hegm);
PANASSERTCOMPLETED(TESTNAME);
} |