From: Václav Slavík Date: Thu, 1 Apr 2004 21:10:33 +0000 (+0000) Subject: moved arrays tests to testsuite (patch 927475) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/cf1014a2e11a3b06fecfb674a85a37120703a5c1 moved arrays tests to testsuite (patch 927475) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/console/console.cpp b/samples/console/console.cpp index 668093ddbe..01ce277708 100644 --- a/samples/console/console.cpp +++ b/samples/console/console.cpp @@ -51,7 +51,6 @@ #if TEST_ALL - #define TEST_ARRAYS #define TEST_CHARSET #define TEST_CMDLINE #define TEST_DATETIME @@ -114,7 +113,7 @@ // test class for container objects // ---------------------------------------------------------------------------- -#if defined(TEST_ARRAYS) || defined(TEST_LIST) +#if defined(TEST_LIST) class Bar // Foo is already taken in the hash test { @@ -135,7 +134,7 @@ private: size_t Bar::ms_bars = 0; -#endif // defined(TEST_ARRAYS) || defined(TEST_LIST) +#endif // defined(TEST_LIST) // ============================================================================ // implementation @@ -6221,214 +6220,6 @@ static void TestSemaphore() #endif // TEST_THREADS -// ---------------------------------------------------------------------------- -// arrays -// ---------------------------------------------------------------------------- - -#ifdef TEST_ARRAYS - -#include "wx/dynarray.h" - -typedef unsigned short ushort; - -#define DefineCompare(name, T) \ - \ -int wxCMPFUNC_CONV name ## CompareValues(T first, T second) \ -{ \ - return first - second; \ -} \ - \ -int wxCMPFUNC_CONV name ## Compare(T* first, T* second) \ -{ \ - return *first - *second; \ -} \ - \ -int wxCMPFUNC_CONV name ## RevCompare(T* first, T* second) \ -{ \ - return *second - *first; \ -} \ - -DefineCompare(UShort, ushort); -DefineCompare(Int, int); - -// test compilation of all macros -WX_DEFINE_ARRAY_SHORT(ushort, wxArrayUShort); -WX_DEFINE_SORTED_ARRAY_SHORT(ushort, wxSortedArrayUShortNoCmp); -WX_DEFINE_SORTED_ARRAY_CMP_SHORT(ushort, UShortCompareValues, wxSortedArrayUShort); -WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt); - -WX_DECLARE_OBJARRAY(Bar, ArrayBars); -#include "wx/arrimpl.cpp" -WX_DEFINE_OBJARRAY(ArrayBars); - -static void PrintArray(const wxChar* name, const wxArrayString& array) -{ - wxPrintf(_T("Dump of the array '%s'\n"), name); - - size_t nCount = array.GetCount(); - for ( size_t n = 0; n < nCount; n++ ) - { - wxPrintf(_T("\t%s[%u] = '%s'\n"), name, n, array[n].c_str()); - } -} - -static void PrintArray(const wxChar* name, const wxSortedArrayString& array) -{ - wxPrintf(_T("Dump of the array '%s'\n"), name); - - size_t nCount = array.GetCount(); - for ( size_t n = 0; n < nCount; n++ ) - { - wxPrintf(_T("\t%s[%u] = '%s'\n"), name, n, array[n].c_str()); - } -} - -int wxCMPFUNC_CONV StringLenCompare(const wxString& first, - const wxString& second) -{ - return first.length() - second.length(); -} - -#define TestArrayOf(name) \ - \ -static void PrintArray(const wxChar* name, const wxSortedArray##name & array) \ -{ \ - wxPrintf(_T("Dump of the array '%s'\n"), name); \ - \ - size_t nCount = array.GetCount(); \ - for ( size_t n = 0; n < nCount; n++ ) \ - { \ - wxPrintf(_T("\t%s[%u] = %d\n"), name, n, array[n]); \ - } \ -} \ - \ -static void PrintArray(const wxChar* name, const wxArray##name & array) \ -{ \ - wxPrintf(_T("Dump of the array '%s'\n"), name); \ - \ - size_t nCount = array.GetCount(); \ - for ( size_t n = 0; n < nCount; n++ ) \ - { \ - wxPrintf(_T("\t%s[%u] = %d\n"), name, n, array[n]); \ - } \ -} \ - \ -static void TestArrayOf ## name ## s() \ -{ \ - wxPrintf(_T("*** Testing wxArray%s ***\n"), #name); \ - \ - wxArray##name a; \ - a.Add(1); \ - a.Add(17,2); \ - a.Add(5,3); \ - a.Add(3,4); \ - \ - wxPuts(_T("Initially:")); \ - PrintArray(_T("a"), a); \ - \ - wxPuts(_T("After sort:")); \ - a.Sort(name ## Compare); \ - PrintArray(_T("a"), a); \ - \ - wxPuts(_T("After reverse sort:")); \ - a.Sort(name ## RevCompare); \ - PrintArray(_T("a"), a); \ - \ - wxSortedArray##name b; \ - b.Add(1); \ - b.Add(17); \ - b.Add(5); \ - b.Add(3); \ - \ - wxPuts(_T("Sorted array initially:")); \ - PrintArray(_T("b"), b); \ -} - -TestArrayOf(UShort); -TestArrayOf(Int); - -static void TestStlArray() -{ - wxPuts(_T("*** Testing std::vector operations ***\n")); - - { - wxArrayInt list1; - wxArrayInt::iterator it, en; - wxArrayInt::reverse_iterator rit, ren; - int i; - for ( i = 0; i < 5; ++i ) - list1.push_back(i); - - for ( it = list1.begin(), en = list1.end(), i = 0; - it != en; ++it, ++i ) - if ( *it != i ) - wxPuts(_T("Error in iterator\n")); - - for ( rit = list1.rbegin(), ren = list1.rend(), i = 4; - rit != ren; ++rit, --i ) - if ( *rit != i ) - wxPuts(_T("Error in reverse_iterator\n")); - - if ( *list1.rbegin() != *(list1.end()-1) || - *list1.begin() != *(list1.rend()-1) ) - wxPuts(_T("Error in iterator/reverse_iterator\n")); - - it = list1.begin()+1; - rit = list1.rbegin()+1; - if ( *list1.begin() != *(it-1) || - *list1.rbegin() != *(rit-1) ) - wxPuts(_T("Error in iterator/reverse_iterator\n")); - - if ( list1.front() != 0 || list1.back() != 4 ) - wxPuts(_T("Error in front()/back()\n")); - - list1.erase(list1.begin()); - list1.erase(list1.end()-1); - - for ( it = list1.begin(), en = list1.end(), i = 1; - it != en; ++it, ++i ) - if ( *it != i ) - wxPuts(_T("Error in erase()\n")); - } - - wxPuts(_T("*** Testing std::vector operations finished ***\n")); -} - -static void TestArrayOfObjects() -{ - wxPuts(_T("*** Testing wxObjArray ***\n")); - - { - ArrayBars bars; - Bar bar(_T("second bar (two copies!)")); - - wxPrintf(_T("Initially: %u objects in the array, %u objects total.\n"), - bars.GetCount(), Bar::GetNumber()); - - bars.Add(new Bar(_T("first bar"))); - bars.Add(bar,2); - - wxPrintf(_T("Now: %u objects in the array, %u objects total.\n"), - bars.GetCount(), Bar::GetNumber()); - - bars.RemoveAt(1, bars.GetCount() - 1); - - wxPrintf(_T("After removing all but first element: %u objects in the ") - _T("array, %u objects total.\n"), - bars.GetCount(), Bar::GetNumber()); - - bars.Empty(); - - wxPrintf(_T("After Empty(): %u objects in the array, %u objects total.\n"), - bars.GetCount(), Bar::GetNumber()); - } - - wxPrintf(_T("Finally: no more objects in the array, %u objects total.\n"), - Bar::GetNumber()); -} - -#endif // TEST_ARRAYS - // ---------------------------------------------------------------------------- // strings // ---------------------------------------------------------------------------- @@ -7276,69 +7067,6 @@ int main(int argc, char **argv) TestStdString(); #endif // TEST_STRINGS -#ifdef TEST_ARRAYS - #if TEST_ALL - wxArrayString a1; - a1.Add(_T("tiger")); - a1.Add(_T("cat")); - a1.Add(_T("lion"), 3); - a1.Add(_T("dog")); - a1.Add(_T("human")); - a1.Add(_T("ape")); - - wxPuts(_T("*** Initially:")); - - PrintArray(_T("a1"), a1); - - wxArrayString a2(a1); - PrintArray(_T("a2"), a2); - - #if !wxUSE_STL - wxSortedArrayString a3(a1); - #else - wxSortedArrayString a3; - for (wxArrayString::iterator it = a1.begin(), en = a1.end(); - it != en; ++it) - a3.Add(*it); - #endif - PrintArray(_T("a3"), a3); - - wxPuts(_T("*** After deleting three strings from a1")); - a1.RemoveAt(2,3); - - PrintArray(_T("a1"), a1); - PrintArray(_T("a2"), a2); - PrintArray(_T("a3"), a3); - - #if !wxUSE_STL - wxPuts(_T("*** After reassigning a1 to a2 and a3")); - a3 = a2 = a1; - PrintArray(_T("a2"), a2); - PrintArray(_T("a3"), a3); - #endif - - wxPuts(_T("*** After sorting a1")); - a1.Sort(false); - PrintArray(_T("a1"), a1); - - wxPuts(_T("*** After sorting a1 in reverse order")); - a1.Sort(true); - PrintArray(_T("a1"), a1); - - #if !wxUSE_STL - wxPuts(_T("*** After sorting a1 by the string length")); - a1.Sort(&StringLenCompare); - PrintArray(_T("a1"), a1); - #endif - - TestArrayOfObjects(); - TestArrayOfUShorts(); - #endif - - TestArrayOfInts(); - TestStlArray(); -#endif // TEST_ARRAYS - #ifdef TEST_DIR #if TEST_ALL TestDirExists(); diff --git a/tests/Makefile.in b/tests/Makefile.in index 314755b0ec..4529643214 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -40,7 +40,8 @@ TEST_OBJECTS = \ test_main.o \ test_formatconverter.o \ test_regex.o \ - test_filesys.o + test_filesys.o \ + test_arrays.o ### Conditionally set variables: ### @@ -118,6 +119,9 @@ test_regex.o: $(srcdir)/regex/regex.cpp test_filesys.o: $(srcdir)/filesys/filesys.cpp $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $< +test_arrays.o: $(srcdir)/arrays/arrays.cpp + $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $< + # Include dependency info, if present: @IF_GNU_MAKE@-include .deps/*.d diff --git a/tests/arrays/arrays.cpp b/tests/arrays/arrays.cpp new file mode 100644 index 0000000000..f9ef9df2b7 --- /dev/null +++ b/tests/arrays/arrays.cpp @@ -0,0 +1,380 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: tests/arrays/arrays.cpp +// Purpose: wxArray unit test +// Author: Wlodzimierz ABX Skiba +// Created: 2004-04-01 +// RCS-ID: $Id$ +// Copyright: (c) 2004 Wlodzimierz Skiba +/////////////////////////////////////////////////////////////////////////////// + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif // WX_PRECOMP + +#include "wx/dynarray.h" + +#include "wx/cppunit.h" + +// ---------------------------------------------------------------------------- +// helpers for testing values and sizes +// ---------------------------------------------------------------------------- + +#define COMPARE_VALUE( array , index , value ) ( array.Item( index ) == value ) + +#define COMPARE_2_VALUES( array , p0 , p1 ) \ + COMPARE_VALUE( array , 0 , p0 ) && \ + COMPARE_VALUE( array , 1 , p1 ) + +#define COMPARE_3_VALUES( array , p0 , p1 , p2 ) \ + COMPARE_2_VALUES( array , p0 , p1 ) && \ + COMPARE_VALUE( array , 2 , p2 ) + +#define COMPARE_4_VALUES( array , p0 , p1 , p2 , p3 ) \ + COMPARE_3_VALUES( array , p0 , p1 , p2 ) && \ + COMPARE_VALUE( array , 3 , p3 ) + +#define COMPARE_5_VALUES( array , p0 , p1 , p2 , p3 , p4 ) \ + COMPARE_4_VALUES( array , p0 , p1 , p2 , p3 ) && \ + COMPARE_VALUE( array , 4 , p4 ) + +#define COMPARE_6_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 ) \ + COMPARE_5_VALUES( array , p0 , p1 , p2 , p3 , p4 ) && \ + COMPARE_VALUE( array , 5 , p5 ) + +#define COMPARE_7_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 ) \ + COMPARE_6_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 ) && \ + COMPARE_VALUE( array , 6 , p6 ) + +#define COMPARE_8_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 ) \ + COMPARE_7_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 ) && \ + COMPARE_VALUE( array , 7 , p7 ) + +#define COMPARE_9_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) \ + COMPARE_8_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 ) && \ + COMPARE_VALUE( array , 8 , p8 ) + +#define COMPARE_10_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 ) \ + COMPARE_9_VALUES( array , p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) && \ + COMPARE_VALUE( array , 9 , p9 ) + +#define COMPARE_COUNT( array , n ) \ + ( array.GetCount() == n ) && \ + ( array.Last() == array.Item( n - 1 ) ) + +// ---------------------------------------------------------------------------- +// helpers for testing wxObjArray +// ---------------------------------------------------------------------------- + +class Bar +{ +public: + Bar(const wxString& name) : m_name(name) { ms_bars++; } + Bar(const Bar& bar) : m_name(bar.m_name) { ms_bars++; } + ~Bar() { ms_bars--; } + + static size_t GetNumber() { return ms_bars; } + + const wxChar *GetName() const { return m_name; } + +private: + wxString m_name; + + static size_t ms_bars; +}; + +size_t Bar::ms_bars = 0; + +WX_DECLARE_OBJARRAY(Bar, ArrayBars); +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(ArrayBars); + +// ---------------------------------------------------------------------------- +// helpers for sorting arrays and comparing items +// ---------------------------------------------------------------------------- + +int wxCMPFUNC_CONV StringLenCompare(const wxString& first, + const wxString& second) +{ + return first.length() - second.length(); +} + +#define DEFINE_COMPARE(name, T) \ + \ +int wxCMPFUNC_CONV name ## CompareValues(T first, T second) \ +{ \ + return first - second; \ +} \ + \ +int wxCMPFUNC_CONV name ## Compare(T* first, T* second) \ +{ \ + return *first - *second; \ +} \ + \ +int wxCMPFUNC_CONV name ## RevCompare(T* first, T* second) \ +{ \ + return *second - *first; \ +} \ + +typedef unsigned short ushort; + +DEFINE_COMPARE(UShort, ushort); +DEFINE_COMPARE(Int, int); + +WX_DEFINE_ARRAY_SHORT(ushort, wxArrayUShort); +WX_DEFINE_SORTED_ARRAY_SHORT(ushort, wxSortedArrayUShortNoCmp); +WX_DEFINE_SORTED_ARRAY_CMP_SHORT(ushort, UShortCompareValues, wxSortedArrayUShort); +WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt); + +// ---------------------------------------------------------------------------- +// test class +// ---------------------------------------------------------------------------- + +class ArraysTestCase : public CppUnit::TestCase +{ +public: + ArraysTestCase() { } + +private: + CPPUNIT_TEST_SUITE( ArraysTestCase ); + CPPUNIT_TEST( wxStringArrayTest ); + CPPUNIT_TEST( wxObjArrayTest ); + CPPUNIT_TEST( wxArrayUShortTest ); + CPPUNIT_TEST( wxArrayIntTest ); + CPPUNIT_TEST( TestSTL ); + CPPUNIT_TEST_SUITE_END(); + + void wxStringArrayTest(); + void wxObjArrayTest(); + void wxArrayUShortTest(); + void wxArrayIntTest(); + void TestSTL(); + + DECLARE_NO_COPY_CLASS(ArraysTestCase) +}; + +// register in the unnamed registry so that these tests are run by default +CPPUNIT_TEST_SUITE_REGISTRATION( ArraysTestCase ); + +// also include in it's own registry so that these tests can be run alone +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ArraysTestCase, "ArraysTestCase" ); + +void ArraysTestCase::wxStringArrayTest() +{ + wxArrayString a1; + a1.Add(_T("thermit")); + a1.Add(_T("condor")); + a1.Add(_T("lion"), 3); + a1.Add(_T("dog")); + a1.Add(_T("human")); + a1.Add(_T("alligator")); + + CPPUNIT_ASSERT( COMPARE_8_VALUES( a1 , _T("thermit") , + _T("condor") , + _T("lion") , + _T("lion") , + _T("lion") , + _T("dog") , + _T("human") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 8 ) ); + + wxArrayString a2(a1); + + CPPUNIT_ASSERT( COMPARE_8_VALUES( a2 , _T("thermit") , + _T("condor") , + _T("lion") , + _T("lion") , + _T("lion") , + _T("dog") , + _T("human") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a2 , 8 ) ); + + wxSortedArrayString a3(a1); + + CPPUNIT_ASSERT( COMPARE_8_VALUES( a3 , _T("alligator") , + _T("condor") , + _T("dog") , + _T("human") , + _T("lion") , + _T("lion") , + _T("lion") , + _T("thermit") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a3 , 8 ) ); + + wxSortedArrayString a4; + for (wxArrayString::iterator it = a1.begin(), en = a1.end(); it != en; ++it) + a4.Add(*it); + + CPPUNIT_ASSERT( COMPARE_8_VALUES( a4 , _T("alligator") , + _T("condor") , + _T("dog") , + _T("human") , + _T("lion") , + _T("lion") , + _T("lion") , + _T("thermit") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a4 , 8 ) ); + + a1.RemoveAt(2,3); + + CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , _T("thermit") , + _T("condor") , + _T("dog") , + _T("human") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); + + a2 = a1; + + CPPUNIT_ASSERT( COMPARE_5_VALUES( a2 , _T("thermit") , + _T("condor") , + _T("dog") , + _T("human") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a2 , 5 ) ); + + a1.Sort(false); + + CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , _T("alligator") , + _T("condor") , + _T("dog") , + _T("human") , + _T("thermit") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); + + a1.Sort(true); + + CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , _T("thermit") , + _T("human") , + _T("dog") , + _T("condor") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); + + a1.Sort(&StringLenCompare); + + CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , _T("dog") , + _T("human") , + _T("condor") , + _T("thermit") , + _T("alligator") ) ); + CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); +} + +void ArraysTestCase::wxObjArrayTest() +{ + { + ArrayBars bars; + Bar bar(_T("first bar in general, second bar in array (two copies!)")); + + CPPUNIT_ASSERT( bars.GetCount() == 0 ); + CPPUNIT_ASSERT( Bar::GetNumber() == 1 ); + + bars.Add(new Bar(_T("first bar in array"))); + bars.Add(bar,2); + + CPPUNIT_ASSERT( bars.GetCount() == 3 ); + CPPUNIT_ASSERT( Bar::GetNumber() == 4 ); + + bars.RemoveAt(1, bars.GetCount() - 1); + + CPPUNIT_ASSERT( bars.GetCount() == 1 ); + CPPUNIT_ASSERT( Bar::GetNumber() == 2 ); + + bars.Empty(); + + CPPUNIT_ASSERT( bars.GetCount() == 0 ); + CPPUNIT_ASSERT( Bar::GetNumber() == 1 ); + } + CPPUNIT_ASSERT( Bar::GetNumber() == 0 ); +} + +#define TestArrayOf(name) \ + \ +void ArraysTestCase::wxArray ## name ## Test() \ +{ \ + wxArray##name a; \ + a.Add(1); \ + a.Add(17,2); \ + a.Add(5,3); \ + a.Add(3,4); \ + \ + CPPUNIT_ASSERT( COMPARE_10_VALUES(a,1,17,17,5,5,5,3,3,3,3) ); \ + CPPUNIT_ASSERT( COMPARE_COUNT( a , 10 ) ); \ + \ + a.Sort(name ## Compare); \ + \ + CPPUNIT_ASSERT( COMPARE_10_VALUES(a,1,3,3,3,3,5,5,5,17,17) ); \ + CPPUNIT_ASSERT( COMPARE_COUNT( a , 10 ) ); \ + \ + a.Sort(name ## RevCompare); \ + \ + CPPUNIT_ASSERT( COMPARE_10_VALUES(a,17,17,5,5,5,3,3,3,3,1) ); \ + CPPUNIT_ASSERT( COMPARE_COUNT( a , 10 ) ); \ + \ + wxSortedArray##name b; \ + \ + b.Add(1); \ + b.Add(17); \ + b.Add(5); \ + b.Add(3); \ + \ + CPPUNIT_ASSERT( COMPARE_4_VALUES(b,1,3,5,17) ); \ + CPPUNIT_ASSERT( COMPARE_COUNT( b , 4 ) ); \ +} + +TestArrayOf(UShort); + +TestArrayOf(Int); + +void ArraysTestCase::TestSTL() +{ + wxArrayInt list1; + wxArrayInt::iterator it, en; + wxArrayInt::reverse_iterator rit, ren; + int i; + for ( i = 0; i < 5; ++i ) + list1.push_back(i); + + for ( it = list1.begin(), en = list1.end(), i = 0; + it != en; ++it, ++i ) + { + CPPUNIT_ASSERT( *it == i ); + } + + for ( rit = list1.rbegin(), ren = list1.rend(), i = 4; + rit != ren; ++rit, --i ) + { + CPPUNIT_ASSERT( *rit == i ); + } + + CPPUNIT_ASSERT( *list1.rbegin() == *(list1.end()-1) && + *list1.begin() == *(list1.rend()-1) ); + + it = list1.begin()+1; + rit = list1.rbegin()+1; + CPPUNIT_ASSERT( *list1.begin() == *(it-1) && + *list1.rbegin() == *(rit-1) ); + + CPPUNIT_ASSERT( ( list1.front() == 0 ) && ( list1.back() == 4 ) ); + + list1.erase(list1.begin()); + list1.erase(list1.end()-1); + + for ( it = list1.begin(), en = list1.end(), i = 1; + it != en; ++it, ++i ) + { + CPPUNIT_ASSERT( *it == i ); + } +} diff --git a/tests/makefile.bcc b/tests/makefile.bcc index 21ff5824cd..af3d850257 100644 --- a/tests/makefile.bcc +++ b/tests/makefile.bcc @@ -34,7 +34,8 @@ TEST_OBJECTS = \ $(OBJS)\test_main.obj \ $(OBJS)\test_formatconverter.obj \ $(OBJS)\test_regex.obj \ - $(OBJS)\test_filesys.obj + $(OBJS)\test_filesys.obj \ + $(OBJS)\test_arrays.obj ### Conditionally set variables: ### @@ -168,3 +169,6 @@ $(OBJS)\test_regex.obj: .\regex\regex.cpp $(OBJS)\test_filesys.obj: .\filesys\filesys.cpp $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) $** + +$(OBJS)\test_arrays.obj: .\arrays\arrays.cpp + $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) $** diff --git a/tests/makefile.gcc b/tests/makefile.gcc index 15d4f09c92..042414e2bd 100644 --- a/tests/makefile.gcc +++ b/tests/makefile.gcc @@ -25,7 +25,8 @@ TEST_OBJECTS = \ $(OBJS)\test_main.o \ $(OBJS)\test_formatconverter.o \ $(OBJS)\test_regex.o \ - $(OBJS)\test_filesys.o + $(OBJS)\test_filesys.o \ + $(OBJS)\test_arrays.o ### Conditionally set variables: ### @@ -163,4 +164,7 @@ $(OBJS)\test_regex.o: ./regex/regex.cpp $(OBJS)\test_filesys.o: ./filesys/filesys.cpp $(CXX) -c -o $@ $(TEST_CXXFLAGS) $< +$(OBJS)\test_arrays.o: ./arrays/arrays.cpp + $(CXX) -c -o $@ $(TEST_CXXFLAGS) $< + .PHONY: all clean diff --git a/tests/makefile.vc b/tests/makefile.vc index 7da294623b..e3a9cad7e8 100644 --- a/tests/makefile.vc +++ b/tests/makefile.vc @@ -27,7 +27,8 @@ TEST_OBJECTS = \ $(OBJS)\test_main.obj \ $(OBJS)\test_formatconverter.obj \ $(OBJS)\test_regex.obj \ - $(OBJS)\test_filesys.obj + $(OBJS)\test_filesys.obj \ + $(OBJS)\test_arrays.obj ### Conditionally set variables: ### @@ -224,3 +225,6 @@ $(OBJS)\test_regex.obj: .\regex\regex.cpp $(OBJS)\test_filesys.obj: .\filesys\filesys.cpp $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) $** + +$(OBJS)\test_arrays.obj: .\arrays\arrays.cpp + $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) $** diff --git a/tests/makefile.wat b/tests/makefile.wat index 4d92c5ce5c..099040ca40 100644 --- a/tests/makefile.wat +++ b/tests/makefile.wat @@ -175,7 +175,8 @@ TEST_OBJECTS = & $(OBJS)\test_main.obj & $(OBJS)\test_formatconverter.obj & $(OBJS)\test_regex.obj & - $(OBJS)\test_filesys.obj + $(OBJS)\test_filesys.obj & + $(OBJS)\test_arrays.obj all : $(OBJS) @@ -218,3 +219,6 @@ $(OBJS)\test_regex.obj : .AUTODEPEND .\regex\regex.cpp $(OBJS)\test_filesys.obj : .AUTODEPEND .\filesys\filesys.cpp $(CXX) -zq -fo=$^@ $(TEST_CXXFLAGS) $< + +$(OBJS)\test_arrays.obj : .AUTODEPEND .\arrays\arrays.cpp + $(CXX) -zq -fo=$^@ $(TEST_CXXFLAGS) $< diff --git a/tests/test.bkl b/tests/test.bkl index 6fa02eaa0c..c369af4561 100644 --- a/tests/test.bkl +++ b/tests/test.bkl @@ -13,6 +13,7 @@ formatconverter/formatconverter.cpp regex/regex.cpp filesys/filesys.cpp + arrays/arrays.cpp base diff --git a/tests/test.dsp b/tests/test.dsp index ec16fc8b2e..838cb7b024 100644 --- a/tests/test.dsp +++ b/tests/test.dsp @@ -435,6 +435,10 @@ LINK32=link.exe # PROP Default_Filter "" # Begin Source File +SOURCE=.\arrays\arrays.cpp +# End Source File +# Begin Source File + SOURCE=.\filesys\filesys.cpp # End Source File # Begin Source File