From b6ddcdabc4660d9f0c2cc56c7257e5255dc5d831 Mon Sep 17 00:00:00 2001 From: Scott R Charlton Date: Mon, 12 Dec 2011 23:44:55 +0000 Subject: [PATCH] all passing on windows git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/branches/ErrorHandling@5886 1feff8c3-07ed-0310-ac33-dd36852eb9cd --- src/IPhreeqc.cpp | 15 --------------- unit/TestIPhreeqc.h | 6 ++---- unit/TestIPhreeqcLib.cpp | 26 +++++++++++++++----------- unit/TestIPhreeqcLib.h | 6 +++--- 4 files changed, 20 insertions(+), 33 deletions(-) diff --git a/src/IPhreeqc.cpp b/src/IPhreeqc.cpp index 7f7b664e..907235fb 100644 --- a/src/IPhreeqc.cpp +++ b/src/IPhreeqc.cpp @@ -20,21 +20,6 @@ const char ERROR_FILENAME[] = "phreeqc.err"; const char LOG_FILENAME[] = "phreeqc.log"; const char PUNCH_FILENAME[] = "selected.out"; -int istream_getc(void *cookie) -{ - if (cookie) - { - std::istream* is = (std::istream*)cookie; - int n = is->get(); - if (n == 13 && is->peek() == 10) - { - n = is->get(); - } - return n; - } - return EOF; -} - IPhreeqc::IPhreeqc(void) : DatabaseLoaded(false) , ClearAccumulated(false) diff --git a/unit/TestIPhreeqc.h b/unit/TestIPhreeqc.h index 1f780515..c725a296 100644 --- a/unit/TestIPhreeqc.h +++ b/unit/TestIPhreeqc.h @@ -12,8 +12,8 @@ class TestIPhreeqc : public CppUnit::TestFixture CPPUNIT_TEST( TestLoadDatabaseMissingFile ); CPPUNIT_TEST( TestLoadDatabaseWithErrors ); CPPUNIT_TEST( TestRunAccumulated ); -// COMMENT: {12/12/2011 2:46:08 PM} CPPUNIT_TEST( TestRunWithErrors ); -// COMMENT: {12/12/2011 2:46:23 PM} CPPUNIT_TEST( TestRunFile ); + CPPUNIT_TEST( TestRunWithErrors ); + CPPUNIT_TEST( TestRunFile ); CPPUNIT_TEST( TestRunString ); CPPUNIT_TEST( TestGetSelectedOutputRowCount ); CPPUNIT_TEST( TestGetSelectedOutputValue ); @@ -45,8 +45,6 @@ public: TestIPhreeqc(void); ~TestIPhreeqc(void); -// COMMENT: {3/30/2010 3:27:03 PM} static bool FileExists(const char *szPathName); - public: void TestLoadDatabase(void); void TestLoadDatabaseString(void); diff --git a/unit/TestIPhreeqcLib.cpp b/unit/TestIPhreeqcLib.cpp index 814e6c98..ea211a7b 100644 --- a/unit/TestIPhreeqcLib.cpp +++ b/unit/TestIPhreeqcLib.cpp @@ -2245,23 +2245,27 @@ void TestIPhreeqcLib::TestClearAccumulatedLines(void) CPPUNIT_ASSERT_EQUAL(0, ::LoadDatabase(id, "../database/wateq4f.dat")); + // phreeqc can now handle pH of -2 (-r5885) CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "SOLUTION 1")); - CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "pH -2") ); - CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END") ); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " pH 7")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " Na 1")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "PHASES")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " Fix_H+")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " H+ = H+")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " log_k 0")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "EQUILIBRIUM_PHASES")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, " Fix_H+ -10 HCl 10")); + CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "END")); CPPUNIT_ASSERT_EQUAL(1, ::RunAccumulated(id)); - CPPUNIT_ASSERT_EQUAL( 3, ::GetErrorStringLineCount(id) ); + CPPUNIT_ASSERT_EQUAL(1, ::GetErrorStringLineCount(id)); -#if defined(_MSC_VER) - CPPUNIT_ASSERT_EQUAL( std::string("ERROR: A(H2O) Activity of water has not converged. Residual: 1.590343e+000"), std::string(::GetErrorStringLine(id, 0)) ); -#endif -#if defined(__GNUC__) - CPPUNIT_ASSERT_EQUAL( std::string("ERROR: A(H2O) Activity of water has not converged. Residual: 1.590343e+00"), std::string(::GetErrorStringLine(id, 0)) ); -#endif + const char expected[] = + "ERROR: Numerical method failed on all combinations of convergence parameters\n"; + const char* err = ::GetErrorString(id); - CPPUNIT_ASSERT_EQUAL( std::string(""), std::string(::GetErrorStringLine(id, 1)) ); - CPPUNIT_ASSERT_EQUAL( std::string("ERROR: Model failed to converge for initial solution."), std::string(::GetErrorStringLine(id, 2)) ); + CPPUNIT_ASSERT_EQUAL( std::string(expected), std::string(err) ); CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "SOLUTION 1")); CPPUNIT_ASSERT_EQUAL(IPQ_OK, ::AccumulateLine(id, "pH 2") ); diff --git a/unit/TestIPhreeqcLib.h b/unit/TestIPhreeqcLib.h index 2db6a4c9..ae58df28 100644 --- a/unit/TestIPhreeqcLib.h +++ b/unit/TestIPhreeqcLib.h @@ -14,8 +14,8 @@ class TestIPhreeqcLib : public CppUnit::TestFixture CPPUNIT_TEST( TestLoadDatabaseMissingFile ); CPPUNIT_TEST( TestLoadDatabaseWithErrors ); CPPUNIT_TEST( TestRunAccumulated ); -// COMMENT: {12/12/2011 2:46:47 PM} CPPUNIT_TEST( TestRunWithErrors ); -// COMMENT: {12/12/2011 2:46:59 PM} CPPUNIT_TEST( TestRunFile ); + CPPUNIT_TEST( TestRunWithErrors ); + CPPUNIT_TEST( TestRunFile ); CPPUNIT_TEST( TestRunString ); CPPUNIT_TEST( TestGetSelectedOutputRowCount ); CPPUNIT_TEST( TestGetSelectedOutputValue ); @@ -45,7 +45,7 @@ class TestIPhreeqcLib : public CppUnit::TestFixture CPPUNIT_TEST( TestLogFileOn ); // new CPPUNIT_TEST( TestGetWarningStringLine ); CPPUNIT_TEST( TestPitzer ); -// COMMENT: {12/12/2011 2:47:15 PM} CPPUNIT_TEST( TestClearAccumulatedLines ); + CPPUNIT_TEST( TestClearAccumulatedLines ); CPPUNIT_TEST_SUITE_END(); public: