63 unsigned abstractTest();
64 unsigned realDataTest();
65 unsigned equalityTest();
66 unsigned ancillaryMethods();
67 unsigned addDataVecTest();
81 TUDEF(
"PackedNavBits",
"initialize");
91 TUDEF(
"PackedNavBits",
"addUnsigned");
92 unsigned long u_i1 = 32767;
96 unsigned long u_i2 = 1;
100 unsigned long u_i3 = 255;
104 unsigned long u_i4 = 604500;
159 ltest = pnb.
asLong(startbit, s_n1, s_s1);
162 ltest = pnb.
asLong(startbit, s_n2, s_s2);
165 ltest = pnb.
asLong(startbit, s_n3, s_s3);
168 ltest = pnb.
asLong(startbit, s_n4, s_s4);
171 ltest = pnb.
asLong(startbit, s_n5, s_s5);
177 double d_i1 = 0.490005493;
180 double d_e1 = pow(2.0,d_s1);
185 double d_e2 = pow(2.0,d_s2);
190 double d_e3 = pow(2.0,d_s3);
193 double d_i4 = 32000.0;
196 double d_e4 = pow(2.0,d_s4);
218 TUCSM(
"addSemiCircles");
219 double sd_i1 =
PI-2*pow(2.0,-31);
222 double sd_e1 = pow(2.0,sd_s1) * 3.0;
227 double sd_e2 = pow(2.0,sd_s1) * 3.0;
238 return testFramework.countFails();
245 TUDEF(
"PackedNavBits",
"real data round-trip");
248 SatID satID(3, SatelliteSystem::GPS);
250 std::string rxID =
"rx1";
254 double rToe = 388800.0;
258 unsigned long riodc = 22;
262 unsigned long riode = 22;
266 unsigned long raodo = 10;
270 unsigned long rfitInt = 0;
274 double rToc = 388800.0;
278 double rCuc = 9.57399606705E-07;
282 double rCus = 8.35768878460E-06;
286 double rCrc = 2.03562500000E+02;
290 double rCrs = 1.87812500000E+01;
294 double rCic = -2.30967998505E-07;
298 double rCis = 5.02914190292E-08;
302 double rM0 = 1.05539162795E+00;
306 double rdn = 5.39093883996E-09;
310 double recc = 1.42575260252E-02;
314 double rAhalf = 5.15365527534E+03;
318 double rOMEGA0 = -2.16947563164E+00;
322 double ri0 = 9.28692497530E-01;
326 double rw = 1.09154604931E+00;
330 double rOMEGAdot = -8.56285667735E-09;
331 int n_rOMEGAdot = 24;
332 int s_rOMEGAdot = -43;
334 double ridot = 5.52880172536E-10;
338 double raf0 = 7.23189674318E-04;
342 double raf1 = 5.11590769747E-12;
350 double rTgd = -4.65661287308E-09;
386 unsigned long ultest;
391 eps = pow(2.0,s_rTgd);
400 eps = pow(2.0,s_rToc);
405 eps = pow(2.0,s_raf2);
410 eps = pow(2.0,s_raf1);
415 eps = pow(2.0,s_raf0);
424 eps = pow(2.0,s_rCrs);
429 eps = pow(2.0,s_rdn) * 3.0;
434 eps = pow(2.0,s_rM0) * 3.0;
439 eps = pow(2.0,s_rCuc);
444 eps = pow(2.0,s_recc);
449 eps = pow(2.0,s_rCus);
454 eps = pow(2.0,s_rAhalf);
457 startbit += n_rAhalf;
459 eps = pow(2.0,s_rToe);
464 TUASSERTE(
unsigned long, ultest, rfitInt);
466 startbit += n_rfitInt;
472 eps = pow(2.0,s_rCic);
477 eps = pow(2.0,s_rOMEGA0) * 3.0;
480 startbit += n_rOMEGA0;
482 eps = pow(2.0,s_rCis);
487 eps = pow(2.0,s_ri0) * 3.0;
492 eps = pow(2.0,s_rCrc);
497 eps = pow(2.0,s_rw) * 3.0;
502 eps = pow(2.0,s_rOMEGAdot) * 3.0;
505 startbit += n_rOMEGAdot;
507 eps = pow(2.0,s_riode);
512 eps = pow(2.0,s_ridot) * 3.0;
515 return testFramework.countFails();
526 SatID satID(1, SatelliteSystem::GPS);
528 NavID navID(satID,obsID);
529 std::string rxID =
"rx1";
532 SatID satID2(2, SatelliteSystem::GPS);
533 ObsID obsID2(ObservationType::NavMsg, CarrierBand::L5, TrackingCode::L5Q );
534 NavID navID2(satID2,obsID2);
535 std::string rxID2 =
"rx2";
549 TUDEF(
"PackedNavBits",
"matchMetaData");
558 unsigned int ignoreSAT = PackedNavBits::mmOBS | PackedNavBits::mmNAV | PackedNavBits::mmRX | PackedNavBits::mmTIME;
559 unsigned int ignoreOBS = PackedNavBits::mmSAT | PackedNavBits::mmNAV | PackedNavBits::mmRX | PackedNavBits::mmTIME;
560 unsigned int ignoreNAV = PackedNavBits::mmSAT | PackedNavBits::mmOBS | PackedNavBits::mmRX | PackedNavBits::mmTIME;
561 unsigned int ignoreRX = PackedNavBits::mmSAT | PackedNavBits::mmOBS | PackedNavBits::mmNAV | PackedNavBits::mmTIME;
562 unsigned int ignoreTIME = PackedNavBits::mmSAT | PackedNavBits::mmOBS | PackedNavBits::mmNAV | PackedNavBits::mmRX;
563 unsigned int checkRXTIME = PackedNavBits::mmRX | PackedNavBits::mmTIME;
564 unsigned int checkSATOBS = PackedNavBits::mmSAT | PackedNavBits::mmOBS;
588 unsigned long u_i1 = 32767;
592 unsigned long u_i2 = 1;
596 unsigned long u_i3 = 255;
600 unsigned long u_i4 = 604500;
671 PackedNavBits diffMetaWithBits2(satID,obsID,navID,rxID2,ctPlus);
680 TUASSERTE(
bool,
false,withBits.
match(diffMetaWithBits2,0,-1,checkSATOBS));
681 TUASSERTE(
bool,
true,withBits.
match(diffMetaWithBits2,24,31,checkSATOBS));
684 TUASSERTE(
bool,
true,withBits==sameAsWithBits);
685 TUASSERTE(
bool,
false,withBits==diffMetaWithBits2);
693 rightTest.
rawBitInput(
"035 0xFFFFFF0F 0xE0000000");
694 leftEqual.
rawBitInput(
"035 0xFFFFFF0F 0xE0000000");
695 leftSmall.
rawBitInput(
"035 0xFFFFFE0F 0xE0000000");
696 leftLarge.
rawBitInput(
"035 0xFFFFFFFF 0xE0000000");
705 leftMixed.
rawBitInput(
"035 0x03019AA1 0x00000000");
706 rightMixed.
rawBitInput(
"035 0x057E77B8 0x00000000");
708 TUASSERTE(
bool,
true, leftSmall<rightTest);
709 TUASSERTE(
bool,
false, leftEqual<rightTest);
710 TUASSERTE(
bool,
false, leftLarge<rightTest);
712 TUASSERTE(
bool,
false, longer<leftSmall);
713 TUASSERTE(
bool,
true, leftMixed<rightMixed);
714 TUASSERTE(
bool,
false, rightMixed<leftMixed);
729 TUDEF(
"PackedNavBits",
"ancillary methods");
737 SatID satID(1, SatelliteSystem::GPS);
739 NavID navID(satID,obsID);
740 std::string rxID =
"rx1";
746 unsigned long uword = 0xAAAAAAAA;
752 catch (InvalidParameter ip)
754 cout <<
"Caught an exception" << endl;
761 unsigned long uwordInverse = (~uword) & 0xFFFFFFFF;
767 catch (InvalidParameter ip)
769 cout <<
"Caught an exception" << endl;
783 unsigned long uwordOnes = 0xFFFFFFFF;
789 unsigned long uwordZeros = 0x00000000;
799 unsigned long uword1 = 0x0000FFFF;
800 unsigned long uword2 = 0xFFFF0000;
816 unsigned long fakeSOW = 604800 - 6;
817 unsigned long tenOnes = 0x000003FF;
844 TUDEF(
"PackedNavBits",
"addDataVec");
846 std::vector<uint8_t> testVec { 0x8b, 0x31, 0x42, 0x59, 0x80 };
850 for (
unsigned i = 0; i < 33; i+= 8)
868 unsigned errorTotal = 0;
878 cout <<
"Total Failures for " << __FILE__ <<
": " << errorTotal << endl;