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 ) ); CPPUNIT_ASSERT( a1.Index( _T("dog") ) == 0 ); CPPUNIT_ASSERT( a1.Index( _T("human") ) == 1 ); CPPUNIT_ASSERT( a1.Index( _T("humann") ) == wxNOT_FOUND ); CPPUNIT_ASSERT( a1.Index( _T("condor") ) == 2 ); CPPUNIT_ASSERT( a1.Index( _T("thermit") ) == 3 ); CPPUNIT_ASSERT( a1.Index( _T("alligator") ) == 4 ); wxArrayString a5; CPPUNIT_ASSERT( a5.Add( _T("x"), 1 ) == 0 ); CPPUNIT_ASSERT( a5.Add( _T("a"), 3 ) == 1 ); CPPUNIT_ASSERT( COMPARE_4_VALUES( a5, _T("x") , _T("a") , _T("a") , _T("a") ) ); }
void ArraysTestCase::wxStringArrayTest() { wxArrayString a1; a1.Add(wxT("thermit")); a1.Add(wxT("condor")); a1.Add(wxT("lion"), 3); a1.Add(wxT("dog")); a1.Add(wxT("human")); a1.Add(wxT("alligator")); CPPUNIT_ASSERT( COMPARE_8_VALUES( a1 , wxT("thermit") , wxT("condor") , wxT("lion") , wxT("lion") , wxT("lion") , wxT("dog") , wxT("human") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 8 ) ); wxArrayString a2(a1); CPPUNIT_ASSERT( COMPARE_8_VALUES( a2 , wxT("thermit") , wxT("condor") , wxT("lion") , wxT("lion") , wxT("lion") , wxT("dog") , wxT("human") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a2 , 8 ) ); wxSortedArrayString a3(a1); CPPUNIT_ASSERT( COMPARE_8_VALUES( a3 , wxT("alligator") , wxT("condor") , wxT("dog") , wxT("human") , wxT("lion") , wxT("lion") , wxT("lion") , wxT("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 , wxT("alligator") , wxT("condor") , wxT("dog") , wxT("human") , wxT("lion") , wxT("lion") , wxT("lion") , wxT("thermit") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a4 , 8 ) ); a1.RemoveAt(2,3); CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , wxT("thermit") , wxT("condor") , wxT("dog") , wxT("human") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); a2 = a1; CPPUNIT_ASSERT( COMPARE_5_VALUES( a2 , wxT("thermit") , wxT("condor") , wxT("dog") , wxT("human") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a2 , 5 ) ); a1.Sort(false); CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , wxT("alligator") , wxT("condor") , wxT("dog") , wxT("human") , wxT("thermit") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); a1.Sort(true); CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , wxT("thermit") , wxT("human") , wxT("dog") , wxT("condor") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); a1.Sort(&StringLenCompare); CPPUNIT_ASSERT( COMPARE_5_VALUES( a1 , wxT("dog") , wxT("human") , wxT("condor") , wxT("thermit") , wxT("alligator") ) ); CPPUNIT_ASSERT( COMPARE_COUNT( a1 , 5 ) ); CPPUNIT_ASSERT( a1.Index( wxT("dog") ) == 0 ); CPPUNIT_ASSERT( a1.Index( wxT("human") ) == 1 ); CPPUNIT_ASSERT( a1.Index( wxT("humann") ) == wxNOT_FOUND ); CPPUNIT_ASSERT( a1.Index( wxT("condor") ) == 2 ); CPPUNIT_ASSERT( a1.Index( wxT("thermit") ) == 3 ); CPPUNIT_ASSERT( a1.Index( wxT("alligator") ) == 4 ); CPPUNIT_ASSERT( a1.Index( wxT("dog"), /*bCase=*/true, /*fromEnd=*/true ) == 0 ); CPPUNIT_ASSERT( a1.Index( wxT("human"), /*bCase=*/true, /*fromEnd=*/true ) == 1 ); CPPUNIT_ASSERT( a1.Index( wxT("humann"), /*bCase=*/true, /*fromEnd=*/true ) == wxNOT_FOUND ); CPPUNIT_ASSERT( a1.Index( wxT("condor"), /*bCase=*/true, /*fromEnd=*/true ) == 2 ); CPPUNIT_ASSERT( a1.Index( wxT("thermit"), /*bCase=*/true, /*fromEnd=*/true ) == 3 ); CPPUNIT_ASSERT( a1.Index( wxT("alligator"), /*bCase=*/true, /*fromEnd=*/true ) == 4 ); wxArrayString a5; CPPUNIT_ASSERT( a5.Add( wxT("x"), 1 ) == 0 ); CPPUNIT_ASSERT( a5.Add( wxT("a"), 3 ) == 1 ); CPPUNIT_ASSERT( COMPARE_4_VALUES( a5, wxT("x") , wxT("a") , wxT("a") , wxT("a") ) ); a5.assign(a1.end(), a1.end()); CPPUNIT_ASSERT( a5.empty() ); a5.assign(a1.begin(), a1.end()); CPPUNIT_ASSERT( a5 == a1 ); const wxString months[] = { "Jan", "Feb", "Mar" }; a5.assign(months, months + WXSIZEOF(months)); CPPUNIT_ASSERT_EQUAL( WXSIZEOF(months), a5.size() ); CPPUNIT_ASSERT( COMPARE_3_VALUES(a5, "Jan", "Feb", "Mar") ); 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] ); wxArrayString a6; a6.Add("Foo"); a6.Insert(a6[0], 1, 100); }
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 ) ); CPPUNIT_ASSERT( a1.Index( _T("dog") ) == 0 ); CPPUNIT_ASSERT( a1.Index( _T("human") ) == 1 ); CPPUNIT_ASSERT( a1.Index( _T("humann") ) == wxNOT_FOUND ); CPPUNIT_ASSERT( a1.Index( _T("condor") ) == 2 ); CPPUNIT_ASSERT( a1.Index( _T("thermit") ) == 3 ); CPPUNIT_ASSERT( a1.Index( _T("alligator") ) == 4 ); wxArrayString a5; CPPUNIT_ASSERT( a5.Add( _T("x"), 1 ) == 0 ); CPPUNIT_ASSERT( a5.Add( _T("a"), 3 ) == 1 ); CPPUNIT_ASSERT( COMPARE_4_VALUES( a5, _T("x") , _T("a") , _T("a") , _T("a") ) ); a5.assign(a1.end(), a1.end()); CPPUNIT_ASSERT( a5.empty() ); a5.assign(a1.begin(), a1.end()); CPPUNIT_ASSERT( a5 == a1 ); #ifdef wxHAS_VECTOR_TEMPLATE_ASSIGN const wxString months[] = { "Jan", "Feb", "Mar" }; a5.assign(months, months + WXSIZEOF(months)); CPPUNIT_ASSERT_EQUAL( WXSIZEOF(months), a5.size() ); CPPUNIT_ASSERT( COMPARE_3_VALUES(a5, "Jan", "Feb", "Mar") ); #endif // wxHAS_VECTOR_TEMPLATE_ASSIGN }