API
 
Loading...
Searching...
No Matches
zaberStage_test.cpp
Go to the documentation of this file.
1/** \file zaberStage_test.cpp
2 * \brief Catch2 tests for the zaberStage in the zaberLowLevel app
3 * \author Jared R. Males (jaredmales@gmail.com)
4 *
5 * History:
6 */
7#include "../../../tests/catch2/catch.hpp"
8
9#include "../zaberLowLevel.hpp"
10
11extern "C"
12{
13 #include "../za_serial.c" //to allow test to compile
14}
15
16using namespace MagAOX::app;
17
19{
20
21SCENARIO( "Parsing the warnings response", "[zaberStage]" )
22{
23 GIVEN("A valid response to the warnings query")
24 {
25 int rv;
26
27 WHEN("Valid response, no warnings")
28 {
29 zaberLowLevel zll;
30
32
33 std::string tstr = "00";
34
35 rv = zstg.parseWarnings(tstr);
36
37 REQUIRE(rv == 0);
38 REQUIRE(zstg.warningState() == false);
39 REQUIRE(zstg.warnFD() == false);
40 REQUIRE(zstg.warnFQ() == false);
41 REQUIRE(zstg.warnFS() == false);
42 REQUIRE(zstg.warnFT() == false);
43 REQUIRE(zstg.warnFB() == false);
44 REQUIRE(zstg.warnFP() == false);
45 REQUIRE(zstg.warnFE() == false);
46 REQUIRE(zstg.warnWH() == false);
47 REQUIRE(zstg.warnWL() == false);
48 REQUIRE(zstg.warnWP() == false);
49 REQUIRE(zstg.warnWV() == false);
50 REQUIRE(zstg.warnWT() == false);
51 REQUIRE(zstg.warnWM() == false);
52 REQUIRE(zstg.warnWR() == false);
53 REQUIRE(zstg.warnNC() == false);
54 REQUIRE(zstg.warnNI() == false);
55 REQUIRE(zstg.warnND() == false);
56 REQUIRE(zstg.warnNU() == false);
57 REQUIRE(zstg.warnNJ() == false);
58 REQUIRE(zstg.warnUNK()== false);
59 }
60
61 WHEN("Valid response, one warning")
62 {
63 zaberLowLevel zll;
64
66
67 std::string tstr = "01 WR";
68
69 rv = zstg.parseWarnings(tstr);
70
71 REQUIRE(rv == 0);
72 REQUIRE(zstg.warningState() == true);
73 REQUIRE(zstg.warnFD() == false);
74 REQUIRE(zstg.warnFQ() == false);
75 REQUIRE(zstg.warnFS() == false);
76 REQUIRE(zstg.warnFT() == false);
77 REQUIRE(zstg.warnFB() == false);
78 REQUIRE(zstg.warnFP() == false);
79 REQUIRE(zstg.warnFE() == false);
80 REQUIRE(zstg.warnWH() == false);
81 REQUIRE(zstg.warnWL() == false);
82 REQUIRE(zstg.warnWP() == false);
83 REQUIRE(zstg.warnWV() == false);
84 REQUIRE(zstg.warnWT() == false);
85 REQUIRE(zstg.warnWM() == false);
86 REQUIRE(zstg.warnWR() == true);
87 REQUIRE(zstg.warnNC() == false);
88 REQUIRE(zstg.warnNI() == false);
89 REQUIRE(zstg.warnND() == false);
90 REQUIRE(zstg.warnNU() == false);
91 REQUIRE(zstg.warnNJ() == false);
92 REQUIRE(zstg.warnUNK()== false);
93 }
94
95 WHEN("Valid response, five warnings")
96 {
97 zaberLowLevel zll;
98
100
101 std::string tstr = "05 FD FQ FS FT FB";
102
103 rv = zstg.parseWarnings(tstr);
104
105 REQUIRE(rv == 0);
106 REQUIRE(zstg.warningState() == true);
107 REQUIRE(zstg.warnFD() == true);
108 REQUIRE(zstg.warnFQ() == true);
109 REQUIRE(zstg.warnFS() == true);
110 REQUIRE(zstg.warnFT() == true);
111 REQUIRE(zstg.warnFB() == true);
112 REQUIRE(zstg.warnFP() == false);
113 REQUIRE(zstg.warnFE() == false);
114 REQUIRE(zstg.warnWH() == false);
115 REQUIRE(zstg.warnWL() == false);
116 REQUIRE(zstg.warnWP() == false);
117 REQUIRE(zstg.warnWV() == false);
118 REQUIRE(zstg.warnWT() == false);
119 REQUIRE(zstg.warnWM() == false);
120 REQUIRE(zstg.warnWR() == false);
121 REQUIRE(zstg.warnNC() == false);
122 REQUIRE(zstg.warnNI() == false);
123 REQUIRE(zstg.warnND() == false);
124 REQUIRE(zstg.warnNU() == false);
125 REQUIRE(zstg.warnNJ() == false);
126 REQUIRE(zstg.warnUNK()== false);
127 }
128
129 WHEN("Valid response, ten warnings")
130 {
131 zaberLowLevel zll;
132
133 zaberStage<zaberLowLevel> zstg(&zll);
134
135 std::string tstr = "10 FP FE WH WL WP WV WT WM WR NC";
136
137 rv = zstg.parseWarnings(tstr);
138
139 REQUIRE(rv == 0);
140 REQUIRE(zstg.warningState() == true);
141 REQUIRE(zstg.warnFD() == false);
142 REQUIRE(zstg.warnFQ() == false);
143 REQUIRE(zstg.warnFS() == false);
144 REQUIRE(zstg.warnFT() == false);
145 REQUIRE(zstg.warnFB() == false);
146 REQUIRE(zstg.warnFP() == true);
147 REQUIRE(zstg.warnFE() == true);
148 REQUIRE(zstg.warnWH() == true);
149 REQUIRE(zstg.warnWL() == true);
150 REQUIRE(zstg.warnWP() == true);
151 REQUIRE(zstg.warnWV() == true);
152 REQUIRE(zstg.warnWT() == true);
153 REQUIRE(zstg.warnWM() == true);
154 REQUIRE(zstg.warnWR() == true);
155 REQUIRE(zstg.warnNC() == true);
156 REQUIRE(zstg.warnNI() == false);
157 REQUIRE(zstg.warnND() == false);
158 REQUIRE(zstg.warnNU() == false);
159 REQUIRE(zstg.warnNJ() == false);
160 REQUIRE(zstg.warnUNK()== false);
161 }
162 WHEN("Valid response, 2 warnings")
163 {
164 zaberLowLevel zll;
165
166 zaberStage<zaberLowLevel> zstg(&zll);
167
168 std::string tstr = "02 NI ND";
169
170 rv = zstg.parseWarnings(tstr);
171
172 REQUIRE(rv == 0);
173 REQUIRE(zstg.warningState() == true);
174 REQUIRE(zstg.warnFD() == false);
175 REQUIRE(zstg.warnFQ() == false);
176 REQUIRE(zstg.warnFS() == false);
177 REQUIRE(zstg.warnFT() == false);
178 REQUIRE(zstg.warnFB() == false);
179 REQUIRE(zstg.warnFP() == false);
180 REQUIRE(zstg.warnFE() == false);
181 REQUIRE(zstg.warnWH() == false);
182 REQUIRE(zstg.warnWL() == false);
183 REQUIRE(zstg.warnWP() == false);
184 REQUIRE(zstg.warnWV() == false);
185 REQUIRE(zstg.warnWT() == false);
186 REQUIRE(zstg.warnWM() == false);
187 REQUIRE(zstg.warnWR() == false);
188 REQUIRE(zstg.warnNC() == false);
189 REQUIRE(zstg.warnNI() == true);
190 REQUIRE(zstg.warnND() == true);
191 REQUIRE(zstg.warnNU() == false);
192 REQUIRE(zstg.warnNJ() == false);
193 REQUIRE(zstg.warnUNK()== false);
194 }
195 WHEN("Valid response, 3 warnings")
196 {
197 zaberLowLevel zll;
198
199 zaberStage<zaberLowLevel> zstg(&zll);
200
201
202 std::string tstr = "03 NU NJ UN";
203
204 rv = zstg.parseWarnings(tstr);
205
206 REQUIRE(rv == 0);
207 REQUIRE(zstg.warningState() == true);
208 REQUIRE(zstg.warnFD() == false);
209 REQUIRE(zstg.warnFQ() == false);
210 REQUIRE(zstg.warnFS() == false);
211 REQUIRE(zstg.warnFT() == false);
212 REQUIRE(zstg.warnFB() == false);
213 REQUIRE(zstg.warnFP() == false);
214 REQUIRE(zstg.warnFE() == false);
215 REQUIRE(zstg.warnWH() == false);
216 REQUIRE(zstg.warnWL() == false);
217 REQUIRE(zstg.warnWP() == false);
218 REQUIRE(zstg.warnWV() == false);
219 REQUIRE(zstg.warnWT() == false);
220 REQUIRE(zstg.warnWM() == false);
221 REQUIRE(zstg.warnWR() == false);
222 REQUIRE(zstg.warnNC() == false);
223 REQUIRE(zstg.warnNI() == false);
224 REQUIRE(zstg.warnND() == false);
225 REQUIRE(zstg.warnNU() == true);
226 REQUIRE(zstg.warnNJ() == true);
227 REQUIRE(zstg.warnUNK()== true);
228 }
229 }
230}
231
232} //namespace zaberStage_test
#define GIVEN(desc)
Definition catch.hpp:17763
#define WHEN(desc)
Definition catch.hpp:17765
#define SCENARIO(...)
Definition catch.hpp:17760
#define REQUIRE(...)
Definition catch.hpp:17676
A class to manage the details of one stage in a Zaber system.
int parseWarnings(std::string &response)
Parse the warning response from the device.
bool warningState()
Get the warning state.