@@ -69,7 +69,26 @@ TEST(package_serializer, serialize_int32)
6969{
7070 uint8_t buffer[sizeof (int32_t )];
7171 size_t expected_size = sizeof (int32_t );
72- size_t actual_size = comm::PackageSerializer::serialize<int32_t >(buffer, 2341 );
72+ size_t actual_size = comm::PackageSerializer::serialize<int32_t >(buffer, -2341 );
73+
74+ EXPECT_EQ (expected_size, actual_size);
75+ int32_t val;
76+ std::memcpy (&val, buffer, sizeof (int32_t ));
77+ int32_t decoded = be32toh (val);
78+ EXPECT_EQ (decoded, -2341 );
79+
80+ uint8_t expected_buffer[] = { 0xFF , 0xFF , 0xF6 , 0xDB };
81+ for (unsigned int i = 0 ; i < actual_size; ++i)
82+ {
83+ EXPECT_EQ (expected_buffer[i], buffer[i]);
84+ }
85+ }
86+
87+ TEST (package_serializer, serialize_uint32)
88+ {
89+ uint8_t buffer[sizeof (uint32_t )];
90+ size_t expected_size = sizeof (uint32_t );
91+ size_t actual_size = comm::PackageSerializer::serialize<uint32_t >(buffer, 2341 );
7392
7493 EXPECT_EQ (expected_size, actual_size);
7594
@@ -80,9 +99,152 @@ TEST(package_serializer, serialize_int32)
8099 }
81100}
82101
102+ TEST (package_serializer, serialize_int16)
103+ {
104+ uint8_t buffer[sizeof (int16_t )];
105+ size_t expected_size = sizeof (int16_t );
106+ size_t actual_size = comm::PackageSerializer::serialize<int16_t >(buffer, -2341 );
107+
108+ EXPECT_EQ (expected_size, actual_size);
109+
110+ uint8_t expected_buffer[] = { 0xF6 , 0xDB };
111+ for (unsigned int i = 0 ; i < actual_size; ++i)
112+ {
113+ EXPECT_EQ (expected_buffer[i], buffer[i]);
114+ }
115+ }
116+
117+ TEST (package_serializer, serialize_uint16)
118+ {
119+ uint8_t buffer[sizeof (uint16_t )];
120+ size_t expected_size = sizeof (uint16_t );
121+ size_t actual_size = comm::PackageSerializer::serialize<uint16_t >(buffer, 2341 );
122+
123+ EXPECT_EQ (expected_size, actual_size);
124+
125+ uint8_t expected_buffer[] = { 0x09 , 0x25 };
126+ for (unsigned int i = 0 ; i < actual_size; ++i)
127+ {
128+ EXPECT_EQ (expected_buffer[i], buffer[i]);
129+ }
130+ }
131+
132+ TEST (package_serializer, serialize_vector6d)
133+ {
134+ vector6d_t target{ 1.0 , 3.14 , 42 , -2.345 , 2.0 , 0 };
135+ uint8_t buffer[sizeof (vector6d_t )];
136+ size_t expected_size = sizeof (vector6d_t );
137+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
138+
139+ EXPECT_EQ (expected_size, actual_size);
140+
141+ for (size_t i = 0 ; i < target.size (); ++i)
142+ {
143+ uint64_t tmp;
144+ std::memcpy (&tmp, &buffer[i * sizeof (double )], sizeof (double ));
145+ uint64_t decoded = be64toh (tmp);
146+ double decoded_double;
147+ std::memcpy (&decoded_double, &decoded, sizeof (double ));
148+ EXPECT_DOUBLE_EQ (decoded_double, target[i]);
149+ }
150+ }
151+
152+ TEST (package_serializer, serialize_vector3d)
153+ {
154+ vector3d_t target{ 1.0 , 3.14 , -42 };
155+ uint8_t buffer[sizeof (vector3d_t )];
156+ size_t expected_size = sizeof (vector3d_t );
157+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
158+
159+ EXPECT_EQ (expected_size, actual_size);
160+
161+ for (size_t i = 0 ; i < target.size (); ++i)
162+ {
163+ uint64_t tmp;
164+ std::memcpy (&tmp, &buffer[i * sizeof (double )], sizeof (double ));
165+ uint64_t decoded = be64toh (tmp);
166+ double decoded_double;
167+ std::memcpy (&decoded_double, &decoded, sizeof (double ));
168+ EXPECT_DOUBLE_EQ (decoded_double, target[i]);
169+ }
170+ }
171+
172+ TEST (package_serializer, serialize_vector6int32)
173+ {
174+ vector6int32_t target{ 1 , 0 , -42 };
175+ uint8_t buffer[sizeof (target)];
176+ size_t expected_size = sizeof (target);
177+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
178+
179+ EXPECT_EQ (expected_size, actual_size);
180+
181+ for (size_t i = 0 ; i < target.size (); ++i)
182+ {
183+ int32_t tmp;
184+ std::memcpy (&tmp, &buffer[i * sizeof (int32_t )], sizeof (int32_t ));
185+ int32_t decoded = be32toh (tmp);
186+ EXPECT_DOUBLE_EQ (decoded, target[i]);
187+ }
188+ }
189+
190+ TEST (package_serializer, serialize_vector6uint32)
191+ {
192+ vector6uint32_t target{ 1 , 0 , 42 };
193+ uint8_t buffer[sizeof (target)];
194+ size_t expected_size = sizeof (target);
195+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
196+
197+ EXPECT_EQ (expected_size, actual_size);
198+
199+ for (size_t i = 0 ; i < target.size (); ++i)
200+ {
201+ uint32_t tmp;
202+ std::memcpy (&tmp, &buffer[i * sizeof (uint32_t )], sizeof (uint32_t ));
203+ uint32_t decoded = be32toh (tmp);
204+ EXPECT_DOUBLE_EQ (decoded, target[i]);
205+ }
206+ }
207+
208+ TEST (package_serializer, serialize_float)
209+ {
210+ float target = -2 .345f ;
211+ uint8_t buffer[sizeof (target)];
212+ size_t expected_size = sizeof (target);
213+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
214+
215+ EXPECT_EQ (expected_size, actual_size);
216+
217+ uint32_t tmp;
218+ std::memcpy (&tmp, &buffer, sizeof (uint32_t ));
219+ uint32_t decoded = be32toh (tmp);
220+ float decoded_float;
221+ std::memcpy (&decoded_float, &decoded, sizeof (float ));
222+ EXPECT_DOUBLE_EQ (decoded_float, target);
223+ }
224+
225+ TEST (package_serializer, serialize_bool)
226+ {
227+ bool target = false ;
228+ uint8_t buffer[sizeof (target)];
229+ size_t expected_size = sizeof (target);
230+ size_t actual_size = comm::PackageSerializer::serialize (buffer, target);
231+
232+ EXPECT_EQ (expected_size, actual_size);
233+
234+ bool decoded_bool;
235+ std::memcpy (&decoded_bool, &buffer, sizeof (uint8_t ));
236+ EXPECT_DOUBLE_EQ (decoded_bool, target);
237+
238+ target = false ;
239+ actual_size = comm::PackageSerializer::serialize (buffer, target);
240+ EXPECT_EQ (expected_size, actual_size);
241+ std::memcpy (&decoded_bool, &buffer, sizeof (uint8_t ));
242+ EXPECT_DOUBLE_EQ (decoded_bool, target);
243+ }
244+
83245int main (int argc, char * argv[])
84246{
85247 ::testing::InitGoogleTest (&argc, argv);
86248
87249 return RUN_ALL_TESTS ();
88- }
250+ }
0 commit comments