From 503debfeb8754653b61b1fc8a81cb16233627eb4 Mon Sep 17 00:00:00 2001 From: kartik arcot Date: Tue, 24 Jan 2023 11:27:49 -0800 Subject: [PATCH] modification --- gtsam/discrete/SignatureParser.cpp | 2 ++ gtsam/discrete/tests/testSignatureParser.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gtsam/discrete/SignatureParser.cpp b/gtsam/discrete/SignatureParser.cpp index ab259d0ea..2081e1ee1 100644 --- a/gtsam/discrete/SignatureParser.cpp +++ b/gtsam/discrete/SignatureParser.cpp @@ -33,6 +33,8 @@ std::optional static ParseConditional(const std::string& token) { // can throw exception row.push_back(std::stod(s)); } + // if we ended with a '/' then return false + if (token.back() == '/') return false; } catch (...) { return std::nullopt; } diff --git a/gtsam/discrete/tests/testSignatureParser.cpp b/gtsam/discrete/tests/testSignatureParser.cpp index 5ae71442e..933d55d8b 100644 --- a/gtsam/discrete/tests/testSignatureParser.cpp +++ b/gtsam/discrete/tests/testSignatureParser.cpp @@ -85,11 +85,16 @@ TEST(SimpleParser, Gibberish) { // If Gibberish is in the middle, it should not parse. TEST(SimpleParser, GibberishInMiddle) { - SignatureParser::Table expectedTable{{1, 1}, {2, 3}}; const auto table = SignatureParser::Parse("1/1 2/3 sdf 1/4"); EXPECT(!table); } +// A test with slash in the end +TEST(SimpleParser, SlashInEnd) { + const auto table = SignatureParser::parse("1/1 2/"); + EXPECT(!table); +} + /* ************************************************************************* */ int main() {