Robust coded location error handling

This commit is contained in:
Dan Paulat 2022-01-27 00:52:30 -06:00
parent 7d503ec506
commit 8f3baaa7c3
4 changed files with 131 additions and 13 deletions

View file

@ -228,5 +228,29 @@ TEST(CodedLocation, MalformedData)
EXPECT_EQ(dataValid, false);
}
TEST(CodedLocation, InvalidWFOToken)
{
std::vector<std::string> data = {
"LAT...LON abcd 14509 1371 18195 1348 14463 1325 14492"};
CodedLocation location;
bool dataValid = location.Parse(data);
EXPECT_EQ(dataValid, false);
}
TEST(CodedLocation, InvalidNCToken)
{
std::vector<std::string> data = {
"LAT...LON 4731abcd 47216795 46466767 45436766 44756779",
" 44216834 43816943 43706970 43837006 44497009",
" 45306974 46356946 46976921"};
CodedLocation location;
bool dataValid = location.Parse(data);
EXPECT_EQ(dataValid, false);
}
} // namespace awips
} // namespace scwx

View file

@ -106,5 +106,38 @@ TEST(CodedTimeMotionLocation, MalformedData)
EXPECT_EQ(dataValid, false);
}
TEST(CodedTimeMotionLocation, InvalidDirection)
{
std::vector<std::string> data = {
"TIME...MOT...LOC 1959Z ZZZDEG 0KT 3253 11464"};
CodedTimeMotionLocation tml;
bool dataValid = tml.Parse(data);
EXPECT_EQ(dataValid, false);
}
TEST(CodedTimeMotionLocation, InvalidSpeed)
{
std::vector<std::string> data = {
"TIME...MOT...LOC 1959Z 254DEG ZKT 3253 11464"};
CodedTimeMotionLocation tml;
bool dataValid = tml.Parse(data);
EXPECT_EQ(dataValid, false);
}
TEST(CodedTimeMotionLocation, InvalidLocation)
{
std::vector<std::string> data = {
"TIME...MOT...LOC 1959Z 254DEG 0KT ZZZZ 11464"};
CodedTimeMotionLocation tml;
bool dataValid = tml.Parse(data);
EXPECT_EQ(dataValid, false);
}
} // namespace awips
} // namespace scwx