API
 
Loading...
Searching...
No Matches
telem_blockgains_generated_tests.cpp
Go to the documentation of this file.
1#include <assert.h>
2#include "../../../../tests/catch2/catch.hpp"
3#include "../generated/logCodes.hpp"
4#include "../types/telem_blockgains.hpp"
5#include "../types/generated/telem_blockgains_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_blockgains.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::vector<float> telemBlockgainsGains_0 = { 0.397196,0.593795,0.343394,0.253128,0.070084,0.060054,0.429658,0.499866,0.696103,0.61947 }; // dummy gains
14const std::vector<uint8_t> telemBlockgainsGains_constant_0 = { 233,160,115,199,167,66,164,86,212,14 }; // dummy gains_constant
15const std::vector<float> telemBlockgainsMultcs_0 = { 0.855774,0.616113,0.083255,0.694757,0.518744,0.613088,0.250328,0.132434,0.389061,0.988383 }; // dummy multcs
16const std::vector<uint8_t> telemBlockgainsMultcs_constant_0 = { 103,215,15,162,209,164,229,184,186,86 }; // dummy multcs_constant
17const std::vector<float> telemBlockgainsLims_0 = { 0.099852,0.994669,0.828263,0.718579,0.703857,0.165275,0.696209,0.528707,0.725378,0.222749 }; // dummy lims
18const std::vector<uint8_t> telemBlockgainsLims_constant_0 = { 110,240,154,217,106,166,153,124,52,150 }; // dummy lims_constant
19
20
21/** Class to encapsulate telem_blockgains flatbuffer data using
22 ** => types/telem_blockgains.hpp
23 ** => types/generated/telem_blockgains_generated.h
24 **/
26{
27public:
28 // Saved input parameter value; unused
29 std::vector<float> m_saveTbGains;
30 std::vector<uint8_t> m_saveTbGains_constant;
31 std::vector<float> m_saveTbMultcs;
32 std::vector<uint8_t> m_saveTbMultcs_constant;
33 std::vector<float> m_saveTbLims;
34 std::vector<uint8_t> m_saveTbLims_constant;
35
36 // Parameters retrieved from flatbuffer
37 std::vector<float> m_gains;
38 std::vector<uint8_t> m_gains_constant;
39 std::vector<float> m_multcs;
40 std::vector<uint8_t> m_multcs_constant;
41 std::vector<float> m_lims;
42 std::vector<uint8_t> m_lims_constant;
43
44 // Flatbuffers verifier success/failure
45 bool m_verify{false};
46
47 // flatbuffer data length; used in ::verify
48 int L;
49
50 // Constructor
51 CTelemBlockgains_0(std::vector<float> gains_, std::vector<uint8_t> gains_constant_, std::vector<float> multcs_, std::vector<uint8_t> multcs_constant_, std::vector<float> lims_, std::vector<uint8_t> lims_constant_) {
52 // Save input parameters
53 m_saveTbGains = gains_;
54 m_saveTbGains_constant = gains_constant_;
55 m_saveTbMultcs = multcs_;
56 m_saveTbMultcs_constant = multcs_constant_;
57 m_saveTbLims = lims_;
58 m_saveTbLims_constant = lims_constant_;
59
60 // Create the flatbuffer messageT using the input parameters
61 auto tb = MagAOX::logger::telem_blockgains::messageT(gains_, gains_constant_, multcs_, multcs_constant_, lims_, lims_constant_);
62
63 // Retrieve flatbuffer pointer (if not an empty_log type) and length
64 void* buffPtr = tb.builder.GetBufferPointer();
66
67 // Retrieve the flatbuffer parameters for Catch2 comparison below
68 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains() != nullptr)
69 {
70 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains()->begin();
71 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains()->end();
72 ++it)
73 {
74 m_gains.push_back(*it);
75 }
76 }
77 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains_constant() != nullptr)
78 {
79 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains_constant()->begin();
80 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->gains_constant()->end();
81 ++it)
82 {
83 m_gains_constant.push_back(*it);
84 }
85 }
86 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs() != nullptr)
87 {
88 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs()->begin();
89 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs()->end();
90 ++it)
91 {
92 m_multcs.push_back(*it);
93 }
94 }
95 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs_constant() != nullptr)
96 {
97 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs_constant()->begin();
98 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->mcs_constant()->end();
99 ++it)
100 {
101 m_multcs_constant.push_back(*it);
102 }
103 }
104 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims() != nullptr)
105 {
106 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims()->begin();
107 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims()->end();
108 ++it)
109 {
110 m_lims.push_back(*it);
111 }
112 }
113 if (MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims_constant() != nullptr)
114 {
115 for(auto it = MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims_constant()->begin();
116 it != MagAOX::logger::GetTelem_blockgains_fb(buffPtr)->lims_constant()->end();
117 ++it)
118 {
119 m_lims_constant.push_back(*it);
120 }
121 }
122
123 // Run the telem_blockgains verifier
124 m_verify = verify(tb);
125 }
126
127 // Run the flatbuffer Verifier for this log type
128 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
129 // comprising log header plus flatbuffer log message
131
132 // Timestamp, prioriy (use nominal value here)
133 flatlogs::timespecX tsx{0,0};
135
136 // Create full log: log header(*); log message (+)
137 // * Log level (priority)
138 // * Event code (implicit in <MagAOX::logger::type>)
139 // * Timestamp
140 // * Message size (variable length; 1, 2, or 8 bytes)
141 // + Message (variable length)
142
143 // N.G. allocates space and writes pointer value to logBuffer
144 flatlogs::bufferPtrT logBuffer;
145 flatlogs::logHeader::createLog<MagAOX::logger::telem_blockgains>(logBuffer
146 , tsx, msg
147 , prio);
148 // Run full log through flatbuffer Verifier
150 }
151};
152
153SCENARIO( "Create telem_blockgains 0", "[a log item]")
154{
155 GIVEN("a telem_blockgains log code")
156 {
157 WHEN("random values for fields")
158 {
159 // Create flatbuffer
161 // Compare flatbuffer parameters
162 REQUIRE(tb.m_gains == telemBlockgainsGains_0);
164 REQUIRE(tb.m_multcs == telemBlockgainsMultcs_0);
166 REQUIRE(tb.m_lims == telemBlockgainsLims_0);
168 REQUIRE(tb.m_verify);
169 }
170 }
171}
172
173
std::vector< uint8_t > m_saveTbMultcs_constant
std::vector< uint8_t > m_saveTbGains_constant
bool verify(const typename MagAOX::logger::telem_blockgains::messageT &msg)
std::vector< uint8_t > m_saveTbLims_constant
CTelemBlockgains_0(std::vector< float > gains_, std::vector< uint8_t > gains_constant_, std::vector< float > multcs_, std::vector< uint8_t > multcs_constant_, std::vector< float > lims_, std::vector< uint8_t > lims_constant_)
std::vector< uint8_t > m_gains_constant
std::vector< uint8_t > m_multcs_constant
int8_t logPrioT
The type of the log priority code.
Definition logDefs.hpp:21
std::shared_ptr< char > bufferPtrT
The log entry buffer smart pointer.
Definition logHeader.hpp:58
const MagAOX::logger::Telem_blockgains_fb * GetTelem_blockgains_fb(const void *buf)
static constexpr logPrioT LOG_DEFAULT
Used to denote "use the default level for this log type".
static flatlogs::msgLenT length(const fbMessage &msg)
Get the length of the message.
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
A fixed-width timespec structure.
Definition timespecX.hpp:35
const std::vector< float > telemBlockgainsMultcs_0
const std::vector< float > telemBlockgainsLims_0
const std::vector< uint8_t > telemBlockgainsMultcs_constant_0
const std::vector< uint8_t > telemBlockgainsGains_constant_0
const std::vector< uint8_t > telemBlockgainsLims_constant_0
SCENARIO("Create telem_blockgains 0", "[a log item]")
const std::vector< float > telemBlockgainsGains_0