25 #include "grins_config.h"
27 #ifdef GRINS_HAVE_CPPUNIT
29 #include <cppunit/extensions/HelperMacros.h>
30 #include <cppunit/TestCase.h>
57 std::string str_1(
"N->N2");
58 std::vector<std::string> test_1_split_exact(2);
59 test_1_split_exact[0] = std::string(
"N");
60 test_1_split_exact[1] = std::string(
"N2");
62 std::vector<std::string> str_1_split;
64 this->
test_string( str_1_split, test_1_split_exact );
68 std::string str_2(
"N+C(s)->CN");
69 std::vector<std::string> test_2_split_exact(2);
70 test_2_split_exact[0] = std::string(
"N+C(s)");
71 test_2_split_exact[1] = std::string(
"CN");
73 std::vector<std::string> str_2_split;
75 this->
test_string( str_2_split, test_2_split_exact );
79 std::string str_3(
"u:v:w:T:p:w_N:w_N2:p0");
80 std::vector<std::string> test_3_split_exact(8);
81 test_3_split_exact[0] = std::string(
"u");
82 test_3_split_exact[1] = std::string(
"v");
83 test_3_split_exact[2] = std::string(
"w");
84 test_3_split_exact[3] = std::string(
"T");
85 test_3_split_exact[4] = std::string(
"p");
86 test_3_split_exact[5] = std::string(
"w_N");
87 test_3_split_exact[6] = std::string(
"w_N2");
88 test_3_split_exact[7] = std::string(
"p0");
90 std::vector<std::string> str_3_split;
92 this->
test_string( str_3_split, test_3_split_exact );
96 std::string str_4(
"u v w T p w_N w_N2 p0");
97 std::vector<std::string> test_4_split_exact(8);
98 test_4_split_exact[0] = std::string(
"u");
99 test_4_split_exact[1] = std::string(
"v");
100 test_4_split_exact[2] = std::string(
"w");
101 test_4_split_exact[3] = std::string(
"T");
102 test_4_split_exact[4] = std::string(
"p");
103 test_4_split_exact[5] = std::string(
"w_N");
104 test_4_split_exact[6] = std::string(
"w_N2");
105 test_4_split_exact[7] = std::string(
"p0");
107 std::vector<std::string> str_4_split;
109 this->
test_string( str_4_split, test_4_split_exact );
115 std::string one =
"1";
116 int ione = GRINS::StringUtilities::string_to_T<int>(one);
117 unsigned int uione = GRINS::StringUtilities::string_to_T<unsigned int>(one);
118 CPPUNIT_ASSERT_EQUAL(1,ione);
119 CPPUNIT_ASSERT_EQUAL((
unsigned int)1,uione);
121 std::string tenp1 =
"10.1";
122 double dtenp1 = GRINS::StringUtilities::string_to_T<double>(tenp1);
123 CPPUNIT_ASSERT_DOUBLES_EQUAL(10.1,
125 std::numeric_limits<double>::epsilon());
130 std::string one_exact =
"1";
131 std::string tenp1_exact =
"10.1";
134 std::string one_test = GRINS::StringUtilities::T_to_string<int>(1);
135 CPPUNIT_ASSERT_EQUAL(one_exact,one_test);
139 std::string one_test = GRINS::StringUtilities::T_to_string<unsigned int>(1);
140 CPPUNIT_ASSERT_EQUAL(one_exact,one_test);
144 std::string tenp1_test = GRINS::StringUtilities::T_to_string<double>(10.1);
145 CPPUNIT_ASSERT_EQUAL(tenp1_exact,tenp1_test);
152 const std::vector<std::string>& exact )
154 CPPUNIT_ASSERT_EQUAL(test.size(), exact.size() );
156 for(
unsigned int s = 0; s < test.size(); s++ )
157 CPPUNIT_ASSERT_EQUAL( test[s], exact[s] );
166 #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)