1 /*++ 2 Copyright (c) 2006 Microsoft Corporation 3 4 Module Name: 5 6 tst_vector.cpp 7 8 Abstract: 9 10 Test my vector template. 11 12 Author: 13 14 Leonardo de Moura (leonardo) 2006-09-11. 15 16 Revision History: 17 18 --*/ 19 #include "util/vector.h" 20 tst1()21static void tst1() { 22 svector<int> v1; 23 ENSURE(v1.empty()); 24 for (unsigned i = 0; i < 1000; i++) { 25 v1.push_back(i + 3); 26 ENSURE(static_cast<unsigned>(v1[i]) == i + 3); 27 ENSURE(v1.capacity() >= v1.size()); 28 ENSURE(!v1.empty()); 29 } 30 for (unsigned i = 0; i < 1000; i++) { 31 ENSURE(static_cast<unsigned>(v1[i]) == i + 3); 32 } 33 svector<int>::iterator it = v1.begin(); 34 svector<int>::iterator end = v1.end(); 35 for (int i = 0; it != end; ++it, ++i) { 36 ENSURE(*it == i + 3); 37 } 38 for (unsigned i = 0; i < 1000; i++) { 39 ENSURE(static_cast<unsigned>(v1.back()) == 1000 - i - 1 + 3); 40 ENSURE(v1.size() == 1000 - i); 41 v1.pop_back(); 42 } 43 ENSURE(v1.empty()); 44 ENSURE(v1.empty()); 45 unsigned i = 1000000000; 46 while (true) { 47 std::cout << "resize " << i << "\n"; 48 try { 49 v1.resize(i); 50 } 51 catch (z3_exception& e) { 52 std::cout << e.msg() << "\n"; 53 break; 54 } 55 i *= 2; 56 } 57 } 58 tst_vector()59void tst_vector() { 60 tst1(); 61 } 62