Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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
}