#include <iostream> #include <cassert> #include "support/small_vector.h" using namespace wasm; template<typename T> void test() { { T t; // build up assert(t.empty()); assert(t.size() == 0); t.push_back(1); assert(!t.empty()); assert(t.size() == 1); t.push_back(2); assert(!t.empty()); assert(t.size() == 2); t.push_back(3); assert(!t.empty()); // unwind assert(t.size() == 3); assert(t.back() == 3); t.pop_back(); assert(t.size() == 2); assert(t.back() == 2); t.pop_back(); assert(t.size() == 1); assert(t.back() == 1); t.pop_back(); assert(t.size() == 0); assert(t.empty()); } { T t; // build up t.push_back(1); t.push_back(2); t.push_back(3); // unwind t.clear(); assert(t.size() == 0); assert(t.empty()); } { T t, u; assert(t == u); t.push_back(1); assert(t != u); u.push_back(1); assert(t == u); u.pop_back(); assert(t != u); u.push_back(2); assert(t != u); } } int main() { test<SmallVector<int, 0>>(); test<SmallVector<int, 1>>(); test<SmallVector<int, 2>>(); test<SmallVector<int, 10>>(); std::cout << "ok.\n"; }