NMEA: remove deprecated type talker_id
[marnav.git] / test / nmea / Test_nmea_hdm.cpp
blobd6ff243c3ace0955f5192061b230353874dbbd28
1 #include <gtest/gtest.h>
2 #include <marnav/nmea/hdm.hpp>
3 #include <marnav/nmea/nmea.hpp>
4 #include "type_traits_helper.hpp"
6 namespace
9 using namespace marnav;
11 class Test_nmea_hdm : public ::testing::Test
15 TEST_F(Test_nmea_hdm, contruction)
17 EXPECT_NO_THROW(nmea::hdm hdm);
20 TEST_F(Test_nmea_hdm, properties)
22 nmea_sentence_traits<nmea::hdm>();
25 TEST_F(Test_nmea_hdm, parse)
27 auto s = nmea::make_sentence("$HCHDM,45.8,M*10");
28 ASSERT_NE(nullptr, s);
30 auto hdm = nmea::sentence_cast<nmea::hdm>(s);
31 ASSERT_NE(nullptr, hdm);
33 auto heading = hdm->get_heading();
34 EXPECT_TRUE(heading.available());
35 EXPECT_NEAR(45.8, heading.value(), 1e-8);
38 TEST_F(Test_nmea_hdm, parse_invalid_number_of_arguments)
40 EXPECT_ANY_THROW(
41 nmea::detail::factory::sentence_parse<nmea::hdm>(nmea::talker::none, {1, "@"}));
42 EXPECT_ANY_THROW(
43 nmea::detail::factory::sentence_parse<nmea::hdm>(nmea::talker::none, {3, "@"}));
46 TEST_F(Test_nmea_hdm, empty_to_string)
48 nmea::hdm hdm;
50 EXPECT_STREQ("$HCHDM,,*4A", nmea::to_string(hdm).c_str());
53 TEST_F(Test_nmea_hdm, set_heading)
55 nmea::hdm hdm;
56 hdm.set_heading(45.8);
58 EXPECT_STREQ("$HCHDM,45.8,M*10", nmea::to_string(hdm).c_str());