libostd/tests/vector.cc

91 lines
1.7 KiB
C++
Raw Normal View History

2015-05-30 03:57:35 +02:00
#include <assert.h>
2015-05-31 16:50:09 +02:00
#include <string.h>
#include "octa/vector.hh"
#include "octa/string.hh"
2015-05-30 03:51:37 +02:00
2015-05-30 03:57:35 +02:00
using namespace octa;
2015-05-30 03:51:37 +02:00
int main() {
2015-05-30 03:57:35 +02:00
Vector<int> x = { 5, 10, 15, 20 };
2015-06-01 02:13:37 +02:00
assert(x.front() == 5);
assert(x.back() == 20);
2015-05-30 03:57:35 +02:00
assert(x[0] == 5);
assert(x[2] == 15);
assert(*(x.at(0)) == x[0]);
assert(*(x.at(3)) == x[3]);
2015-05-31 16:50:09 +02:00
assert(x.data()[0] == x[0]);
2015-05-30 03:57:35 +02:00
assert(x.size() == 4);
Vector<int> y(5, 10);
assert(y.size() == 5);
2015-06-01 02:13:37 +02:00
assert(y.front() == 10);
assert(y.back() == 10);
2015-05-30 03:57:35 +02:00
2015-05-30 17:19:29 +02:00
Vector<int> z(x);
2015-06-01 02:13:37 +02:00
assert(x.front() == z.front());
assert(x.back() == z.back());
2015-05-30 17:19:29 +02:00
z.clear();
assert(z.size() == 0);
assert(z.capacity() != 0);
assert(z.empty());
z = move(y);
assert(z.size() == 5);
assert(y.size() == 0);
2015-06-01 02:13:37 +02:00
assert(z.front() == 10);
assert(z.back() == 10);
2015-05-30 17:19:29 +02:00
z.resize(150, 5);
assert(z.size() == 150);
2015-06-01 02:13:37 +02:00
assert(z.front() == 10);
assert(z.back() == 5);
2015-05-30 17:19:29 +02:00
assert(z.push(30) == 30);
2015-06-01 02:13:37 +02:00
assert(z.back() == 30);
2015-05-30 17:19:29 +02:00
assert(z.emplace_back(20) == 20);
2015-06-01 02:13:37 +02:00
assert(z.back() == 20);
2015-05-30 17:19:29 +02:00
z.clear();
z.resize(10, 5);
assert(z.in_range(9));
assert(z.in_range(0));
assert(!z.in_range(10));
z.insert(2, 4);
assert(z[2] == 4);
assert(z[0] == 5);
assert(z[3] == 5);
assert(z.size() == 11);
2015-06-26 22:01:16 +02:00
auto r = z.iter();
2015-06-01 02:13:37 +02:00
assert(r.front() == 5);
assert(r.back() == 5);
2015-05-30 17:19:29 +02:00
assert(r[2] == 4);
2015-06-26 22:01:16 +02:00
auto r2 = iter(z);
2015-06-01 02:13:37 +02:00
assert(r.front() == r2.front());
2015-05-30 17:19:29 +02:00
Vector<int> w;
w.swap(z);
assert(z.size() == 0);
assert(w.size() != 0);
2015-06-01 02:13:37 +02:00
assert(w.front() == 5);
assert(w.back() == 5);
2015-05-30 17:19:29 +02:00
2015-05-31 16:50:09 +02:00
assert(!strcmp(to_string(w).data(), "{5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5}"));
2015-05-30 03:51:37 +02:00
return 0;
}