OrdUnitTests_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 <iostream>
40 #include <string>
41 
42 #include "CommonTime.hpp"
43 #include "Xvt.hpp"
44 #include "Triple.hpp"
45 #include "SatID.hpp"
46 #include "ord.hpp"
47 #include "NBTropModel.hpp"
48 #include "ord.hpp"
49 #include "TestUtil.hpp"
50 #include "RinexNavDataFactory.hpp"
51 
52 using namespace gnsstk::ord;
53 
55 {
56 public:
58  unsigned testBasicIonosphereFreeRange();
59  unsigned testBasicIonosphereFreeRangeRequiresMoreThanOne();
60  unsigned testBasicIonosphereFreeRangeRejectsHigherThanDual();
61  unsigned testBasicIonosphereFreeRangeRejectsSizeMismatch();
62  unsigned testGetXvtFromStore();
63  unsigned testRawRange1();
64  unsigned testRawRange1HandlesException();
65  unsigned testRawRange2();
66  unsigned testRawRange2HandlesException();
67  unsigned testRawRange3();
68  unsigned testRawRange3HandlesException();
69  unsigned testRawRange4();
70  unsigned testRawRange4HandlesException();
71  unsigned testSvRelativityCorrection();
72  unsigned testTropoCorrection();
73  unsigned testIonoCorrection();
74 
76 };
77 
80  : navLib()
81 {
83  ndfp(std::make_shared<gnsstk::RinexNavDataFactory>());
84 
85  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
86  "arlm2000.15n";
87 
88  navLib.addFactory(ndfp);
89 
91  dynamic_cast<gnsstk::RinexNavDataFactory*>(ndfp.get());
92 
93  GNSSTK_ASSERT(rndfp->addDataSource(fname));
94 }
95 
96 
97 unsigned OrdUnitTests_T ::
99 {
100  TUDEF("ORD", "IonosphereFreeRange");
101  static const double arr[] = {1.0, 2.0};
102 
103  std::vector<double> frequencies(std::begin(arr), std::end(arr));
104  std::vector<double> pseudoranges(std::begin(arr), std::end(arr));
105 
106  double return_value = IonosphereFreeRange(frequencies, pseudoranges);
107 
108  TUASSERT(return_value > 0);
109  TURETURN();
110 }
111 
112 unsigned OrdUnitTests_T ::
114 {
115  TUDEF("ORD", "IonosphereFreeRange");
116  static const double arr[] = {1.0};
117 
118  std::vector<double> frequencies(std::begin(arr), std::end(arr));
119  std::vector<double> pseudoranges(std::begin(arr), std::end(arr));
120 
121  TUTHROW(IonosphereFreeRange(frequencies, pseudoranges));
122  TURETURN();
123 }
124 
125 unsigned OrdUnitTests_T ::
127 {
128  TUDEF("ORD", "IonosphereFreeRange");
129  static const double arr[] = {1.0, 2.0, 3.0, 4.0, 5.0};
130 
131  std::vector<double> frequencies(std::begin(arr), std::end(arr));
132  std::vector<double> pseudoranges(std::begin(arr), std::end(arr));
133 
134  TUTHROW(IonosphereFreeRange(frequencies, pseudoranges));
135  TURETURN();
136 
137 }
138 
139 unsigned OrdUnitTests_T ::
141 {
142  TUDEF("ORD", "IonosphereFreeRange");
143  static const double arr[] = {1.0, 2.0, 3.0, 4.0, 5.0};
144  static const double shortarr[] = {1.0, 2.0, 3.0, 4.0};
145 
146  std::vector<double> frequencies(std::begin(shortarr), std::end(shortarr));
147  std::vector<double> pseudoranges(std::begin(arr), std::end(arr));
148 
149  TUTHROW(IonosphereFreeRange(frequencies, pseudoranges));
150  TURETURN();
151 }
152 
153 unsigned OrdUnitTests_T ::
155 {
156  TUDEF("ORD", "getSvXvt");
157 
160  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
161 
162  gnsstk::Xvt xvt = getSvXvt(satId, time+35, navLib);
163 
164  TUASSERTFESMRT(9345531.5274733770639, xvt.x[0]);
165  TUASSERTFESMRT(-12408177.088141856715, xvt.x[1]);
166  TUASSERTFESMRT(21486320.848036296666, xvt.x[2]);
167  TUASSERTFESMRT(2081.276961058104007, xvt.v[0]);
168  TUASSERTFESMRT(1792.4445008638492709, xvt.v[1]);
169  TUASSERTFESMRT(148.29209115082824155, xvt.v[2]);
170  TUASSERTFESMRT(-0.00021641018042870913346, xvt.clkbias);
171  TUASSERTFESMRT(4.3200998334200003381e-12, xvt.clkdrift);
172  TUASSERTFESMRT(-8.8197758101551758427e-09, xvt.relcorr);
173  TURETURN();
174 }
175 
176 unsigned OrdUnitTests_T ::
178 {
179  TUDEF("ORD", "RawRange1");
180 
181  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
184  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
185 
186  gnsstk::Xvt xvt;
187  double range = RawRange1(rxLocation, satId, time, navLib, xvt);
188 
189  // @note These fields are slightly different than the Xvt tagged
190  // at the given time. RawRange tries to determine the position of the SV
191  // at time of transmit but rotates the coordinates into the ECEF frame
192  // at time of receive.
193  TUASSERTFESMRT(9272533.3762740660459, xvt.x[0]);
194  TUASSERTFESMRT(-12471159.893898375332, xvt.x[1]);
195  TUASSERTFESMRT(21480836.886172864586, xvt.x[2]);
196  TUASSERTFESMRT(2077.3531590469665389, xvt.v[0]);
197  TUASSERTFESMRT(1796.0597201257969573, xvt.v[1]);
198  TUASSERTFESMRT(164.40771415613258455, xvt.v[2]);
199  TUASSERTFESMRT(-0.00021641042654059759786, xvt.clkbias);
200  TUASSERTFESMRT(4.3200998334200003381e-12, xvt.clkdrift);
201  TUASSERTFESMRT(-8.8008986915573278037e-09, xvt.relcorr);
202  TUASSERTFESMRT(22289257.145863413811, range);
203  TURETURN();
204 }
205 
206 unsigned OrdUnitTests_T ::
208 {
209  TUDEF("ORD", "RawRange1");
210 
211  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
212  // PRN 1 should not exist in the Nav file
215  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
216  gnsstk::Xvt xvt;
217 
218  TUTHROW(RawRange1(rxLocation, satId, time, navLib, xvt));
219  TURETURN();
220 }
221 
222 unsigned OrdUnitTests_T ::
224 {
225  TUDEF("ORD", "RawRange2");
226 
227  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
230  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
231  gnsstk::Xvt xvt;
232 
233  double pseduorange = 2e7;
234  double range = RawRange2(pseduorange, rxLocation, satId, time, navLib, xvt);
235 
236  // @note These fields are slightly different than the Xvt tagged
237  // at the given time. RawRange tries to determine the position of the SV
238  // at time of transmit but rotates the coordinates into the ECEF frame
239  // at time of receive.
240  TUASSERTFESMRT(9272549.688764328137, xvt.x[0]);
241  TUASSERTFESMRT(-12471145.790274851024, xvt.x[1]);
242  TUASSERTFESMRT(21480838.177179995924, xvt.x[2]);
243  TUASSERTFESMRT(2077.3540461841112119, xvt.v[0]);
244  TUASSERTFESMRT(1796.058914385570688, xvt.v[1]);
245  TUASSERTFESMRT(164.40410655412986785, xvt.v[2]);
246  TUASSERTFESMRT(-0.000216410426506673752147, xvt.clkbias);
247  TUASSERTFESMRT(4.3200998334200003381e-12, xvt.clkdrift);
248  TUASSERTFESMRT(-8.8009032843852035206e-09, xvt.relcorr);
249  TUASSERTFESMRT(22289260.787328250706, range);
250  TURETURN();
251 }
252 
253 unsigned OrdUnitTests_T ::
255 {
256  TUDEF("ORD", "RawRange2");
257 
258  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
261  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
262  gnsstk::Xvt xvt;
263  double pseduorange = 2e7;
264 
265  TUTHROW(RawRange2(pseduorange, rxLocation, satId, time, navLib, xvt));
266  TURETURN();
267 }
268 
269 unsigned OrdUnitTests_T ::
271 {
272  TUDEF("ORD", "RawRange3");
273 
274  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
277  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
278  gnsstk::Xvt xvt;
279 
280  double pseduorange = 2e7;
281  double range = RawRange3(pseduorange, rxLocation, satId, time, navLib, xvt);
282 
283  // @note These fields are slightly different than the Xvt tagged
284  // at the given time. RawRange tries to determine the position of the SV
285  // at time of transmit but rotates the coordinates into the ECEF frame
286  // at time of receive.
287  TUASSERTFESMRT(9272694.5732459314167, xvt.x[0]);
288  TUASSERTFESMRT(-12471021.342128152028, xvt.x[1]);
289  TUASSERTFESMRT(21480849.108445473015, xvt.x[2]);
290  TUASSERTFESMRT(2077.3605866395218982, xvt.v[0]);
291  TUASSERTFESMRT(1796.0532152374469206, xvt.v[1]);
292  TUASSERTFESMRT(164.37355694668559636, xvt.v[2]);
293  TUASSERTFESMRT(-0.00021641042621940267715, xvt.clkbias);
294  TUASSERTFESMRT(4.3200998334200003381e-12, xvt.clkdrift);
295  TUASSERTFESMRT(-8.8009421765298224418e-09, xvt.relcorr);
296  TUASSERTFESMRT(22289292.96130572632, range);
297  TURETURN();
298 }
299 
300 unsigned OrdUnitTests_T ::
302 {
303  TUDEF("ORD", "RawRange3");
304 
305  gnsstk::Position rxLocation(10, 10, 0);
308  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
309  gnsstk::Xvt xvt;
310 
311  double pseduorange = 2e7;
312  TUTHROW(RawRange3(pseduorange, rxLocation, satId, time, navLib, xvt));
313 
314  TURETURN();
315 }
316 
317 unsigned OrdUnitTests_T ::
319 {
320  TUDEF("ORD", "RawRange4");
321 
322  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
325  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
326  gnsstk::Xvt xvt;
327 
328  double range = RawRange4(rxLocation, satId, time, navLib, xvt);
329 
330  // @note These fields are slightly different than the Xvt tagged
331  // at the given time. RawRange tries to determine the position of the SV
332  // at time of transmit but rotates the coordinates into the ECEF frame
333  // at time of receive.
334  TUASSERTFESMRT(9272533.3759945072234, xvt.x[0]);
335  TUASSERTFESMRT(-12471159.894135156646, xvt.x[1]);
336  TUASSERTFESMRT(21480836.886153958738, xvt.x[2]);
337  TUASSERTFESMRT(2077.353159039827915, xvt.v[0]);
338  TUASSERTFESMRT(1796.0597201308269177, xvt.v[1]);
339  TUASSERTFESMRT(164.40771420896862764, xvt.v[2]);
340  TUASSERTFESMRT(-0.00021641042654059808575, xvt.clkbias);
341  TUASSERTFESMRT(4.3200998334200003381e-12, xvt.clkdrift);
342  TUASSERTFESMRT(-8.8008986914900614763e-09, xvt.relcorr);
343  TUASSERTFESMRT(22289257.145802032202, range);
344  TURETURN();
345 }
346 
347 unsigned OrdUnitTests_T ::
349 {
350  TUDEF("ORD", "RawRange4");
351 
352  gnsstk::Position rxLocation(-7.0e5, -5.0e6, 3.0e6);
355  time(gnsstk::CivilTime(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS));
356  gnsstk::Xvt xvt;
357 
358  TUTHROW(RawRange4(rxLocation, satId, time, navLib, xvt));
359  TURETURN();
360 }
361 
362 unsigned OrdUnitTests_T ::
364 {
365  class MockXvt : public gnsstk::Xvt
366  {
367  public:
368  double computeRelativityCorrection()
369  {
370  return 5.6;
371  }
372  };
373 
374  TUDEF("ORD", "SvRelativityCorrection");
375  MockXvt svXvt;
376 
377  double relcorr = SvRelativityCorrection(svXvt);
378 
379  TUASSERTFE(-1678837764.7999999523, relcorr);
380  TURETURN();
381 }
382 
383 unsigned OrdUnitTests_T ::
385 {
386  class MockTropo : public gnsstk::NBTropModel
387  {
388  double correction(double elevation) const
389  {
390  return 42.0;
391  }
392  };
393 
394  TUDEF("ORD", "TroposphereCorrection");
395  gnsstk::Xvt fakeXvt;
396  fakeXvt.x = gnsstk::Triple(100, 100, 100);
397  fakeXvt.v = gnsstk::Triple(0, 0, 0);
398  MockTropo tropo;
399 
400  gnsstk::Position rxLocation(10, 10, 0);
401 
402  double return_value = TroposphereCorrection(tropo, rxLocation, fakeXvt);
403 
404  TUASSERTFE(return_value, 42.0);
405  TURETURN();
406 }
407 
408 unsigned OrdUnitTests_T ::
410 {
411  class MockIono : public gnsstk::IonoModelStore
412  {
413  public:
414  double getCorrection(
415  const gnsstk::CommonTime& time,
416  const gnsstk::Position& rxgeo,
417  double svel,
418  double svaz,
419  gnsstk::CarrierBand band) const override
420  {
421  return 42.0;
422  }
423 
424  };
425 
426  TUDEF("ORD", "IonosphereModelCorrection");
427  gnsstk::Xvt fakeXvt;
428  fakeXvt.x = gnsstk::Triple(100, 100, 100);
429  fakeXvt.v = gnsstk::Triple(0, 0, 0);
431  MockIono iono;
432 
433  gnsstk::Position rxLocation(10, 10, 0);
434 
435  double return_value = IonosphereModelCorrection(
436  iono, time, gnsstk::CarrierBand::L1, rxLocation, fakeXvt);
437 
438  TUASSERTFE(return_value, -42.0);
439 
440  TURETURN();
441 }
442 
443 int main()
444 {
445  OrdUnitTests_T testClass;
446  unsigned errorTotal = 0;
447 
448  errorTotal += testClass.testBasicIonosphereFreeRange();
449  errorTotal += testClass.testBasicIonosphereFreeRangeRequiresMoreThanOne();
450  errorTotal += testClass.testBasicIonosphereFreeRangeRejectsHigherThanDual();
451  errorTotal += testClass.testBasicIonosphereFreeRangeRejectsSizeMismatch();
452  errorTotal += testClass.testGetXvtFromStore();
453  errorTotal += testClass.testRawRange1();
454  errorTotal += testClass.testRawRange1HandlesException();
455  errorTotal += testClass.testRawRange2();
456  errorTotal += testClass.testRawRange2HandlesException();
457  errorTotal += testClass.testRawRange3();
458  errorTotal += testClass.testRawRange3HandlesException();
459  errorTotal += testClass.testRawRange4();
460  errorTotal += testClass.testRawRange4HandlesException();
461  errorTotal += testClass.testSvRelativityCorrection();
462  errorTotal += testClass.testTropoCorrection();
463  errorTotal += testClass.testIonoCorrection();
464 
465  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
466  << std::endl;
467 
468  return errorTotal;
469 }
gnsstk::NBTropModel
Definition: NBTropModel.hpp:86
OrdUnitTests_T::testGetXvtFromStore
unsigned testGetXvtFromStore()
Definition: OrdUnitTests_T.cpp:154
Xvt.hpp
gnsstk::ord::RawRange1
double RawRange1(const Position &rxLoc, const SatID &satId, const CommonTime &timeReceived, NavLibrary &ephemeris, Xvt &svXvt)
Definition: ord.cpp:117
ord.hpp
OrdUnitTests_T::testRawRange3
unsigned testRawRange3()
Definition: OrdUnitTests_T.cpp:270
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
gnsstk::ord
Definition: ord.cpp:58
gnsstk::SatID
Definition: SatID.hpp:89
SatID.hpp
OrdUnitTests_T::testBasicIonosphereFreeRangeRequiresMoreThanOne
unsigned testBasicIonosphereFreeRangeRequiresMoreThanOne()
Definition: OrdUnitTests_T.cpp:113
gnsstk::CommonTime::BEGINNING_OF_TIME
static const GNSSTK_EXPORT CommonTime BEGINNING_OF_TIME
earliest representable CommonTime
Definition: CommonTime.hpp:102
gnsstk::Xvt::v
Triple v
satellite velocity in ECEF Cartesian, meters/second
Definition: Xvt.hpp:152
OrdUnitTests_T::testRawRange3HandlesException
unsigned testRawRange3HandlesException()
Definition: OrdUnitTests_T.cpp:301
gnsstk::Triple
Definition: Triple.hpp:68
OrdUnitTests_T::testSvRelativityCorrection
unsigned testSvRelativityCorrection()
Definition: OrdUnitTests_T.cpp:363
TUTHROW
#define TUTHROW(STATEMENT)
Definition: TestUtil.hpp:211
gnsstk::ord::RawRange4
double RawRange4(const gnsstk::Position &rxLoc, const gnsstk::SatID &satId, const gnsstk::CommonTime &time, NavLibrary &ephemeris, gnsstk::Xvt &svXvt)
Definition: ord.cpp:165
gnsstk::Xvt::relcorr
double relcorr
relativity correction (standard 2R.V/c^2 term), seconds
Definition: Xvt.hpp:155
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
main
int main()
Definition: OrdUnitTests_T.cpp:443
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::Xvt::x
Triple x
Sat position ECEF Cartesian (X,Y,Z) meters.
Definition: Xvt.hpp:151
gnsstk::NavDataFactoryWithStoreFile::addDataSource
bool addDataSource(const std::string &source) override
Definition: NavDataFactoryWithStoreFile.hpp:64
gnsstk::ord::IonosphereModelCorrection
double IonosphereModelCorrection(const gnsstk::IonoModelStore &ionoModel, const gnsstk::CommonTime &time, CarrierBand band, const gnsstk::Position &rxLoc, const gnsstk::Xvt &svXvt)
Definition: ord.cpp:94
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
TestUtil.hpp
gnsstk::IonoModelStore
Definition: IonoModelStore.hpp:62
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::NavLibrary
Definition: NavLibrary.hpp:944
OrdUnitTests_T::navLib
gnsstk::NavLibrary navLib
Definition: OrdUnitTests_T.cpp:75
example4.time
time
Definition: example4.py:103
gnsstk::ord::SvRelativityCorrection
double SvRelativityCorrection(gnsstk::Xvt &svXvt)
Definition: ord.cpp:210
TUASSERTFESMRT
#define TUASSERTFESMRT(EXP, GOT)
Definition: TestUtil.hpp:150
OrdUnitTests_T::testBasicIonosphereFreeRangeRejectsHigherThanDual
unsigned testBasicIonosphereFreeRangeRejectsHigherThanDual()
Definition: OrdUnitTests_T.cpp:126
gnsstk::CommonTime
Definition: CommonTime.hpp:84
NBTropModel.hpp
gnsstk::Xvt::clkdrift
double clkdrift
satellite clock drift in seconds/second
Definition: Xvt.hpp:154
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::Xvt
Definition: Xvt.hpp:60
gnsstk::ord::getSvXvt
gnsstk::Xvt getSvXvt(const gnsstk::SatID &satId, const gnsstk::CommonTime &time, NavLibrary &ephemeris)
Definition: ord.cpp:107
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::ord::RawRange3
double RawRange3(double pseudorange, const gnsstk::Position &rxLoc, const gnsstk::SatID &satId, const gnsstk::CommonTime &time, NavLibrary &ephemeris, gnsstk::Xvt &svXvt)
Definition: ord.cpp:151
OrdUnitTests_T::testRawRange2HandlesException
unsigned testRawRange2HandlesException()
Definition: OrdUnitTests_T.cpp:254
OrdUnitTests_T::testRawRange4HandlesException
unsigned testRawRange4HandlesException()
Definition: OrdUnitTests_T.cpp:348
OrdUnitTests_T::testRawRange2
unsigned testRawRange2()
Definition: OrdUnitTests_T.cpp:223
gnsstk::CivilTime
Definition: CivilTime.hpp:55
GNSSTK_ASSERT
#define GNSSTK_ASSERT(CONDITION)
Provide an "ASSERT" type macro.
Definition: Exception.hpp:373
gnsstk::TimeSystem::GPS
@ GPS
GPS system time.
OrdUnitTests_T::testRawRange1
unsigned testRawRange1()
Definition: OrdUnitTests_T.cpp:177
CommonTime.hpp
gnsstk::ord::TroposphereCorrection
double TroposphereCorrection(const gnsstk::TropModel &tropModel, const gnsstk::Position &rxLoc, const gnsstk::Xvt &svXvt)
Definition: ord.cpp:215
gnsstk::ord::RawRange2
double RawRange2(double pseudorange, const Position &rxLoc, const SatID &satId, const CommonTime &time, NavLibrary &ephemeris, Xvt &svXvt)
Definition: ord.cpp:136
gnsstk::NavLibrary::addFactory
void addFactory(NavDataFactoryPtr &fact)
Definition: NavLibrary.cpp:470
gnsstk::RinexNavDataFactory
Definition: RinexNavDataFactory.hpp:57
gnsstk::range
double range(const Position &A, const Position &B)
Definition: Position.cpp:1273
OrdUnitTests_T::testIonoCorrection
unsigned testIonoCorrection()
Definition: OrdUnitTests_T.cpp:409
Triple.hpp
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::Position
Definition: Position.hpp:136
OrdUnitTests_T::testRawRange4
unsigned testRawRange4()
Definition: OrdUnitTests_T.cpp:318
gnsstk::Xvt::clkbias
double clkbias
Sat clock correction in seconds.
Definition: Xvt.hpp:153
OrdUnitTests_T::testRawRange1HandlesException
unsigned testRawRange1HandlesException()
Definition: OrdUnitTests_T.cpp:207
OrdUnitTests_T::testTropoCorrection
unsigned testTropoCorrection()
Definition: OrdUnitTests_T.cpp:384
OrdUnitTests_T::testBasicIonosphereFreeRangeRejectsSizeMismatch
unsigned testBasicIonosphereFreeRangeRejectsSizeMismatch()
Definition: OrdUnitTests_T.cpp:140
OrdUnitTests_T::OrdUnitTests_T
OrdUnitTests_T()
Definition: OrdUnitTests_T.cpp:79
OrdUnitTests_T::testBasicIonosphereFreeRange
unsigned testBasicIonosphereFreeRange()
Definition: OrdUnitTests_T.cpp:98
OrdUnitTests_T
Definition: OrdUnitTests_T.cpp:54
gnsstk::ord::IonosphereFreeRange
double IonosphereFreeRange(const std::vector< double > &frequencies, const std::vector< double > &pseudoranges)
Definition: ord.cpp:60
RinexNavDataFactory.hpp


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