GrowingCircularBuffer template specialization for pointers done.
This commit is contained in:
@@ -16,19 +16,19 @@ using std::endl;
|
||||
|
||||
const size_t CAPACITY = 10;
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
void testSimpleType() {
|
||||
GrowingCircularBuffer<int> cb(CAPACITY);
|
||||
|
||||
cout<<"Testing circular buffer."<<endl;
|
||||
cout<<"Testing circular buffer simple type."<<endl;
|
||||
|
||||
assert(cb.capacity()==CAPACITY);
|
||||
assert(cb.size()==0);
|
||||
|
||||
// insert, get test
|
||||
bool first = cb.insert(1);
|
||||
assert(first);
|
||||
assert(cb.size()==1);
|
||||
assert(cb.extract()==1);
|
||||
assert(first);
|
||||
assert(cb.size()==0);
|
||||
|
||||
for(size_t i = 0; i<2*CAPACITY; i++) {
|
||||
@@ -45,6 +45,45 @@ int main(int argc, char *argv[]) {
|
||||
assert(cb.size()==0);
|
||||
|
||||
cout<<"\nPASSED!\n";
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
void testPointerType() {
|
||||
GrowingCircularBuffer<int*> cb(CAPACITY);
|
||||
int testVals[] = {0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20};
|
||||
|
||||
cout<<"Testing circular buffer pointer type."<<endl;
|
||||
|
||||
assert(cb.capacity()==CAPACITY);
|
||||
assert(cb.size()==0);
|
||||
|
||||
// insert, get test
|
||||
bool first = cb.insert(&testVals[1]);
|
||||
assert(first);
|
||||
assert(cb.size()==1);
|
||||
assert(cb.extract()==&testVals[1]);
|
||||
assert(cb.size()==0);
|
||||
|
||||
for(size_t i = 0; i<2*CAPACITY; i++) {
|
||||
first = cb.insert(&testVals[i]);
|
||||
assert(cb.size()==i+1);
|
||||
assert((cb.size() == 1)==first);
|
||||
}
|
||||
assert(cb.size()==2*CAPACITY);
|
||||
|
||||
for(size_t i = 0; i<2*CAPACITY; i++) {
|
||||
assert(cb.extract()==&testVals[i]);
|
||||
assert(cb.size()==2*CAPACITY-i-1);
|
||||
}
|
||||
assert(cb.size()==0);
|
||||
|
||||
cout<<"\nPASSED!\n";
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
testSimpleType();
|
||||
cout<<endl;
|
||||
testPointerType();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user