From 43eec445799548a9b23000a05e99002c9c3a3d04 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 18 Mar 2023 11:39:44 +0100 Subject: [PATCH] Improve geohash test, make it easier to read the log --- .../PVT/gnuradio_blocks/rtklib_pvt_gs.cc | 2 +- .../signal-processing-blocks/pvt/geohash_test.cc | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc index 9d2b843b3..8f6f1648a 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc @@ -2434,7 +2434,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item LOG(INFO) << "Position at " << boost::posix_time::to_simple_string(d_user_pvt_solver->get_position_UTC_time()) << " UTC using " << d_user_pvt_solver->get_num_valid_observations() << " observations is Lat = " << d_user_pvt_solver->get_latitude() << " [deg], Long = " << d_user_pvt_solver->get_longitude() << " [deg], Height = " << d_user_pvt_solver->get_height() << " [m]"; - LOG(INFO) << "geohash: " << d_geohash->encode(d_user_pvt_solver->get_latitude(), d_user_pvt_solver->get_longitude()); + LOG(INFO) << "geohash=" << d_geohash->encode(d_user_pvt_solver->get_latitude(), d_user_pvt_solver->get_longitude()); /* std::cout << "Dilution of Precision at " << boost::posix_time::to_simple_string(d_user_pvt_solver->get_position_UTC_time()) << " UTC using "<< d_user_pvt_solver->get_num_valid_observations() <<" observations is HDOP = " << d_user_pvt_solver->get_hdop() << " VDOP = " << d_user_pvt_solver->get_vdop() diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/geohash_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/geohash_test.cc index 9eb0080ad..845c67937 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/geohash_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/geohash_test.cc @@ -22,18 +22,28 @@ TEST(Geohash_Test, Encode) std::string geohash; EXPECT_NO_THROW(geohash = gh.encode(52.205, 0.119, 7)); EXPECT_EQ(0, geohash.compare("u120fxw")); + EXPECT_NO_THROW(geohash = gh.encode(41.274966141209, 1.987518053501)); + EXPECT_EQ(0, geohash.compare("sp36v1zk0e2g")); EXPECT_THROW(gh.encode(52.205, 0.119, 0), std::invalid_argument); } + TEST(Geohash_Test, Decode) { Geohash gh = Geohash(); auto latlon = gh.decode("sp36v1zk0e2g"); - EXPECT_NEAR(41.274966141209006, latlon[0], 1e-8); - EXPECT_NEAR(1.9875180535018444, latlon[1], 1e-8); + EXPECT_NEAR(41.274966141209, latlon[0], 1e-8); + EXPECT_NEAR(1.987518053501, latlon[1], 1e-8); EXPECT_THROW(gh.decode(""), std::runtime_error); + latlon = gh.decode("w21zd2mkt"); + EXPECT_NEAR(1.320527, latlon[0], 1e-8); + EXPECT_NEAR(103.81726, latlon[1], 1e-8); + latlon = gh.decode("W21ZD2MKT"); + EXPECT_NEAR(1.320527, latlon[0], 1e-8); + EXPECT_NEAR(103.81726, latlon[1], 1e-8); } + TEST(Geohash_Test, Precision) { Geohash gh = Geohash();