25 #include "grins_config.h"
27 #ifdef GRINS_HAVE_CPPUNIT
29 #include <libmesh/ignore_warnings.h>
30 #include <cppunit/extensions/HelperMacros.h>
31 #include <cppunit/TestCase.h>
32 #include <libmesh/restore_warnings.h>
42 #include <libmesh/ignore_warnings.h>
62 std::string str_1(
"N->N2");
63 std::vector<std::string> test_1_split_exact(2);
64 test_1_split_exact[0] = std::string(
"N");
65 test_1_split_exact[1] = std::string(
"N2");
67 std::vector<std::string> str_1_split;
69 this->
test_string( str_1_split, test_1_split_exact );
73 std::string str_2(
"N+C(s)->CN");
74 std::vector<std::string> test_2_split_exact(2);
75 test_2_split_exact[0] = std::string(
"N+C(s)");
76 test_2_split_exact[1] = std::string(
"CN");
78 std::vector<std::string> str_2_split;
80 this->
test_string( str_2_split, test_2_split_exact );
84 std::string str_3(
"u:v:w:T:p:w_N:w_N2:p0");
85 std::vector<std::string> test_3_split_exact(8);
86 test_3_split_exact[0] = std::string(
"u");
87 test_3_split_exact[1] = std::string(
"v");
88 test_3_split_exact[2] = std::string(
"w");
89 test_3_split_exact[3] = std::string(
"T");
90 test_3_split_exact[4] = std::string(
"p");
91 test_3_split_exact[5] = std::string(
"w_N");
92 test_3_split_exact[6] = std::string(
"w_N2");
93 test_3_split_exact[7] = std::string(
"p0");
95 std::vector<std::string> str_3_split;
97 this->
test_string( str_3_split, test_3_split_exact );
101 std::string str_4(
"u v w T p w_N w_N2 p0");
102 std::vector<std::string> test_4_split_exact(8);
103 test_4_split_exact[0] = std::string(
"u");
104 test_4_split_exact[1] = std::string(
"v");
105 test_4_split_exact[2] = std::string(
"w");
106 test_4_split_exact[3] = std::string(
"T");
107 test_4_split_exact[4] = std::string(
"p");
108 test_4_split_exact[5] = std::string(
"w_N");
109 test_4_split_exact[6] = std::string(
"w_N2");
110 test_4_split_exact[7] = std::string(
"p0");
112 std::vector<std::string> str_4_split;
114 this->
test_string( str_4_split, test_4_split_exact );
120 std::string one =
"1";
121 int ione = GRINS::StringUtilities::string_to_T<int>(one);
122 unsigned int uione = GRINS::StringUtilities::string_to_T<unsigned int>(one);
123 CPPUNIT_ASSERT_EQUAL(1,ione);
124 CPPUNIT_ASSERT_EQUAL((
unsigned int)1,uione);
126 std::string tenp1 =
"10.1";
127 double dtenp1 = GRINS::StringUtilities::string_to_T<double>(tenp1);
128 CPPUNIT_ASSERT_DOUBLES_EQUAL(10.1,
130 std::numeric_limits<double>::epsilon());
135 std::string one_exact =
"1";
136 std::string tenp1_exact =
"10.1";
139 std::string one_test = GRINS::StringUtilities::T_to_string<int>(1);
140 CPPUNIT_ASSERT_EQUAL(one_exact,one_test);
144 std::string one_test = GRINS::StringUtilities::T_to_string<unsigned int>(1);
145 CPPUNIT_ASSERT_EQUAL(one_exact,one_test);
149 std::string tenp1_test = GRINS::StringUtilities::T_to_string<double>(10.1);
150 CPPUNIT_ASSERT_EQUAL(tenp1_exact,tenp1_test);
157 const std::vector<std::string>& exact )
159 CPPUNIT_ASSERT_EQUAL(test.size(), exact.size() );
161 for(
unsigned int s = 0; s < test.size(); s++ )
162 CPPUNIT_ASSERT_EQUAL( test[s], exact[s] );
171 #endif // GRINS_HAVE_CPPUNIT
CPPUNIT_TEST(test_split_string)
CPPUNIT_TEST_SUITE_REGISTRATION(AntiochAirNASA9ThermoTest)
int test(ChemicalMixture &chem_mixture)
void test_string(const std::vector< std::string > &test, const std::vector< std::string > &exact)
CPPUNIT_TEST_SUITE(StringUtilitiesTest)
void split_string(const std::string &input, const std::string &delimiter, std::vector< std::string > &results)