"src/scanscalar.cpp" did not exist on "d076252dffa7e42137ef0ea030a8965bf6f0cb06"
Commit 3a88c4b4 authored by Jesse Beder's avatar Jesse Beder
Browse files

Added IsNull, IsScalar, IsSequence, IsMap functions, so you don't have to query Type()

parent 69af9b42
...@@ -29,6 +29,10 @@ namespace YAML ...@@ -29,6 +29,10 @@ namespace YAML
~Node(); ~Node();
NodeType::value Type() const; NodeType::value Type() const;
bool IsNull() const { return Type() == NodeType::Null; }
bool IsScalar() const { return Type() == NodeType::Scalar; }
bool IsSequence() const { return Type() == NodeType::Sequence; }
bool IsMap() const { return Type() == NodeType::Map; }
// access // access
template<typename T> const T as() const; template<typename T> const T as() const;
......
...@@ -21,7 +21,7 @@ namespace Test ...@@ -21,7 +21,7 @@ namespace Test
TEST SimpleScalar() TEST SimpleScalar()
{ {
YAML::Node node = YAML::Node("Hello, World!"); YAML::Node node = YAML::Node("Hello, World!");
YAML_ASSERT(node.Type() == YAML::NodeType::Scalar); YAML_ASSERT(node.IsScalar());
YAML_ASSERT(node.as<std::string>() == "Hello, World!"); YAML_ASSERT(node.as<std::string>() == "Hello, World!");
return true; return true;
} }
...@@ -29,7 +29,7 @@ namespace Test ...@@ -29,7 +29,7 @@ namespace Test
TEST IntScalar() TEST IntScalar()
{ {
YAML::Node node = YAML::Node(15); YAML::Node node = YAML::Node(15);
YAML_ASSERT(node.Type() == YAML::NodeType::Scalar); YAML_ASSERT(node.IsScalar());
YAML_ASSERT(node.as<int>() == 15); YAML_ASSERT(node.as<int>() == 15);
return true; return true;
} }
...@@ -40,12 +40,12 @@ namespace Test ...@@ -40,12 +40,12 @@ namespace Test
node.append(10); node.append(10);
node.append("foo"); node.append("foo");
node.append("monkey"); node.append("monkey");
YAML_ASSERT(node.Type() == YAML::NodeType::Sequence); YAML_ASSERT(node.IsSequence());
YAML_ASSERT(node.size() == 3); YAML_ASSERT(node.size() == 3);
YAML_ASSERT(node[0].as<int>() == 10); YAML_ASSERT(node[0].as<int>() == 10);
YAML_ASSERT(node[1].as<std::string>() == "foo"); YAML_ASSERT(node[1].as<std::string>() == "foo");
YAML_ASSERT(node[2].as<std::string>() == "monkey"); YAML_ASSERT(node[2].as<std::string>() == "monkey");
YAML_ASSERT(node.Type() == YAML::NodeType::Sequence); YAML_ASSERT(node.IsSequence());
return true; return true;
} }
...@@ -55,12 +55,12 @@ namespace Test ...@@ -55,12 +55,12 @@ namespace Test
node[0] = 10; node[0] = 10;
node[1] = "foo"; node[1] = "foo";
node[2] = "monkey"; node[2] = "monkey";
YAML_ASSERT(node.Type() == YAML::NodeType::Sequence); YAML_ASSERT(node.IsSequence());
YAML_ASSERT(node.size() == 3); YAML_ASSERT(node.size() == 3);
YAML_ASSERT(node[0].as<int>() == 10); YAML_ASSERT(node[0].as<int>() == 10);
YAML_ASSERT(node[1].as<std::string>() == "foo"); YAML_ASSERT(node[1].as<std::string>() == "foo");
YAML_ASSERT(node[2].as<std::string>() == "monkey"); YAML_ASSERT(node[2].as<std::string>() == "monkey");
YAML_ASSERT(node.Type() == YAML::NodeType::Sequence); YAML_ASSERT(node.IsSequence());
return true; return true;
} }
...@@ -68,7 +68,7 @@ namespace Test ...@@ -68,7 +68,7 @@ namespace Test
{ {
YAML::Node node; YAML::Node node;
node["key"] = "value"; node["key"] = "value";
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node["key"].as<std::string>() == "value"); YAML_ASSERT(node["key"].as<std::string>() == "value");
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
return true; return true;
...@@ -79,7 +79,7 @@ namespace Test ...@@ -79,7 +79,7 @@ namespace Test
YAML::Node node; YAML::Node node;
node["key"] = "value"; node["key"] = "value";
node["undefined"]; node["undefined"];
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node["key"].as<std::string>() == "value"); YAML_ASSERT(node["key"].as<std::string>() == "value");
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
...@@ -193,7 +193,7 @@ namespace Test ...@@ -193,7 +193,7 @@ namespace Test
{ {
YAML::Node node; YAML::Node node;
node[0] = node; node[0] = node;
YAML_ASSERT(node.Type() == YAML::NodeType::Sequence); YAML_ASSERT(node.IsSequence());
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
YAML_ASSERT(node[0] == node); YAML_ASSERT(node[0] == node);
YAML_ASSERT(node[0][0] == node); YAML_ASSERT(node[0][0] == node);
...@@ -205,7 +205,7 @@ namespace Test ...@@ -205,7 +205,7 @@ namespace Test
{ {
YAML::Node node; YAML::Node node;
node["key"] = node; node["key"] = node;
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
YAML_ASSERT(node["key"] == node); YAML_ASSERT(node["key"] == node);
YAML_ASSERT(node["key"]["key"] == node); YAML_ASSERT(node["key"]["key"] == node);
...@@ -217,7 +217,7 @@ namespace Test ...@@ -217,7 +217,7 @@ namespace Test
{ {
YAML::Node node; YAML::Node node;
node[node] = "value"; node[node] = "value";
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
YAML_ASSERT(node[node].as<std::string>() == "value"); YAML_ASSERT(node[node].as<std::string>() == "value");
return true; return true;
...@@ -227,7 +227,7 @@ namespace Test ...@@ -227,7 +227,7 @@ namespace Test
{ {
YAML::Node node; YAML::Node node;
node[node] = node; node[node] = node;
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
YAML_ASSERT(node[node] == node); YAML_ASSERT(node[node] == node);
YAML_ASSERT(node[node][node] == node); YAML_ASSERT(node[node][node] == node);
...@@ -240,7 +240,7 @@ namespace Test ...@@ -240,7 +240,7 @@ namespace Test
YAML::Node node; YAML::Node node;
YAML::Node tmp = node["key"]; YAML::Node tmp = node["key"];
tmp = "value"; tmp = "value";
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node.size() == 1); YAML_ASSERT(node.size() == 1);
YAML_ASSERT(node["key"].as<std::string>() == "value"); YAML_ASSERT(node["key"].as<std::string>() == "value");
return true; return true;
...@@ -252,7 +252,7 @@ namespace Test ...@@ -252,7 +252,7 @@ namespace Test
YAML::Node tmp = node["key"]; YAML::Node tmp = node["key"];
tmp = node["other"]; tmp = node["other"];
node["other"] = "value"; node["other"] = "value";
YAML_ASSERT(node.Type() == YAML::NodeType::Map); YAML_ASSERT(node.IsMap());
YAML_ASSERT(node.size() == 2); YAML_ASSERT(node.size() == 2);
YAML_ASSERT(node["key"].as<std::string>() == "value"); YAML_ASSERT(node["key"].as<std::string>() == "value");
YAML_ASSERT(node["other"].as<std::string>() == "value"); YAML_ASSERT(node["other"].as<std::string>() == "value");
......
...@@ -11,7 +11,7 @@ namespace Test ...@@ -11,7 +11,7 @@ namespace Test
// 2.1 // 2.1
TEST SeqScalars() { TEST SeqScalars() {
YAML::Node doc = YAML::Parse(ex2_1); YAML::Node doc = YAML::Parse(ex2_1);
YAML_ASSERT(doc.Type() == YAML::NodeType::Sequence); YAML_ASSERT(doc.IsSequence());
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc[0].as<std::string>() == "Mark McGwire"); YAML_ASSERT(doc[0].as<std::string>() == "Mark McGwire");
YAML_ASSERT(doc[1].as<std::string>() == "Sammy Sosa"); YAML_ASSERT(doc[1].as<std::string>() == "Sammy Sosa");
...@@ -22,7 +22,7 @@ namespace Test ...@@ -22,7 +22,7 @@ namespace Test
// 2.2 // 2.2
TEST MappingScalarsToScalars() { TEST MappingScalarsToScalars() {
YAML::Node doc = YAML::Parse(ex2_2); YAML::Node doc = YAML::Parse(ex2_2);
YAML_ASSERT(doc.Type() == YAML::NodeType::Map); YAML_ASSERT(doc.IsMap());
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc["hr"].as<std::string>() == "65"); YAML_ASSERT(doc["hr"].as<std::string>() == "65");
YAML_ASSERT(doc["avg"].as<std::string>() == "0.278"); YAML_ASSERT(doc["avg"].as<std::string>() == "0.278");
...@@ -33,7 +33,7 @@ namespace Test ...@@ -33,7 +33,7 @@ namespace Test
// 2.3 // 2.3
TEST MappingScalarsToSequences() { TEST MappingScalarsToSequences() {
YAML::Node doc = YAML::Parse(ex2_3); YAML::Node doc = YAML::Parse(ex2_3);
YAML_ASSERT(doc.Type() == YAML::NodeType::Map); YAML_ASSERT(doc.IsMap());
YAML_ASSERT(doc.size() == 2); YAML_ASSERT(doc.size() == 2);
YAML_ASSERT(doc["american"].size() == 3); YAML_ASSERT(doc["american"].size() == 3);
YAML_ASSERT(doc["american"][0].as<std::string>() == "Boston Red Sox"); YAML_ASSERT(doc["american"][0].as<std::string>() == "Boston Red Sox");
...@@ -285,9 +285,9 @@ namespace Test ...@@ -285,9 +285,9 @@ namespace Test
YAML::Node doc = YAML::Parse(ex2_25); YAML::Node doc = YAML::Parse(ex2_25);
YAML_ASSERT(doc.Tag() == "tag:yaml.org,2002:set"); YAML_ASSERT(doc.Tag() == "tag:yaml.org,2002:set");
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc["Mark McGwire"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["Mark McGwire"].IsNull());
YAML_ASSERT(doc["Sammy Sosa"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["Sammy Sosa"].IsNull());
YAML_ASSERT(doc["Ken Griffey"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["Ken Griffey"].IsNull());
return true; return true;
} }
...@@ -379,7 +379,7 @@ namespace Test ...@@ -379,7 +379,7 @@ namespace Test
// 5.5 // 5.5
TEST CommentIndicator() { TEST CommentIndicator() {
YAML::Node doc = YAML::Parse(ex5_5); YAML::Node doc = YAML::Parse(ex5_5);
YAML_ASSERT(doc.Type() == YAML::NodeType::Null); YAML_ASSERT(doc.IsNull());
return true; return true;
} }
...@@ -539,7 +539,7 @@ namespace Test ...@@ -539,7 +539,7 @@ namespace Test
// 6.10 // 6.10
TEST CommentLines() { TEST CommentLines() {
YAML::Node doc = YAML::Parse(ex6_10); YAML::Node doc = YAML::Parse(ex6_10);
YAML_ASSERT(doc.Type() == YAML::NodeType::Null); YAML_ASSERT(doc.IsNull());
return true; return true;
} }
...@@ -658,7 +658,7 @@ namespace Test ...@@ -658,7 +658,7 @@ namespace Test
TEST CompletelyEmptyNodes() { TEST CompletelyEmptyNodes() {
YAML::Node doc = YAML::Parse(ex7_3); YAML::Node doc = YAML::Parse(ex7_3);
YAML_ASSERT(doc.size() == 2); YAML_ASSERT(doc.size() == 2);
YAML_ASSERT(doc["foo"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["foo"].IsNull());
YAML_ASSERT(doc[YAML::Null].as<std::string>() == "bar"); YAML_ASSERT(doc[YAML::Null].as<std::string>() == "bar");
return true; return true;
} }
...@@ -792,7 +792,7 @@ namespace Test ...@@ -792,7 +792,7 @@ namespace Test
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc["explicit"].as<std::string>() == "entry"); YAML_ASSERT(doc["explicit"].as<std::string>() == "entry");
YAML_ASSERT(doc["implicit"].as<std::string>() == "entry"); YAML_ASSERT(doc["implicit"].as<std::string>() == "entry");
YAML_ASSERT(doc[YAML::Null].Type() == YAML::NodeType::Null); YAML_ASSERT(doc[YAML::Null].IsNull());
return true; return true;
} }
...@@ -801,8 +801,8 @@ namespace Test ...@@ -801,8 +801,8 @@ namespace Test
YAML::Node doc = YAML::Parse(ex7_17); YAML::Node doc = YAML::Parse(ex7_17);
YAML_ASSERT(doc.size() == 4); YAML_ASSERT(doc.size() == 4);
YAML_ASSERT(doc["unquoted"].as<std::string>() == "separate"); YAML_ASSERT(doc["unquoted"].as<std::string>() == "separate");
YAML_ASSERT(doc["http://foo.com"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["http://foo.com"].IsNull());
YAML_ASSERT(doc["omitted value"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["omitted value"].IsNull());
YAML_ASSERT(doc[YAML::Null].as<std::string>() == "omitted key"); YAML_ASSERT(doc[YAML::Null].as<std::string>() == "omitted key");
return true; return true;
} }
...@@ -813,7 +813,7 @@ namespace Test ...@@ -813,7 +813,7 @@ namespace Test
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc["adjacent"].as<std::string>() == "value"); YAML_ASSERT(doc["adjacent"].as<std::string>() == "value");
YAML_ASSERT(doc["readable"].as<std::string>() == "value"); YAML_ASSERT(doc["readable"].as<std::string>() == "value");
YAML_ASSERT(doc["empty"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["empty"].IsNull());
return true; return true;
} }
...@@ -1051,7 +1051,7 @@ namespace Test ...@@ -1051,7 +1051,7 @@ namespace Test
TEST BlockSequenceEntryTypes() { TEST BlockSequenceEntryTypes() {
YAML::Node doc = YAML::Parse(ex8_15); YAML::Node doc = YAML::Parse(ex8_15);
YAML_ASSERT(doc.size() == 4); YAML_ASSERT(doc.size() == 4);
YAML_ASSERT(doc[0].Type() == YAML::NodeType::Null); YAML_ASSERT(doc[0].IsNull());
YAML_ASSERT(doc[1].as<std::string>() == "block node\n"); YAML_ASSERT(doc[1].as<std::string>() == "block node\n");
YAML_ASSERT(doc[2].size() == 2); YAML_ASSERT(doc[2].size() == 2);
YAML_ASSERT(doc[2][0].as<std::string>() == "one"); YAML_ASSERT(doc[2][0].as<std::string>() == "one");
...@@ -1074,7 +1074,7 @@ namespace Test ...@@ -1074,7 +1074,7 @@ namespace Test
TEST ExplicitBlockMappingEntries() { TEST ExplicitBlockMappingEntries() {
YAML::Node doc = YAML::Parse(ex8_17); YAML::Node doc = YAML::Parse(ex8_17);
YAML_ASSERT(doc.size() == 2); YAML_ASSERT(doc.size() == 2);
YAML_ASSERT(doc["explicit key"].Type() == YAML::NodeType::Null); YAML_ASSERT(doc["explicit key"].IsNull());
YAML_ASSERT(doc["block key\n"].size() == 2); YAML_ASSERT(doc["block key\n"].size() == 2);
YAML_ASSERT(doc["block key\n"][0].as<std::string>() == "one"); YAML_ASSERT(doc["block key\n"][0].as<std::string>() == "one");
YAML_ASSERT(doc["block key\n"][1].as<std::string>() == "two"); YAML_ASSERT(doc["block key\n"][1].as<std::string>() == "two");
...@@ -1086,7 +1086,7 @@ namespace Test ...@@ -1086,7 +1086,7 @@ namespace Test
YAML::Node doc = YAML::Parse(ex8_18); YAML::Node doc = YAML::Parse(ex8_18);
YAML_ASSERT(doc.size() == 3); YAML_ASSERT(doc.size() == 3);
YAML_ASSERT(doc["plain key"].as<std::string>() == "in-line value"); YAML_ASSERT(doc["plain key"].as<std::string>() == "in-line value");
YAML_ASSERT(doc[YAML::Null].Type() == YAML::NodeType::Null); YAML_ASSERT(doc[YAML::Null].IsNull());
YAML_ASSERT(doc["quoted key"].size() == 1); YAML_ASSERT(doc["quoted key"].size() == 1);
YAML_ASSERT(doc["quoted key"][0].as<std::string>() == "entry"); YAML_ASSERT(doc["quoted key"][0].as<std::string>() == "entry");
return true; return true;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment