API
 
Loading...
Searching...
No Matches
telem_telenv_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_telenv.hpp"
5#include "../types/generated/telem_telenv_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_telenv.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const double telemTelenvTempout_0 = 0.75811774958522; // dummy tempout
14const double telemTelenvPressure_0 = 0.95694937940346; // dummy pressure
15const double telemTelenvHumidity_0 = 0.93222585307603; // dummy humidity
16const double telemTelenvWind_0 = 0.48714228323554; // dummy wind
17const double telemTelenvWinddir_0 = 0.9736982070363; // dummy winddir
18const double telemTelenvTemptruss_0 = 0.30533483042948; // dummy temptruss
19const double telemTelenvTempcell_0 = 0.45299507574924; // dummy tempcell
20const double telemTelenvTempseccell_0 = 0.82738531314546; // dummy tempseccell
21const double telemTelenvTempamb_0 = 0.41950044656317; // dummy tempamb
22const double telemTelenvDewpoint_0 = 0.46551195399542; // dummy dewpoint
23
24
25/** Class to encapsulate telem_telenv flatbuffer data using
26 ** => types/telem_telenv.hpp
27 ** => types/generated/telem_telenv_generated.h
28 **/
30{
31public:
32 // Saved input parameter value; unused
43
44 // Parameters retrieved from flatbuffer
45 double m_tempout;
46 double m_pressure;
47 double m_humidity;
48 double m_wind;
49 double m_winddir;
51 double m_tempcell;
53 double m_tempamb;
54 double m_dewpoint;
55
56 // Flatbuffers verifier success/failure
57 bool m_verify{false};
58
59 // flatbuffer data length; used in ::verify
60 int L;
61
62 // Constructor
63 CTelemTelenv_0(double tempout_, double pressure_, double humidity_, double wind_, double winddir_, double temptruss_, double tempcell_, double tempseccell_, double tempamb_, double dewpoint_) {
64 // Save input parameters
65 m_saveTtTempout = tempout_;
66 m_saveTtPressure = pressure_;
67 m_saveTtHumidity = humidity_;
68 m_saveTtWind = wind_;
69 m_saveTtWinddir = winddir_;
70 m_saveTtTemptruss = temptruss_;
71 m_saveTtTempcell = tempcell_;
72 m_saveTtTempseccell = tempseccell_;
73 m_saveTtTempamb = tempamb_;
74 m_saveTtDewpoint = dewpoint_;
75
76 // Create the flatbuffer messageT using the input parameters
77 auto tt = MagAOX::logger::telem_telenv::messageT(tempout_, pressure_, humidity_, wind_, winddir_, temptruss_, tempcell_, tempseccell_, tempamb_, dewpoint_);
78
79 // Retrieve flatbuffer pointer (if not an empty_log type) and length
80 void* buffPtr = tt.builder.GetBufferPointer();
82
83 // Retrieve the flatbuffer parameters for Catch2 comparison below
89 m_temptruss = MagAOX::logger::GetTelem_telenv_fb(buffPtr)->temptruss();
91 m_tempseccell = MagAOX::logger::GetTelem_telenv_fb(buffPtr)->tempseccell();
94
95 // Run the telem_telenv verifier
96 m_verify = verify(tt);
97 }
98
99 // Run the flatbuffer Verifier for this log type
100 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
101 // comprising log header plus flatbuffer log message
103
104 // Timestamp, prioriy (use nominal value here)
105 flatlogs::timespecX tsx{0,0};
107
108 // Create full log: log header(*); log message (+)
109 // * Log level (priority)
110 // * Event code (implicit in <MagAOX::logger::type>)
111 // * Timestamp
112 // * Message size (variable length; 1, 2, or 8 bytes)
113 // + Message (variable length)
114
115 // N.G. allocates space and writes pointer value to logBuffer
116 flatlogs::bufferPtrT logBuffer;
117 flatlogs::logHeader::createLog<MagAOX::logger::telem_telenv>(logBuffer
118 , tsx, msg
119 , prio);
120 // Run full log through flatbuffer Verifier
121 return MagAOX::logger::telem_telenv::verify(logBuffer,L);
122 }
123};
124
125SCENARIO( "Create telem_telenv 0", "[a log item]")
126{
127 GIVEN("a telem_telenv log code")
128 {
129 WHEN("random values for fields")
130 {
131 // Create flatbuffer
133 // Compare flatbuffer parameters
134 REQUIRE(tt.m_tempout == telemTelenvTempout_0);
135 REQUIRE(tt.m_pressure == telemTelenvPressure_0);
136 REQUIRE(tt.m_humidity == telemTelenvHumidity_0);
137 REQUIRE(tt.m_wind == telemTelenvWind_0);
138 REQUIRE(tt.m_winddir == telemTelenvWinddir_0);
139 REQUIRE(tt.m_temptruss == telemTelenvTemptruss_0);
140 REQUIRE(tt.m_tempcell == telemTelenvTempcell_0);
142 REQUIRE(tt.m_tempamb == telemTelenvTempamb_0);
143 REQUIRE(tt.m_dewpoint == telemTelenvDewpoint_0);
144 REQUIRE(tt.m_verify);
145 }
146 }
147}
148
149
CTelemTelenv_0(double tempout_, double pressure_, double humidity_, double wind_, double winddir_, double temptruss_, double tempcell_, double tempseccell_, double tempamb_, double dewpoint_)
bool verify(const typename MagAOX::logger::telem_telenv::messageT &msg)
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_telenv_fb * GetTelem_telenv_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.
The type of the input message.
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
A fixed-width timespec structure.
Definition timespecX.hpp:35
const double telemTelenvTempcell_0
const double telemTelenvTempseccell_0
const double telemTelenvDewpoint_0
const double telemTelenvTempamb_0
const double telemTelenvHumidity_0
const double telemTelenvWinddir_0
const double telemTelenvTemptruss_0
const double telemTelenvTempout_0
const double telemTelenvPressure_0
const double telemTelenvWind_0
SCENARIO("Create telem_telenv 0", "[a log item]")