From e6e2c5a8bf5c99119799c9ac706c4428fec6b5aa Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Mon, 24 Jan 2022 16:41:02 +0100 Subject: Improve tests --- src/pgnp.hpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/pgnp.hpp') diff --git a/src/pgnp.hpp b/src/pgnp.hpp index a89de73..0e9c7a5 100644 --- a/src/pgnp.hpp +++ b/src/pgnp.hpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -24,6 +25,7 @@ public: HalfMove(); ~HalfMove(); + /// @brief Get number of HalfMove in the MailLine int GetLength(); /// @brief Dump move and all its variations void Dump(); @@ -66,6 +68,21 @@ struct UnexpectedEOF : public std::exception { const char *what() const throw() { return "Unexpected end of pgn file"; } }; +struct InvalidTagName : public std::exception { + const char *what() const throw() { return "Invalid tag name"; } +}; + +struct UnexpectedCharacter : public std::exception { + std::string msg; + UnexpectedCharacter(char actual, char required, int loc) { + std::stringstream ss; + ss << "Expected \'" << required << "\' at location " << loc + << " but read \'" << actual << "\'"; + msg = ss.str(); + } + const char *what() const throw() { return msg.c_str(); } +}; + struct STRCheckFailed : public std::exception { const char *what() const throw() { return "Seven Tag Roster compliance check failed"; -- cgit v1.2.3