1// 2006-08-05 Paolo Carlini <pcarlini@suse.de> 2 3// Copyright (C) 2006, 2009 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// You should have received a copy of the GNU General Public License along 17// with this library; see the file COPYING3. If not see 18// <http://www.gnu.org/licenses/>. 19 20// 23.2.5 vector<bool> resize 21 22#include <vector> 23#include <testsuite_hooks.h> 24 25const bool A1[] = {0}; 26const bool A2[] = {0, 0, 0}; 27const bool A3[] = {0, 0}; 28const bool A4[] = {0, 0, 1, 1, 1, 1, 1}; 29const bool A5[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 30const bool A6[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 32 1, 1, 1, 1}; 33const bool A7[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 35 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37 0, 0, 0, 0, 0, 0, 0, 0}; 38const bool A8[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 40 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; 43const bool A9[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 49const bool A10[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 54 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 55 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 56 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 58 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 59 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60 1, 1}; 61const bool A11[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}; 62 63const unsigned N1 = sizeof(A1) / sizeof(bool); 64const unsigned N2 = sizeof(A2) / sizeof(bool); 65const unsigned N3 = sizeof(A3) / sizeof(bool); 66const unsigned N4 = sizeof(A4) / sizeof(bool); 67const unsigned N5 = sizeof(A5) / sizeof(bool); 68const unsigned N6 = sizeof(A6) / sizeof(bool); 69const unsigned N7 = sizeof(A7) / sizeof(bool); 70const unsigned N8 = sizeof(A8) / sizeof(bool); 71const unsigned N9 = sizeof(A9) / sizeof(bool); 72const unsigned N10 = sizeof(A10) / sizeof(bool); 73const unsigned N11 = sizeof(A11) / sizeof(bool); 74 75void 76test01() 77{ 78 bool test __attribute__((unused)) = true; 79 80 typedef std::vector<bool> vec_type; 81 82 vec_type v; 83 84 v.resize(1); 85 VERIFY( v.size() == 1 ); 86 VERIFY( std::equal(v.begin(), v.end(), A1) ); 87 88 v.resize(3); 89 VERIFY( v.size() == 3 ); 90 VERIFY( std::equal(v.begin(), v.end(), A2) ); 91 92 v.resize(2); 93 VERIFY( v.size() == 2 ); 94 VERIFY( std::equal(v.begin(), v.end(), A3) ); 95 96 v.resize(7, true); 97 VERIFY( v.size() == 7 ); 98 VERIFY( std::equal(v.begin(), v.end(), A4) ); 99 100 v.resize(18, false); 101 VERIFY( v.size() == 18 ); 102 VERIFY( std::equal(v.begin(), v.end(), A5) ); 103 104 v.resize(40, true); 105 VERIFY( v.size() == 40 ); 106 VERIFY( std::equal(v.begin(), v.end(), A6) ); 107 108 v.resize(80, false); 109 VERIFY( v.size() == 80 ); 110 VERIFY( std::equal(v.begin(), v.end(), A7) ); 111 112 v.resize(90, true); 113 VERIFY( v.size() == 90 ); 114 VERIFY( std::equal(v.begin(), v.end(), A8) ); 115 116 v.resize(100, false); 117 VERIFY( v.size() == 100 ); 118 VERIFY( std::equal(v.begin(), v.end(), A9) ); 119 120 v.resize(200, true); 121 VERIFY( v.size() == 200 ); 122 VERIFY( std::equal(v.begin(), v.end(), A10) ); 123 124 v.resize(13, true); 125 VERIFY( v.size() == 13 ); 126 VERIFY( std::equal(v.begin(), v.end(), A11) ); 127 128 v.resize(13, false); 129 VERIFY( v.size() == 13 ); 130 VERIFY( std::equal(v.begin(), v.end(), A11) ); 131} 132 133int main() 134{ 135 test01(); 136 return 0; 137} 138