mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
Updated to pass unit tests on linux
Added two additional selected_output tests: TestSelectedOutputFileMultipleRuns TestGetSelectedOutputRowCountMultipleRuns
This commit is contained in:
parent
9919afd8ab
commit
431e4201ed
@ -153,3 +153,19 @@ size_t FileTest::Size(void)
|
|||||||
{
|
{
|
||||||
return ::FileSize(_fn.c_str());
|
return ::FileSize(_fn.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t FileTest::LineCount(void)
|
||||||
|
{
|
||||||
|
size_t nlines = 0;
|
||||||
|
if (::FileExists(_fn.c_str()))
|
||||||
|
{
|
||||||
|
std::ifstream ifs(_fn.c_str(), std::ifstream::in);
|
||||||
|
std::string line;
|
||||||
|
while (std::getline(ifs, line))
|
||||||
|
{
|
||||||
|
++nlines;
|
||||||
|
}
|
||||||
|
ifs.close();
|
||||||
|
}
|
||||||
|
return nlines;
|
||||||
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ public:
|
|||||||
bool Exists(void);
|
bool Exists(void);
|
||||||
int Delete(void);
|
int Delete(void);
|
||||||
size_t Size(void);
|
size_t Size(void);
|
||||||
|
size_t LineCount(void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string _fn;
|
std::string _fn;
|
||||||
|
|||||||
@ -3261,12 +3261,88 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCount)
|
|||||||
TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
||||||
{
|
{
|
||||||
IPhreeqc obj;
|
IPhreeqc obj;
|
||||||
|
int retval = 0;
|
||||||
|
|
||||||
obj.LoadDatabase("llnl.dat");
|
ASSERT_EQ(0, obj.LoadDatabase("llnl.dat"));
|
||||||
ASSERT_EQ(false, obj.GetSelectedOutputStringOn());
|
ASSERT_EQ(false, obj.GetSelectedOutputStringOn());
|
||||||
obj.SetSelectedOutputStringOn(true);
|
obj.SetSelectedOutputStringOn(true);
|
||||||
ASSERT_EQ(true, obj.GetSelectedOutputStringOn());
|
ASSERT_EQ(true, obj.GetSelectedOutputStringOn());
|
||||||
|
|
||||||
|
retval = obj.RunString(R"(
|
||||||
|
SOLUTION 1
|
||||||
|
C 1
|
||||||
|
Ca 1
|
||||||
|
Na 1
|
||||||
|
|
||||||
|
EQUILIBRIUM_PHASES
|
||||||
|
calcite 0 0.01
|
||||||
|
|
||||||
|
SELECTED_OUTPUT
|
||||||
|
-totals C Ca Na
|
||||||
|
)");
|
||||||
|
ASSERT_EQ(0, retval);
|
||||||
|
|
||||||
|
ASSERT_EQ(3, obj.GetSelectedOutputStringLineCount()); // header + i_soln + react
|
||||||
|
|
||||||
|
retval = obj.RunString(R"(
|
||||||
|
SOLUTION 1
|
||||||
|
C 2
|
||||||
|
Ca 2
|
||||||
|
Na 2
|
||||||
|
)");
|
||||||
|
ASSERT_EQ(0, retval);
|
||||||
|
|
||||||
|
ASSERT_EQ(2, obj.GetSelectedOutputStringLineCount()); // header + i_soln
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TestIPhreeqc, TestSelectedOutputFileMultipleRuns)
|
||||||
|
{
|
||||||
|
FileTest selout("TestSelectedOutputFileMultipleRuns.sel");
|
||||||
|
ASSERT_TRUE(selout.RemoveExisting());
|
||||||
|
|
||||||
|
IPhreeqc obj;
|
||||||
|
int retval = 0;
|
||||||
|
|
||||||
|
ASSERT_EQ(0, obj.LoadDatabase("llnl.dat"));
|
||||||
|
|
||||||
|
ASSERT_EQ(false, obj.GetSelectedOutputFileOn());
|
||||||
|
obj.SetSelectedOutputFileOn(true);
|
||||||
|
ASSERT_EQ(true, obj.GetSelectedOutputFileOn());
|
||||||
|
|
||||||
|
retval = obj.RunString(R"(
|
||||||
|
SOLUTION 1
|
||||||
|
C 1
|
||||||
|
Ca 1
|
||||||
|
Na 1
|
||||||
|
|
||||||
|
EQUILIBRIUM_PHASES
|
||||||
|
calcite 0 0.01
|
||||||
|
|
||||||
|
SELECTED_OUTPUT
|
||||||
|
-file TestSelectedOutputFileMultipleRuns.sel
|
||||||
|
-totals C Ca Na
|
||||||
|
)");
|
||||||
|
ASSERT_EQ(0, retval);
|
||||||
|
|
||||||
|
ASSERT_EQ(3, selout.LineCount()); // header + i_soln + react
|
||||||
|
|
||||||
|
retval = obj.RunString(R"(
|
||||||
|
SOLUTION 1
|
||||||
|
C 2
|
||||||
|
Ca 2
|
||||||
|
Na 2
|
||||||
|
)");
|
||||||
|
ASSERT_EQ(0, retval);
|
||||||
|
|
||||||
|
ASSERT_EQ(2, selout.LineCount()); // header + i_soln
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TestIPhreeqc, TestGetSelectedOutputRowCountMultipleRuns)
|
||||||
|
{
|
||||||
|
IPhreeqc obj;
|
||||||
|
|
||||||
|
ASSERT_EQ(0, obj.LoadDatabase("llnl.dat"));
|
||||||
|
|
||||||
obj.RunString(R"(
|
obj.RunString(R"(
|
||||||
SOLUTION 1
|
SOLUTION 1
|
||||||
C 1
|
C 1
|
||||||
@ -3280,7 +3356,7 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
|||||||
-totals C Ca Na
|
-totals C Ca Na
|
||||||
)");
|
)");
|
||||||
|
|
||||||
ASSERT_EQ(3, obj.GetSelectedOutputStringLineCount()); // header + i_soln + react
|
ASSERT_EQ(3, obj.GetSelectedOutputRowCount()); // header + i_soln + react
|
||||||
|
|
||||||
obj.RunString(R"(
|
obj.RunString(R"(
|
||||||
SOLUTION 1
|
SOLUTION 1
|
||||||
@ -3288,7 +3364,7 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
|||||||
Ca 2
|
Ca 2
|
||||||
Na 2
|
Na 2
|
||||||
)");
|
)");
|
||||||
ASSERT_EQ(2, obj.GetSelectedOutputStringLineCount()); // header + i_soln
|
ASSERT_EQ(2, obj.GetSelectedOutputRowCount()); // header + i_soln
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestIPhreeqc, TestGetSelectedOutputStringLine)
|
TEST(TestIPhreeqc, TestGetSelectedOutputStringLine)
|
||||||
|
|||||||
@ -1103,17 +1103,8 @@ void IPhreeqc::UnLoadDatabase(void)
|
|||||||
delete (*itt).second;
|
delete (*itt).second;
|
||||||
}
|
}
|
||||||
this->SelectedOutputMap.clear();
|
this->SelectedOutputMap.clear();
|
||||||
|
this->SelectedOutputStringMap.clear();
|
||||||
std::map< int, std::string >::iterator mit = this->SelectedOutputStringMap.begin();
|
this->SelectedOutputLinesMap.clear();
|
||||||
for (; mit != this->SelectedOutputStringMap.begin(); ++mit)
|
|
||||||
{
|
|
||||||
(*mit).second.clear();
|
|
||||||
}
|
|
||||||
std::map< int, std::vector< std::string > >::iterator it = this->SelectedOutputLinesMap.begin();
|
|
||||||
for (; it != this->SelectedOutputLinesMap.begin(); ++it)
|
|
||||||
{
|
|
||||||
(*it).second.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// clear dump string
|
// clear dump string
|
||||||
@ -1164,6 +1155,8 @@ void IPhreeqc::check_database(const char* sz_routine)
|
|||||||
delete (*it).second;
|
delete (*it).second;
|
||||||
}
|
}
|
||||||
this->SelectedOutputMap.clear();
|
this->SelectedOutputMap.clear();
|
||||||
|
this->SelectedOutputStringMap.clear();
|
||||||
|
this->SelectedOutputLinesMap.clear();
|
||||||
|
|
||||||
// release
|
// release
|
||||||
this->LogString.clear();
|
this->LogString.clear();
|
||||||
@ -1171,18 +1164,6 @@ void IPhreeqc::check_database(const char* sz_routine)
|
|||||||
this->OutputString.clear();
|
this->OutputString.clear();
|
||||||
this->OutputLines.clear();
|
this->OutputLines.clear();
|
||||||
|
|
||||||
// clear selected_output string storage
|
|
||||||
// GetSelectedOutputStringLine and GetSelectedOutputString
|
|
||||||
std::map< int, std::string >::iterator mit = SelectedOutputStringMap.begin();
|
|
||||||
for (; mit != SelectedOutputStringMap.end(); ++mit)
|
|
||||||
{
|
|
||||||
(*mit).second.clear();
|
|
||||||
}
|
|
||||||
std::map< int, std::vector< std::string > >::iterator lit = this->SelectedOutputLinesMap.begin();
|
|
||||||
for (; lit != this->SelectedOutputLinesMap.end(); ++lit)
|
|
||||||
{
|
|
||||||
(*lit).second.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this->DatabaseLoaded)
|
if (!this->DatabaseLoaded)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user