STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_sensor_data_collection.cpp
Go to the documentation of this file.
1/**
2 * SensorDataChunkCollection unit tests
3 *
4 * Tests the data collection struct used by all sensor boards
5 * before serializing into network packets.
6 */
7#include <unity.h>
8
9#include <cstring>
10#include <vector>
11
12// DAQv2-Comms
13#include "DiabloEnums.h"
14#include "DiabloPackets.h"
15
16// ===========================================================================
17// Constructor and basic operations
18// ===========================================================================
19
22 TEST_ASSERT_EQUAL(12345, chunk.timestamp);
23 TEST_ASSERT_EQUAL(5, chunk.num_sensors);
24 TEST_ASSERT_EQUAL(0, chunk.size());
25 TEST_ASSERT_TRUE(chunk.empty());
26 TEST_ASSERT_FALSE(chunk.full());
27}
28
31 TEST_ASSERT_TRUE(chunk.add_datapoint(1, 0xDEAD));
32 TEST_ASSERT_EQUAL(1, chunk.size());
33 TEST_ASSERT_FALSE(chunk.empty());
34 TEST_ASSERT_FALSE(chunk.full());
35
36 TEST_ASSERT_TRUE(chunk.add_datapoint(2, 0xBEEF));
37 TEST_ASSERT_TRUE(chunk.add_datapoint(3, 0xCAFE));
38 TEST_ASSERT_EQUAL(3, chunk.size());
39 TEST_ASSERT_TRUE(chunk.full());
40}
41
44 TEST_ASSERT_TRUE(chunk.add_datapoint(1, 100));
45 TEST_ASSERT_TRUE(chunk.add_datapoint(2, 200));
46 TEST_ASSERT_FALSE(chunk.add_datapoint(3, 300)); // over capacity
47 TEST_ASSERT_EQUAL(2, chunk.size());
48}
49
52 chunk.add_datapoint(1, 100);
53 chunk.add_datapoint(2, 200);
54 TEST_ASSERT_EQUAL(2, chunk.size());
55
56 chunk.clear();
57 TEST_ASSERT_EQUAL(0, chunk.size());
58 TEST_ASSERT_TRUE(chunk.empty());
59 TEST_ASSERT_FALSE(chunk.full());
60}
61
64 chunk.add_datapoint(5, 0x12345678);
65 chunk.add_datapoint(10, 0xABCDEF00);
66
67 TEST_ASSERT_EQUAL(5, chunk.datapoints[0].sensor_id);
68 TEST_ASSERT_EQUAL_HEX32(0x12345678, chunk.datapoints[0].data);
69 TEST_ASSERT_EQUAL(10, chunk.datapoints[1].sensor_id);
70 TEST_ASSERT_EQUAL_HEX32(0xABCDEF00, chunk.datapoints[1].data);
71}
72
75 TEST_ASSERT_EQUAL(0, chunk.size());
76 TEST_ASSERT_TRUE(chunk.empty());
77 TEST_ASSERT_TRUE(chunk.full()); // 0 >= 0
78 TEST_ASSERT_FALSE(chunk.add_datapoint(1, 100));
79}
80
83 TEST_ASSERT_TRUE(chunk.add_datapoint(1, 42));
84 TEST_ASSERT_TRUE(chunk.full());
85 TEST_ASSERT_FALSE(chunk.add_datapoint(2, 43));
86}
87
88// ===========================================================================
89// Unity runner
90// ===========================================================================
91
92void setUp() {
93}
94void tearDown() {
95}
96
97int main(int argc, char** argv) {
98 UNITY_BEGIN();
99
100 RUN_TEST(test_chunk_constructor);
101 RUN_TEST(test_chunk_add_datapoint);
103 RUN_TEST(test_chunk_clear);
105 RUN_TEST(test_chunk_zero_capacity);
106 RUN_TEST(test_chunk_single_sensor);
107
108 return UNITY_END();
109}
static uint8_t chunk[64]
Definition board_uart9.c:12
Represents a single data chunk with timestamp and sensor datapoints.
int main()
void test_chunk_constructor()
SensorDataChunkCollection unit tests.
void test_chunk_single_sensor()
void test_chunk_zero_capacity()
void test_chunk_add_over_capacity()
void test_chunk_datapoint_values()
void test_chunk_clear()
void test_chunk_add_datapoint()