]> git.saurik.com Git - wxWidgets.git/blob - tests/vectors/vectors.cpp
added test for wxVector<T> iterators (fails miserably)
[wxWidgets.git] / tests / vectors / vectors.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/vectors/vectors.cpp
3 // Purpose: wxVector<T> unit test
4 // Author: Vaclav Slavik
5 // Created: 2007-07-07
6 // RCS-ID: $Id$
7 // Copyright: (c) 2007 Vaclav Slavik
8 ///////////////////////////////////////////////////////////////////////////////
9
10 // ----------------------------------------------------------------------------
11 // headers
12 // ----------------------------------------------------------------------------
13
14 #include "testprec.h"
15
16 #ifdef __BORLANDC__
17 #pragma hdrstop
18 #endif
19
20 #ifndef WX_PRECOMP
21 #include "wx/wx.h"
22 #endif // WX_PRECOMP
23
24 #include "wx/vector.h"
25
26 // --------------------------------------------------------------------------
27 // test class
28 // --------------------------------------------------------------------------
29
30 class VectorsTestCase : public CppUnit::TestCase
31 {
32 public:
33 VectorsTestCase() {}
34
35 private:
36 CPPUNIT_TEST_SUITE( VectorsTestCase );
37 CPPUNIT_TEST( PushTest );
38 CPPUNIT_TEST( Iterators );
39 CPPUNIT_TEST_SUITE_END();
40
41 void PushTest();
42 void Iterators();
43
44 DECLARE_NO_COPY_CLASS(VectorsTestCase)
45 };
46
47 // register in the unnamed registry so that these tests are run by default
48 CPPUNIT_TEST_SUITE_REGISTRATION( VectorsTestCase );
49
50 // also include in it's own registry so that these tests can be run alone
51 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( VectorsTestCase, "VectorsTestCase" );
52
53 void VectorsTestCase::PushTest()
54 {
55 wxVector<int> v;
56
57 CPPUNIT_ASSERT( v.size() == 0 );
58 v.push_back(1);
59 CPPUNIT_ASSERT( v.size() == 1 );
60 v.push_back(2);
61 CPPUNIT_ASSERT( v.size() == 2 );
62 v.push_back(42);
63 CPPUNIT_ASSERT( v.size() == 3 );
64
65 CPPUNIT_ASSERT( v[0] == 1 );
66 CPPUNIT_ASSERT( v[1] == 2 );
67 CPPUNIT_ASSERT( v[2] == 42 );
68 }
69
70 void VectorsTestCase::Iterators()
71 {
72 wxVector<int> v;
73 v.push_back(1);
74 v.push_back(2);
75 v.push_back(3);
76 v.push_back(4);
77
78 int value = 1;
79 for ( wxVector<int>::iterator i = v.begin(); i != v.end(); ++i, ++value )
80 {
81 CPPUNIT_ASSERT_EQUAL( value, *i );
82 }
83 }