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());
|
||||
}
|
||||
|
||||
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);
|
||||
int Delete(void);
|
||||
size_t Size(void);
|
||||
size_t LineCount(void);
|
||||
|
||||
protected:
|
||||
std::string _fn;
|
||||
|
||||
@ -3261,12 +3261,88 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCount)
|
||||
TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
||||
{
|
||||
IPhreeqc obj;
|
||||
int retval = 0;
|
||||
|
||||
obj.LoadDatabase("llnl.dat");
|
||||
ASSERT_EQ(0, obj.LoadDatabase("llnl.dat"));
|
||||
ASSERT_EQ(false, obj.GetSelectedOutputStringOn());
|
||||
obj.SetSelectedOutputStringOn(true);
|
||||
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"(
|
||||
SOLUTION 1
|
||||
C 1
|
||||
@ -3280,7 +3356,7 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
||||
-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"(
|
||||
SOLUTION 1
|
||||
@ -3288,7 +3364,7 @@ TEST(TestIPhreeqc, TestGetSelectedOutputStringLineCountMultipleRuns)
|
||||
Ca 2
|
||||
Na 2
|
||||
)");
|
||||
ASSERT_EQ(2, obj.GetSelectedOutputStringLineCount()); // header + i_soln
|
||||
ASSERT_EQ(2, obj.GetSelectedOutputRowCount()); // header + i_soln
|
||||
}
|
||||
|
||||
TEST(TestIPhreeqc, TestGetSelectedOutputStringLine)
|
||||
|
||||
@ -1103,17 +1103,8 @@ void IPhreeqc::UnLoadDatabase(void)
|
||||
delete (*itt).second;
|
||||
}
|
||||
this->SelectedOutputMap.clear();
|
||||
|
||||
std::map< int, std::string >::iterator mit = this->SelectedOutputStringMap.begin();
|
||||
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();
|
||||
}
|
||||
this->SelectedOutputStringMap.clear();
|
||||
this->SelectedOutputLinesMap.clear();
|
||||
|
||||
|
||||
// clear dump string
|
||||
@ -1164,6 +1155,8 @@ void IPhreeqc::check_database(const char* sz_routine)
|
||||
delete (*it).second;
|
||||
}
|
||||
this->SelectedOutputMap.clear();
|
||||
this->SelectedOutputStringMap.clear();
|
||||
this->SelectedOutputLinesMap.clear();
|
||||
|
||||
// release
|
||||
this->LogString.clear();
|
||||
@ -1171,18 +1164,6 @@ void IPhreeqc::check_database(const char* sz_routine)
|
||||
this->OutputString.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)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user