27 TEST_CASE(
"MAVAddress's store a system and component ID.",
"[MAVAddress]")
34 REQUIRE(b.system() == 255);
35 REQUIRE(b.component() == 255);
36 REQUIRE(b.address() == 0xFFFF);
38 REQUIRE(c.system() == 255);
39 REQUIRE(c.component() == 0);
40 REQUIRE(c.address() == 0xFF00);
42 REQUIRE(d.system() == 0);
43 REQUIRE(d.component() == 255);
44 REQUIRE(d.address() == 0x00FF);
48 TEST_CASE(
"MAVAddress's are comparable.",
"[MAVAddress]")
145 TEST_CASE(
"MAVAddress's can be constructed from a numeric address.",
154 SECTION(
"And ensures System and Component ID's are within range.")
156 REQUIRE_THROWS_AS(
MAVAddress(static_cast<unsigned int>(0x0000 - 1)),
158 REQUIRE_THROWS_AS(
MAVAddress(0xFFFF + 1), std::out_of_range);
163 TEST_CASE(
"MAVAddress's can be constructed from System and Component ID's.",
172 SECTION(
"And ensures System and Component ID's are within range.")
175 REQUIRE_THROWS_AS(
MAVAddress(static_cast<unsigned int>(-1), 0),
177 REQUIRE_THROWS_AS(
MAVAddress(0, static_cast<unsigned int>(-1)),
179 REQUIRE_THROWS_AS(
MAVAddress(256, 255), std::out_of_range);
180 REQUIRE_THROWS_AS(
MAVAddress(255, 256), std::out_of_range);
181 REQUIRE_THROWS_AS(
MAVAddress(256, 256), std::out_of_range);
185 "System ID (256) is outside of the allowed range (0 - 255).");
188 "Component ID (256) is outside of the allowed range (0 - 255).");
195 TEST_CASE(
"MAVAddress's can be constructed from strings.",
"[MAVAddress]")
207 SECTION(
"And ensures the address string is valid.")
210 REQUIRE_THROWS_AS(
MAVAddress(
"1"), std::invalid_argument);
211 REQUIRE_THROWS_AS(
MAVAddress(
"1."), std::invalid_argument);
212 REQUIRE_THROWS_AS(
MAVAddress(
"1.2."), std::invalid_argument);
213 REQUIRE_THROWS_AS(
MAVAddress(
"1.2.3"), std::invalid_argument);
214 REQUIRE_THROWS_AS(
MAVAddress(
"a.2.3"), std::invalid_argument);
215 REQUIRE_THROWS_AS(
MAVAddress(
"1.b.3"), std::invalid_argument);
216 REQUIRE_THROWS_AS(
MAVAddress(
"1.2.c"), std::invalid_argument);
217 REQUIRE_THROWS_AS(
MAVAddress(
"+1.0"), std::invalid_argument);
218 REQUIRE_THROWS_AS(
MAVAddress(
"0.+1"), std::invalid_argument);
219 REQUIRE_THROWS_AS(
MAVAddress(
"-1.0"), std::invalid_argument);
220 REQUIRE_THROWS_AS(
MAVAddress(
"0.-1"), std::invalid_argument);
223 MAVAddress(
"1"),
"Invalid MAVLink address string.");
225 MAVAddress(
"1."),
"Invalid MAVLink address string.");
227 MAVAddress(
"1.2."),
"Invalid MAVLink address string.");
229 MAVAddress(
"1.2.3"),
"Invalid MAVLink address string.");
231 MAVAddress(
"a.2.3"),
"Invalid MAVLink address string.");
233 MAVAddress(
"1.b.3"),
"Invalid MAVLink address string.");
235 MAVAddress(
"1.2.c"),
"Invalid MAVLink address string.");
237 MAVAddress(
"+1.0"),
"Invalid MAVLink address string.");
239 MAVAddress(
"0.+1"),
"Invalid MAVLink address string.");
241 MAVAddress(
"-1.0"),
"Invalid MAVLink address string.");
243 MAVAddress(
"0.-1"),
"Invalid MAVLink address string.");
245 SECTION(
"And ensures System and Component ID's are within range.")
248 REQUIRE_THROWS_AS(
MAVAddress(
"256.255"), std::out_of_range);
249 REQUIRE_THROWS_AS(
MAVAddress(
"255.256"), std::out_of_range);
250 REQUIRE_THROWS_AS(
MAVAddress(
"256.256"), std::out_of_range);
254 "System ID (256) is outside of the allowed range (0 - 255).");
257 "Component ID (256) is outside of the allowed range (0 - 255).");
284 REQUIRE(address_b_moved ==
MAVAddress(255, 255));
288 TEST_CASE(
"MAVAddress's are assignable.",
"[MAVAddress]")
298 TEST_CASE(
"MAVAddress's are assignable (by move semantics).",
"[MAVAddress]")
unsigned int component() const
std::string str(const T &object)
unsigned int system() const
TEST_CASE("MAVAddress's store a system and component ID.", "[MAVAddress]")
unsigned int address() const
MAVAddress address_b(255, 255)