24 const char* content = R
"( 25 <simulation name="here" deprecated_tag="lmn"> 33 string name =
"default_name";
34 string other =
"default";
35 string deprecated_tag;
36 pattrib.
add(name,
"name");
37 pattrib.
add(other,
"other");
39 CHECK_THROWS_WITH(pattrib.
put(
doc.
getRoot()), Catch::Matchers::Contains(
"is not valid"));
43 REQUIRE(deprecated_tag ==
"lmn");
49 const char* content = R
"(<simulation/>)"; 55 bool use_feature =
true;
56 pattrib.
add(use_feature,
"use_feature", {
false,
true});
58 CHECK(use_feature ==
false);
62 const char* content = R
"(<simulation use_feature=" yes "/>)"; 68 bool use_feature =
true;
69 pattrib.
add(use_feature,
"use_feature", {
false,
true});
71 CHECK(use_feature ==
true);
75 const char* content = R
"(<simulation use_feature=" no "/>)"; 81 bool use_feature =
true;
82 pattrib.
add(use_feature,
"use_feature", {
false,
true});
84 CHECK(use_feature ==
false);
88 const char* content = R
"(<simulation use_feature=" YES "/>)"; 94 bool use_feature =
true;
95 pattrib.
add(use_feature,
"use_feature", {
false,
true});
97 CHECK(use_feature ==
true);
101 const char* content = R
"(<simulation use_feature=" No"/>)"; 107 bool use_feature =
true;
108 pattrib.
add(use_feature,
"use_feature", {
false,
true});
110 CHECK(use_feature ==
false);
114 const char* content = R
"(<simulation use_feature=" true "/>)"; 120 bool use_feature =
true;
121 pattrib.
add(use_feature,
"use_feature", {
false,
true});
123 CHECK(use_feature ==
true);
127 const char* content = R
"(<simulation use_feature="false"/>)"; 133 bool use_feature =
true;
134 pattrib.
add(use_feature,
"use_feature", {
false,
true});
136 CHECK(use_feature ==
false);
140 const char* content = R
"(<simulation use_feature=" "/>)"; 146 bool use_feature =
true;
147 pattrib.
add(use_feature,
"use_feature", {
false,
true});
148 CHECK_THROWS_WITH(pattrib.
put(
doc.
getRoot()),
"use_feature requires a single value input.");
152 const char* content = R
"(<simulation use_feature=" no a "/>)"; 158 bool use_feature =
true;
159 pattrib.
add(use_feature,
"use_feature", {
false,
true});
160 CHECK_THROWS_WITH(pattrib.
put(
doc.
getRoot()),
"use_feature only accepts a single value input.");
164 const char* content = R
"(<simulation use_feature=" here "/>)"; 170 bool use_feature =
true;
171 pattrib.
add(use_feature,
"use_feature", {
false,
true});
173 "use_feature only accepts 'yes'/'no'/'true'/'false' but the input value is 'here'.");
class that handles xmlDoc
bool put(xmlNodePtr cur)
assign attributes to the set
REQUIRE(std::filesystem::exists(filename))
class to handle a set of attributes of an xmlNode
bool parseFromString(const std::string_view data)
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute
TEST_CASE("AttributeSet", "[xml]")