ReferenceFrame_T.cpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
39 
40 #include "ReferenceFrame.hpp"
41 #include "TestUtil.hpp"
42 
43 using namespace std;
44 using namespace gnsstk;
45 
47 {
48 public:
49  unsigned asStringTest()
50  {
51  TUDEF("ReferenceFrame", "asString");
52 
53  string pz("PZ90");
54  string wgs("WGS84");
55  string unk("Unknown");
56 
57  ReferenceFrame rf1(ReferenceFrame::PZ90);
58  TUASSERTE(std::string, pz, gnsstk::StringUtils::asString(rf1));
59 
60  ReferenceFrame rf2(ReferenceFrame::WGS84);
61  TUASSERTE(std::string, wgs, gnsstk::StringUtils::asString(rf2));
62 
63  ReferenceFrame rf3(ReferenceFrame::Unknown);
64  TUASSERTE(std::string, unk, gnsstk::StringUtils::asString(rf3));
65 
67  {
68  std::string s = gnsstk::StringUtils::asString(i);
71  }
72 
73  TURETURN();
74  }
75 
76 
77  unsigned equalityTest()
78  {
79  TUDEF("ReferenceFrame", "operator==");
80 
81  ReferenceFrame rf1(ReferenceFrame::PZ90);
82  ReferenceFrame rf2(ReferenceFrame::WGS84);
83  ReferenceFrame rf3(ReferenceFrame::Unknown);
87 
88  //PZ90 Enum with...
89  TUASSERT( rf1 == rf1);
90  TUASSERT(!(rf1 == rf2) );
91  TUASSERT(!(rf1 == rf3) );
92  TUASSERT( rf1 == rf4);
93  TUASSERT(!(rf1 == rf5) );
94  TUASSERT(!(rf1 == rf6) );
95 
96  //WGS84 Enum with...
97  TUASSERT(!(rf2 == rf1) );
98  TUASSERT( rf2 == rf2);
99  TUASSERT(!(rf2 == rf3) );
100  TUASSERT(!(rf2 == rf4) );
101  TUASSERT( rf2 == rf5);
102  TUASSERT(!(rf2 == rf6));
103 
104  //Unknown Enum with... (Should fail every one)
105  TUASSERT(!(rf3 == rf1) );
106  TUASSERT(!(rf3 == rf2) );
107  TUASSERT( (rf3 == rf3) );
108  TUASSERT(!(rf3 == rf4) );
109  TUASSERT(!(rf3 == rf5) );
110  TUASSERT( (rf3 == rf6) );
111 
112  TURETURN();
113  }
114 
115 
116  unsigned inequalityTest()
117  {
118  TUDEF("ReferenceFrame", "operator!=");
119 
120  ReferenceFrame rf1(ReferenceFrame::PZ90);
121  ReferenceFrame rf2(ReferenceFrame::WGS84);
122  ReferenceFrame rf3(ReferenceFrame::Unknown);
126 
127  //PZ90 Enum with...
128  TUASSERT( !(rf1 != rf1) );
129  TUASSERT( (rf1 != rf2) );
130  TUASSERT( (rf1 != rf3) );
131  TUASSERT( !(rf1 != rf4) );
132  TUASSERT( (rf1 != rf5) );
133  TUASSERT( (rf1 != rf6) );
134 
135  //WGS84 Enum with...
136  TUASSERT( (rf2 != rf1) );
137  TUASSERT( !(rf2 != rf2) );
138  TUASSERT( (rf2 != rf3) );
139  TUASSERT( (rf2 != rf4) );
140  TUASSERT( !(rf2 != rf5) );
141  TUASSERT( (rf2 != rf6) );
142 
143  //Unknown Enum with...
144  TUASSERT( (rf3 != rf1) );
145  TUASSERT( (rf3 != rf2) );
146  TUASSERT( !(rf3 != rf3) );
147  TUASSERT( (rf3 != rf4) );
148  TUASSERT( (rf3 != rf5) );
149  TUASSERT( !(rf3 != rf6) );
150 
151  TURETURN();
152  }
153 
154 
155  unsigned greaterThanTest()
156  {
157  TUDEF("ReferenceFrame", "operator>");
158 
159  ReferenceFrame rf1(ReferenceFrame::Unknown);
160  ReferenceFrame rf2(ReferenceFrame::WGS84);
161  ReferenceFrame rf3(ReferenceFrame::PZ90);
165 
166  TUASSERT( !(rf1 > rf1) );
167  TUASSERT( !(rf1 > rf2) );
168  TUASSERT( !(rf1 > rf3) );
169  TUASSERT( !(rf1 > rf4) );
170  TUASSERT( !(rf1 > rf5) );
171  TUASSERT( !(rf1 > rf6) );
172 
173  TUASSERT( (rf2 > rf1) );
174  TUASSERT( !(rf2 > rf2) );
175  TUASSERT( !(rf2 > rf3) );
176  TUASSERT( (rf2 > rf4) );
177  TUASSERT( !(rf2 > rf5) );
178  TUASSERT( !(rf2 > rf6) );
179 
180  TUASSERT( (rf3 > rf1) );
181  TUASSERT( (rf3 > rf2) );
182  TUASSERT( !(rf3 > rf3) );
183  TUASSERT( (rf3 > rf4) );
184  TUASSERT( (rf3 > rf5) );
185  TUASSERT( !(rf3 > rf6) );
186 
187  TURETURN();
188  }
189 
190 
191  unsigned lessThanTest()
192  {
193  TUDEF("ReferenceFrame", "operator<");
194 
195  ReferenceFrame rf1(ReferenceFrame::Unknown);
196  ReferenceFrame rf2(ReferenceFrame::WGS84);
197  ReferenceFrame rf3(ReferenceFrame::PZ90);
201 
202  TUASSERT( !(rf1 < rf1) );
203  TUASSERT( rf1 < rf2 );
204  TUASSERT( rf1 < rf3 );
205  TUASSERT( !(rf1 < rf4) );
206  TUASSERT( rf1 < rf5 );
207  TUASSERT( rf1 < rf6 );
208 
209  TUASSERT( !(rf2 < rf1) );
210  TUASSERT( !(rf2 < rf2) );
211  TUASSERT( (rf2 < rf3) );
212  TUASSERT( !(rf2 < rf4) );
213  TUASSERT( !(rf2 < rf5) );
214  TUASSERT( (rf2 < rf6) );
215 
216  TUASSERT( !(rf3 < rf1) );
217  TUASSERT( !(rf3 < rf2) );
218  TUASSERT( !(rf3 < rf3) );
219  TUASSERT( !(rf3 < rf4) );
220  TUASSERT( !(rf3 < rf5) );
221  TUASSERT( !(rf3 < rf6) );
222 
223  TURETURN();
224  }
225 
226 
228  {
229  TUDEF("ReferenceFrame", "operator>=");
230 
231  ReferenceFrame rf1(ReferenceFrame::Unknown);
232  ReferenceFrame rf2(ReferenceFrame::WGS84);
233  ReferenceFrame rf3(ReferenceFrame::PZ90);
237 
238  //Unknown with...
239  TUASSERT( rf1 >= rf1 );
240  TUASSERT( !(rf1 >= rf2) );
241  TUASSERT( !(rf1 >= rf3) );
242  TUASSERT( rf1 >= rf4 );
243  TUASSERT( !(rf1 >= rf5) );
244  TUASSERT( !(rf1 >= rf6) );
245 
246  TUASSERT( rf2 >= rf1 );
247  TUASSERT( rf2 >= rf2 );
248  TUASSERT( !(rf2 >= rf3) );
249  TUASSERT( rf2 >= rf4 );
250  TUASSERT( rf2 >= rf5 );
251  TUASSERT( !(rf2 >= rf6) );
252 
253  TUASSERT( rf3 >= rf1 );
254  TUASSERT( rf3 >= rf2 );
255  TUASSERT( rf3 >= rf3 );
256  TUASSERT( rf3 >= rf4 );
257  TUASSERT( rf3 >= rf5 );
258  TUASSERT( rf3 >= rf6 );
259 
260  TURETURN();
261  }
262 
263 
265  {
266  TUDEF("ReferenceFrame", "operator<=");
267 
268  ReferenceFrame rf1(ReferenceFrame::Unknown);
269  ReferenceFrame rf2(ReferenceFrame::WGS84);
270  ReferenceFrame rf3(ReferenceFrame::PZ90);
274 
275  TUASSERT( rf1 <= rf1 );
276  TUASSERT( rf1 <= rf2 );
277  TUASSERT( rf1 <= rf3 );
278  TUASSERT( rf1 <= rf4 );
279  TUASSERT( rf1 <= rf5 );
280  TUASSERT( rf1 <= rf6 );
281 
282  TUASSERT( !(rf2 <= rf1) );
283  TUASSERT( rf2 <= rf2 );
284  TUASSERT( rf2 <= rf3 );
285  TUASSERT( !(rf2 <= rf4) );
286  TUASSERT( rf2 <= rf5 );
287  TUASSERT( rf2 <= rf6 );
288 
289  TUASSERT( !(rf3 <= rf1) );
290  TUASSERT( !(rf3 <= rf2) );
291  TUASSERT( rf3 <= rf3 );
292  TUASSERT( !(rf3 <= rf4) );
293  TUASSERT( !(rf3 <= rf5) );
294  TUASSERT( rf3 <= rf6 );
295 
296  TURETURN();
297  }
298 
299 
301  {
302  TUDEF("ReferenceFrame", "ReferenceFrame");
303 
304  ReferenceFrame rf1(ReferenceFrame::Unknown);
305  ReferenceFrame rf2(ReferenceFrame::WGS84);
306  ReferenceFrame rf3(ReferenceFrame::PZ90);
307 
308  ReferenceFrame frame(ReferenceFrame::Unknown);
309  TUASSERT(frame == rf1);
310  TUASSERT(frame != rf2);
311  TUASSERT(frame != rf3);
312 
313  frame = ReferenceFrame((ReferenceFrame)0);
314  TUASSERT(frame == rf1);
315  TUASSERT(frame != rf2);
316  TUASSERT(frame != rf3);
317 
318  frame = gnsstk::StringUtils::asReferenceFrame("Unknown");
319  TUASSERT(frame == rf1);
320  TUASSERT(frame != rf2);
321  TUASSERT(frame != rf3);
322 
324  TUASSERT(frame == rf1);
325  TUASSERT(frame != rf2);
326  TUASSERT(frame != rf3);
327 
328  frame = ReferenceFrame((ReferenceFrame)-1);
329  TUASSERT(frame != rf1);
330  TUASSERT(frame != rf2);
331  TUASSERT(frame != rf3);
332 
333  frame = ReferenceFrame(ReferenceFrame::WGS84);
334  TUASSERT(frame != rf1);
335  TUASSERT(frame == rf2);
336  TUASSERT(frame != rf3);
337 
338  frame = gnsstk::StringUtils::asReferenceFrame("WGS84");
339  TUASSERT(frame != rf1);
340  TUASSERT(frame == rf2);
341  TUASSERT(frame != rf3);
342 
343  frame = ReferenceFrame((ReferenceFrame)1);
344  TUASSERT(frame != rf1);
345  TUASSERT(frame == rf2);
346  TUASSERT(frame != rf3);
347 
348  frame = ReferenceFrame(ReferenceFrame::PZ90);
349  TUASSERT(frame != rf1);
350  TUASSERT(frame != rf2);
351  TUASSERT(frame == rf3);
352 
354  TUASSERT(frame != rf1);
355  TUASSERT(frame != rf2);
356  TUASSERT(frame == rf3);
357 
358  TURETURN();
359  }
360 };
361 
362 
363 int main()
364 {
365  ReferenceFrame_T testClass;
366  unsigned errorTotal = 0;
367 
368  errorTotal += testClass.asStringTest();
369  errorTotal += testClass.equalityTest();
370  errorTotal += testClass.inequalityTest();
371  errorTotal += testClass.greaterThanTest();
372  errorTotal += testClass.lessThanTest();
373  errorTotal += testClass.greaterThanOrEqualToTest();
374  errorTotal += testClass.lesserThanOrEqualToTest();
375  errorTotal += testClass.setReferenceFrameTest();
376  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
377  << std::endl;
378 
379  return errorTotal;
380 }
381 
gnsstk::ReferenceFrame
ReferenceFrame
Definition: ReferenceFrame.hpp:52
gnsstk::ReferenceFrameIterator
EnumIterator< ReferenceFrame, ReferenceFrame::Unknown, ReferenceFrame::Last > ReferenceFrameIterator
Definition: ReferenceFrame.hpp:83
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
ReferenceFrame_T::lesserThanOrEqualToTest
unsigned lesserThanOrEqualToTest()
Definition: ReferenceFrame_T.cpp:264
ReferenceFrame_T
Definition: ReferenceFrame_T.cpp:46
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
ReferenceFrame_T::lessThanTest
unsigned lessThanTest()
Definition: ReferenceFrame_T.cpp:191
gnsstk::StringUtils::asReferenceFrame
ReferenceFrame asReferenceFrame(const std::string &s)
Convert a string representation of ReferenceFrame to an enum.
Definition: ReferenceFrame.cpp:74
ReferenceFrame_T::inequalityTest
unsigned inequalityTest()
Definition: ReferenceFrame_T.cpp:116
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
main
int main()
Definition: ReferenceFrame_T.cpp:363
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
TestUtil.hpp
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
ReferenceFrame_T::equalityTest
unsigned equalityTest()
Definition: ReferenceFrame_T.cpp:77
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
ReferenceFrame_T::setReferenceFrameTest
unsigned setReferenceFrameTest()
Definition: ReferenceFrame_T.cpp:300
ReferenceFrame_T::greaterThanOrEqualToTest
unsigned greaterThanOrEqualToTest()
Definition: ReferenceFrame_T.cpp:227
std
Definition: Angle.hpp:142
ReferenceFrame.hpp
ReferenceFrame_T::greaterThanTest
unsigned greaterThanTest()
Definition: ReferenceFrame_T.cpp:155
ReferenceFrame_T::asStringTest
unsigned asStringTest()
Definition: ReferenceFrame_T.cpp:49


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40