2 #// This file is distributed under the University of Illinois/NCSA Open Source License.
3 #// See LICENSE file in top directory for details. 5 #// Copyright (c) 2016 Jeongnim Kim and QMCPACK developers. 7 #// File developed by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory 9 #// File created by: Mark Dewing, markdewing@gmail.com, University of Illinois at Urbana-Champaign 28 vector<string> outlist;
43 ParseCase(
const string& in,
const vector<string>& out,
const string& extra)
81 {
"n|o", {
"n",
"o"},
"|"}};
82 for (
auto& tc : tlist)
84 SECTION(
string(
"Parsing string: ") + tc.input)
86 vector<string> outlist;
87 unsigned int num =
parsewords(tc.input.c_str(), outlist, tc.extra_split);
88 REQUIRE(num == tc.output.size());
89 REQUIRE(outlist.size() == tc.output.size());
90 for (
int i = 0; i < tc.output.size(); i++)
92 REQUIRE(outlist[i] == tc.output[i]);
105 {
"one\ntwo", {
"one",
"two"}},
106 {
"one;two", {
"one",
"two"}},
107 {
"one\\\ntwo", {
"onetwo"}},
108 {
"one\\ two", {
"one\\ two"}},
109 {
"12345678901234567890extra", {
"1234567890123456789"}},
113 for (
auto& tc : tlist)
115 SECTION(
string(
"Parsing string: ") + tc.input)
117 const int bufLen = 20;
119 std::istringstream
input(tc.input);
120 for (
int i = 0; i < tc.output.size(); i++)
124 if (i == tc.output.size() - 1)
143 {
"one,two\n", {
"one",
"two"}},
144 {
"one|two\n", {
"one|two"}},
145 {
"a|b\n", {
"a",
"b"},
"|"},
148 for (
auto& tc : tlist)
150 SECTION(
string(
"Parsing input: ") + tc.input)
152 vector<string> outlist;
153 std::istringstream
input(tc.input);
155 REQUIRE(num == tc.output.size());
156 REQUIRE(outlist.size() == tc.output.size());
157 for (
int i = 0; i < tc.output.size(); i++)
159 REQUIRE(outlist[i] == tc.output[i]);
172 {
"1 2\n", {
"1",
"2"}},
173 {
"1.0 -2.0\n", {
"1.0",
"-2.0"}},
174 {
"1.0-2.0\n", {
"1.0",
"-2.0"}},
175 {
"-1.0-2.0-3.0\n", {
"-1.0",
"-2.0",
"-3.0"}},
176 {
"105 C 5 Z 0.000000 0.000000 -0.567800-103.884284 -2.142253\n",
177 {
"105",
"C",
"5",
"Z",
"0.000000",
"0.000000",
"-0.567800",
"-103.884284",
"-2.142253"}}};
179 for (
auto& tc : tlist)
181 SECTION(
string(
"Parsing input: ") + tc.input)
183 vector<string> outlist;
184 std::istringstream
input(tc.input);
186 REQUIRE(num == tc.output.size());
187 REQUIRE(outlist.size() == tc.output.size());
188 for (
int i = 0; i < tc.output.size(); i++)
190 REQUIRE(outlist[i] == tc.output[i]);
ParseCase(const string &in, const vector< string > &out, const string &extra)
helper functions for EinsplineSetBuilder
char * readLine(char *s, int max, std::istream &fp)
TEST_CASE("complex_helper", "[type_traits]")
vector< ParseCase > ParseCaseVector_t
REQUIRE(std::filesystem::exists(filename))
unsigned parsewords(const char *inbuf, std::vector< std::string > &slist, const std::string &extra_tokens)
ParseCase(const string &in, const vector< string > &out)
testing::ValidSpinDensityInput input
int getwordsWithMergedNumbers(std::vector< std::string > &slist, std::istream &fp, int dummy, const std::string &extra_tokens)
int getwords(std::vector< std::string > &slist, std::istream &fp, std::string &aline)
ParseCase(const string &in)