127 template <
class NavClass>
136 TUDEF(
"SP3NavDataFactory",
"SP3NavDataFactory");
151 TUDEF(
"SP3NavDataFactory",
"loadIntoMap");
155 std::string f2name = gnsstk::getPathData() + gnsstk::getFileSep() +
156 "test_input_SP3a.sp3";
163 std::string f3name = gnsstk::getPathData() + gnsstk::getFileSep() +
164 "test_input_SP3b.sp3";
170 std::string f4name = gnsstk::getPathData() + gnsstk::getFileSep() +
171 "test_input_SP3a.sp3";
172 TUCATCH(f4.setTypeFilter({gnsstk::NavMessageType::Ephemeris}));
181 nmm4.begin()->first);
182 TUCSM(
"convertToOrbit");
183 verifyDataType<gnsstk::OrbitDataSP3>(testFramework, nmm4);
184 TUCSM(
"loadIntoMap");
187 std::string f5name = gnsstk::getPathData() + gnsstk::getFileSep() +
188 "test_input_SP3a.sp3";
189 TUCATCH(f5.setTypeFilter({gnsstk::NavMessageType::Health}));
193 TUCSM(
"loadIntoMap");
196 std::string f6name = gnsstk::getPathData() + gnsstk::getFileSep() +
197 "test_input_SP3a.sp3";
198 TUCATCH(f6.setTypeFilter({gnsstk::NavMessageType::Almanac}));
206 std::string f7name = gnsstk::getPathData() + gnsstk::getFileSep() +
218 TUDEF(
"SP3NavDataFactory",
"find");
233 fname = gnsstk::getPathData() + gnsstk::getFileSep() +
234 "test_input_SP3a.sp3";
393 fname = gnsstk::getPathData() + gnsstk::getFileSep() +
394 "test_input_sp3_nav_ephemerisData.sp3";
441 TUDEF(
"SP3NavDataFactory",
"find");
450 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
451 "test_input_sp3_nav_ephemerisData.sp3";
516 TUDEF(
"SP3NavDataFactory",
"find");
527 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
528 "test_input_sp3_nav_ephemerisData.sp3";
844 TUDEF(
"SP3NavDataFactory",
"addDataSource");
855 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
856 "test_input_SP3c.sp3";
937 TUDEF(
"SP3NavDataFactory",
"addDataSource");
948 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
949 "test_input_SP3c_pos.sp3";
1030 TUDEF(
"SP3NavDataFactory",
"loadIntoMap");
1036 expOidGal(ObservationType::NavMsg,CarrierBand::L5,TrackingCode::E5aI),
1038 expOidGLO(ObservationType::NavMsg,CarrierBand::G1,TrackingCode::Standard),
1039 expOidBei(ObservationType::NavMsg,CarrierBand::B1,TrackingCode::B1I),
1040 expOidOth(ObservationType::NavMsg, CarrierBand::Unknown,
1041 TrackingCode::Unknown);
1043 expNTGPS(NavType::GPSLNAV),
1044 expNTGal(NavType::GalFNAV),
1045 expNTQZS(NavType::GPSLNAV),
1046 expNTGLO(NavType::GloCivilF),
1047 expNTBei(NavType::BeiDou_D1),
1048 expNTOth(NavType::Unknown);
1050 std::string fname = getPathData() + getFileSep() +
1051 "test_input_SP3c_mgex1.sp3";
1052 uut.rejectBadPositions(badPos);
1053 uut.rejectBadClocks(badClk);
1054 uut.useRinexClockData(rcBefore);
1057 uut.useRinexClockData(rcAfter);
1058 unsigned gps = 0, gal = 0, qzs = 0, glo = 0, irn = 0, bei = 0, leo = 0,
1060 unsigned gpsExp = 320, galExp = 110, qzsExp = 10, gloExp = 230, irnExp = 0,
1061 beiExp = 80, leoExp = 50, otherExp = 0, allExp = 800;
1062 if (!rcBefore && !rcAfter)
1064 if ((badPos ==
false) && (badClk ==
false))
1068 else if ((badPos ==
false) && (badClk ==
true))
1074 else if ((badPos ==
true) && (badClk ==
false))
1078 else if ((badPos ==
true) && (badClk ==
true))
1089 if ((badPos ==
false) && (badClk ==
false))
1103 else if ((badPos ==
false) && (badClk ==
true))
1115 else if ((badPos ==
true) && (badClk ==
false))
1127 else if ((badPos ==
true) && (badClk ==
true))
1141 for (
auto& nmti : uut.
getData())
1143 for (
auto& sati : nmti.second)
1145 for (
auto& ti : sati.second)
1154 case SatelliteSystem::GPS:
1159 case SatelliteSystem::Galileo:
1164 case SatelliteSystem::Glonass:
1169 case SatelliteSystem::BeiDou:
1174 case SatelliteSystem::QZSS:
1179 case SatelliteSystem::IRNSS:
1184 case SatelliteSystem::LEO:
1215 if (rcBefore || rcAfter)
1236 template <
class NavClass>
1241 for (
auto& nmti : nmm)
1243 for (
auto& sati : nmti.second)
1245 for (
auto& ti : sati.second)
1247 TUASSERT(
dynamic_cast<NavClass*
>(ti.second.get()) !=
nullptr);
1258 TUDEF(
"SP3NavDataFactory",
"addRinexClockTest");
1262 std::string fnameSP3 = getPathData() + getFileSep() +
1263 "test_input_SP3c_mgex1.sp3";
1264 std::string fnameClk = getPathData() + getFileSep() +
1265 "test_input_rinex3_clock_RinexClockExample.96c";
1273 fnameSP3 = getPathData() + getFileSep() +
"test_input_SP3c.sp3";
1274 fnameClk = getPathData() + getFileSep() +
1275 "test_input_rinex3_clock_RinexClockExample.96c";
1290 TUDEF(
"SP3NavDataFactory",
"setPosGapInterval");
1292 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
1293 "test_input_sp3_nav_2015_200.sp3";
1307 TUCATCH(uut.setPosGapInterval(1));
1312 TUCATCH(uut.setPosGapInterval(301));
1317 TUCATCH(uut.setPosGapInterval(299));
1322 TUCATCH(uut.disablePosDataGapCheck());
1327 TUCATCH(uut.setClkGapInterval(1));
1332 TUCATCH(uut.disableClkDataGapCheck());
1337 TUCATCH(uut.setPosMaxInterval(1));
1342 TUCATCH(uut.setPosMaxInterval(2701));
1347 TUCATCH(uut.setPosMaxInterval(2699));
1352 TUCATCH(uut.disablePosIntervalCheck());
1357 TUCATCH(uut.setClockMaxInterval(1));
1362 TUCATCH(uut.setClockMaxInterval(2701));
1367 TUCATCH(uut.setClockMaxInterval(2699));
1372 TUCATCH(uut.disableClockIntervalCheck());
1383 TUDEF(
"SP3NavDataFactory",
"nomTimeStep");
1385 std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
1386 "test_input_sp3_nav_2015_200.sp3";
1390 TUASSERTE(
double, 300.0, uut.getPositionTimeStep(satID));
1391 TUASSERTE(
double, 300.0, uut.getClockTimeStep(satID));
1399 unsigned errorTotal = 0;
1423 errorTotal += testClass.
gapTest();
1426 std::cout <<
"Total Failures for " << __FILE__ <<
": " << errorTotal