diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 1a59e2d85c7b3b41404f808283866c07703ec8a1..34277d8ea1d3eeade76028c082a5431fedb491d5 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -30,23 +30,28 @@ int main(int argc, char* argv[]) gtime_t t_start{ 0, 0 }; // no limit gtime_t t_end{ 0, 0 }; // no limit double dt = 0.0; // no limit - const char* opt = ""; // only GPS | GPS+GAL: "-SYS=G,L" | ALL: "" + const char* opt = "-SYS=S"; // only GPS | GPS+GAL: "-SYS=G,L" | ALL: "" - // RTKLIB trace - // char str_file[80]; - // snprintf(str_file, sizeof str_file, "../src/examples/trace"); + // load observations from RINEX file observations.loadFromRinex("../src/examples/sample_data.obs", t_start, t_end, dt, opt); observations.print(); - // Trace close - // traceclose(); + + // RTKLIB trace + char str_file[80]; + snprintf(str_file, sizeof str_file, "../src/examples/trace"); + tracelevel(5); + traceopen(str_file); // load navigation from RINEX file navigation.loadFromRinex("../src/examples/sample_data.nav", t_start, t_end, dt, opt); navigation.print(); + // Trace close + traceclose(); + /* Set processing options */ /* header */ diff --git a/src/examples/trace b/src/examples/trace new file mode 100644 index 0000000000000000000000000000000000000000..362c7af58c323df3a6d40b9e316a4b74679ddb30 --- /dev/null +++ b/src/examples/trace @@ -0,0 +1,86 @@ +3 readrnxt: file=../src/examples/sample_data.nav rcv=1 +3 expath : path=../src/examples/sample_data.nav nmax=1024 +3 expath : file=../src/examples/sample_data.nav +3 readrnxfile: file=../src/examples/sample_data.nav flag=0 index=1 +3 rtk_uncompress: file=../src/examples/sample_data.nav +3 rtk_uncompress: stat=0 +3 readrnxfp: flag=0 index=1 +3 readrnxh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +4 decode_navh: +3 readrnxnav: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=49 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=38 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=36 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=49 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=36 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=36 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=49 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=49 +4 readrnxnavb: ver=3.04 sys=0 +4 decode_seph: ver=3.04 sat=36 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +4 readrnxnavb: ver=3.04 sys=0 +3 uniqnav: neph=0 ngeph=0 nseph=9 +3 uniqeph: n=0 +3 uniqgeph: ng=0 +3 uniqseph: ns=9 +4 uniqseph: ns=9 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 171992abf5ce4898215379e0e2aefe609dd3a7e7..e7ef282189d9297ca55770cbad6e797b36cad125 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,4 +18,8 @@ target_link_libraries(gtest_transformations ${PROJECT_NAME}) # Observations test gnss_utils_add_gtest(gtest_observations gtest_observations.cpp) -target_link_libraries(gtest_observations libgtest ${PROJECT_NAME}) \ No newline at end of file +target_link_libraries(gtest_observations libgtest ${PROJECT_NAME}) + +# Navigation test +gnss_utils_add_gtest(gtest_navigation gtest_navigation.cpp) +target_link_libraries(gtest_navigation libgtest ${PROJECT_NAME}) \ No newline at end of file diff --git a/test/gtest_navigation.cpp b/test/gtest_navigation.cpp index 5170cf11310248899fd967b3b870f974a6368b2f..6982d3a3511f821b2343a6c7957baa77f12aae52 100644 --- a/test/gtest_navigation.cpp +++ b/test/gtest_navigation.cpp @@ -1,12 +1,124 @@ #include "gtest/utils_gtest.h" -#include "gnss_utils/gnss_utils.h" +#include "gnss_utils/utils/utils.h" +#include "gnss_utils/navigation.h" -TEST(NavigationTests, Whatever) +using namespace GnssUtils; +std::string rnx_file = std::string(_GNSS_UTILS_ROOT_DIR) + "/test/data/sample_data.nav"; +nav_t nav; +const gtime_t t_start{ 0, 0 }; // no limit +const gtime_t t_end{ 0, 0 }; // no limit +const double dt = 0.0; // no limit +const char* opt = ""; // only GPS | GPS+GAL: "-SYS=G,L" | ALL: "" + +void loadRinex() +{ + int stat = readrnxt(rnx_file.c_str(), 1, t_start, t_end, dt, opt, NULL, &nav, NULL); + + ASSERT_EQ(stat, 1); + uniqnav(&nav); +} + +TEST(NavigationTests, Ephemeris) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().eph) == *(nav.eph)); +} + +TEST(NavigationTests, GlonassEphemeris) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().geph) == *(nav.geph)); +} + +TEST(NavigationTests, SBASEphemeris) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().seph) == *(nav.seph)); +} + +TEST(NavigationTests, PreciseEphemeris) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().peph) == *(nav.peph)); +} + +TEST(NavigationTests, PreciseClock) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().pclk) == *(nav.pclk)); +} + +TEST(NavigationTests, Almanac) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().alm) == *(nav.alm)); +} + +TEST(NavigationTests, TecGrid) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().tec) == *(nav.tec)); +} + +TEST(NavigationTests, FCBData) { - + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().fcb) == *(nav.fcb)); +} + +TEST(NavigationTests, EarthRotationParams) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(navigation.getNavigation().erp == nav.erp); +} + +TEST(NavigationTests, setgetNavigation) +{ + loadRinex(); + + Navigation navigation; + + navigation.setNavigation(nav); + ASSERT_TRUE(*(navigation.getNavigation().eph) == *(nav.eph)); } -int main(int argc, char **argv) +int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();