mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
fixed and added tests for SetSelectedOutputFileName
git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@8036 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
parent
83a3be18b8
commit
5b9b110386
@ -897,13 +897,12 @@ void IPhreeqc::SetSelectedOutputFileName(const char *filename)
|
||||
{
|
||||
// Can't use this->PhreeqcPtr->SelectedOutput_map since it's necessary
|
||||
// to override the default filename "selected_output_%d.%d.sel"
|
||||
this->SelectedOutputFileNameMap[1] = std::string(filename);
|
||||
this->SelectedOutputFileNameMap[this->CurrentSelectedOutputUserNumber] = std::string(filename);
|
||||
}
|
||||
}
|
||||
|
||||
void IPhreeqc::SetSelectedOutputFileOn(bool bValue)
|
||||
{
|
||||
// COMMENT: {9/12/2013 6:40:50 PM} this->SelectedOutputFileOn = bValue;
|
||||
if (0 <= this->CurrentSelectedOutputUserNumber)
|
||||
{
|
||||
this->SelectedOutputFileOnMap[this->CurrentSelectedOutputUserNumber] = bValue;
|
||||
@ -1147,18 +1146,6 @@ void IPhreeqc::do_run(const char* sz_routine, std::istream* pis, PFN_PRERUN_CALL
|
||||
// TRUE ???
|
||||
//
|
||||
//
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} if (!this->SelectedOutputFileOn)
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} {
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} std::map< int, SelectedOutput >::iterator it = this->PhreeqcPtr->SelectedOutput_map.begin();
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} for (; it != this->PhreeqcPtr->SelectedOutput_map.end(); ++it)
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} {
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} ASSERT((*it).second.Get_punch_ostream() == 0);
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} }
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} }
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} else
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} {
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} ASSERT(TRUE);
|
||||
// COMMENT: {9/12/2013 6:47:53 PM} }
|
||||
std::map< int, SelectedOutput >::iterator ai = this->PhreeqcPtr->SelectedOutput_map.begin();
|
||||
for (; ai != this->PhreeqcPtr->SelectedOutput_map.end(); ++ai)
|
||||
{
|
||||
@ -1182,7 +1169,6 @@ void IPhreeqc::do_run(const char* sz_routine, std::istream* pis, PFN_PRERUN_CALL
|
||||
std::map< int, SelectedOutput >::iterator it = this->PhreeqcPtr->SelectedOutput_map.begin();
|
||||
for (; it != this->PhreeqcPtr->SelectedOutput_map.end(); ++it)
|
||||
{
|
||||
// COMMENT: {9/12/2013 6:42:03 PM} if (this->SelectedOutputFileOn && !(*it).second.Get_punch_ostream())
|
||||
if (this->SelectedOutputFileOnMap[(*it).first] && !(*it).second.Get_punch_ostream())
|
||||
{
|
||||
//
|
||||
@ -1225,7 +1211,6 @@ void IPhreeqc::do_run(const char* sz_routine, std::istream* pis, PFN_PRERUN_CALL
|
||||
std::map< int, SelectedOutput >::iterator it = this->PhreeqcPtr->SelectedOutput_map.begin();
|
||||
for (; it != this->PhreeqcPtr->SelectedOutput_map.end(); ++it)
|
||||
{
|
||||
// COMMENT: {9/12/2013 6:53:23 PM} if (this->SelectedOutputFileOn)
|
||||
if (this->SelectedOutputFileOnMap[(*it).first])
|
||||
{
|
||||
ASSERT((*it).second.Get_punch_ostream());
|
||||
|
||||
@ -3540,6 +3540,7 @@ void TestIPhreeqc::TestRunFileMultiPunchNoSet(void)
|
||||
obj.SetCurrentSelectedOutputUserNumber(3);
|
||||
obj.SetSelectedOutputFileOn(true);
|
||||
|
||||
obj.SetCurrentSelectedOutputUserNumber(1);
|
||||
obj.SetSelectedOutputFileName(set.GetName().c_str());
|
||||
CPPUNIT_ASSERT_EQUAL(0, obj.RunFile("multi_punch_no_set"));
|
||||
|
||||
@ -3704,11 +3705,11 @@ void TestIPhreeqc::TestMultiPunchCSelectedOutput(void)
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(5, 1, &var)); CPPUNIT_ASSERT_EQUAL(std::string("react"), std::string(var.sVal));
|
||||
|
||||
// pH
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(1, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.30475, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(2, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.29765, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(3, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99738, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(4, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99698, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(5, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.2942 , var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(1, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.30475, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(2, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.29765, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(3, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99738, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(4, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99698, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(5, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.2942 , var.dVal, ::pow(10., -2) );
|
||||
|
||||
// V_TOTAL_C
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.GetSelectedOutputValue(1, 34, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 4.3729e-003, var.dVal, ::pow(10., -6) );
|
||||
@ -4017,5 +4018,48 @@ void TestIPhreeqc::TestGetCurrentSelectedOutputUserNumber(void)
|
||||
CPPUNIT_ASSERT_EQUAL(0, obj.LoadDatabase("../database/phreeqc.dat"));
|
||||
CPPUNIT_ASSERT_EQUAL(1, obj.GetCurrentSelectedOutputUserNumber());
|
||||
CPPUNIT_ASSERT_EQUAL(0, obj.GetSelectedOutputCount());
|
||||
|
||||
}
|
||||
|
||||
void TestIPhreeqc::TestMultiSetSelectedOutputFileName(void)
|
||||
{
|
||||
FileTest set1("state.sel");
|
||||
CPPUNIT_ASSERT( set1.RemoveExisting() );
|
||||
|
||||
FileTest set2("si.sel");
|
||||
CPPUNIT_ASSERT( set2.RemoveExisting() );
|
||||
|
||||
IPhreeqc obj;
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(0, obj.LoadDatabase("../database/phreeqc.dat"));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.SetCurrentSelectedOutputUserNumber(1));
|
||||
obj.SetSelectedOutputStringOn(true);
|
||||
obj.SetSelectedOutputFileOn(true);
|
||||
obj.SetSelectedOutputFileName(set1.GetName().c_str());
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(VR_OK, obj.SetCurrentSelectedOutputUserNumber(2));
|
||||
obj.SetSelectedOutputStringOn(true);
|
||||
obj.SetSelectedOutputFileOn(true);
|
||||
obj.SetSelectedOutputFileName(set2.GetName().c_str());
|
||||
|
||||
obj.AccumulateLine("TITLE Temperature dependence of solubility");
|
||||
obj.AccumulateLine(" of gypsum and anhydrite ");
|
||||
obj.AccumulateLine("SOLUTION 1 Pure water ");
|
||||
obj.AccumulateLine(" pH 7.0 ");
|
||||
obj.AccumulateLine(" temp 25.0 ");
|
||||
obj.AccumulateLine("EQUILIBRIUM_PHASES 1 ");
|
||||
obj.AccumulateLine(" Gypsum 0.0 1.0 ");
|
||||
obj.AccumulateLine(" Anhydrite 0.0 1.0 ");
|
||||
obj.AccumulateLine("REACTION_TEMPERATURE 1 ");
|
||||
obj.AccumulateLine(" 25.0 75.0 in 51 steps ");
|
||||
obj.AccumulateLine("SELECTED_OUTPUT 1 ");
|
||||
obj.AccumulateLine(" -temperature ");
|
||||
obj.AccumulateLine("SELECTED_OUTPUT 2 ");
|
||||
obj.AccumulateLine(" -si anhydrite gypsum ");
|
||||
obj.AccumulateLine("END ");
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(0, obj.RunAccumulated());
|
||||
|
||||
CPPUNIT_ASSERT( set1.VerifyExists() );
|
||||
CPPUNIT_ASSERT( set2.VerifyExists() );
|
||||
}
|
||||
|
||||
@ -73,6 +73,7 @@ class TestIPhreeqc : public CppUnit::TestFixture
|
||||
CPPUNIT_TEST( TestGetSelectedOutputCount );
|
||||
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
||||
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
||||
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
public:
|
||||
@ -146,6 +147,7 @@ public:
|
||||
void TestGetSelectedOutputCount(void);
|
||||
void TestGetNthSelectedOutputUserNumber(void);
|
||||
void TestGetCurrentSelectedOutputUserNumber(void);
|
||||
void TestMultiSetSelectedOutputFileName(void);
|
||||
|
||||
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);
|
||||
|
||||
@ -13,6 +13,8 @@
|
||||
#include <cfloat>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "FileTest.h"
|
||||
|
||||
#if defined(_WIN32) || defined(__CYGWIN32__)
|
||||
// DeleteFile defined in <windows.h>
|
||||
#else
|
||||
@ -4039,11 +4041,11 @@ void TestIPhreeqcLib::TestMultiPunchCSelectedOutput(void)
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 5, 1, &var)); CPPUNIT_ASSERT_EQUAL(std::string("react"), std::string(var.sVal));
|
||||
|
||||
// pH
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 1, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.30475, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 2, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.29765, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 3, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99738, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 4, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99698, var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 5, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.2942 , var.dVal, ::pow(10., -5) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 1, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.30475, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 2, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.29765, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 3, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99738, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 4, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 6.99698, var.dVal, ::pow(10., -2) );
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 5, 6, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 7.2942 , var.dVal, ::pow(10., -2) );
|
||||
|
||||
// V_TOTAL_C
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::GetSelectedOutputValue(id, 1, 34, &var)); CPPUNIT_ASSERT_DOUBLES_EQUAL( 4.3729e-003, var.dVal, ::pow(10., -6) );
|
||||
@ -4356,3 +4358,48 @@ void TestIPhreeqcLib::TestGetCurrentSelectedOutputUserNumber(void)
|
||||
CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/phreeqc.dat"));
|
||||
CPPUNIT_ASSERT_EQUAL(1, ::GetCurrentSelectedOutputUserNumber(id));
|
||||
}
|
||||
|
||||
void TestIPhreeqcLib::TestMultiSetSelectedOutputFileName(void)
|
||||
{
|
||||
FileTest set1("state.sel");
|
||||
CPPUNIT_ASSERT( set1.RemoveExisting() );
|
||||
|
||||
FileTest set2("si.sel");
|
||||
CPPUNIT_ASSERT( set2.RemoveExisting() );
|
||||
|
||||
int id = ::CreateIPhreeqc();
|
||||
CPPUNIT_ASSERT(id >= 0);
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/phreeqc.dat"));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetCurrentSelectedOutputUserNumber(id, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputStringOn(id, true));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputFileOn(id, true));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputFileName(id, set1.GetName().c_str()));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetCurrentSelectedOutputUserNumber(id, 2));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputStringOn(id, true));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputFileOn(id, true));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::SetSelectedOutputFileName(id, set2.GetName().c_str()));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "TITLE Temperature dependence of solubility"));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " of gypsum and anhydrite "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "SOLUTION 1 Pure water "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " pH 7.0 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " temp 25.0 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "EQUILIBRIUM_PHASES 1 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " Gypsum 0.0 1.0 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " Anhydrite 0.0 1.0 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "REACTION_TEMPERATURE 1 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " 25.0 75.0 in 51 steps "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "SELECTED_OUTPUT 1 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " -temperature "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "SELECTED_OUTPUT 2 "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " -si anhydrite gypsum "));
|
||||
CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END "));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(0, ::RunAccumulated(id));
|
||||
|
||||
CPPUNIT_ASSERT( set1.VerifyExists() );
|
||||
CPPUNIT_ASSERT( set2.VerifyExists() );
|
||||
}
|
||||
@ -75,6 +75,7 @@ class TestIPhreeqcLib : public CppUnit::TestFixture
|
||||
CPPUNIT_TEST( TestGetSelectedOutputCount );
|
||||
CPPUNIT_TEST( TestGetNthSelectedOutputUserNumber );
|
||||
CPPUNIT_TEST( TestGetCurrentSelectedOutputUserNumber );
|
||||
CPPUNIT_TEST( TestMultiSetSelectedOutputFileName );
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
public:
|
||||
@ -150,6 +151,7 @@ public:
|
||||
void TestGetSelectedOutputCount(void);
|
||||
void TestGetNthSelectedOutputUserNumber(void);
|
||||
void TestGetCurrentSelectedOutputUserNumber(void);
|
||||
void TestMultiSetSelectedOutputFileName(void);
|
||||
|
||||
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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user