Fix Node::size() after removing node from sequence (#820)

This commit is contained in:
JeffWegher
2020-02-14 12:38:58 -08:00
committed by GitHub
parent ce056acab7
commit 29dcf92f87
2 changed files with 51 additions and 5 deletions

View File

@@ -59,6 +59,19 @@ TEST(NodeTest, SequenceElementRemoval) {
EXPECT_EQ("c", node[1].as<std::string>());
}
TEST(NodeTest, SequenceElementRemovalSizeCheck) {
Node node;
node[0] = "a";
node[1] = "b";
node[2] = "c";
EXPECT_EQ(3, node.size());
node.remove(1);
EXPECT_TRUE(node.IsSequence());
EXPECT_EQ(2, node.size());
EXPECT_EQ("a", node[0].as<std::string>());
EXPECT_EQ("c", node[1].as<std::string>());
}
TEST(NodeTest, SequenceFirstElementRemoval) {
Node node;
node[0] = "a";
@@ -71,6 +84,19 @@ TEST(NodeTest, SequenceFirstElementRemoval) {
EXPECT_EQ("c", node[1].as<std::string>());
}
TEST(NodeTest, SequenceFirstElementRemovalSizeCheck) {
Node node;
node[0] = "a";
node[1] = "b";
node[2] = "c";
EXPECT_EQ(3, node.size());
node.remove(0);
EXPECT_TRUE(node.IsSequence());
EXPECT_EQ(2, node.size());
EXPECT_EQ("b", node[0].as<std::string>());
EXPECT_EQ("c", node[1].as<std::string>());
}
TEST(NodeTest, SequenceLastElementRemoval) {
Node node;
node[0] = "a";
@@ -83,6 +109,19 @@ TEST(NodeTest, SequenceLastElementRemoval) {
EXPECT_EQ("b", node[1].as<std::string>());
}
TEST(NodeTest, SequenceLastElementRemovalSizeCheck) {
Node node;
node[0] = "a";
node[1] = "b";
node[2] = "c";
EXPECT_EQ(3, node.size());
node.remove(2);
EXPECT_TRUE(node.IsSequence());
EXPECT_EQ(2, node.size());
EXPECT_EQ("a", node[0].as<std::string>());
EXPECT_EQ("b", node[1].as<std::string>());
}
TEST(NodeTest, NodeAssignment) {
Node node1;
Node node2;