mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 08:38:23 +01:00
Added some assertions; optimized GetSelectedOutputValue; added some multi selected-output tests
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@8285 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
parent
ed49fe9309
commit
0b6695be8f
@ -369,6 +369,7 @@ int IPhreeqc::GetSelectedOutputColumnCount(void)const
|
|||||||
|
|
||||||
int IPhreeqc::GetSelectedOutputCount(void)const
|
int IPhreeqc::GetSelectedOutputCount(void)const
|
||||||
{
|
{
|
||||||
|
ASSERT(this->PhreeqcPtr->SelectedOutput_map.size() == this->CurrentSelectedOutputMap.size());
|
||||||
return (int) this->PhreeqcPtr->SelectedOutput_map.size();
|
return (int) this->PhreeqcPtr->SelectedOutput_map.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,21 +460,27 @@ VRESULT IPhreeqc::GetSelectedOutputValue(int row, int col, VAR* pVAR)
|
|||||||
{
|
{
|
||||||
case VR_OK:
|
case VR_OK:
|
||||||
break;
|
break;
|
||||||
|
case VR_INVALIDROW:
|
||||||
|
this->AddError("GetSelectedOutputValue: VR_INVALIDROW Row index out of range.\n");
|
||||||
|
this->update_errors();
|
||||||
|
break;
|
||||||
|
case VR_INVALIDCOL:
|
||||||
|
this->AddError("GetSelectedOutputValue: VR_INVALIDCOL Column index out of range.\n");
|
||||||
|
this->update_errors();
|
||||||
|
break;
|
||||||
case VR_OUTOFMEMORY:
|
case VR_OUTOFMEMORY:
|
||||||
this->AddError("GetSelectedOutputValue: VR_OUTOFMEMORY Out of memory.\n");
|
this->AddError("GetSelectedOutputValue: VR_OUTOFMEMORY Out of memory.\n");
|
||||||
|
this->update_errors();
|
||||||
break;
|
break;
|
||||||
case VR_BADVARTYPE:
|
case VR_BADVARTYPE:
|
||||||
this->AddError("GetSelectedOutputValue: VR_BADVARTYPE pVar must be initialized(VarInit) and/or cleared(VarClear).\n");
|
this->AddError("GetSelectedOutputValue: VR_BADVARTYPE pVar must be initialized(VarInit) and/or cleared(VarClear).\n");
|
||||||
|
this->update_errors();
|
||||||
break;
|
break;
|
||||||
case VR_INVALIDARG:
|
case VR_INVALIDARG:
|
||||||
// not possible
|
// not possible
|
||||||
break;
|
break;
|
||||||
case VR_INVALIDROW:
|
default:
|
||||||
this->AddError("GetSelectedOutputValue: VR_INVALIDROW Row index out of range.\n");
|
assert(0);
|
||||||
break;
|
|
||||||
case VR_INVALIDCOL:
|
|
||||||
this->AddError("GetSelectedOutputValue: VR_INVALIDCOL Column index out of range.\n");
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -482,8 +489,8 @@ VRESULT IPhreeqc::GetSelectedOutputValue(int row, int col, VAR* pVAR)
|
|||||||
v = VR_INVALIDARG;
|
v = VR_INVALIDARG;
|
||||||
::sprintf(buffer, "GetSelectedOutputValue: VR_INVALIDARG Invalid selected-output user number %d.\n", this->CurrentSelectedOutputUserNumber);
|
::sprintf(buffer, "GetSelectedOutputValue: VR_INVALIDARG Invalid selected-output user number %d.\n", this->CurrentSelectedOutputUserNumber);
|
||||||
this->AddError(buffer);
|
this->AddError(buffer);
|
||||||
|
this->update_errors();
|
||||||
}
|
}
|
||||||
this->update_errors();
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1124,6 +1131,7 @@ void IPhreeqc::do_run(const char* sz_routine, std::istream* pis, PFN_PRERUN_CALL
|
|||||||
ASSERT(this->SelectedOutputMap[(*mit).first] == this->CurrentSelectedOutputMap[&(*mit).second]);
|
ASSERT(this->SelectedOutputMap[(*mit).first] == this->CurrentSelectedOutputMap[&(*mit).second]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ASSERT(this->PhreeqcPtr->SelectedOutput_map.size() == this->CurrentSelectedOutputMap.size());
|
||||||
if (this->PhreeqcPtr->title_x != NULL)
|
if (this->PhreeqcPtr->title_x != NULL)
|
||||||
{
|
{
|
||||||
::sprintf(token, "TITLE");
|
::sprintf(token, "TITLE");
|
||||||
|
|||||||
@ -4078,3 +4078,83 @@ void TestIPhreeqc::TestMultiSetSelectedOutputFileName(void)
|
|||||||
CPPUNIT_ASSERT( set1.VerifyExists() );
|
CPPUNIT_ASSERT( set1.VerifyExists() );
|
||||||
CPPUNIT_ASSERT( set2.VerifyExists() );
|
CPPUNIT_ASSERT( set2.VerifyExists() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqc::TestWissmeier20131203(void)
|
||||||
|
{
|
||||||
|
IPhreeqc obj;
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.LoadDatabase("../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
obj.AccumulateLine("selected_output 1");
|
||||||
|
obj.AccumulateLine("-totals O");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output 1");
|
||||||
|
obj.AccumulateLine("-totals H");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("solution");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output");
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.RunAccumulated());
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, obj.GetSelectedOutputCount() );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 9, obj.GetSelectedOutputColumnCount() );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, obj.GetSelectedOutputRowCount() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqc::TestWissmeier20131203_2(void)
|
||||||
|
{
|
||||||
|
IPhreeqc obj;
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.LoadDatabase("../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
obj.AccumulateLine("selected_output 22");
|
||||||
|
obj.AccumulateLine("-totals O");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output 22");
|
||||||
|
obj.AccumulateLine("-totals H");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("solution");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output 22");
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.RunAccumulated());
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, obj.GetSelectedOutputCount() );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( VR_OK, obj.SetCurrentSelectedOutputUserNumber(22) );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, obj.GetSelectedOutputColumnCount() );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, obj.GetSelectedOutputRowCount() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqc::TestWissmeier20131203_3(void)
|
||||||
|
{
|
||||||
|
IPhreeqc obj;
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.LoadDatabase("../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
obj.AccumulateLine("selected_output 1");
|
||||||
|
obj.AccumulateLine("-reset false");
|
||||||
|
obj.AccumulateLine("-totals O");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output 1");
|
||||||
|
obj.AccumulateLine("-reset false");
|
||||||
|
obj.AccumulateLine("-totals H");
|
||||||
|
obj.AccumulateLine("");
|
||||||
|
obj.AccumulateLine("solution");
|
||||||
|
obj.AccumulateLine("END");
|
||||||
|
obj.AccumulateLine("selected_output");
|
||||||
|
obj.AccumulateLine("-reset false");
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, obj.RunAccumulated());
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, obj.GetSelectedOutputCount() );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, obj.GetSelectedOutputColumnCount() );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, obj.GetSelectedOutputRowCount() );
|
||||||
|
}
|
||||||
|
|||||||
@ -74,6 +74,9 @@ class TestIPhreeqc : public CppUnit::TestFixture
|
|||||||
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
||||||
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
||||||
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203 );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203_2 );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203_3 );
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -148,6 +151,9 @@ public:
|
|||||||
void TestGetNthSelectedOutputUserNumber(void);
|
void TestGetNthSelectedOutputUserNumber(void);
|
||||||
void TestGetCurrentSelectedOutputUserNumber(void);
|
void TestGetCurrentSelectedOutputUserNumber(void);
|
||||||
void TestMultiSetSelectedOutputFileName(void);
|
void TestMultiSetSelectedOutputFileName(void);
|
||||||
|
void TestWissmeier20131203(void);
|
||||||
|
void TestWissmeier20131203_2(void);
|
||||||
|
void TestWissmeier20131203_3(void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void TestFileOnOff(const char* FILENAME, bool output_file_on, bool error_file_on, bool log_file_on, bool selected_output_file_on, bool dump_file_on);
|
void TestFileOnOff(const char* FILENAME, bool output_file_on, bool error_file_on, bool log_file_on, bool selected_output_file_on, bool dump_file_on);
|
||||||
|
|||||||
@ -4404,4 +4404,89 @@ void TestIPhreeqcLib::TestMultiSetSelectedOutputFileName(void)
|
|||||||
|
|
||||||
CPPUNIT_ASSERT( set1.VerifyExists() );
|
CPPUNIT_ASSERT( set1.VerifyExists() );
|
||||||
CPPUNIT_ASSERT( set2.VerifyExists() );
|
CPPUNIT_ASSERT( set2.VerifyExists() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqcLib::TestWissmeier20131203(void)
|
||||||
|
{
|
||||||
|
int id = ::CreateIPhreeqc();
|
||||||
|
CPPUNIT_ASSERT(id >= 0);
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 1"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals O"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 1"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals H"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "solution"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output"));
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 0, ::RunAccumulated(id));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, ::GetSelectedOutputCount(id) );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 9, ::GetSelectedOutputColumnCount(id) );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, ::GetSelectedOutputRowCount(id) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqcLib::TestWissmeier20131203_2(void)
|
||||||
|
{
|
||||||
|
int id = ::CreateIPhreeqc();
|
||||||
|
CPPUNIT_ASSERT(id >= 0);
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 22"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals O"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 22"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals H"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "solution"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 22"));
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 0, ::RunAccumulated(id));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, ::GetSelectedOutputCount(id) );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( IPQ_OK, ::SetCurrentSelectedOutputUserNumber(id, 22) );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, ::GetSelectedOutputColumnCount(id) );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, ::GetSelectedOutputRowCount(id) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestIPhreeqcLib::TestWissmeier20131203_3(void)
|
||||||
|
{
|
||||||
|
int id = ::CreateIPhreeqc();
|
||||||
|
CPPUNIT_ASSERT(id >= 0);
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/phreeqc.dat"));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 1"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-reset false"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals O"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output 1"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-reset false"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-totals H"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, ""));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "solution"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "selected_output"));
|
||||||
|
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "-reset false"));
|
||||||
|
|
||||||
|
// original asserts here
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 0, ::RunAccumulated(id));
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, ::GetSelectedOutputCount(id) );
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 1, ::GetSelectedOutputColumnCount(id) );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( 2, ::GetSelectedOutputRowCount(id) );
|
||||||
}
|
}
|
||||||
@ -76,6 +76,9 @@ class TestIPhreeqcLib : public CppUnit::TestFixture
|
|||||||
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
||||||
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
||||||
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203 );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203_2 );
|
||||||
|
CPPUNIT_TEST( TestWissmeier20131203_3 );
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -152,6 +155,9 @@ public:
|
|||||||
void TestGetNthSelectedOutputUserNumber(void);
|
void TestGetNthSelectedOutputUserNumber(void);
|
||||||
void TestGetCurrentSelectedOutputUserNumber(void);
|
void TestGetCurrentSelectedOutputUserNumber(void);
|
||||||
void TestMultiSetSelectedOutputFileName(void);
|
void TestMultiSetSelectedOutputFileName(void);
|
||||||
|
void TestWissmeier20131203(void);
|
||||||
|
void TestWissmeier20131203_2(void);
|
||||||
|
void TestWissmeier20131203_3(void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void TestFileOnOff(const char* FILENAME, int output_file_on, int error_file_on, int log_file_on, int selected_output_file_on, int dump_file_on);
|
void TestFileOnOff(const char* FILENAME, int output_file_on, int error_file_on, int log_file_on, int selected_output_file_on, int dump_file_on);
|
||||||
|
|||||||
@ -92,7 +92,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
s.stopTimer();
|
s.stopTimer();
|
||||||
std::cerr << s.getElapsedTime() << std::endl;
|
std::cerr << "Elapsed time: " << s.getElapsedTime() << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return wasSucessful ? 0 : 1;
|
return wasSucessful ? 0 : 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user