Dev: formatting is now consistent again.
[marnav.git] / test / nmea / Test_nmea_hdt.cpp
blob5eca28952509bf2e433180318c7a5a2fa9594c61
1 #include <gtest/gtest.h>
2 #include <marnav/nmea/hdt.hpp>
3 #include <marnav/nmea/nmea.hpp>
4 #include "type_traits_helper.hpp"
6 namespace
9 using namespace marnav;
11 class Test_nmea_hdt : public ::testing::Test
15 TEST_F(Test_nmea_hdt, contruction) { EXPECT_NO_THROW(nmea::hdt hdt); }
17 TEST_F(Test_nmea_hdt, properties) { nmea_sentence_traits<nmea::hdt>(); }
19 TEST_F(Test_nmea_hdt, parse)
21 auto s = nmea::make_sentence("$IIHDT,45.8,T*1B");
22 ASSERT_NE(nullptr, s);
24 auto hdt = nmea::sentence_cast<nmea::hdt>(s);
25 ASSERT_NE(nullptr, hdt);
27 auto heading = hdt->get_heading();
28 EXPECT_TRUE(heading.available());
29 EXPECT_NEAR(45.8, heading.value(), 1e-8);
32 TEST_F(Test_nmea_hdt, parse_invalid_number_of_arguments)
34 EXPECT_ANY_THROW(nmea::sentence_parse<nmea::hdt>("@@", {1, "@"}));
35 EXPECT_ANY_THROW(nmea::sentence_parse<nmea::hdt>("@@", {3, "@"}));
38 TEST_F(Test_nmea_hdt, empty_to_string)
40 nmea::hdt hdt;
42 EXPECT_STREQ("$IIHDT,,*58", nmea::to_string(hdt).c_str());
45 TEST_F(Test_nmea_hdt, set_heading)
47 nmea::hdt hdt;
48 hdt.set_heading(45.8);
50 EXPECT_STREQ("$IIHDT,45.8,T*1B", nmea::to_string(hdt).c_str());