transfer.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
5 #include <string>
6 #include <gtest/gtest.h>
8 
9 
10 TEST(Transfer, TransferID)
11 {
12  using uavcan::TransferID;
13 
14  // Tests below are based on this assumption
15  ASSERT_EQ(32, 1 << TransferID::BitLen);
16 
17  /*
18  * forwardDistance()
19  */
20  EXPECT_EQ(0, TransferID(0).computeForwardDistance(0));
21  EXPECT_EQ(1, TransferID(0).computeForwardDistance(1));
22  EXPECT_EQ(7, TransferID(0).computeForwardDistance(7));
23 
24  EXPECT_EQ(0, TransferID(7).computeForwardDistance(7));
25  EXPECT_EQ(31,TransferID(31).computeForwardDistance(30));
26  EXPECT_EQ(1, TransferID(31).computeForwardDistance(0));
27 
28  EXPECT_EQ(30,TransferID(7).computeForwardDistance(5));
29  EXPECT_EQ(5, TransferID(0).computeForwardDistance(5));
30 
31  /*
32  * Misc
33  */
34  EXPECT_TRUE(TransferID(2) == TransferID(2));
35  EXPECT_FALSE(TransferID(2) != TransferID(2));
36  EXPECT_FALSE(TransferID(2) == TransferID(0));
37  EXPECT_TRUE(TransferID(2) != TransferID(0));
38 
39  TransferID tid;
40  for (int i = 0; i < 999; i++)
41  {
42  ASSERT_EQ(i & ((1 << TransferID::BitLen) - 1), tid.get());
43  const TransferID copy = tid;
44  tid.increment();
45  ASSERT_EQ(1, copy.computeForwardDistance(tid));
46  ASSERT_EQ(31, tid.computeForwardDistance(copy));
47  ASSERT_EQ(0, tid.computeForwardDistance(tid));
48  }
49 }
50 
51 
52 TEST(Transfer, NodeID)
53 {
54  uavcan::NodeID nid1(1);
55  uavcan::NodeID nid127(127);
56  uavcan::NodeID nid0(0);
57  uavcan::NodeID nidx;
58 
59  ASSERT_TRUE(nid1.isUnicast());
60  ASSERT_FALSE(nid1.isBroadcast());
61  ASSERT_TRUE(nid1.isValid());
62 
63  ASSERT_TRUE(nid127.isUnicast());
64  ASSERT_FALSE(nid127.isBroadcast());
65  ASSERT_TRUE(nid127.isValid());
66 
67  ASSERT_FALSE(nid0.isUnicast());
68  ASSERT_TRUE(nid0.isBroadcast());
69  ASSERT_TRUE(nid0.isValid());
70 
71  ASSERT_FALSE(nidx.isUnicast());
72  ASSERT_FALSE(nidx.isBroadcast());
73  ASSERT_FALSE(nidx.isValid());
74 
75  /*
76  * Comparison operators
77  */
78  ASSERT_TRUE(nid1 < nid127);
79  ASSERT_TRUE(nid1 <= nid127);
80  ASSERT_TRUE(nid0 < nid1);
81  ASSERT_TRUE(nid0 <= nid1);
82 
83  ASSERT_FALSE(nid1 > nid127);
84  ASSERT_FALSE(nid1 >= nid127);
85  ASSERT_FALSE(nid0 > nid1);
86  ASSERT_FALSE(nid0 >= nid1);
87 
88  ASSERT_FALSE(nid1 > uavcan::NodeID(1));
89  ASSERT_TRUE(nid1 >= uavcan::NodeID(1));
90 
91  ASSERT_FALSE(nid1 == nid127);
92  ASSERT_TRUE(nid127 == uavcan::NodeID(127));
93 }
uavcan::NodeID::isValid
bool isValid() const
Definition: transfer.hpp:134
uavcan::NodeID
Definition: transfer.hpp:112
Transfer
Definition: transfer_test_helpers.hpp:16
uavcan::TransferID
Definition: transfer.hpp:71
transfer.hpp
uavcan::NodeID::isUnicast
bool isUnicast() const
Definition: transfer.hpp:136
TEST
TEST(Transfer, TransferID)
Definition: transfer.cpp:10
uavcan::copy
UAVCAN_EXPORT OutputIt copy(InputIt first, InputIt last, OutputIt result)
Definition: templates.hpp:238
uavcan::NodeID::isBroadcast
bool isBroadcast() const
Definition: transfer.hpp:135


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:03