67 header.fileProgram =
"rinex3Test";
70 else if(satString ==
"R")
74 std::ostringstream ostr;
77 header.fileAgency =
"From_Scratch_T_" + testID;
79 header.markerName =
"NCCM1";
81 header.observer =
"Monitor Station";
85 header.recType =
"ITT MSN SAASM";
89 header.antType =
"Topcon CR-G5";
91 Triple ntPosition(-18000.27, -4991850.12, 3957008.50);
92 header.antennaPosition = ntPosition;
95 header.antennaDeltaHEN = ntDelta;
99 header.markerNumber =
"85401";
107 if(completeR || satString ==
"M") {
117 data.clockOffset = 0;
118 data.time =
header.firstObs.convertToCommonTime();
120 std::vector<RinexObsID>
newObsIds = setupObsIDs();
173 header.mapObsTypes.insert(std::pair<std::string, std::vector<RinexObsID> >(
"R",
newObsIds));
174 header.mapObsTypes.insert(std::pair<std::string, std::vector<RinexObsID> >(
"G",
newObsIds));
177 header.mapObsTypes.insert(std::pair<std::string, std::vector<RinexObsID> >(satString,
newObsIds));
181 std::vector<RinexDatum> datumVec1(5);
182 std::vector<RinexDatum> datumVec2(5);
183 datumVec1[0] = datumL1_1;
184 datumVec2[0] = datumL1_2;
185 datumVec1[1] = datumP1_1;
186 datumVec2[1] = datumP1_2;
187 datumVec1[2] = datumC1_1;
188 datumVec2[2] = datumC1_2;
189 datumVec1[3] = datumL2_1;
190 datumVec2[3] = datumL2_2;
191 datumVec1[4] = datumP2_1;
192 datumVec2[4] = datumP2_2;
195 data.obs.insert(std::pair<
RinexSatID, std::vector<RinexDatum> >(S3, datumVec1));
196 data.obs.insert(std::pair<
RinexSatID, std::vector<RinexDatum> >(S6, datumVec2));
202 std::ios::out | std::ios::trunc);
204 strm.exceptions(ifstream::failbit);
208 header.prepareVer2Write();
211 std::ios::out | std::ios::trunc);
212 strm2.exceptions(ifstream::failbit);
267 TUDEF(
"Rinex3Obs",
"Rinex3ObsFromScratch");
273 testID =
"ValidTest";
274 Rinex3ObsFromScratch(
"G",testID);
279 TUFAIL(
"valid input threw exception");
283 cerr <<
"starting mixed test" << endl;
285 testID =
"MixedTest";
286 Rinex3ObsFromScratch(
"M",testID);
288 cerr <<
"mixed test complete" << endl;
292 TUFAIL(
"valid input threw exception");
297 testID =
"IncompleteR";
298 Rinex3ObsFromScratch(
"R", testID);
299 TUFAIL(
"Glonass file should need GlonassSlotFreqNo and GlonassCodPhsBias");
303 TUPASS(
"Glonass file failed for lacking necessary fields");
308 testID =
"CompleteR";
309 Rinex3ObsFromScratch(
"R",testID,
true);
314 TUFAIL(
"Glonass file failed despite having all necessary fields");
320 Rinex3ObsFromScratch(
"GPS", testID);
321 TUFAIL(
"no exception for invalid sys char string");
325 TUPASS(
"exception thrown for invalid input");
338 cout <<
"Total Failures for " << __FILE__ <<
": " << errorTotal << endl;
340 return( errorTotal );