#include "../src/sequential/vector.hpp" #include "testutil.hpp" void FillWithSequentialNumbers(Vector & vector, unsigned const count = 1024u) { for(unsigned i = 0; i < count; ++i) { vector[i] = i; } } bool TestInsertion() { unsigned const targetSize = 1024u; Vector vector; try { vector.Resize(targetSize); } catch(std::exception & e) { return false; } FillWithSequentialNumbers(vector, targetSize); for(unsigned i = 0; i < vector.GetSize(); ++i) { if(vector[i] != i) { return false; } } try { vector[targetSize + 1] = 42; } catch(std::exception & e) { return true; } return false; } bool TestResize() { Vector vector; vector.Resize(2048u); FillWithSequentialNumbers(vector); vector.Resize(vector.GetSize() / 2u); for(unsigned i = 0; i < vector.GetSize(); ++i) { if(vector[i] != i) { return false; } } vector.Resize(vector.GetSize() * 16u); return true; } bool TestReserve() { std::size_t const testSize = 8096ul; Vector vector; vector.Reserve(testSize); for(std::size_t i = 0; i < testSize; ++i) { vector.Resize(i + 1ul); vector[i] = i; } for(std::size_t i = 0; i < testSize; ++i) { if(vector[i] != i) { return false; } } return true; } int main() { Test::Execute(TestInsertion, "Insertion test"); Test::Execute(TestResize, "Resize test"); Test::Execute(TestReserve, "Reserve test"); return 0; }