static size_t GetNumber() { return ms_bars; }
- const wxChar *GetName() const { return m_name; }
+ const wxChar *GetName() const { return m_name.c_str(); }
private:
wxString m_name;
WX_DEFINE_SORTED_ARRAY_CMP_INT(int, IntCompareValues, wxSortedArrayInt);
+struct Item
+{
+ Item(int n_ = 0) : n(n_) { }
+
+ int n;
+};
+
+WX_DEFINE_ARRAY_PTR(Item *, ItemPtrArray);
+
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
CPPUNIT_TEST( wxArrayCharTest );
CPPUNIT_TEST( TestSTL );
CPPUNIT_TEST( Alloc );
+ CPPUNIT_TEST( Swap );
CPPUNIT_TEST_SUITE_END();
void wxStringArrayTest();
void wxArrayCharTest();
void TestSTL();
void Alloc();
+ void Swap();
DECLARE_NO_COPY_CLASS(ArraysTestCase)
};
wxT("<title>Initial page of Mozilla Firefox</title>")
wxT("</meta></head></html>");
- for (size_t i=0; i < WXSIZEOF(separators); i++)
+ size_t i;
+ for (i = 0; i < WXSIZEOF(separators); i++)
{
wxArrayString arr = wxSplit(str, separators[i]);
CPPUNIT_ASSERT( str == wxJoin(arr, separators[i]) );
};
wxArrayString theArr(WXSIZEOF(arr), arr);
- for (size_t i=0; i < WXSIZEOF(separators); i++)
+ for (i = 0; i < WXSIZEOF(separators); i++)
{
wxString string = wxJoin(theArr, separators[i]);
CPPUNIT_ASSERT( theArr == wxSplit(string, separators[i]) );
CPPUNIT_ASSERT_EQUAL( 9, a[1] );
}
+namespace
+{
+
+template <typename A, typename T>
+void DoTestSwap(T v1, T v2, T v3,
+ A * WXUNUSED(dummyUglyVC6Workaround))
+{
+ A a1, a2;
+ a1.swap(a2);
+ CPPUNIT_ASSERT( a1.empty() && a2.empty() );
+
+ a1.push_back(v1);
+ a1.swap(a2);
+ CPPUNIT_ASSERT( a1.empty() );
+ CPPUNIT_ASSERT_EQUAL( 1, a2.size() );
+
+ 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;
{
CPPUNIT_ASSERT( *it == i );
}
+
+
+ ItemPtrArray items;
+ items.push_back(new Item(17));
+ CPPUNIT_ASSERT_EQUAL( 17, (*(items.rbegin()))->n );
+ CPPUNIT_ASSERT_EQUAL( 17, (**items.begin()).n );
}