From 3d156e937a2203aa47d7a42b8b4d119016db1ab9 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 16 Sep 2009 23:18:48 +0000 Subject: [PATCH] Provide implementation for wxArrayString::resize(). 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 | 8 ++++++++ tests/arrays/arrays.cpp | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/common/arrstr.cpp b/src/common/arrstr.cpp index 862519fe33..be461cc639 100644 --- a/src/common/arrstr.cpp +++ b/src/common/arrstr.cpp @@ -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) { diff --git a/tests/arrays/arrays.cpp b/tests/arrays/arrays.cpp index ed74c94835..4d276963db 100644 --- a/tests/arrays/arrays.cpp +++ b/tests/arrays/arrays.cpp @@ -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() -- 2.47.2