17 #include "ReusableVector.h" 18 #include "ReusableVectorTest.h" 23 int ReusableVectorTestDataType::ourValue = 0;
24 int ReusableVectorTestDataType::ourNumDestructs = 0;
26 int main(
int argc,
char ** argv)
34 void ReusableVectorTest::test()
36 assert(ReusableVectorTestDataType::ourNumDestructs == 0);
38 assert(ReusableVectorTestDataType::ourNumDestructs == 8);
42 void ReusableVectorTest::testReuse()
48 assert(testVector.
size() == 0);
49 assert(testInvalidGetIndex(testVector, 0));
50 assert(testInvalidGetIndex(testVector, 1));
52 assert(testVector.
size() == 0);
53 assert(testInvalidGetIndex(testVector, 0));
54 assert(testInvalidGetIndex(testVector, 1));
58 assert(dataPtr->myValue == 0);
59 assert(dataPtr->ourValue == 1);
61 assert(dataPtr->myValue == 1);
62 assert(dataPtr->ourValue == 2);
64 assert(dataPtr->myValue == 2);
65 assert(dataPtr->ourValue == 3);
66 assert(testVector.
size() == 3);
69 assert(testVector2.
size() == 0);
70 assert(testInvalidGetIndex(testVector2, 0));
71 assert(testInvalidGetIndex(testVector2, 1));
73 assert(testVector2.
size() == 0);
74 assert(testInvalidGetIndex(testVector2, 0));
75 assert(testInvalidGetIndex(testVector2, 1));
79 assert(dataPtr->myValue == 3);
80 assert(dataPtr->ourValue == 4);
82 assert(dataPtr->myValue == 4);
83 assert(dataPtr->ourValue == 5);
84 assert(testVector2.
size() == 2);
87 assert(testVector2.
get(1).myValue == 4);
88 assert(testVector2.
get(0).myValue == 3);
89 assert(testInvalidGetIndex(testVector2, 2));
91 assert(testVector.
get(1).myValue == 1);
92 assert(testVector.
get(0).myValue == 0);
93 assert(testVector.
get(2).myValue == 2);
94 assert(testInvalidGetIndex(testVector, 3));
98 assert(testVector.
size() == 0);
99 assert(testInvalidGetIndex(testVector, 0));
100 assert(testInvalidGetIndex(testVector, 1));
104 assert(dataPtr->myValue == 0);
105 assert(dataPtr->ourValue == 5);
106 assert(testVector.
size() == 1);
108 assert(dataPtr->myValue == 1);
109 assert(dataPtr->ourValue == 5);
110 assert(testVector.
size() == 2);
112 assert(dataPtr->myValue == 2);
113 assert(dataPtr->ourValue == 5);
114 assert(testVector.
size() == 3);
117 assert(dataPtr->myValue == 5);
118 assert(dataPtr->ourValue == 6);
119 assert(testVector.
size() == 4);
124 assert(testVector.
size() == 0);
125 assert(testInvalidGetIndex(testVector, 0));
126 assert(testInvalidGetIndex(testVector, 1));
127 assert(testVector2.
size() == 0);
128 assert(testInvalidGetIndex(testVector2, 0));
129 assert(testInvalidGetIndex(testVector2, 1));
133 assert(dataPtr->myValue == 3);
134 assert(dataPtr->ourValue == 6);
135 assert(testVector2.
size() == 1);
137 assert(dataPtr->myValue == 0);
138 assert(dataPtr->ourValue == 6);
139 assert(testVector.
size() == 1);
141 assert(dataPtr->myValue == 4);
142 assert(dataPtr->ourValue == 6);
143 assert(testVector2.
size() == 2);
145 assert(dataPtr->myValue == 6);
146 assert(dataPtr->ourValue == 7);
147 assert(testVector2.
size() == 3);
149 assert(dataPtr->myValue == 1);
150 assert(dataPtr->ourValue == 7);
151 assert(testVector.
size() == 2);
153 assert(dataPtr->myValue == 2);
154 assert(dataPtr->ourValue == 7);
155 assert(testVector.
size() == 3);
157 assert(dataPtr->myValue == 5);
158 assert(dataPtr->ourValue == 7);
159 assert(testVector.
size() == 4);
161 assert(dataPtr->myValue == 7);
162 assert(dataPtr->ourValue == 8);
163 assert(testVector.
size() == 5);
172 testVector.
get(index);
174 catch(std::exception& e)
177 assert(strcmp(e.what(),
"ReusableVector::get called with out of range index.") == 0);
183 ReusableVectorTestDataType::ReusableVectorTestDataType()
185 myValue = ourValue++;
189 ReusableVectorTestDataType::~ReusableVectorTestDataType()
void reset()
Clear the vector contents.
void clear()
Clear the vector contents.
Create a vector of DATA_TYPE that reuses created objects to save on memory reallocations.
DATA_TYPE & getNextEmpty()
Get a reference to a new entry to be populated so the user can directly populate it rather than havin...
int size() const
Return the number of populated entries in the vector.
DATA_TYPE & get(unsigned int index) const
Get a reference to the data at the specified index.