|
2 | 2 | import mock
|
3 | 3 |
|
4 | 4 | from openbci.utils import (k,
|
| 5 | + new_sample, |
| 6 | + new_sample_no_scale, |
5 | 7 | ParseRaw,
|
6 | 8 | sample_packet,
|
7 | 9 | sample_packet_standard_raw_aux,
|
@@ -245,6 +247,108 @@ def test_transform_raw_data_packets_to_sample(self):
|
245 | 247 | for i in range(len(samples)):
|
246 | 248 | self.assertEqual(samples[i].sample_number, i)
|
247 | 249 |
|
| 250 | + def test_make_daisy_sample_object_wifi(self): |
| 251 | + parser = ParseRaw(gains=[24, 24, 24, 24, 24, 24, 24, 24]) |
| 252 | + # Make the lower sample(channels 1 - 8) |
| 253 | + lower_sample_object = new_sample(1) |
| 254 | + lower_sample_object.channel_data = [1, 2, 3, 4, 5, 6, 7, 8] |
| 255 | + lower_sample_object.aux_data = [0, 1, 2] |
| 256 | + lower_sample_object.timestamp = 4 |
| 257 | + lower_sample_object.accel_data = [0, 0, 0] |
| 258 | + # Make the upper sample(channels 9 - 16) |
| 259 | + upper_sample_object = new_sample(2) |
| 260 | + upper_sample_object.channelData = [9, 10, 11, 12, 13, 14, 15, 16] |
| 261 | + upper_sample_object.accelData = [0, 1, 2] |
| 262 | + lower_sample_object.auxData = [3, 4, 5] |
| 263 | + upper_sample_object.timestamp = 8 |
| 264 | + |
| 265 | + daisy_sample_object = parser.make_daisy_sample_object_wifi(lower_sample_object, upper_sample_object); |
| 266 | + |
| 267 | + lower_sample_object_no_scale = new_sample(1) |
| 268 | + lower_sample_object_no_scale.channelDataCounts = [1, 2, 3, 4, 5, 6, 7, 8] |
| 269 | + lower_sample_object_no_scale.auxData = [0, 1, 2] |
| 270 | + lower_sample_object_no_scale.accelDataCounts = [0, 0, 0] |
| 271 | + lower_sample_object_no_scale.timestamp = 4 |
| 272 | + |
| 273 | + # Make the upper sample(channels 9 - 16) |
| 274 | + upper_sample_object_no_scale = new_sample(2) |
| 275 | + upper_sample_object_no_scale.channelDataCounts = [9, 10, 11, 12, 13, 14, 15, 16] |
| 276 | + lower_sample_object_no_scale.accelDataCounts = [0, 1, 2] |
| 277 | + upper_sample_object_no_scale.auxData = [3, 4, 5] |
| 278 | + upper_sample_object_no_scale.timestamp = 8 |
| 279 | + |
| 280 | + # Call the function under test |
| 281 | + daisy_sample_object_no_scale = parser.make_daisy_sample_object_wifi(lower_sample_object_no_scale, |
| 282 | + upper_sample_object_no_scale) |
| 283 | + |
| 284 | + # should have valid object true |
| 285 | + self.assertTrue(daisy_sample_object.valid) |
| 286 | + self.assertTrue(daisy_sample_object_no_scale.valid) |
| 287 | + |
| 288 | + # should make a channelData array 16 elements long |
| 289 | + self.assertEqual(len(daisy_sample_object.channel_data), k.NUMBER_OF_CHANNELS_DAISY) |
| 290 | + self.assertEqual(len(daisy_sample_object_no_scale.channel_data_counts), k.NUMBER_OF_CHANNELS_DAISY) |
| 291 | + |
| 292 | + # should make a channelData array with lower array in front of upper array |
| 293 | + for i in range(16): |
| 294 | + self.assertEqual(daisy_sample_object.channel_data[i], i + 1) |
| 295 | + self.assertEqual(daisy_sample_object_no_scale.channel_data_counts[i], i + 1) |
| 296 | + |
| 297 | + self.assertEqual(daisy_sample_object.sample_number, daisy_sample_object.sample_number) |
| 298 | + self.assertEqual(daisy_sample_object_no_scale.sample_number, daisy_sample_object_no_scale.sample_number) |
| 299 | + |
| 300 | + # should put the aux packets in an object |
| 301 | + self.assertIsNotNone(daisy_sample_object.aux_data.lower) |
| 302 | + self.assertIsNotNone(daisy_sample_object.aux_data.upper) |
| 303 | + self.assertIsNotNone(daisy_sample_object_no_scale.aux_data.lower) |
| 304 | + self.assertIsNotNone(daisy_sample_object_no_scale.aux_data.upper) |
| 305 | + |
| 306 | + # should put the aux packets in an object in the right order |
| 307 | + for i in range(3): |
| 308 | + self.assertEqual(daisy_sample_object.aux_data['lower'][i], i) |
| 309 | + self.assertEqual(daisy_sample_object.aux_data['upper'][i], i + 3) |
| 310 | + self.assertEqual(daisy_sample_object_no_scale.aux_data['lower'][i], i) |
| 311 | + self.assertEqual(daisy_sample_object_no_scale.aux_data['upper'][i], i + 3) |
| 312 | + |
| 313 | + # should take the lower timestamp |
| 314 | + self.assertEqual(daisy_sample_object.timestamp, lower_sample_object.timestamp) |
| 315 | + self.assertEqual(daisy_sample_object_no_scale.timestamp, lower_sample_object.timestamp) |
| 316 | + |
| 317 | + # should take the lower stopByte |
| 318 | + self.assertEqual(daisy_sample_object.stop_byte, lower_sample_object.stop_byte) |
| 319 | + self.assertEqual(daisy_sample_object_no_scale.stop_byte, lower_sample_object.stop_byte) |
| 320 | + |
| 321 | + # should place the old timestamps in an object |
| 322 | + self.assertEqual(daisy_sample_object._timestamps.lower, lower_sample_object.timestamp) |
| 323 | + self.assertEqual(daisy_sample_object._timestamps.upper, upper_sample_object.timestamp) |
| 324 | + self.assertEqual(daisy_sample_object_no_scale._timestamps.lower, lower_sample_object_no_scale.timestamp) |
| 325 | + self.assertEqual(daisy_sample_object_no_scale._timestamps.upper, upper_sample_object_no_scale.timestamp) |
| 326 | + |
| 327 | + # should store an accelerometer value if present |
| 328 | + self.assertIsNotNone(daisy_sample_object.accel_data) |
| 329 | + self.assertListEqual(daisy_sample_object.accel_data, [0, 1, 2]) |
| 330 | + self.assertIsNotNone(daisy_sample_object_no_scale.accel_data_counts) |
| 331 | + self.assertListEqual(daisy_sample_object_no_scale.accel_data_counts, [0, 1, 2]) |
| 332 | + |
| 333 | + lower_sample = new_sample(1) |
| 334 | + lower_sample.accel_data = [0, 1, 2] |
| 335 | + upper_sample = new_sample(2) |
| 336 | + upper_sample.accel_data = [0, 0, 0] |
| 337 | + |
| 338 | + lower_sample_no_scale = new_sample_no_scale(1) |
| 339 | + lower_sample_no_scale.accel_data_counts = [0, 1, 2] |
| 340 | + upper_sample_no_scale = new_sample_no_scale(2) |
| 341 | + upper_sample_no_scale.accel_data_counts = [0, 0, 0] |
| 342 | + |
| 343 | + # Call the function under test |
| 344 | + daisy_sample = parser.make_daisy_sample_object_wifi(lower_sample, upper_sample) |
| 345 | + daisy_sample_no_scale = parser.make_daisy_sample_object_wifi(lower_sample_no_scale, upper_sample_no_scale) |
| 346 | + |
| 347 | + self.assertIsNotNone(daisy_sample.accel_data) |
| 348 | + self.assertListEqual(daisy_sample.accel_data, [0, 1, 2]) |
| 349 | + self.assertIsNotNone(daisy_sample_no_scale.accel_data_counts) |
| 350 | + self.assertListEqual(daisy_sample_no_scale.accel_data_counts, [0, 1, 2]) |
| 351 | + |
248 | 352 |
|
249 | 353 | if __name__ == '__main__':
|
250 | 354 | main()
|
0 commit comments