Binex_Attrs_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 "TestUtil.hpp"
41 
42 using namespace std;
43 using namespace gnsstk;
44 
45 //=============================================================================
46 // Class declarations
47 //=============================================================================
49 {
50 public:
51 
52  // constructor
53  BinexAttrs_T() : verboseLevel(0)
54  {
55  init();
56  };
57 
58  // destructor
59  virtual ~BinexAttrs_T() {};
60 
61  // initialize tests
62  void init();
63 
64  // test methods
65  // @return number of failures, i.e., 0=PASS, !0=FAIL
66  int doIsDataTests();
67  int doRecordFlagsTests();
68  int doRecordIdTests();
69  int doMessageCapacityTests();
70  int doMessageLengthTests();
71 
72  unsigned verboseLevel; // amount to display during tests, 0 = least
73 
74 }; // class BinexAttrs_T
75 
76 
77 //============================================================
78 // Initialize Test Data Filenames and Values
79 //============================================================
80 
82 {
83  // empty
84 }
85 
86 
88 {
89  TUDEF("BinexData", "isData");
90 
91  BinexData rec;
92  TUASSERT(rec.isData());
93 
94  TURETURN();
95 }
96 
97 
99 {
100  TUDEF("BinexData", "getRecordFlags");
101 
102  BinexData rec;
103  TUASSERTE(BinexData::SyncByte, BinexData::DEFAULT_RECORD_FLAGS, rec.getRecordFlags());
104 
105  TUCSM("setRecordFlags");
106  rec.setRecordFlags(0);
108 
109  rec.setRecordFlags(0xFF);
110  TUASSERTE(BinexData::SyncByte, BinexData::VALID_RECORD_FLAGS, rec.getRecordFlags());
111 
112  TURETURN();
113 }
114 
115 
117 {
118  TUDEF("BinexData", "getRecordID");
119 
120  BinexData recA;
121  TUASSERTE(BinexData::RecordID, BinexData::INVALID_RECORD_ID, recA.getRecordID());
122 
123  BinexData recB(123);
125 
126  TUCSM("setRecordID");
127  recB.setRecordID(456);
129 
130  TURETURN();
131 }
132 
133 
135 {
136  TUDEF("BinexData", "getMessageLength");
137 
138  BinexData rec(1); // a record id is required
139  TUASSERTE(size_t, 0, rec.getMessageLength());
140  TUCSM("getHeadLength");
141  TUASSERTE(size_t, 3, rec.getHeadLength());
142  TUCSM("getTailLength");
143  TUASSERTE(size_t, 1, rec.getTailLength());
144  TUCSM("getRecordSize");
145  TUASSERTE(size_t, 4, rec.getRecordSize());
146 
147  std::string s("1");
148  size_t offset = 0;
149  rec.updateMessageData(offset, s, s.size());
150  TUCSM("getMessageLength");
151  TUASSERTE(size_t, 1, rec.getMessageLength());
152  TUCSM("getHeadLength");
153  TUASSERTE(size_t, 3, rec.getHeadLength());
154  TUCSM("getTailLength");
155  TUASSERTE(size_t, 1, rec.getTailLength());
156  TUCSM("getRecordSize");
157  TUASSERTE(size_t, 5, rec.getRecordSize());
158 
159  s.assign(199, '2');
160  rec.updateMessageData(offset, s, s.size());
161  TUCSM("getMessageLength");
162  TUASSERTE(size_t, 200, rec.getMessageLength());
163  TUCSM("getHeadLength");
164  TUASSERTE(size_t, 4, rec.getHeadLength());
165  TUCSM("getTailLength");
166  TUASSERTE(size_t, 2, rec.getTailLength());
167  TUCSM("getRecordSize");
168  TUASSERTE(size_t, 206, rec.getRecordSize());
169 
170  s.assign(17000, '3');
171  rec.updateMessageData(offset, s, s.size());
172  TUCSM("getMessageLength");
173  TUASSERTE(size_t, 17200, rec.getMessageLength());
174  TUCSM("getHeadLength");
175  TUASSERTE(size_t, 5, rec.getHeadLength());
176  TUCSM("getTailLength");
177  TUASSERTE(size_t, 4, rec.getTailLength());
178  TUCSM("getRecordSize");
179  TUASSERTE(size_t, 17209, rec.getRecordSize());
180 
181  s.assign(2100800, '4');
182  rec.updateMessageData(offset, s, s.size());
183  TUCSM("getMessageLength");
184  TUASSERTE(size_t, 2118000, rec.getMessageLength());
185  TUCSM("getHeadLength");
186  TUASSERTE(size_t, 6, rec.getHeadLength());
187  TUCSM("getTailLength");
188  TUASSERTE(size_t, 16, rec.getTailLength());
189  TUCSM("getRecordSize");
190  TUASSERTE(size_t, 2118022, rec.getRecordSize());
191 
192  TURETURN();
193 }
194 
195 
197 {
198  TUDEF("BinexData", "getMessageCapacity");
199 
200  BinexData rec;
202  size_t offset = 0;
203  rec.updateMessageData(offset, u);
204  TUASSERT(rec.getMessageData().capacity() >= 1);
205 
206  TUCSM("ensureMessageCapacity");
207  rec.ensureMessageCapacity(1024);
208  TUASSERT(rec.getMessageData().capacity() >= 1024);
209  rec.ensureMessageCapacity(2048);
210  TUASSERT(rec.getMessageData().capacity() >= 2048);
211 
212  TURETURN();
213 }
214 
219 int main(int argc, char *argv[])
220 {
221  int errorTotal = 0;
222 
223  BinexAttrs_T testClass; // test data is loaded here
224 
225  errorTotal += testClass.doIsDataTests();
226 
227  errorTotal += testClass.doRecordFlagsTests();
228 
229  errorTotal += testClass.doRecordIdTests();
230 
231  errorTotal += testClass.doMessageCapacityTests();
232 
233  errorTotal += testClass.doMessageLengthTests();
234 
235  return( errorTotal );
236 
237 } // main()
TUCSM
#define TUCSM(METHOD)
Definition: TestUtil.hpp:59
gnsstk::BinexData::RecordID
uint32_t RecordID
Record ID type.
Definition: BinexData.hpp:72
gnsstk::BinexData::setRecordFlags
BinexData & setRecordFlags(SyncByte flags=DEFAULT_RECORD_FLAGS)
Definition: BinexData.cpp:974
BinexAttrs_T::doRecordFlagsTests
int doRecordFlagsTests()
Definition: Binex_Attrs_T.cpp:98
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
main
int main(int argc, char *argv[])
Definition: Binex_Attrs_T.cpp:219
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::BinexData::ensureMessageCapacity
BinexData & ensureMessageCapacity(size_t cap)
Definition: BinexData.cpp:1021
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
gnsstk::BinexData
Definition: BinexData.hpp:65
TestUtil.hpp
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::BinexData::getMessageLength
size_t getMessageLength() const
Definition: BinexData.hpp:615
BinexAttrs_T::init
void init()
Definition: Binex_Attrs_T.cpp:81
gnsstk::BinexData::getRecordID
RecordID getRecordID() const
Definition: BinexData.hpp:561
gnsstk::BinexData::getTailLength
size_t getTailLength() const
Definition: BinexData.hpp:629
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::BinexData::isData
virtual bool isData(void) const
Definition: BinexData.hpp:511
BinexAttrs_T::doIsDataTests
int doIsDataTests()
Definition: Binex_Attrs_T.cpp:87
BinexAttrs_T::BinexAttrs_T
BinexAttrs_T()
Definition: Binex_Attrs_T.cpp:53
gnsstk::BinexData::UBNXI
Definition: BinexData.hpp:96
gnsstk::BinexData::updateMessageData
BinexData & updateMessageData(size_t &offset, const UBNXI &data)
Definition: BinexData.cpp:1051
BinexAttrs_T
Definition: Binex_Attrs_T.cpp:48
std
Definition: Angle.hpp:142
gnsstk::BinexData::getMessageData
const std::string & getMessageData() const
Definition: BinexData.hpp:640
BinexAttrs_T::verboseLevel
unsigned verboseLevel
Definition: Binex_Attrs_T.cpp:72
gnsstk::BinexData::getHeadLength
size_t getHeadLength() const
Definition: BinexData.cpp:1037
BinexAttrs_T::doMessageCapacityTests
int doMessageCapacityTests()
Definition: Binex_Attrs_T.cpp:196
BinexAttrs_T::doMessageLengthTests
int doMessageLengthTests()
Definition: Binex_Attrs_T.cpp:134
BinexAttrs_T::doRecordIdTests
int doRecordIdTests()
Definition: Binex_Attrs_T.cpp:116
gnsstk::BinexData::SyncByte
uint8_t SyncByte
Synchronization byte (record flags)
Definition: BinexData.hpp:73
BinexAttrs_T::~BinexAttrs_T
virtual ~BinexAttrs_T()
Definition: Binex_Attrs_T.cpp:59
gnsstk::BinexData::getRecordSize
size_t getRecordSize() const
Definition: BinexData.cpp:989
gnsstk::BinexData::setRecordID
BinexData & setRecordID(RecordID id)
Definition: BinexData.cpp:958
BinexData.hpp
gnsstk::BinexData::getRecordFlags
SyncByte getRecordFlags() const
Definition: BinexData.hpp:536


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