added swap() for the other arrays too
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 11 Sep 2008 13:51:41 +0000 (13:51 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 11 Sep 2008 13:51:41 +0000 (13:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
tests/arrays/arrays.cpp

index 38529b36d6f0d3e74ea0d025f43764a5f7e1761c..cb0268bff5e60d68d264b8bea45094f95fba73ac 100644 (file)
@@ -291,7 +291,7 @@ All:
 - Corrected bug in wxTimeSpan::IsShorterThan() for equal time spans.
 - Use std::unordered_{map,set} for wxHashMap/Set if available (Jan van Dijk).
 - Added wxString::Capitalize() and MakeCapitalized().
-- Added wxArrayString::swap().
+- Added wxArray::swap().
 - Added wxSHUTDOWN_LOGOFF and wxSHUTDOWN_FORCE wxShutdown() flags (troelsk).
 
 All (Unix):
index f97572dc99e5ed2756568c8aa54d29c6e892b947..972abe40f0fe1422e70b94d1a28d7c9efecb78eb 100644 (file)
@@ -557,28 +557,44 @@ void ArraysTestCase::Alloc()
     CPPUNIT_ASSERT_EQUAL( 9, a[1] );
 }
 
-void ArraysTestCase::Swap()
+namespace
+{
+
+template <typename A, typename T>
+void DoTestSwap(T v1, T v2, T v3,
+                A * WXUNUSED(dummyUglyVC6Workaround))
 {
-    wxArrayString a1, a2;
+    A a1, a2;
     a1.swap(a2);
     CPPUNIT_ASSERT( a1.empty() && a2.empty() );
 
-    a1.push_back("Foo");
+    a1.push_back(v1);
     a1.swap(a2);
     CPPUNIT_ASSERT( a1.empty() );
     CPPUNIT_ASSERT_EQUAL( 1, a2.size() );
 
-    a1.push_back("Bar");
-    a1.push_back("Baz");
+    a1.push_back(v2);
+    a1.push_back(v3);
     a2.swap(a1);
     CPPUNIT_ASSERT_EQUAL( 1, a1.size() );
     CPPUNIT_ASSERT_EQUAL( 2, a2.size() );
+    CPPUNIT_ASSERT_EQUAL( v1, a1[0] );
+    CPPUNIT_ASSERT_EQUAL( v3, a2[1] );
 
     a1.swap(a2);
     CPPUNIT_ASSERT_EQUAL( 2, a1.size() );
     CPPUNIT_ASSERT_EQUAL( 1, a2.size() );
 }
 
+} // anonymous namespace
+
+void ArraysTestCase::Swap()
+{
+    DoTestSwap("Foo", "Bar", "Baz", (wxArrayString *)NULL);
+    DoTestSwap(1, 10, 100, (wxArrayInt *)NULL);
+    DoTestSwap(6, 28, 496, (wxArrayLong *)NULL);
+}
+
 void ArraysTestCase::TestSTL()
 {
     wxArrayInt list1;