Added test for Parser’s cursor position.
This commit is contained in:
parent
67c9e2148d
commit
8f705b0737
@ -83,6 +83,65 @@ TEST(UtilsTests, ParseEndOfFile)
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
TEST(UtilsTests, ParserPosition)
|
||||||
|
{
|
||||||
|
std::stringstream s("123\n4\ntest1\n test2\ntest3 \n\n\n\n\n");
|
||||||
|
plasp::utils::Parser p(s);
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 1u);
|
||||||
|
ASSERT_EQ(p.column(), 1u);
|
||||||
|
ASSERT_EQ(p.currentCharacter(), '1');
|
||||||
|
|
||||||
|
p.advance();
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 1u);
|
||||||
|
ASSERT_EQ(p.column(), 2u);
|
||||||
|
ASSERT_EQ(p.currentCharacter(), '2');
|
||||||
|
|
||||||
|
p.advance();
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 1u);
|
||||||
|
ASSERT_EQ(p.column(), 3u);
|
||||||
|
ASSERT_EQ(p.currentCharacter(), '3');
|
||||||
|
|
||||||
|
p.advance();
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 1u);
|
||||||
|
ASSERT_EQ(p.column(), 4u);
|
||||||
|
ASSERT_EQ(p.currentCharacter(), '\n');
|
||||||
|
|
||||||
|
p.advance();
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 2u);
|
||||||
|
ASSERT_EQ(p.column(), 1u);
|
||||||
|
ASSERT_EQ(p.currentCharacter(), '4');
|
||||||
|
|
||||||
|
p.advance();
|
||||||
|
|
||||||
|
p.expect<std::string>("test1");
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 3u);
|
||||||
|
ASSERT_EQ(p.column(), 6u);
|
||||||
|
|
||||||
|
p.expect<std::string>("test2");
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 4u);
|
||||||
|
ASSERT_EQ(p.column(), 7u);
|
||||||
|
|
||||||
|
p.expect<std::string>("test3");
|
||||||
|
|
||||||
|
ASSERT_EQ(p.row(), 5u);
|
||||||
|
ASSERT_EQ(p.column(), 6u);
|
||||||
|
|
||||||
|
p.skipWhiteSpace();
|
||||||
|
|
||||||
|
ASSERT_TRUE(p.atEndOfFile());
|
||||||
|
ASSERT_EQ(p.row(), 10u);
|
||||||
|
ASSERT_EQ(p.column(), 1u);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
TEST(UtilsTests, EscapeASP)
|
TEST(UtilsTests, EscapeASP)
|
||||||
{
|
{
|
||||||
const std::string predicate = "action(stack_on(block-1, block-2, value@3, value@4))";
|
const std::string predicate = "action(stack_on(block-1, block-2, value@3, value@4))";
|
||||||
|
Reference in New Issue
Block a user