//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset(string, pos, n, zero, one);
#include<bitset>#include<cassert>template<std::size_tN>voidtest_string_ctor(){{try{std::stringstr("xxx1010101010xxxx");std::bitset<N>v(str,str.size()+1,10);assert(false);}catch(std::out_of_range&){}}{try{std::stringstr("xxx1010101010xxxx");std::bitset<N>v(str,2,10);assert(false);}catch(std::invalid_argument&){}}{std::stringstr("xxx1010101010xxxx");std::bitset<N>v(str,3,10);std::size_tM=std::min<std::size_t>(N,10);for(std::size_ti=0;i<M;++i)assert(v[i]==(str[3+M-1-i]=='1'));for(std::size_ti=10;i<N;++i)assert(v[i]==false);}{try{std::stringstr("xxxbababababaxxxx");std::bitset<N>v(str,2,10,'a','b');assert(false);}catch(std::invalid_argument&){}}{std::stringstr("xxxbababababaxxxx");std::bitset<N>v(str,3,10,'a','b');std::size_tM=std::min<std::size_t>(N,10);for(std::size_ti=0;i<M;++i)assert(v[i]==(str[3+M-1-i]=='b'));for(std::size_ti=10;i<N;++i)assert(v[i]==false);}}intmain(){test_string_ctor<0>();test_string_ctor<1>();test_string_ctor<31>();test_string_ctor<32>();test_string_ctor<33>();test_string_ctor<63>();test_string_ctor<64>();test_string_ctor<65>();test_string_ctor<1000>();}