Binex_UpdateExtract_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 #include "BinexData.hpp"
40 #include "BinexStream.hpp"
41 #include "TestUtil.hpp"
42 
43 using namespace std;
44 using namespace gnsstk;
45 
46 //=============================================================================
47 // Class declarations
48 //=============================================================================
50 {
51 public:
52 
53  // constructor
54  BinexUpdateExtract_T() : verboseLevel(0)
55  {
56  init();
57  };
58 
59  // destructor
60  virtual ~BinexUpdateExtract_T() {};
61 
62  // initialize tests
63  void init();
64 
65  // update and extract primitive types from a Binex record
66  // @return number of failures, i.e., 0=PASS, !0=FAIL
67  template<class T>
68  int doPrimitiveTests();
69 
70  // update and extract UBNXIs from a Binex record
71  // @return number of failures, i.e., 0=PASS, !0=FAIL
72  int doUbnxiTests();
73 
74  // update and extract MGFZIs types from a Binex record
75  // @return number of failures, i.e., 0=PASS, !0=FAIL
76  int doMgfziTests();
77 
78  // update and extract a mixture of types from a Binex record
79  // @return number of failures, i.e., 0=PASS, !0=FAIL
80  int doMixedTestA();
81 
82  // update and extract a mixture of types from a Binex record
83  // @return number of failures, i.e., 0=PASS, !0=FAIL
84  int doMixedTestB();
85 
86  // update and extract a mixture of types from a Binex record
87  // @return number of failures, i.e., 0=PASS, !0=FAIL
88  int doMixedTestC();
89 
90 
91  unsigned verboseLevel; // amount to display during tests, 0 = least
92 
93 private:
94 
95  // @param seed input for test value generation;
96  // a given seed will always yield the same test value
97  //
98  // @return test value that predictably spans the valid range
99  // of the specified type
100  template<class T>
101  T getSemiRandomValue(int seed);
102 
103  // return a string describing a value mismatch
104  template<class T>
105  string mismatchMsg(T actual, T expected);
106 
107 }; // class BinexUpdateExtract_T
108 
109 
111 {
112  // empty
113 }
114 
115 
116 template<>
117 char BinexUpdateExtract_T :: getSemiRandomValue<char>(int seed)
118 {
119  char val = ( (seed * 23) % 256) - 127;
120  return val;
121 }
122 
123 
124 template<>
125 short BinexUpdateExtract_T :: getSemiRandomValue<short>(int seed)
126 {
127  short val = ( (seed * 189) % 0xFFFF) - 0xFFFE;
128  return val;
129 }
130 
131 
132 template<>
133 long BinexUpdateExtract_T :: getSemiRandomValue<long>(int seed)
134 {
135  long val = ( (seed * 12377) % 0xFFFFFFFF) - 0xFFFFFFFE;
136  return val;
137 }
138 
139 
140 template<>
141 BinexData::UBNXI BinexUpdateExtract_T :: getSemiRandomValue<BinexData::UBNXI>
142 (int seed)
143 {
144 
145  BinexData::UBNXI val = ( abs(seed) * 12377ul) % 0xFFFFFFFFul;
146  return val;
147 }
148 
149 
150 template<>
151 BinexData::MGFZI BinexUpdateExtract_T :: getSemiRandomValue<BinexData::MGFZI>
152 (int seed)
153 {
154 
155  BinexData::MGFZI val = (seed * 123797ul) % BinexData::MGFZI::MAX_VALUE;
156  return val;
157 }
158 
159 
160 template<>
161 string BinexUpdateExtract_T :: mismatchMsg<char>(char actual, char expected)
162 {
163  ostringstream oss;
164  oss << "value mismatch: actual = " << (short)actual
165  << " ; expected = " << (short)expected;
166  return oss.str();
167 }
168 
169 template<class T>
170 string BinexUpdateExtract_T :: mismatchMsg(T actual, T expected)
171 {
172  ostringstream oss;
173  oss << "value mismatch: actual = " << actual << " ; expected = " << expected;
174  return oss.str();
175 }
176 
177 
178 template<class T>
180 {
181  const type_info& typeInfo = typeid(T);
182  std::string testName("Update/Extract (");
183  testName += typeInfo.name();
184  testName += ")";
185  TUDEF( "BinexData", testName );
186 
187  // test various record sizes: 1, 2, 5, 13, 34, 89, 233
188  int recStep = 0;
189  for (int recSize = 1; recSize < 240; recSize += recStep)
190  {
191  std::vector<T> data; // save values to test against
192  BinexData record(recSize); // use the size as the ID
193 
194  size_t offset = 0;
195  size_t expectedOffset = 0;
196 
197  // add data to the record
198  for (int i = 0; i < recSize; ++i)
199  {
200  try
201  {
202  T value = getSemiRandomValue<T>(i);
203  unsigned prevLength = record.getMessageLength();
204  expectedOffset = offset + sizeof(T);
205  record.updateMessageData(offset, value, sizeof(T) );
206  data.push_back(value);
207 
208  TUASSERTE(size_t, expectedOffset, offset);
209  TUASSERTE(size_t, record.getMessageLength(), offset);
210  }
211  catch (Exception& e)
212  {
213  ostringstream oss;
214  oss << "exception updating record: " << e;
215  TUFAIL( oss.str() );
216  }
217  }
218 
219  offset = 0;
220 
221  for (int i = 0; i < data.size(); ++i)
222  {
223  try // verify data in the record
224  {
225  T value;
226  record.extractMessageData(offset, value, sizeof(T) );
227 
228  TUASSERTE(T, data[i], value);
229  }
230  catch (Exception& e)
231  {
232  ostringstream oss;
233  oss << "exception extracting from record: " << e;
234  TUFAIL( oss.str() );
235  }
236  }
237 
238  recStep += recSize;
239  }
240 
241  return testFramework.countFails();
242 }
243 
244 
246 {
247  TUDEF( "BinexData", "Update/Extract (UBNXI)" );
248 
249  // test various record sizes: 1, 2, 5, 13, 34, 89, 233
250  int recStep = 0;
251  for (int recSize = 1; recSize < 240; recSize += recStep)
252  {
253  std::vector<BinexData::UBNXI> data; // save values to test against
254  BinexData record(recSize); // use the size as the ID
255 
256  size_t offset = 0;
257  size_t expectedOffset = 0;
258 
259  // add data to the record
260  for (int i = 0; i < recSize; ++i)
261  {
262  try
263  {
264  BinexData::UBNXI value = getSemiRandomValue<BinexData::UBNXI>(i);
265  unsigned prevLength = record.getMessageLength();
266  expectedOffset = offset + value.getSize();
267  record.updateMessageData(offset, value);
268  data.push_back(value);
269 
270  testFramework.assert( ( (offset == expectedOffset)
271  && (offset == record.getMessageLength()) ),
272  "incorrect offset", __LINE__ );
273  }
274  catch (Exception& e)
275  {
276  ostringstream oss;
277  oss << "exception updating record: " << e;
278  testFramework.assert( false, oss.str(), __LINE__ );
279  }
280  }
281 
282  offset = 0;
283 
284  for (int i = 0; i < data.size(); ++i)
285  {
286  try // verify data in the record
287  {
288  BinexData::UBNXI value;
289  record.extractMessageData(offset, value);
290 
291  testFramework.assert( (value == data[i]), mismatchMsg(value, data[i]), __LINE__ );
292  }
293  catch (Exception& e)
294  {
295  ostringstream oss;
296  oss << "exception extracting from record: " << e;
297  testFramework.assert( false, oss.str(), __LINE__ );
298  }
299  }
300 
301  recStep += recSize;
302  }
303 
304  return testFramework.countFails();
305 }
306 
307 
309 {
310  TUDEF( "BinexData", "Update/Extract (MGFZI)" );
311 
312  // test various record sizes: 1, 2, 5, 13, 34, 89, 233
313  int recStep = 0;
314  for (int recSize = 1; recSize < 240; recSize += recStep)
315  {
316  std::vector<BinexData::MGFZI> data; // save values to test against
317  BinexData record(recSize); // use the size as the ID
318 
319  size_t offset = 0;
320  size_t expectedOffset = 0;
321 
322  // add data to the record
323  for (int i = 0; i < recSize; ++i)
324  {
325  try
326  {
327  BinexData::MGFZI value = getSemiRandomValue<BinexData::MGFZI>(i);
328  unsigned prevLength = record.getMessageLength();
329  expectedOffset = offset + value.getSize();
330  record.updateMessageData(offset, value);
331  data.push_back(value);
332 
333  testFramework.assert ( ( (offset == expectedOffset)
334  && (offset == record.getMessageLength()) ),
335  "incorrect offset", __LINE__ );
336  }
337  catch (Exception& e)
338  {
339  ostringstream oss;
340  oss << "exception updating record: " << e;
341  testFramework.assert( false, oss.str(), __LINE__ );
342  }
343  }
344 
345  offset = 0;
346 
347  for (int i = 0; i < data.size(); ++i)
348  {
349  try // verify data in the record
350  {
351  BinexData::MGFZI value;
352  record.extractMessageData(offset, value);
353 
354  testFramework.assert( (value == data[i]), mismatchMsg(value, data[i]), __LINE__ );
355  }
356  catch (Exception& e)
357  {
358  ostringstream oss;
359  oss << "exception extracting from record: " << e;
360  testFramework.assert( false, oss.str(), __LINE__ );
361  }
362  }
363 
364  recStep += recSize;
365  }
366 
367  return testFramework.countFails();
368 }
369 
370 
372 {
373  TUDEF( "BinexData", "Update/Extract (Mixed A)" );
374 
375  // A Data = s U U M c l l s c c M M U l s
376 
377  BinexData record(1); // id = 1
378 
379  size_t offset = 0;
380 
381 
382  // add a mixture of data to the record . . .
383 
384  short s1(2803);
385  record.updateMessageData(offset, s1, sizeof(short));
386 
387  BinexData::UBNXI u1(61036);
388  record.updateMessageData(offset, u1);
389 
390  BinexData::UBNXI u2(7);
391  record.updateMessageData(offset, u2);
392 
393  BinexData::MGFZI m1(3579);
394  record.updateMessageData(offset, m1);
395 
396  char c1(75);
397  record.updateMessageData(offset, c1, sizeof(char));
398 
399  long l1(-38926);
400  record.updateMessageData(offset, l1, sizeof(long));
401 
402  long l2(8830017);
403  record.updateMessageData(offset, l2, sizeof(long));
404 
405  short s2(9);
406  record.updateMessageData(offset, s2, sizeof(short));
407 
408  char c2(125);
409  record.updateMessageData(offset, c2, sizeof(char));
410 
411  char c3(4);
412  record.updateMessageData(offset, c3, sizeof(char));
413 
414  BinexData::MGFZI m2(-101918);
415  record.updateMessageData(offset, m2);
416 
417  BinexData::MGFZI m3(92765438);
418  record.updateMessageData(offset, m3);
419 
420  BinexData::UBNXI u3(4500);
421  record.updateMessageData(offset, u3);
422 
423  long l3(-1);
424  record.updateMessageData(offset, l3, sizeof(long));
425 
426  short s3(-15490);
427  record.updateMessageData(offset, s3, sizeof(short));
428 
429  // verify data in the record . . .
430 
431  offset = 0;
432 
433  short vs1;
434  record.extractMessageData(offset, vs1, sizeof(short));
435  testFramework.assert( (vs1 == s1), mismatchMsg(vs1, s1), __LINE__ );
436 
437  BinexData::UBNXI vu1;
438  record.extractMessageData(offset, vu1);
439  testFramework.assert( (vu1 == u1), mismatchMsg(vu1, u1), __LINE__ );
440 
441  BinexData::UBNXI vu2;
442  record.extractMessageData(offset, vu2);
443  testFramework.assert( (vu2 == u2), mismatchMsg(vu2, u2), __LINE__ );
444 
445  BinexData::MGFZI vm1;
446  record.extractMessageData(offset, vm1);
447  testFramework.assert( (vm1 == m1), mismatchMsg(vm1, m1), __LINE__ );
448 
449  char vc1;
450  record.extractMessageData(offset, vc1, sizeof(char));
451  testFramework.assert( (vc1 == c1), mismatchMsg(vc1, c1), __LINE__ );
452 
453  long vl1;
454  record.extractMessageData(offset, vl1, sizeof(long));
455  testFramework.assert( (vl1 == l1), mismatchMsg(vl1, l1), __LINE__ );
456 
457  long vl2;
458  record.extractMessageData(offset, vl2, sizeof(long));
459  testFramework.assert( (vl2 == l2), mismatchMsg(vl2, l2), __LINE__ );
460 
461  short vs2;
462  record.extractMessageData(offset, vs2, sizeof(short));
463  testFramework.assert( (vs2 == s2), mismatchMsg(vs2, s2), __LINE__ );
464 
465  char vc2;
466  record.extractMessageData(offset, vc2, sizeof(char));
467  testFramework.assert( (vc2 == c2), mismatchMsg(vc2, c2), __LINE__ );
468 
469  char vc3;
470  record.extractMessageData(offset, vc3, sizeof(char));
471  testFramework.assert( (vc3 == c3), mismatchMsg(vc3, c3), __LINE__ );
472 
473  BinexData::MGFZI vm2;
474  record.extractMessageData(offset, vm2);
475  testFramework.assert( (vm2 == m2), mismatchMsg(vm2, m2), __LINE__ );
476 
477  BinexData::MGFZI vm3;
478  record.extractMessageData(offset, vm3);
479  testFramework.assert( (vm3 == m3), mismatchMsg(vm3, m3), __LINE__ );
480 
481  BinexData::UBNXI vu3;
482  record.extractMessageData(offset, vu3);
483  testFramework.assert( (vu3 == u3), mismatchMsg(vu3, u3), __LINE__ );
484 
485  long vl3;
486  record.extractMessageData(offset, vl3, sizeof(long));
487  testFramework.assert( (vl3 == l3), mismatchMsg(vl3, l3), __LINE__ );
488 
489  short vs3;
490  record.extractMessageData(offset, vs3, sizeof(short));
491  testFramework.assert( (vs3 == s3), mismatchMsg(vs3, s3), __LINE__ );
492 
493  return testFramework.countFails();
494 }
495 
496 
498 {
499  TUDEF( "BinexData", "Update/Extract (Mixed B)" );
500 
501  // B Data = M l s s U c U l M s c l M U c
502 
503  BinexData record(1); // id = 1
504 
505  size_t offset = 0;
506 
507 
508  // add a mixture of data to the record . . .
509 
510  BinexData::MGFZI m1(3579);
511  record.updateMessageData(offset, m1);
512 
513  long l1(-38926);
514  record.updateMessageData(offset, l1, sizeof(long));
515 
516  short s1(2803);
517  record.updateMessageData(offset, s1, sizeof(short));
518 
519  short s2(9);
520  record.updateMessageData(offset, s2, sizeof(short));
521 
522  BinexData::UBNXI u1(61036);
523  record.updateMessageData(offset, u1);
524 
525  char c1(75);
526  record.updateMessageData(offset, c1, sizeof(char));
527 
528  BinexData::UBNXI u2(7);
529  record.updateMessageData(offset, u2);
530 
531  long l2(8830017);
532  record.updateMessageData(offset, l2, sizeof(long));
533 
534  BinexData::MGFZI m2(-101918);
535  record.updateMessageData(offset, m2);
536 
537  short s3(-15490);
538  record.updateMessageData(offset, s3, sizeof(short));
539 
540  char c2(125);
541  record.updateMessageData(offset, c2, sizeof(char));
542 
543  long l3(-1);
544  record.updateMessageData(offset, l3, sizeof(long));
545 
546  BinexData::MGFZI m3(92765438);
547  record.updateMessageData(offset, m3);
548 
549  BinexData::UBNXI u3(4500);
550  record.updateMessageData(offset, u3);
551 
552  char c3(4);
553  record.updateMessageData(offset, c3, sizeof(char));
554 
555  // verify data in the record . . .
556 
557  offset = 0;
558 
559  BinexData::MGFZI vm1;
560  record.extractMessageData(offset, vm1);
561  testFramework.assert( (vm1 == m1), mismatchMsg(vm1, m1), __LINE__ );
562 
563  long vl1;
564  record.extractMessageData(offset, vl1, sizeof(long));
565  testFramework.assert( (vl1 == l1), mismatchMsg(vl1, l1), __LINE__ );
566 
567  short vs1;
568  record.extractMessageData(offset, vs1, sizeof(short));
569  testFramework.assert( (vs1 == s1), mismatchMsg(vs1, s1), __LINE__ );
570 
571  short vs2;
572  record.extractMessageData(offset, vs2, sizeof(short));
573  testFramework.assert( (vs2 == s2), mismatchMsg(vs2, s2), __LINE__ );
574 
575  BinexData::UBNXI vu1;
576  record.extractMessageData(offset, vu1);
577  testFramework.assert( (vu1 == u1), mismatchMsg(vu1, u1), __LINE__ );
578 
579  char vc1;
580  record.extractMessageData(offset, vc1, sizeof(char));
581  testFramework.assert( (vc1 == c1), mismatchMsg(vc1, c1), __LINE__ );
582 
583  BinexData::UBNXI vu2;
584  record.extractMessageData(offset, vu2);
585  testFramework.assert( (vu2 == u2), mismatchMsg(vu2, u2), __LINE__ );
586 
587  long vl2;
588  record.extractMessageData(offset, vl2, sizeof(long));
589  testFramework.assert( (vl2 == l2), mismatchMsg(vl2, l2), __LINE__ );
590 
591  BinexData::MGFZI vm2;
592  record.extractMessageData(offset, vm2);
593  testFramework.assert( (vm2 == m2), mismatchMsg(vm2, m2), __LINE__ );
594 
595  short vs3;
596  record.extractMessageData(offset, vs3, sizeof(short));
597  testFramework.assert( (vs3 == s3), mismatchMsg(vs3, s3), __LINE__ );
598 
599  char vc2;
600  record.extractMessageData(offset, vc2, sizeof(char));
601  testFramework.assert( (vc2 == c2), mismatchMsg(vc2, c2), __LINE__ );
602 
603  long vl3;
604  record.extractMessageData(offset, vl3, sizeof(long));
605  testFramework.assert( (vl3 == l3), mismatchMsg(vl3, l3), __LINE__ );
606 
607  BinexData::MGFZI vm3;
608  record.extractMessageData(offset, vm3);
609  testFramework.assert( (vm3 == m3), mismatchMsg(vm3, m3), __LINE__ );
610 
611  BinexData::UBNXI vu3;
612  record.extractMessageData(offset, vu3);
613  testFramework.assert( (vu3 == u3), mismatchMsg(vu3, u3), __LINE__ );
614 
615  char vc3;
616  record.extractMessageData(offset, vc3, sizeof(char));
617  testFramework.assert( (vc3 == c3), mismatchMsg(vc3, c3), __LINE__ );
618 
619  return testFramework.countFails();
620 }
621 
622 
624 {
625  TUDEF( "BinexData", "Update/Extract (Mixed C)" );
626 
627  // C Data = c M U l s s s M c l U U l c M
628 
629  BinexData record(1); // id = 1
630 
631  size_t offset = 0;
632 
633  // add a mixture of data to the record . . .
634 
635  char c1(75);
636  record.updateMessageData(offset, c1, sizeof(char));
637 
638  BinexData::MGFZI m1(3579);
639  record.updateMessageData(offset, m1);
640 
641  BinexData::UBNXI u1(61036);
642  record.updateMessageData(offset, u1);
643 
644  long l1(-38926);
645  record.updateMessageData(offset, l1, sizeof(long));
646 
647  short s1(2803);
648  record.updateMessageData(offset, s1, sizeof(short));
649 
650  short s2(9);
651  record.updateMessageData(offset, s2, sizeof(short));
652 
653  short s3(-15490);
654  record.updateMessageData(offset, s3, sizeof(short));
655 
656  BinexData::MGFZI m2(-101918);
657  record.updateMessageData(offset, m2);
658 
659  char c2(125);
660  record.updateMessageData(offset, c2, sizeof(char));
661 
662  long l2(8830017);
663  record.updateMessageData(offset, l2, sizeof(long));
664 
665  BinexData::UBNXI u2(7);
666  record.updateMessageData(offset, u2);
667 
668  BinexData::UBNXI u3(4500);
669  record.updateMessageData(offset, u3);
670 
671  long l3(-1);
672  record.updateMessageData(offset, l3, sizeof(long));
673 
674  char c3(4);
675  record.updateMessageData(offset, c3, sizeof(char));
676 
677  BinexData::MGFZI m3(92765438);
678  record.updateMessageData(offset, m3);
679 
680  // verify data in the record . . .
681 
682  offset = 0;
683 
684  char vc1;
685  record.extractMessageData(offset, vc1, sizeof(char));
686  testFramework.assert( (vc1 == c1), mismatchMsg(vc1, c1), __LINE__ );
687 
688  BinexData::MGFZI vm1;
689  record.extractMessageData(offset, vm1);
690  testFramework.assert( (vm1 == m1), mismatchMsg(vm1, m1), __LINE__ );
691 
692  BinexData::UBNXI vu1;
693  record.extractMessageData(offset, vu1);
694  testFramework.assert( (vu1 == u1), mismatchMsg(vu1, u1), __LINE__ );
695 
696  long vl1;
697  record.extractMessageData(offset, vl1, sizeof(long));
698  testFramework.assert( (vl1 == l1), mismatchMsg(vl1, l1), __LINE__ );
699 
700  short vs1;
701  record.extractMessageData(offset, vs1, sizeof(short));
702  testFramework.assert( (vs1 == s1), mismatchMsg(vs1, s1), __LINE__ );
703 
704  short vs2;
705  record.extractMessageData(offset, vs2, sizeof(short));
706  testFramework.assert( (vs2 == s2), mismatchMsg(vs2, s2), __LINE__ );
707 
708  short vs3;
709  record.extractMessageData(offset, vs3, sizeof(short));
710  testFramework.assert( (vs3 == s3), mismatchMsg(vs3, s3), __LINE__ );
711 
712  BinexData::MGFZI vm2;
713  record.extractMessageData(offset, vm2);
714  testFramework.assert( (vm2 == m2), mismatchMsg(vm2, m2), __LINE__ );
715 
716  char vc2;
717  record.extractMessageData(offset, vc2, sizeof(char));
718  testFramework.assert( (vc2 == c2), mismatchMsg(vc2, c2), __LINE__ );
719 
720  long vl2;
721  record.extractMessageData(offset, vl2, sizeof(long));
722  testFramework.assert( (vl2 == l2), mismatchMsg(vl2, l2), __LINE__ );
723 
724  BinexData::UBNXI vu2;
725  record.extractMessageData(offset, vu2);
726  testFramework.assert( (vu2 == u2), mismatchMsg(vu2, u2), __LINE__ );
727 
728  BinexData::UBNXI vu3;
729  record.extractMessageData(offset, vu3);
730  testFramework.assert( (vu3 == u3), mismatchMsg(vu3, u3), __LINE__ );
731 
732  long vl3;
733  record.extractMessageData(offset, vl3, sizeof(long));
734  testFramework.assert( (vl3 == l3), mismatchMsg(vl3, l3), __LINE__ );
735 
736  char vc3;
737  record.extractMessageData(offset, vc3, sizeof(char));
738  testFramework.assert( (vc3 == c3), mismatchMsg(vc3, c3), __LINE__ );
739 
740  BinexData::MGFZI vm3;
741  record.extractMessageData(offset, vm3);
742  testFramework.assert( (vm3 == m3), mismatchMsg(vm3, m3), __LINE__ );
743 
744  return testFramework.countFails();
745 }
746 
747 
752 int main(int argc, char *argv[])
753 {
754  int errorTotal = 0;
755 
756  BinexUpdateExtract_T testClass; // test data is loaded here
757 
758  errorTotal += testClass.doPrimitiveTests<char>();
759 
760  errorTotal += testClass.doPrimitiveTests<short>();
761 
762  errorTotal += testClass.doPrimitiveTests<long>();
763 
764  errorTotal += testClass.doUbnxiTests();
765 
766  errorTotal += testClass.doMgfziTests();
767 
768  errorTotal += testClass.doMixedTestA();
769 
770  errorTotal += testClass.doMixedTestB();
771 
772  errorTotal += testClass.doMixedTestC();
773 
774  return( errorTotal );
775 
776 } // main()
BinexUpdateExtract_T::doMixedTestC
int doMixedTestC()
Definition: Binex_UpdateExtract_T.cpp:623
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
TUFAIL
#define TUFAIL(MSG)
Definition: TestUtil.hpp:228
BinexUpdateExtract_T::verboseLevel
unsigned verboseLevel
Definition: Binex_UpdateExtract_T.cpp:91
gnsstk::BinexData::MGFZI::getSize
size_t getSize() const
Definition: BinexData.hpp:399
BinexUpdateExtract_T::mismatchMsg
string mismatchMsg(T actual, T expected)
Definition: Binex_UpdateExtract_T.cpp:170
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
BinexUpdateExtract_T::doPrimitiveTests
int doPrimitiveTests()
Definition: Binex_UpdateExtract_T.cpp:179
BinexUpdateExtract_T
Definition: Binex_UpdateExtract_T.cpp:49
gnsstk::Exception
Definition: Exception.hpp:151
gnsstk::BinexData
Definition: BinexData.hpp:65
TestUtil.hpp
BinexStream.hpp
gnsstk::BinexData::getMessageLength
size_t getMessageLength() const
Definition: BinexData.hpp:615
gnsstk::BinexData::UBNXI::getSize
size_t getSize() const
Definition: BinexData.hpp:202
BinexUpdateExtract_T::doUbnxiTests
int doUbnxiTests()
Definition: Binex_UpdateExtract_T.cpp:245
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
BinexUpdateExtract_T::~BinexUpdateExtract_T
virtual ~BinexUpdateExtract_T()
Definition: Binex_UpdateExtract_T.cpp:60
gnsstk::BinexData::UBNXI
Definition: BinexData.hpp:96
example3.data
data
Definition: example3.py:22
gnsstk::BinexData::updateMessageData
BinexData & updateMessageData(size_t &offset, const UBNXI &data)
Definition: BinexData.cpp:1051
BinexUpdateExtract_T::BinexUpdateExtract_T
BinexUpdateExtract_T()
Definition: Binex_UpdateExtract_T.cpp:54
std
Definition: Angle.hpp:142
BinexUpdateExtract_T::doMgfziTests
int doMgfziTests()
Definition: Binex_UpdateExtract_T.cpp:308
main
int main(int argc, char *argv[])
Definition: Binex_UpdateExtract_T.cpp:752
BinexUpdateExtract_T::init
void init()
Definition: Binex_UpdateExtract_T.cpp:110
gnsstk::BinexData::MGFZI
Definition: BinexData.hpp:293
gnsstk::BinexData::extractMessageData
void extractMessageData(size_t &offset, UBNXI &data)
Definition: BinexData.cpp:1111
BinexData.hpp
BinexUpdateExtract_T::doMixedTestA
int doMixedTestA()
Definition: Binex_UpdateExtract_T.cpp:371
BinexUpdateExtract_T::doMixedTestB
int doMixedTestB()
Definition: Binex_UpdateExtract_T.cpp:497


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