test_doc  0.1
 全部  文件 函数 变量 宏定义 
test_Vector.cpp
浏览该文件的文档.
1 /*
2  * test_Vector.cpp
3  *
4  * Created on: 2012-9-4
5  * Author: fasiondog
6  */
7 
8 #ifdef TEST_ALL_IN_ONE
9  #include <boost/test/unit_test.hpp>
10 #else
11  #define BOOST_TEST_MODULE test_hikyuu_utilities
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/utilities/Vector.h>
16 
17 using namespace hku;
18 
26 BOOST_AUTO_TEST_CASE( test_Vector ) {
28  Vector<int> a;
29  BOOST_CHECK(a.size() == 0);
30  BOOST_CHECK(a.empty());
31 
34  a.push_back(0);
35  BOOST_CHECK(a.size() == 1);
36  BOOST_CHECK(!a.empty());
37  BOOST_CHECK(a[0] == 0);
38  BOOST_CHECK(a.at(0) == 0);
39  BOOST_CHECK(a.front() == 0);
40  BOOST_CHECK(a.back() == 0);
41 
44  a.push_back(1);
45  BOOST_CHECK(a.size() == 2);
46  BOOST_CHECK(!a.empty());
47  BOOST_CHECK(a[1] == 1);
48  BOOST_CHECK(a.at(1) == 1);
49  BOOST_CHECK(a.front() == 0);
50  BOOST_CHECK(a.back() == 1);
51 
53  a[0] = 10;
54  BOOST_CHECK(a[0] == 10);
55  BOOST_CHECK(a.at(0) == 10);
56 
58  a.at(0) = 100;
59  BOOST_CHECK(a[0] == 100);
60  BOOST_CHECK(a.at(0) == 100);
61 
63  a.clear();
64  BOOST_CHECK(a.size() == 0);
65  BOOST_CHECK(a.empty());
66 
68  a.push_back(0);
69  a.push_back(1);
70  Vector<int> b = a.clone();
71  b[0] = 1;
72  BOOST_CHECK(a[0] == 0);
73  BOOST_CHECK(b[0] == 1);
74 
76  b = a;
77  b[0] = 1;
78  BOOST_CHECK(b[0] == 1);
79  BOOST_CHECK(b[0] == a[0]);
80  a.clear();
81  BOOST_CHECK(a.size() == 0);
82  BOOST_CHECK(a.empty());
83  BOOST_CHECK(b.size() == 0);
84  BOOST_CHECK(b.empty());
85 
87  a.clear();
88  vector<int> std_a;
89  std_a.push_back(0);
90  std_a.push_back(1);
91  a = std_a;
92  BOOST_CHECK(a.size() == 2);
93  BOOST_CHECK(!a.empty());
94  BOOST_CHECK(a[0] == 0);
95  BOOST_CHECK(a[1] == 1);
96 
98  Vector<int> x(std_a);
99  BOOST_CHECK(x[0] == 0);
100  BOOST_CHECK(x[1] == 1);
101 
103  Vector<int> y(a);
104  BOOST_CHECK(y[0] == 0);
105  BOOST_CHECK(y[1] == 1);
106  a[1] = 100;
107  BOOST_CHECK(y[1] == 100);
108 
110  a.clear();
111  for(int i = 0; i < 10; ++i) {
112  a.push_back(i);
113  }
114  Vector<int>::const_iterator const_iter = a.begin();
115  for(int i = 0; const_iter != a.end(); ++const_iter, ++i) {
116  BOOST_CHECK((*const_iter) == i);
117  }
118 
120  a.clear();
121  for(int i = 9; i >= 0; --i) {
122  a.push_back(i);
123  }
124  Vector<int>::iterator iter = a.begin();
125  for(int i = 9; iter != a.end(); ++iter, --i) {
126  BOOST_CHECK((*iter) == i);
127  }
128  iter = a.begin();
129  for(int i = 0; iter != a.end(); ++iter, ++i) {
130  (*iter) = i;
131  }
132  iter = a.begin();
133  for(int i = 0; i < 10; ++i) {
134  BOOST_CHECK(a[i] == i);
135  }
136 
137 
138 }
139 
140