48 #include "build_config.h"
83 int openMissingFileTest();
84 int bitsAsStringTest();
86 int reallyPutRecordTest();
87 int reallyGetRecordTest();
88 int convertObsTypeSTRTest();
89 int convertObsTypeHeaderTest();
91 int continuationTest();
92 int dataExceptionsTest();
93 int filterOperatorsTest();
176 std::string fileSep = gnsstk::getFileSep();
180 inputNormal = dp +
"test_input_rinex_met_408_110a.04m";
181 inputMissing = dp +
"not-a-real-file-sasquatch.moo";
182 inputBLL = dp +
"test_input_rinex_met_BLL.04m";
183 inputNMF = dp +
"test_input_rinex_met_NotMetFile.04m";
184 inputBOL = dp +
"test_input_rinex_met_BOL.04m";
185 inputFER = dp +
"test_input_rinex_met_FER.04m";
186 inputExtraH = dp +
"test_input_rinex_met_ExtraH.04m";
187 inputUnSupRinex = dp +
"test_input_rinex_met_UnSupRinex.04m";
188 inputMissingSPos = dp +
"test_input_rinex_met_MissingEOH.04m";
189 inputContLines = dp +
"test_input_rinex_met_ContLines10.04m";
190 inputNoObs = dp +
"test_input_rinex_met_NoObsData.04m";
191 inputSensorType = dp +
"test_input_rinex_met_SensorTypeError.04m";
192 inputObsHdrStrErr = dp +
"test_input_rinex_met_ObsHeaderStringError.04m";
193 inputMissingMkr = dp +
"test_input_rinex_met_MissingMarkerName";
194 inputInvTimeFmt = dp +
"test_input_rinex_met_InvalidTimeFormat.04m";
195 inputFilterTest1 = dp +
"test_input_rinex_met_Filter1.04m";
196 inputFilterTest2 = dp +
"test_input_rinex_met_Filter2.04m";
197 inputFilterTest3 = dp +
"test_input_rinex_met_Filter3.04m";
198 inputV302 = dp +
"test_input_rinex_met_V302.04m";
200 outputHardCode = tp +
"test_output_rinex_met_Output.txt";
201 outputExtraOutput = tp +
"test_output_rinex_met_ExtraOutput.txt";
202 outputContLines = tp +
"test_output_rinex_met_Cont.txt";
203 outputDumps = tp +
"test_output_rinex_met_Dumps.txt";
204 outputExceptions = tp +
"test_output_rinex_met_DataExceptions.txt";
205 outputFilterTest = tp +
"test_output_rinex_met_Filter.txt";
206 outputV302 = tp +
"test_output_rinex_met_V302.txt";
207 outputV211 = tp +
"test_output_rinex_met_V211.txt";
213 TUDEF(
"RinexMetStream",
"open");
215 ifstream fstr(inputMissing.c_str(), ios::in);
216 testFramework.assert(!fstr,
217 "std::ifstream marked good for non-existent file",
222 testFramework.assert(!mstr,
223 "RinexMetStream marked good for non-existent file",
227 return testFramework.countFails();
237 TUDEF(
"RinexMetHeader",
"bitsAsString" );
239 std::string test_desc =
240 "RinexMetHeader, bitsAsString, file read compared to expected string, did not match";
244 std::string expected_string_a =
"RINEX VERSION / TYPE";
245 std::string expected_string_b =
"PGM / RUN BY / DATE";
246 std::string expected_string_c =
"COMMENT";
247 std::string expected_string_d =
"MARKER NAME";
248 std::string expected_string_e =
"MARKER NUMBER";
249 std::string expected_string_f =
"# / TYPES OF OBSERV";
250 std::string expected_string_g =
"SENSOR MOD/TYPE/ACC";
251 std::string expected_string_h =
"SENSOR POS XYZ/H";
252 std::string expected_string_i =
"END OF HEADER";
253 std::string expected_string_z =
"*UNKNOWN/INVALID BITS*";
277 return( testFramework.countFails() );
285 TUDEF(
"RinexMetHeader",
"bitString" );
287 std::string test_desc =
288 "RinexMetHeader, bitString, test to assure that the version validity bits are what we expect them to be";
289 std::string test_fail =
"";
293 std::string sep=
", ";
294 std::string expected_string_a =
"\"RINEX VERSION / TYPE\"";
295 std::string expected_string_b =
296 "\"RINEX VERSION / TYPE\", \"PGM / RUN BY / DATE\", \"MARKER NAME\", \"# / TYPES OF OBSERV\", \"SENSOR MOD/TYPE/ACC\", \"SENSOR POS XYZ/H\", \"END OF HEADER\"";
298 test_fail =
", validVersion failed";
302 test_fail =
", allValid21 failed";
306 test_fail =
", allValid20 failed";
311 return testFramework.countFails();
321 TUDEF(
"RinexMetHeader",
"exceptions" );
323 std::string msg_test_desc =
324 "RinexMetHeader, reallyPutRecordTest, exception tests";
325 std::string msg_false_pass =
326 ", should have thrown a gnsstk::Exception but did not.";
327 std::string msg_fail =
328 ", should have thrown a gnsstk::Exception but threw an unexpected exception.";
329 std::string msg_test_detail =
"";
338 output.exceptions( std::fstream::failbit );
339 UnSupRinex.exceptions( std::fstream::failbit );
340 MissingMarkerName.exceptions( std::fstream::failbit );
345 msg_test_detail =
", Unsupported Rinex version";
350 TUFAIL( msg_test_desc + msg_test_detail + msg_false_pass );
354 TUPASS( msg_test_desc + msg_test_detail );
358 TUFAIL( msg_test_desc + msg_test_detail + msg_fail );
364 msg_test_detail =
", Missing Marker Name";
368 TUFAIL( msg_test_desc + msg_test_detail + msg_false_pass );
372 TUPASS( msg_test_desc + msg_test_detail );
376 TUFAIL( msg_test_desc + msg_test_detail + msg_fail );
379 return testFramework.countFails();
389 TUDEF(
"RinexMetHeader",
"exceptions" );
391 std::string msg_test_desc =
"";
392 std::string msg_false_pass =
393 ", should have thrown a gnsstk::Exception but did not.";
394 std::string msg_fail =
395 ", should have thrown a gnsstk::Exception but threw an unexpected exception.";
428 inputObsHdrStrErr.c_str() );
433 Normal.exceptions( std::fstream::failbit );
434 BLL.exceptions( std::fstream::failbit );
435 NMF.exceptions( std::fstream::failbit );
436 BOL.exceptions( std::fstream::failbit );
437 FER.exceptions( std::fstream::failbit );
438 ExtraH.exceptions( std::fstream::failbit );
439 UnSupRinex.exceptions( std::fstream::failbit );
440 MissingSPos.exceptions( std::fstream::failbit );
441 ObsHeaderStringError.exceptions( std::fstream::failbit );
442 SensorType.exceptions( std::fstream::failbit );
451 msg_test_desc =
"ExtraH >> RinexMetHeader";
455 TUFAIL(msg_test_desc + msg_false_pass );
463 TUFAIL(msg_test_desc + msg_fail );
468 msg_test_desc =
"UnSupRinex >> RinexMetHeader";
472 TUFAIL(msg_test_desc + msg_false_pass );
480 TUFAIL(msg_test_desc + msg_fail );
485 msg_test_desc =
"MissingSPos >> RinexMetHeader";
489 TUFAIL(msg_test_desc + msg_false_pass );
497 TUFAIL(msg_test_desc + msg_fail );
502 msg_test_desc =
"ObsHeaderStringError >> RinexMetHeader";
506 TUFAIL(msg_test_desc + msg_false_pass );
514 TUFAIL(msg_test_desc + msg_fail );
519 msg_test_desc =
"SensorType >> RinexMetHeader";
523 TUFAIL(msg_test_desc + msg_false_pass );
531 TUFAIL(msg_test_desc + msg_fail );
536 msg_test_desc =
"BLL >> RinexMetHeader";
540 TUFAIL(msg_test_desc + msg_false_pass );
548 TUFAIL(msg_test_desc + msg_fail );
553 msg_test_desc =
"NMF >> RinexMetHeader";
557 TUFAIL(msg_test_desc + msg_false_pass );
565 TUFAIL(msg_test_desc + msg_fail );
570 msg_test_desc =
"BOL >> RinexMetHeader";
574 TUFAIL(msg_test_desc + msg_false_pass );
582 TUFAIL(msg_test_desc + msg_fail );
589 msg_test_desc =
"Normal >> RinexMetHeader";
590 std::string msg_fail_gnsstk =
591 ", should have thrown nothing, but threw a gnsstk::Exception.";
592 std::string msg_fail_other =
593 ", should have thrown nothing, but threw an exception.";
602 TUFAIL(msg_test_desc + msg_fail_gnsstk );
606 TUFAIL(msg_test_desc + msg_fail_other );
611 return testFramework.countFails();
621 TUDEF(
"RinexMetHeader",
"convertObsType" );
622 std::string msg_test_desc =
"convertObsTypeSTRTest, ";
623 std::string msg_test_fail =
"";
639 std::string PRS =
"PR";
640 std::string TDS =
"TD";
641 std::string HRS =
"HR";
642 std::string ZWS =
"ZW";
643 std::string ZDS =
"ZD";
644 std::string ZTS =
"ZT";
645 std::string HIS =
"HI";
647 msg_test_fail =
"convertObsType(PRS) did not return expected value";
649 msg_test_desc + msg_test_fail, __LINE__ );
651 msg_test_fail =
"convertObsType(TDS) did not return expected value";
653 msg_test_desc + msg_test_fail, __LINE__ );
655 msg_test_fail =
"convertObsType(HRS) did not return expected value";
657 msg_test_desc + msg_test_fail, __LINE__ );
659 msg_test_fail =
"convertObsType(ZWS) did not return expected value";
661 msg_test_desc + msg_test_fail, __LINE__ );
663 msg_test_fail =
"convertObsType(ZDS) did not return expected value";
665 msg_test_desc + msg_test_fail, __LINE__ );
667 msg_test_fail =
"convertObsType(ZTS) did not return expected value";
669 msg_test_desc + msg_test_fail, __LINE__ );
671 msg_test_fail =
"convertObsType(HIS) did not return expected value";
673 msg_test_desc + msg_test_fail, __LINE__ );
677 return testFramework.countFails();
688 TUDEF(
"RinexMetHeader",
"convertObsType" );
689 std::string msg_test_desc =
"convertObsTypeHeaderTest, ";
690 std::string msg_test_fail =
"";
705 std::string PRS =
"PR";
706 std::string TDS =
"TD";
707 std::string HRS =
"HR";
708 std::string ZWS =
"ZW";
709 std::string ZDS =
"ZD";
710 std::string ZTS =
"ZT";
712 msg_test_fail =
"convertObsType(PR) did not return expected value";
714 msg_test_desc + msg_test_fail, __LINE__ );
716 msg_test_fail =
"convertObsType(TD) did not return expected value";
718 msg_test_desc + msg_test_fail, __LINE__ );
720 msg_test_fail =
"convertObsType(HR) did not return expected value";
722 msg_test_desc + msg_test_fail, __LINE__ );
724 msg_test_fail =
"convertObsType(ZW) did not return expected value";
726 msg_test_desc + msg_test_fail, __LINE__ );
728 msg_test_fail =
"convertObsType(ZD) did not return expected value";
730 msg_test_desc + msg_test_fail, __LINE__ );
732 msg_test_fail =
"convertObsType(ZT) did not return expected value";
734 msg_test_desc + msg_test_fail, __LINE__ );
740 msg_test_desc =
"convertObsType( \"KE\" ), should throw gnsstk::FFStreamError";
741 std::string msg_false_pass =
", but threw no exceptions.";
742 std::string msg_fail_other =
", but threw a different exception.";
746 TUFAIL(msg_test_desc + msg_false_pass );
748 catch(gnsstk::FFStreamError)
754 TUFAIL(msg_test_desc + msg_fail_other );
760 return testFramework.countFails();
773 TUDEF(
"RinexMetHeader",
"version" );
774 std::string msg_test_desc =
"RinexMetHeader data member value tests, ";
775 std::string msg_test_fail =
"";
781 testRinexMetStream >> testRinexMetHeader;
787 msg_test_fail =
"RinexMetHeader.version, does not match expected value ";
788 testFramework.assert( testRinexMetHeader.version == 2.1,
789 msg_test_desc + msg_test_fail, __LINE__ );
791 msg_test_fail =
"RinexMetHeader.fileType, does not match expected value ";
792 testFramework.assert( testRinexMetHeader.fileType == (std::string)
"Meteorological",
793 msg_test_desc + msg_test_fail, __LINE__ );
795 msg_test_fail =
"RinexMetHeader.fileProgram, does not match expected value ";
796 testFramework.assert( testRinexMetHeader.fileProgram == (std::string)
"GFW - RMW",
797 msg_test_desc + msg_test_fail, __LINE__ );
799 msg_test_fail =
"RinexMetHeader.fileAgency, does not match expected value ";
800 testFramework.assert( testRinexMetHeader.fileAgency == (std::string)
"NIMA",
801 msg_test_desc + msg_test_fail, __LINE__ );
803 msg_test_fail =
"RinexMetHeader.date, does not match expected value ";
804 testFramework.assert( testRinexMetHeader.date == (std::string)
805 "04/18/2004 23:58:50", msg_test_desc + msg_test_fail, __LINE__ );
808 std::vector<std::string>::const_iterator itr1 =
810 msg_test_fail =
"weather data correct values message does not match";
811 while( itr1 != testRinexMetHeader.commentList.end() )
813 testFramework.assert( (*itr1) == (std::string)
814 "Some weather data may have corrected values", msg_test_desc + msg_test_fail,
820 msg_test_fail =
"RinexMetHeader.markerName, does not match expected value ";
821 testFramework.assert( testRinexMetHeader.markerName == (std::string)
"85408",
822 msg_test_desc + msg_test_fail, __LINE__ );
824 msg_test_fail =
"RinexMetHeader.markerNumber, does not match expected value ";
825 testFramework.assert( testRinexMetHeader.markerNumber == (std::string)
"85408",
826 msg_test_desc + msg_test_fail, __LINE__ );
830 "testRinexMetHeader.convertObsType(iterator) did not return expected value PR";
831 vector<RinexMetHeader::RinexMetType>::const_iterator itr2 =
832 testRinexMetHeader.obsTypeList.begin();
833 if( itr2 != testRinexMetHeader.obsTypeList.end() )
835 testFramework.assert( testRinexMetHeader.convertObsType(*itr2) == (std::string)
"PR",
836 msg_test_desc + msg_test_fail, __LINE__ );
846 "testRinexMetHeader.convertObsType(iterator) did not return expected value TD";
847 if( itr2 != testRinexMetHeader.obsTypeList.end() )
849 testFramework.assert( testRinexMetHeader.convertObsType(*itr2) == (std::string)
"TD",
850 msg_test_desc + msg_test_fail, __LINE__ );
860 "testRinexMetHeader.convertObsType(iterator) did not return expected value HI";
861 if( itr2 != testRinexMetHeader.obsTypeList.end() )
863 testFramework.assert( testRinexMetHeader.convertObsType(*itr2) == (std::string)
"HI",
864 msg_test_desc + msg_test_fail, __LINE__ );
874 vector<RinexMetHeader::sensorType>::const_iterator itr3 =
875 testRinexMetHeader.sensorTypeList.begin();
876 if( itr3 != testRinexMetHeader.sensorTypeList.end() )
879 "RinexMetHeader.sensorTypeList iterator.model did not return expected value Vaisala";
880 testFramework.assert( (*itr3).model == (std::string)
"Vaisala",
881 msg_test_desc + msg_test_fail, __LINE__ );
884 "RinexMetHeader.sensorTypeList iterator.type did not return expected value PTB220";
885 testFramework.assert( (*itr3).type == (std::string)
"PTB220",
886 msg_test_desc + msg_test_fail, __LINE__ );
889 "RinexMetHeader.sensorTypeList iterator.accuracy did not return expected value 0.1";
890 testFramework.assert( (*itr3).accuracy == 0.1, msg_test_desc + msg_test_fail,
894 "RinexMetHeader.convertObsType iterator.obsType did not return expected value PR";
895 testFramework.assert( testRinexMetHeader.convertObsType((*itr3).obsType) ==
896 (std::string)
"PR", msg_test_desc + msg_test_fail, __LINE__ );
904 "RinexMetHeader.sensorTypeList iterator.model test is in a block that failed";
905 TUFAIL(msg_test_desc + msg_test_fail );
907 "RinexMetHeader.sensorTypeList iterator.type test is in a block that failed";
908 TUFAIL(msg_test_desc + msg_test_fail );
910 "RinexMetHeader.sensorTypeList iterator.accuracy test is in a block that failed";
911 TUFAIL(msg_test_desc + msg_test_fail );
913 "RinexMetHeader.convertObsType iterator.obsType test is in a block that failed";
914 TUFAIL(msg_test_desc + msg_test_fail );
920 if( itr3 != testRinexMetHeader.sensorTypeList.end() )
923 "RinexMetHeader.sensorTypeList iterator.model did not return expected value Vaisala";
924 testFramework.assert( (*itr3).model == (std::string)
"Vaisala",
925 msg_test_desc + msg_test_fail, __LINE__ );
928 "RinexMetHeader.sensorTypeList iterator.type did not return expected value HMP230";
929 testFramework.assert( (*itr3).type == (std::string)
"HMP230",
930 msg_test_desc + msg_test_fail, __LINE__ );
933 "RinexMetHeader.sensorTypeList iterator.accuracy did not return expected value 0.1";
934 testFramework.assert( (*itr3).accuracy == 0.1, msg_test_desc + msg_test_fail,
938 "RinexMetHeader.convertObsType iterator.obsType did not return expected value TD";
939 testFramework.assert( testRinexMetHeader.convertObsType((*itr3).obsType) ==
940 (std::string)
"TD", msg_test_desc + msg_test_fail, __LINE__ );
948 "RinexMetHeader.sensorTypeList iterator.model test is in a block that failed";
949 TUFAIL(msg_test_desc + msg_test_fail );
951 "RinexMetHeader.sensorTypeList iterator.type test is in a block that failed";
952 TUFAIL(msg_test_desc + msg_test_fail );
954 "RinexMetHeader.sensorTypeList iterator.accuracy test is in a block that failed";
955 TUFAIL(msg_test_desc + msg_test_fail );
957 "RinexMetHeader.convertObsType iterator.obsType test is in a block that failed";
958 TUFAIL(msg_test_desc + msg_test_fail );
964 if( itr3 != testRinexMetHeader.sensorTypeList.end() )
967 "RinexMetHeader.sensorTypeList iterator.model did not return expected value Vaisala";
968 testFramework.assert( (*itr3).model == (std::string)
"Vaisala",
969 msg_test_desc + msg_test_fail, __LINE__ );
972 "RinexMetHeader.sensorTypeList iterator.type did not return expected value HMP230";
973 testFramework.assert( (*itr3).type == (std::string)
"HMP230",
974 msg_test_desc + msg_test_fail, __LINE__ );
977 "RinexMetHeader.sensorTypeList iterator.accuracy did not return expected value 0.1";
978 testFramework.assert( (*itr3).accuracy == 0.1, msg_test_desc + msg_test_fail,
982 "RinexMetHeader.convertObsType iterator.obsType did not return expected value HI";
983 testFramework.assert( testRinexMetHeader.convertObsType((*itr3).obsType) ==
984 (std::string)
"HI", msg_test_desc + msg_test_fail, __LINE__ );
993 "RinexMetHeader.sensorTypeList iterator.model test is in a block that failed";
994 TUFAIL(msg_test_desc + msg_test_fail );
996 "RinexMetHeader.sensorTypeList iterator.type test is in a block that failed";
997 TUFAIL(msg_test_desc + msg_test_fail );
999 "RinexMetHeader.sensorTypeList iterator.accuracy test is in a block that failed";
1000 TUFAIL(msg_test_desc + msg_test_fail );
1002 "RinexMetHeader.convertObsType iterator.obsType test is in a block that failed";
1003 TUFAIL(msg_test_desc + msg_test_fail );
1008 vector<RinexMetHeader::sensorPosType>::const_iterator itr4 =
1009 testRinexMetHeader.sensorPosList.begin();
1011 if( itr4 != testRinexMetHeader.sensorPosList.end() )
1014 "RinexMetHeader.sensorPosType iterator.position[0] did not return expected value";
1015 testFramework.assert( (*itr4).position[0] == -740289.8363,
1016 msg_test_desc + msg_test_fail, __LINE__ );
1019 "RinexMetHeader.sensorPosType iterator.position[1] did not return expected value";
1020 testFramework.assert( (*itr4).position[1] == -5457071.7414,
1021 msg_test_desc + msg_test_fail, __LINE__ );
1024 "RinexMetHeader.sensorPosType iterator.position[2] did not return expected value";
1025 testFramework.assert( (*itr4).position[2] == 3207245.6207,
1026 msg_test_desc + msg_test_fail, __LINE__ );
1029 "RinexMetHeader.sensorPosType iterator.height did not return expected value";
1030 testFramework.assert( (*itr4).height == 0.0000,
1031 msg_test_desc + msg_test_fail, __LINE__ );
1034 "RinexMetHeader.convertObsType iterator.obsType did not return expected value PR";
1035 testFramework.assert( testRinexMetHeader.convertObsType((*itr4).obsType) ==
1036 (std::string)
"PR", msg_test_desc + msg_test_fail, __LINE__ );
1045 "RinexMetHeader.sensorPosType iterator.position[0] test is in a block that failed";
1046 TUFAIL(msg_test_desc + msg_test_fail );
1048 "RinexMetHeader.sensorPosType iterator.position[1] test is in a block that failed";
1049 TUFAIL(msg_test_desc + msg_test_fail );
1051 "RinexMetHeader.sensorPosType iterator.position[2] test is in a block that failed";
1052 TUFAIL(msg_test_desc + msg_test_fail );
1054 "RinexMetHeader.sensorPosType iterator.height test is in a block that failed";
1055 TUFAIL(msg_test_desc + msg_test_fail );
1057 "RinexMetHeader.convertObsType iterator.obsType test is in a block that failed";
1058 TUFAIL(msg_test_desc + msg_test_fail );
1063 if( itr4 != testRinexMetHeader.sensorPosList.end() )
1066 "RinexMetHeader.sensorPosType iterator.position[0] did not return expected value";
1067 testFramework.assert( (*itr4).position[0] == -740289.8363,
1068 msg_test_desc + msg_test_fail, __LINE__ );
1071 "RinexMetHeader.sensorPosType iterator.position[1] did not return expected value";
1072 testFramework.assert( (*itr4).position[1] == -5457071.7414,
1073 msg_test_desc + msg_test_fail, __LINE__ );
1076 "RinexMetHeader.sensorPosType iterator.position[2] did not return expected value";
1077 testFramework.assert( (*itr4).position[2] == 3207245.6207,
1078 msg_test_desc + msg_test_fail, __LINE__ );
1081 "RinexMetHeader.sensorPosType iterator.height did not return expected value";
1082 testFramework.assert( (*itr4).height == 0.0000,
1083 msg_test_desc + msg_test_fail, __LINE__ );
1086 "RinexMetHeader.convertObsType iterator.obsType did not return expected value TD";
1087 testFramework.assert( testRinexMetHeader.convertObsType((*itr4).obsType) ==
1088 (std::string)
"TD", msg_test_desc + msg_test_fail, __LINE__ );
1095 "RinexMetHeader.sensorPosType iterator.position[0] test is in a block that failed";
1096 TUFAIL(msg_test_desc + msg_test_fail );
1098 "RinexMetHeader.sensorPosType iterator.position[1] test is in a block that failed";
1099 TUFAIL(msg_test_desc + msg_test_fail );
1101 "RinexMetHeader.sensorPosType iterator.position[2] test is in a block that failed";
1102 TUFAIL(msg_test_desc + msg_test_fail );
1104 "RinexMetHeader.sensorPosType iterator.height test is in a block that failed";
1105 TUFAIL(msg_test_desc + msg_test_fail );
1107 "RinexMetHeader.convertObsType iterator.obsType test is in a block that failed";
1108 TUFAIL(msg_test_desc + msg_test_fail );
1116 out << testRinexMetHeader;
1118 testRinexMetStream >> testRinexMetData;
1121 msg_test_desc =
"RinexMetData data member value tests, ";
1126 msg_test_fail =
"RinexMetData.time did not equal TimeGuess";
1128 msg_test_desc + msg_test_fail, __LINE__ );
1130 msg_test_fail =
"RinexMetData.data for PR does not match expected value ";
1131 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"PR" )]
1132 == 992.6, msg_test_desc + msg_test_fail, __LINE__ );
1134 msg_test_fail =
"RinexMetData.data for TD does not match expected value ";
1135 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"TD" )]
1136 == 23.9, msg_test_desc + msg_test_fail, __LINE__ );
1138 msg_test_fail =
"RinexMetData.data for HI does not match expected value ";
1139 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"HI" )]
1140 == 59.7, msg_test_desc + msg_test_fail, __LINE__ );
1142 out << testRinexMetData;
1143 testRinexMetStream >> testRinexMetData;
1146 msg_test_fail =
"RinexMetData.time did not equal TimeGuess2";
1148 msg_test_desc + msg_test_fail, __LINE__ );
1150 msg_test_fail =
"RinexMetData.data for PR does not match expected value";
1151 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"PR" )]
1152 == 992.8, msg_test_desc + msg_test_fail, __LINE__ );
1154 msg_test_fail =
"RinexMetData.data for TD does not match expected value";
1155 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"TD" )]
1156 == 23.6, msg_test_desc + msg_test_fail, __LINE__ );
1158 msg_test_fail =
"RinexMetData.data for HI does not match expected value";
1159 testFramework.assert( testRinexMetData.data[testRinexMetHeader.convertObsType(
"HI" )]
1160 == 61.6, msg_test_desc + msg_test_fail, __LINE__ );
1162 out << testRinexMetData;
1163 while( testRinexMetStream >> testRinexMetData )
1165 out << testRinexMetData;
1169 "files not equal, inputNormal and outputHardCode";
1170 testFramework.assert( testFramework.fileEqualTest( inputNormal, outputHardCode,
1171 2), msg_test_desc + msg_test_fail, __LINE__ );
1174 testRinexMetHeader.dump( MetDumps );
1175 testRinexMetData.dump( MetDumps );
1178 return testFramework.countFails();
1190 TUDEF(
"RinexMetHeader",
"continuation" );
1191 std::string msg_test_desc =
"continuation file comparison";
1192 std::string msg_test_fail =
1193 ", files are not equal, inputContLines outputContLines";
1194 std::string msg_fail_exception =
", threw unexpected exception";
1217 testFramework.assert( testFramework.fileEqualTest( inputContLines,
1218 outputContLines, 2), msg_test_desc + msg_test_fail, __LINE__ );
1222 TUFAIL(msg_test_desc + msg_fail_exception );
1224 return testFramework.countFails();
1239 TUDEF(
"RinexMetHeader",
"nodata" );
1240 std::string msg_test_desc =
"dataExceptionsTest, ";
1241 std::string msg_test_fail =
"";
1249 NoObs.exceptions( std::fstream::failbit );
1250 InvalidTimeFormat.exceptions( std::fstream::failbit );
1251 out.exceptions( std::fstream::failbit );
1263 TUFAIL(
"Failed to write valid header");
1268 while( NoObs >> rme )
1276 TUFAIL(
"Failed to read/write valid data");
1280 InvalidTimeFormat >> rme;
1281 TUFAIL(
"Read improperly formatted data");
1287 InvalidTimeFormat.clear();
1294 InvalidTimeFormat >> rme;
1295 TUFAIL(
"Read improperly formatted data");
1301 InvalidTimeFormat.clear();
1307 return testFramework.countFails();
1319 TUDEF(
"RinexMetStream",
"filter" );
1320 std::string msg_test_desc =
"filterOperatorsTest, ";
1321 std::string msg_test_fail =
"";
1327 FilterStream1.
open( inputFilterTest1.c_str(), std::ios::in );
1341 FilterStream1 >> FilterHeader1;
1342 FilterStream2 >> FilterHeader2;
1343 FilterStream3 >> FilterHeader3;
1345 while( FilterStream1 >> rmdata )
1347 FilterData1 = rmdata;
1349 while( FilterStream2 >> rmdata )
1351 FilterData2 = rmdata;
1353 while( FilterStream3 >> rmdata )
1355 FilterData3 = rmdata;
1359 merged( FilterHeader1 );
1360 merged( FilterHeader2 );
1367 "Check to see if two equivalent files have the same times. They DO NOT.";
1368 testFramework.assert( EqualsSimple(FilterData1, FilterData2) ==
true,
1369 msg_test_desc + msg_test_fail, __LINE__ );
1372 "Check to see if two files with different times have the same time values. They DO.";
1373 testFramework.assert( EqualsSimple(FilterData1, FilterData3) ==
false,
1374 msg_test_desc + msg_test_fail, __LINE__ );
1378 "Check to see if one file occurred earlier than another using equivalent files. One is found to be earlier than the other.";
1379 testFramework.assert( LessThanSimple(FilterData1, FilterData2) ==
false,
1380 msg_test_desc + msg_test_fail, __LINE__ );
1383 "Check to see if one file occurred earlier than another using two files with different times. The earlier file is not found to be earlier.";
1384 testFramework.assert( LessThanSimple(FilterData1, FilterData3) ==
true,
1385 msg_test_desc + msg_test_fail, __LINE__ );
1390 "Perform the full less than comparison on two identical files. FilterData1 has been found to be different than FilterData2.";
1391 testFramework.assert( LessThanFull(FilterData1, FilterData2) ==
false,
1392 msg_test_desc + msg_test_fail, __LINE__ );
1395 "Perform the full less than comparison on two identical files. FilterData1 has been found to be different than FilterData2.";
1396 testFramework.assert( LessThanFull(FilterData2, FilterData1) ==
false,
1397 msg_test_desc + msg_test_fail, __LINE__ );
1400 "Perform the full less than comparison on two different files. FilterData1, an earlier date, has been found to NOT be less than FilterData3.";
1401 testFramework.assert( LessThanFull(FilterData1, FilterData3) ==
true,
1402 msg_test_desc + msg_test_fail, __LINE__ );
1405 "Perform the full less than comparison on two different files. FilterData3, a later date, has been found to be less than FilterData1.";
1406 testFramework.assert( LessThanFull(FilterData3, FilterData1) ==
false,
1407 msg_test_desc + msg_test_fail, __LINE__ );
1417 "FilterTime(FilterData1) == true, should evaluate as true but evaluated as false";
1418 testFramework.assert( FilterTime(FilterData1) ==
true, msg_test_desc + msg_test_fail,
1422 "FilterTime2(FilterData1) == false, should evaluate as true but evaluated as false";
1423 testFramework.assert( FilterTime2(FilterData1) ==
false,
1424 msg_test_desc + msg_test_fail, __LINE__ );
1428 cout << exc << endl;
1429 msg_test_fail =
"Unexpected exception was thrown";
1430 TUFAIL(msg_test_desc + msg_test_fail );
1434 msg_test_fail =
"Unexpected exception was thrown";
1435 TUFAIL(msg_test_desc + msg_test_fail );
1438 return testFramework.countFails();
1450 bool makeAndCompare(
string inFile,
string outFile,
string expFile,
double outVersion)
1452 TUDEF(
"RinexMetData",
"versionTest" );
1457 inStream.exceptions(ifstream::failbit);
1458 outStream.exceptions(ofstream::failbit);
1462 inStream >> testHeader;
1463 testHeader.
version = outVersion;
1465 outStream << testHeader;
1468 while( inStream >> testData )
1470 outStream << testData;
1477 return testFramework.fileEqualTest( expFile, outFile, 2);
1482 TUDEF(
"RinexMetData",
"versionTest" );
1516 cout <<
"Total Failures for " << __FILE__ <<
": " << errorTotal << endl;
1518 return( errorTotal );