NavSatelliteID_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 //
28 // This software was developed by Applied Research Laboratories at the
29 // University of Texas at Austin, under contract to an agency or agencies
30 // within the U.S. Department of Defense. The U.S. Government retains all
31 // rights to use, duplicate, distribute, disclose, or release this software.
32 //
33 // Pursuant to DoD Directive 523024
34 //
35 // DISTRIBUTION STATEMENT A: This software has been approved for public
36 // release, distribution is unlimited.
37 //
38 //==============================================================================
39 #include "NavSatelliteID.hpp"
40 #include "TestUtil.hpp"
41 
42 namespace gnsstk
43 {
44  std::ostream& operator<<(std::ostream& s, gnsstk::SatelliteSystem e)
45  {
46  s << StringUtils::asString(e);
47  return s;
48  }
49 
50  std::ostream& operator<<(std::ostream& s, gnsstk::CarrierBand e)
51  {
52  s << StringUtils::asString(e);
53  return s;
54  }
55 
56  std::ostream& operator<<(std::ostream& s, gnsstk::TrackingCode e)
57  {
58  s << StringUtils::asString(e);
59  return s;
60  }
61 
62  std::ostream& operator<<(std::ostream& s, gnsstk::NavType e)
63  {
64  s << StringUtils::asString(e);
65  return s;
66  }
67 }
68 
69 
71 {
72 public:
73  unsigned constructorTest();
74  unsigned equalTest();
75  unsigned lessThanTest();
76 };
77 
78 
79 unsigned NavSatelliteID_T ::
81 {
82  TUDEF("NavSatelliteID", "NavSatelliteID");
83  // test default constructor
87  // test for exact match
88  TUASSERTE(gnsstk::SatID, exp1a, nsid1.sat);
89  TUASSERTE(gnsstk::SatID, exp1a, nsid1.xmitSat);
90  // test for expected mismatch
91  TUASSERT(nsid1.sat != exp1b);
92  TUASSERT(nsid1.xmitSat != exp1b);
93  // test constructor with integer satellite IDs
101  TUASSERTE(gnsstk::SatID, exps2a, nsid2.sat);
102  TUASSERTE(gnsstk::SatID, expx2a, nsid2.xmitSat);
103  TUASSERT(nsid2.sat != exps2b);
104  TUASSERT(nsid2.xmitSat != expx2b);
106  nsid2.system);
110  // test constructor with wildcard transmit satellite
114  gnsstk::SatID expx7a;
115  expx7a.makeWild();
116  TUASSERTE(gnsstk::SatID, exps2a, nsid7.sat);
117  TUASSERTE(gnsstk::SatID, expx7a, nsid7.xmitSat);
118  TUASSERT(nsid7.sat != exps2b);
119  // should match because wildcard.
120  TUASSERT(nsid7.xmitSat == expx2b);
122  nsid7.system);
126  // test "subframe 5 page 25" constructor
132  oid3a.freqOffs = -7;
133  oid3a.freqOffsWild = false;
134  oid3a.setMcodeBits(0x12345678, 0xffffffff);
135  gnsstk::NavSatelliteID nsid3(17, exps3b, oid3a, nid3a);
136  TUASSERTE(gnsstk::SatID, exps3a, nsid3.sat);
137  TUASSERTE(gnsstk::SatID, exps3b, nsid3.xmitSat);
139  nsid3.system);
143  TUASSERTE(gnsstk::ObsID, oid3a, nsid3.obs);
144  // test "QZSS CNAV" constructor
147  gnsstk::NavSatelliteID nsid4(exps4a, exps4b, oid3a, nid3a);
148  TUASSERTE(gnsstk::SatID, exps4a, nsid4.sat);
149  TUASSERTE(gnsstk::SatID, exps4b, nsid4.xmitSat);
151  nsid4.system);
155  TUASSERTE(gnsstk::ObsID, oid3a, nsid3.obs);
156  // test yet another constructor
159  gnsstk::NavSatelliteID nsid5(exps5a, exps5b, gnsstk::CarrierBand::L5,
161  TUASSERTE(gnsstk::SatID, exps5a, nsid5.sat);
162  TUASSERTE(gnsstk::SatID, exps5b, nsid5.xmitSat);
164  nsid5.system);
168  // test the SatID constructor
170  gnsstk::NavSatelliteID nsid6(exps6a);
171  TUASSERTE(gnsstk::SatID, exps6a, nsid6.sat);
172  TUASSERTE(bool, true, nsid6.xmitSat.wildId);
173  TUASSERTE(bool, true, nsid6.xmitSat.wildSys);
175  nsid6.system);
179 
180  TURETURN();
181 }
182 
183 
184 unsigned NavSatelliteID_T ::
186 {
187  TUDEF("NavSatelliteID", "operator==");
256  nsid12.sat = gnsstk::SatID(1); // wildcard system
257  nsid13.sat = gnsstk::SatID(2); // wildcard system
258  nsid14.sat = gnsstk::SatID(gnsstk::SatelliteSystem::GPS); // wildcard sat
259  nsid15.sat = gnsstk::SatID(gnsstk::SatelliteSystem::QZSS); // wildcard sat
260  nsid16.xmitSat = gnsstk::SatID(1); // wildcard system
261  nsid17.xmitSat = gnsstk::SatID(2); // wildcard system
262  nsid18.xmitSat = gnsstk::SatID(gnsstk::SatelliteSystem::GPS); // wild sat
264  TUASSERTE(bool, true, nsid01 == nsid02);
265  TUASSERTE(bool, false, nsid01 == nsid03);
266  TUASSERTE(bool, false, nsid01 == nsid04);
267  TUASSERTE(bool, false, nsid01 == nsid05);
268  TUASSERTE(bool, false, nsid01 == nsid06);
269  TUASSERTE(bool, false, nsid01 == nsid07);
270  TUASSERTE(bool, false, nsid01 == nsid08);
271  TUASSERTE(bool, true, nsid01 == nsid09);
272  TUASSERTE(bool, true, nsid01 == nsid10);
273  TUASSERTE(bool, true, nsid01 == nsid11);
274  TUASSERTE(bool, true, nsid01 == nsid12);
275  TUASSERTE(bool, false, nsid01 == nsid13);
276  TUASSERTE(bool, true, nsid01 == nsid14);
277  TUASSERTE(bool, false, nsid01 == nsid15);
278  TUASSERTE(bool, false, nsid01 == nsid16);
279  TUASSERTE(bool, true, nsid01 == nsid17);
280  TUASSERTE(bool, true, nsid01 == nsid18);
281  TUASSERTE(bool, false, nsid01 == nsid19);
282  TUCSM("operator!=");
283  TUASSERTE(bool, false, nsid01 != nsid02);
284  TUASSERTE(bool, true, nsid01 != nsid03);
285  TUASSERTE(bool, true, nsid01 != nsid04);
286  TUASSERTE(bool, true, nsid01 != nsid05);
287  TUASSERTE(bool, true, nsid01 != nsid06);
288  TUASSERTE(bool, true, nsid01 != nsid07);
289  TUASSERTE(bool, true, nsid01 != nsid08);
290  TUASSERTE(bool, false, nsid01 != nsid09);
291  TUASSERTE(bool, false, nsid01 != nsid10);
292  TUASSERTE(bool, false, nsid01 != nsid11);
293  TUASSERTE(bool, false, nsid01 != nsid12);
294  TUASSERTE(bool, true, nsid01 != nsid13);
295  TUASSERTE(bool, false, nsid01 != nsid14);
296  TUASSERTE(bool, true, nsid01 != nsid15);
297  TUASSERTE(bool, true, nsid01 != nsid16);
298  TUASSERTE(bool, false, nsid01 != nsid17);
299  TUASSERTE(bool, false, nsid01 != nsid18);
300  TUASSERTE(bool, true, nsid01 != nsid19);
301  TURETURN();
302 }
303 
304 
305 unsigned NavSatelliteID_T ::
307 {
308  TUDEF("NavSatelliteID", "operator<");
377  nsid12.sat = gnsstk::SatID(1); // wildcard system
378  nsid13.sat = gnsstk::SatID(2); // wildcard system
379  nsid14.sat = gnsstk::SatID(gnsstk::SatelliteSystem::GPS); // wildcard sat
380  nsid15.sat = gnsstk::SatID(gnsstk::SatelliteSystem::QZSS); // wildcard sat
381  nsid16.xmitSat = gnsstk::SatID(1); // wildcard system
382  nsid17.xmitSat = gnsstk::SatID(2); // wildcard system
383  nsid18.xmitSat = gnsstk::SatID(gnsstk::SatelliteSystem::GPS); // wild sat
385  TUASSERTE(bool, false, nsid01 < nsid02);
386  TUASSERTE(bool, false, nsid02 < nsid01);
387  TUASSERTE(bool, false, nsid01 < nsid03);
388  TUASSERTE(bool, true, nsid03 < nsid01);
389  TUASSERTE(bool, true, nsid01 < nsid04);
390  TUASSERTE(bool, false, nsid04 < nsid01);
391  TUASSERTE(bool, true, nsid01 < nsid05);
392  TUASSERTE(bool, false, nsid05 < nsid01);
393  TUASSERTE(bool, true, nsid01 < nsid06);
394  TUASSERTE(bool, false, nsid06 < nsid01);
395  TUASSERTE(bool, true, nsid01 < nsid07);
396  TUASSERTE(bool, false, nsid07 < nsid01);
397  TUASSERTE(bool, true, nsid01 < nsid08);
398  TUASSERTE(bool, false, nsid08 < nsid01);
399  TUASSERTE(bool, false, nsid01 < nsid09);
400  TUASSERTE(bool, false, nsid09 < nsid01);
401  TUASSERTE(bool, false, nsid01 < nsid10);
402  TUASSERTE(bool, false, nsid10 < nsid01);
403  TUASSERTE(bool, false, nsid01 < nsid11);
404  TUASSERTE(bool, false, nsid11 < nsid01);
405  TUASSERTE(bool, false, nsid01 < nsid12);
406  TUASSERTE(bool, false, nsid12 < nsid01);
407  TUASSERTE(bool, true, nsid01 < nsid13);
408  TUASSERTE(bool, false, nsid13 < nsid01);
409  TUASSERTE(bool, false, nsid01 < nsid14);
410  TUASSERTE(bool, false, nsid14 < nsid01);
411  TUASSERTE(bool, true, nsid01 < nsid15);
412  TUASSERTE(bool, false, nsid15 < nsid01);
413  TUASSERTE(bool, false, nsid01 < nsid16);
414  TUASSERTE(bool, true, nsid16 < nsid01);
415  TUASSERTE(bool, false, nsid01 < nsid17);
416  TUASSERTE(bool, false, nsid17 < nsid01);
417  TUASSERTE(bool, false, nsid01 < nsid18);
418  TUASSERTE(bool, false, nsid18 < nsid01);
419  TUASSERTE(bool, true, nsid01 < nsid19);
420  TUASSERTE(bool, false, nsid19 < nsid01);
421  TURETURN();
422 }
423 
424 
425 int main()
426 {
427  NavSatelliteID_T testClass;
428  unsigned errorTotal = 0;
429 
430  errorTotal += testClass.constructorTest();
431  errorTotal += testClass.equalTest();
432  errorTotal += testClass.lessThanTest();
433 
434  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
435  << std::endl;
436 
437  return errorTotal;
438 }
439 
gnsstk::NavSignalID::nav
NavType nav
Navigation message structure of this signal.
Definition: NavSignalID.hpp:96
TUCSM
#define TUCSM(METHOD)
Definition: TestUtil.hpp:59
gnsstk::SatID::makeWild
void makeWild()
Definition: SatID.cpp:74
gnsstk::NavType::GPSMNAV
@ GPSMNAV
NavSatelliteID_T
Definition: NavSatelliteID_T.cpp:70
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
gnsstk::SatelliteSystem
SatelliteSystem
Supported satellite systems.
Definition: SatelliteSystem.hpp:55
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::SatelliteSystem::Transit
@ Transit
gnsstk::CarrierBand::Any
@ Any
Used to match any carrier band.
NavSatelliteID.hpp
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
gnsstk::SatID::wildId
bool wildId
If true, any satellite matches.
Definition: SatID.hpp:155
gnsstk::ObsID::band
CarrierBand band
Definition: ObsID.hpp:200
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
NavSatelliteID_T::lessThanTest
unsigned lessThanTest()
Definition: NavSatelliteID_T.cpp:306
gnsstk::CarrierBand::L2
@ L2
GPS L2, QZSS L2.
gnsstk::ObservationType::NavMsg
@ NavMsg
Navigation Message data.
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::NavType::Any
@ Any
Used to match any nav code.
gnsstk::NavSignalID::obs
ObsID obs
Carrier, tracking code, etc.
Definition: NavSignalID.hpp:95
gnsstk::NavSignalID::system
SatelliteSystem system
GNSS for this signal.
Definition: NavSignalID.hpp:94
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
gnsstk::SatID::wildSys
bool wildSys
If true, any system matches.
Definition: SatID.hpp:157
TestUtil.hpp
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::ObsID::setMcodeBits
void setMcodeBits(uint32_t newval, uint32_t newmask=-1)
Set the value of mcode while simultaneously setting the mask.
Definition: ObsID.hpp:170
gnsstk::SatelliteSystem::Unknown
@ Unknown
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::NavSatelliteID::sat
SatID sat
ID of satellite to which the nav data applies.
Definition: NavSatelliteID.hpp:169
gnsstk::operator<<
std::ostream & operator<<(std::ostream &s, const ObsEpoch &oe) noexcept
Definition: ObsEpochMap.cpp:54
gnsstk::ObsID::code
TrackingCode code
Definition: ObsID.hpp:201
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
NavSatelliteID_T::equalTest
unsigned equalTest()
Definition: NavSatelliteID_T.cpp:185
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
main
int main()
Definition: NavSatelliteID_T.cpp:425
gnsstk::ObsID::freqOffsWild
bool freqOffsWild
True=Treat freqOffs as a wildcard when matching.
Definition: ObsID.hpp:204
gnsstk::TrackingCode
TrackingCode
Definition: TrackingCode.hpp:64
gnsstk::ObsID::freqOffs
int freqOffs
GLONASS frequency offset.
Definition: ObsID.hpp:203
gnsstk::NavID
Definition: NavID.hpp:61
gnsstk::NavType
NavType
Supported navigation types.
Definition: NavType.hpp:58
gnsstk::SatelliteSystem::QZSS
@ QZSS
gnsstk::NavSatelliteID::xmitSat
SatID xmitSat
ID of the satellite transmitting the nav data.
Definition: NavSatelliteID.hpp:170
gnsstk::TrackingCode::Any
@ Any
Used to match any tracking code.
gnsstk::NavType::GPSCNAV2
@ GPSCNAV2
gnsstk::CarrierBand::L5
@ L5
GPS L5, Galileo E5a, SBAS L5, QZSS L5, BeiDou B2a, NavIC L5.
NavSatelliteID_T::constructorTest
unsigned constructorTest()
Definition: NavSatelliteID_T.cpp:80


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