From: <ste...@us...> - 2013-12-30 04:25:09
|
Revision: 5760 http://sourceforge.net/p/moneymanagerex/code/5760 Author: stef145g Date: 2013-12-30 04:25:05 +0000 (Mon, 30 Dec 2013) Log Message: ----------- Provided currency tests to test digit precision, provided filters in IDE for Test Project. Note: Fails on first run when creating the test database. Modified Paths: -------------- trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj.filters trunk/src/model/Model_Currency.cpp trunk/src/model/Model_Currency.h trunk/src/tests/mmex_tests.cpp Added Paths: ----------- trunk/src/tests/test_model_currency.cpp trunk/src/tests/test_model_currency.h Modified: trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj =================================================================== --- trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj 2013-12-29 23:13:43 UTC (rev 5759) +++ trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj 2013-12-30 04:25:05 UTC (rev 5760) @@ -253,6 +253,7 @@ </Bscmake> </ItemDefinitionGroup> <ItemGroup> + <ClCompile Include="..\..\..\src\minimal_editor.cpp" /> <ClCompile Include="..\..\..\src\model\Model_Account.cpp" /> <ClCompile Include="..\..\..\src\model\Model_Asset.cpp" /> <ClCompile Include="..\..\..\src\model\Model_Billsdeposits.cpp" /> @@ -320,6 +321,7 @@ <ClCompile Include="..\..\..\src\paths.cpp" /> <ClCompile Include="..\..\..\src\reports\payee.cpp" /> <ClCompile Include="..\..\..\src\payeedialog.cpp" /> + <ClCompile Include="..\..\..\src\tests\test_model_currency.cpp" /> <ClCompile Include="..\..\..\src\win\platfdep.cpp" /> <ClCompile Include="..\..\..\src\import_export\qif_export.cpp" /> <ClCompile Include="..\..\..\src\import_export\qif_import.cpp" /> @@ -359,6 +361,7 @@ <ClInclude Include="..\..\..\src\db\DB_Table_Splittransactions_V1.h" /> <ClInclude Include="..\..\..\src\db\DB_Table_Stock_V1.h" /> <ClInclude Include="..\..\..\src\db\DB_Table_Subcategory_V1.h" /> + <ClInclude Include="..\..\..\src\minimal_editor.h" /> <ClInclude Include="..\..\..\src\model\Model.h" /> <ClInclude Include="..\..\..\src\model\Model_Account.h" /> <ClInclude Include="..\..\..\src\model\Model_Asset.h" /> @@ -448,6 +451,7 @@ <ClInclude Include="..\..\..\src\reports\summaryassets.h" /> <ClInclude Include="..\..\..\src\reports\summarystocks.h" /> <ClInclude Include="..\..\..\src\reports\transactions.h" /> + <ClInclude Include="..\..\..\src\tests\test_model_currency.h" /> <ClInclude Include="..\..\..\src\transdialog.h" /> <ClInclude Include="..\..\..\src\import_export\univcsvdialog.h" /> <ClInclude Include="..\..\..\src\util.h" /> Modified: trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj.filters =================================================================== --- trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj.filters 2013-12-29 23:13:43 UTC (rev 5759) +++ trunk/build/msw-vc-2013e/tests/mmex_tests_mmex_tests.vcxproj.filters 2013-12-30 04:25:05 UTC (rev 5760) @@ -13,56 +13,26 @@ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> </Filter> + <Filter Include="Test Source"> + <UniqueIdentifier>{e41236b9-6551-4cc5-ae27-429a608ae52f}</UniqueIdentifier> + </Filter> + <Filter Include="Test Headers"> + <UniqueIdentifier>{08bebe76-1aa6-4c99-90a4-276f7e7e976d}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\db"> + <UniqueIdentifier>{939e1335-5187-46c1-8f3b-1b32cd121a36}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\Model"> + <UniqueIdentifier>{20c11445-232a-4a35-844e-f98aa5fbc283}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\Model"> + <UniqueIdentifier>{f0c93252-9d3f-428e-9102-fc7bb7e53042}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\db"> + <UniqueIdentifier>{8065496b-1595-40c0-aed0-25ad0497606d}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\..\src\model\Model_Account.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Asset.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Billsdeposits.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Budget.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Budgetsplittransaction.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Budgetyear.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Category.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Checking.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Currency.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Infotable.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Payee.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Report.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Setting.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Splittransaction.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Stock.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="..\..\..\src\model\Model_Subcategory.cpp"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\aboutdialog.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -123,18 +93,12 @@ <ClCompile Include="..\..\..\src\constants.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\tests\currency_test.cpp"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\currencydialog.cpp"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\customreportdialog.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\dbwrapper.cpp"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\import_export\export.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -180,9 +144,6 @@ <ClCompile Include="..\..\..\src\mmex.cpp"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\tests\mmex_tests.cpp"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\reports\mmgraphgenerator.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -276,110 +237,71 @@ <ClCompile Include="..\..\..\src\wizard_newdb.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\tests\currency_test.cpp"> + <Filter>Test Source</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Account.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Asset.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Billsdeposits.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Budget.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Budgetsplittransaction.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Budgetyear.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Category.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Checking.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Currency.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Infotable.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Payee.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Report.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Setting.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Splittransaction.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Stock.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\model\Model_Subcategory.cpp"> + <Filter>Source Files\Model</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\dbwrapper.cpp"> + <Filter>Source Files\db</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\tests\mmex_tests.cpp"> + <Filter>Test Source</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\minimal_editor.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\tests\test_model_currency.cpp"> + <Filter>Test Source</Filter> + </ClCompile> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\..\src\db\DB_Table.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Accountlist_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Assets_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Billsdeposits_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Budgetsplittransactions_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Budgettable_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Budgetyear_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Category_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Checkingaccount_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Currencyformats_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Infotable_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Payee_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Report_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Setting_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Splittransactions_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Stock_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\db\DB_Table_Subcategory_V1.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Account.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Asset.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Billsdeposits.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Budget.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Budgetsplittransaction.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Budgetyear.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Category.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Checking.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Currency.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Infotable.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Payee.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Report.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Setting.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Splittransaction.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Stock.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\..\..\src\model\Model_Subcategory.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\aboutdialog.h"> <Filter>Header Files</Filter> </ClInclude> @@ -440,18 +362,12 @@ <ClInclude Include="..\..\..\src\constants.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\tests\currency_test.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\currencydialog.h"> <Filter>Header Files</Filter> </ClInclude> <ClInclude Include="..\..\..\src\customreportdialog.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\dbwrapper.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\defs.h"> <Filter>Header Files</Filter> </ClInclude> @@ -614,6 +530,120 @@ <ClInclude Include="..\..\..\src\wizard_newdb.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\..\..\src\tests\currency_test.h"> + <Filter>Test Headers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Accountlist_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Assets_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Billsdeposits_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Budgetsplittransactions_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Budgettable_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Budgetyear_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Category_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Checkingaccount_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Currencyformats_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Infotable_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Payee_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Report_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Setting_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Splittransactions_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Stock_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\db\DB_Table_Subcategory_V1.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\dbwrapper.h"> + <Filter>Header Files\db</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Account.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Asset.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Billsdeposits.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Budget.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Budgetsplittransaction.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Budgetyear.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Category.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Checking.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Currency.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Infotable.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Payee.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Report.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Setting.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Splittransaction.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Stock.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\model\Model_Subcategory.h"> + <Filter>Header Files\Model</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\minimal_editor.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\tests\test_model_currency.h"> + <Filter>Test Headers</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\src\tests\mmex_tests.rc"> Modified: trunk/src/model/Model_Currency.cpp =================================================================== --- trunk/src/model/Model_Currency.cpp 2013-12-29 23:13:43 UTC (rev 5759) +++ trunk/src/model/Model_Currency.cpp 2013-12-30 04:25:05 UTC (rev 5760) @@ -113,9 +113,8 @@ return sys_thousand_separator; } -wxString Model_Currency::toString(double value, const Data* currency) +wxString Model_Currency::toString(double value, const Data* currency, int precision) { - int precision = 2; int style = wxNumberFormatter::Style_WithThousandsSep; wxString s = wxNumberFormatter::ToString(value, precision, style); if (currency) Modified: trunk/src/model/Model_Currency.h =================================================================== --- trunk/src/model/Model_Currency.h 2013-12-29 23:13:43 UTC (rev 5759) +++ trunk/src/model/Model_Currency.h 2013-12-30 04:25:05 UTC (rev 5760) @@ -50,7 +50,9 @@ static Data* GetBaseCurrency(); static wxString toCurrency(double value, const Data* currency = GetBaseCurrency()); static wxString os_group_separator(); - static wxString toString(double value, const Data* currency = GetBaseCurrency()); + /** convert value to a currency formatted string with required precision */ + static wxString toString(double value, const Data* currency = GetBaseCurrency(), int precision = 2); + /** Remove prefix and suffix characters from string value */ static wxString fromString(wxString s, const Data* currency); static bool fromString(wxString s, double& val, const Data* currency = GetBaseCurrency()); static int precision(const Data* r); Modified: trunk/src/tests/mmex_tests.cpp =================================================================== --- trunk/src/tests/mmex_tests.cpp 2013-12-29 23:13:43 UTC (rev 5759) +++ trunk/src/tests/mmex_tests.cpp 2013-12-30 04:25:05 UTC (rev 5760) @@ -1,5 +1,6 @@ /******************************************************* Copyright (C) 2009 VaDiM +Copyright (C) 2013 James Higley This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -57,7 +58,11 @@ // Print test in a compiler compatible format. CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); - outputter.write(); + outputter.write(); + + // Pause command window. Allow user to review results from Windows and/or IDE + std::cout << "\nPress ENTER to continue... "; + std::cin.get(); } catch ( std::invalid_argument &e ) // Test path not resolved { Added: trunk/src/tests/test_model_currency.cpp =================================================================== --- trunk/src/tests/test_model_currency.cpp (rev 0) +++ trunk/src/tests/test_model_currency.cpp 2013-12-30 04:25:05 UTC (rev 5760) @@ -0,0 +1,108 @@ +/******************************************************* +Copyright (C) 2013 James Higley +Copyright (C) 2013 Stefano Giorgio + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Placeuite 330, Boston, MA 02111-1307 USA + ********************************************************/ + +#include "defs.h" +#include <cppunit/config/SourcePrefix.h> + +#include "test_model_currency.h" +#include "dbwrapper.h" +#include "model/Model_Currency.h" + +// Registers the fixture into the 'registry' +CPPUNIT_TEST_SUITE_REGISTRATION(Test_Model_Currency); + +static int instance_count = 0; + +Test_Model_Currency::Test_Model_Currency() +{ + instance_count++; + test_db_filename = "cppunit_test_database.mmb"; +} + +Test_Model_Currency::~Test_Model_Currency() +{ +} + +void Test_Model_Currency::setUp() +{ + m_test_db = mmDBWrapper::Open(test_db_filename); + + // Using separate initialisation for debugging purposes. + int shared_ptr_useage_count = m_test_db.use_count(); + if (shared_ptr_useage_count == 2) + { + // initialize the model. Once only + Model_Currency currency = Model_Currency::instance(m_test_db.get()); + } +} + +void Test_Model_Currency::tearDown() +{ +// m_test_db->Close(); +} + +void Test_Model_Currency::test_TwoDigitPrecision() +{ + Model_Currency currency = Model_Currency::instance(); + wxString value = currency.toString(3.1415926, 0, 2); + CPPUNIT_ASSERT(value == "3.14"); +} + +void Test_Model_Currency::test_FourDigitPrecision() +{ + Model_Currency currency = Model_Currency::instance(); + wxString value = currency.toString(3.1415926, 0, 4); + CPPUNIT_ASSERT(value == "3.1416"); +} + +void Test_Model_Currency::test_Currency_AUD() +{ + Model_Currency currency = Model_Currency::instance(); + + // Locate the AU record + Model_Currency::Data au_record; + for (const auto& currency_record : currency.all()) + { + if (currency_record.CURRENCY_SYMBOL == "AUD") + { + au_record = currency_record; + } + } + + wxString value = currency.toString(10003.1415926, &au_record, 4); + CPPUNIT_ASSERT(value == "10,003.1416"); + + value = currency.toString(10003.1415926, &au_record, 2); + CPPUNIT_ASSERT(value == "10,003.14"); + + au_record.PFX_SYMBOL = "$"; + au_record.save(m_test_db.get()); + + value = currency.fromString("$1,003.1416", &au_record); + CPPUNIT_ASSERT(value == "1,003.1416"); + + au_record.PFX_SYMBOL = "AU $"; + au_record.save(m_test_db.get()); + + value = currency.toCurrency(1003.14, &au_record); + CPPUNIT_ASSERT(value == "AU $1,003.14"); + + value = currency.toCurrency(1003.1416, &au_record); + CPPUNIT_ASSERT(value == "AU $1,003.1416"); +} Property changes on: trunk/src/tests/test_model_currency.cpp ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/src/tests/test_model_currency.h =================================================================== --- trunk/src/tests/test_model_currency.h (rev 0) +++ trunk/src/tests/test_model_currency.h 2013-12-30 04:25:05 UTC (rev 5760) @@ -0,0 +1,55 @@ +/******************************************************* +Copyright (C) 2013 James Higley +Copyright (C) 2013 Stefano Giorgio + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ********************************************************/ + +#pragma once; +//---------------------------------------------------------------------------- +#include <wx/intl.h> +#include <cppunit/extensions/HelperMacros.h> +//---------------------------------------------------------------------------- + +class Test_Model_Currency : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE(Test_Model_Currency); + CPPUNIT_TEST(test_TwoDigitPrecision); + CPPUNIT_TEST(test_FourDigitPrecision); + CPPUNIT_TEST(test_Currency_AUD); + CPPUNIT_TEST_SUITE_END(); + +public: + Test_Model_Currency(); + + virtual ~Test_Model_Currency(); + + void setUp(); + void tearDown(); + + void test_TwoDigitPrecision(); + void test_FourDigitPrecision(); + void test_Currency_AUD(); + +private: + /// Prevents the use of the copy constructor. + Test_Model_Currency(const Test_Model_Currency ©); + + /// Prevents the use of the copy operator. + void operator =(const Test_Model_Currency ©); + + wxString test_db_filename; + wxSharedPtr<wxSQLite3Database> m_test_db; +}; Property changes on: trunk/src/tests/test_model_currency.h ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |