79 CPPUNIT_ASSERT(
input.have_variable(
"Section1/var1") );
81 CPPUNIT_ASSERT_EQUAL( var1,
Real(5));
83 CPPUNIT_ASSERT(
input.have_variable(
"Section1/SubSection1/var2") );
84 std::string var2 =
input(
"Section1/SubSection1/var2",
"DIE!");
85 CPPUNIT_ASSERT_EQUAL( var2, std::string(
"blah") );
88 CPPUNIT_ASSERT( !
input.have_variable(
"Section2/var3") );
89 int var3 =
input(
"Section2/var3", 314);
90 CPPUNIT_ASSERT_EQUAL( var3, 314 );
92 CPPUNIT_ASSERT(
input.have_variable(
"Section2/Subsection2/var4") );
93 bool var4 =
input(
"Section2/Subsection2/var4",
true);
94 CPPUNIT_ASSERT_EQUAL( var4,
false );
96 CPPUNIT_ASSERT(
input.have_variable(
"Section2/Subsection2/Subsection3/var5") );
97 Real var5 =
input(
"Section2/Subsection2/Subsection3/var5", 3.1415);
98 CPPUNIT_ASSERT_EQUAL( var5,
Real(6.02e23));
100 CPPUNIT_ASSERT(
input.have_variable(
"Section2/Subsection4/var6") );
101 unsigned int var6 =
input(
"Section2/Subsection4/var6", 21);
102 CPPUNIT_ASSERT_EQUAL(var6,
static_cast<unsigned int>(42));
105 std::vector<std::string> ufos =
input.unidentified_variables();
106 CPPUNIT_ASSERT_EQUAL( ufos.size(), (std::vector<std::string>::size_type)1 );
107 CPPUNIT_ASSERT_EQUAL( ufos[0], std::string(
"Section3/unused_var") );
133 typedef std::vector<std::string>::size_type sz;
134 typedef std::string str;
136 const std::vector<std::string> subsections1 =
137 input.get_subsection_names(
"Section1");
139 CPPUNIT_ASSERT_EQUAL(subsections1.size(), sz(1));
140 CPPUNIT_ASSERT_EQUAL(subsections1[0], str(
"SubSection1"));
142 const std::vector<std::string> subsections1_1 =
143 input.get_subsection_names(
"Section1/Subsection1");
145 CPPUNIT_ASSERT(subsections1_1.empty());
147 const std::vector<std::string> subsections2 =
148 input.get_subsection_names(
"Section2");
150 CPPUNIT_ASSERT_EQUAL(subsections2.size(), sz(2));
151 CPPUNIT_ASSERT_EQUAL(subsections2[0], str(
"Subsection2"));
152 CPPUNIT_ASSERT_EQUAL(subsections2[1], str(
"Subsection4"));
154 const std::vector<std::string> subsections2_2 =
155 input.get_subsection_names(
"Section2/Subsection2");
157 CPPUNIT_ASSERT_EQUAL(subsections2_2.size(), sz(1));
158 CPPUNIT_ASSERT_EQUAL(subsections2_2[0], str(
"Subsection3"));
160 const std::vector<std::string> subsections2_4 =
161 input.get_subsection_names(
"Section2/Subsection4");
163 CPPUNIT_ASSERT(subsections2_4.empty());
165 const std::vector<std::string> subsections3 =
166 input.get_subsection_names(
"Section3");
168 CPPUNIT_ASSERT(subsections3.empty());