]> git.saurik.com Git - wxWidgets.git/commitdiff
Provide implementation for wxArrayString::resize().
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 16 Sep 2009 23:18:48 +0000 (23:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 16 Sep 2009 23:18:48 +0000 (23:18 +0000)
This method was declared but not implemented in wxUSE_STL==0 build.

Also add unit test for this function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/arrstr.cpp
tests/arrays/arrays.cpp

index 862519fe330d55b89b0f6f4c8db9c451fdd058d3..be461cc639ccd1a361631d4217c14e32c4520f4e 100644 (file)
@@ -345,6 +345,14 @@ wxArrayString::insert(iterator it, const_iterator first, const_iterator last)
     }
 }
 
+void wxArrayString::resize(size_type n, value_type v)
+{
+  if ( n < m_nCount )
+      m_nCount = n;
+  else if ( n > m_nCount )
+      Add(v, n - m_nCount);
+}
+
 // expand the array
 void wxArrayString::SetCount(size_t count)
 {
index ed74c948351ee84def33142f56ed2ba549f06fa4..4d276963dbf1c6f99c6b335de6c5238ec868f9c2 100644 (file)
@@ -327,6 +327,17 @@ void ArraysTestCase::wxStringArrayTest()
     CPPUNIT_ASSERT_EQUAL( WXSIZEOF(months), a5.size() );
     CPPUNIT_ASSERT( COMPARE_3_VALUES(a5, "Jan", "Feb", "Mar") );
 #endif // wxHAS_VECTOR_TEMPLATE_ASSIGN
+
+    a5.clear();
+    CPPUNIT_ASSERT_EQUAL( 0, a5.size() );
+
+    a5.resize(7, "Foo");
+    CPPUNIT_ASSERT_EQUAL( 7, a5.size() );
+    CPPUNIT_ASSERT_EQUAL( "Foo", a5[3] );
+
+    a5.resize(3);
+    CPPUNIT_ASSERT_EQUAL( 3, a5.size() );
+    CPPUNIT_ASSERT_EQUAL( "Foo", a5[2] );
 }
 
 void ArraysTestCase::wxStringArraySplitTest()