#include <ostream>
#include <sstream>
#include <stdexcept>
#include <testsuite_hooks.h>
bool test01(void)
{
bool test = true;
const char str_lit01[] = " venice ";
const std::string str01(" santa barbara ");
std::string str02(str_lit01);
std::string str04;
std::string str05;
std::ios_base::iostate flag1, flag2, flag3, flag4, flag5;
std::ostringstream oss01(str01);
std::ostringstream oss02;
std::ostringstream::int_type i01, i02;
typedef std::ostringstream::traits_type traits_type;
oss01 << std::endl;
str04 = oss01.str();
VERIFY( str04.size() == str01.size() );
oss02 << std::endl;
str05 = oss02.str();
VERIFY( str05.size() == 1 );
oss01 << std::ends;
str04 = oss01.str();
VERIFY( str04.size() == str01.size() );
VERIFY( str04[1] == char() );
oss02 << std::ends;
str05 = oss02.str();
VERIFY( str05.size() == 2 );
VERIFY( str05[1] == char() );
oss01.flush();
str04 = oss01.str();
VERIFY( str04.size() == str01.size() );
oss02.flush();
str05 = oss02.str();
VERIFY( str05.size() == 2 );
#ifdef DEBUG_ASSERT
assert(test);
#endif
return test;
}
bool test02()
{
using namespace std;
typedef ostringstream::int_type int_type;
bool test = true;
ostringstream osst_01;
const string str_00("herbie_hancock");
int_type len1 = str_00.size();
osst_01 << str_00;
VERIFY( osst_01.str().size() == len1 );
osst_01 << ends;
const string str_01("speak like a child");
int_type len2 = str_01.size();
osst_01 << str_01;
int_type len3 = osst_01.str().size();
VERIFY( len1 < len3 );
VERIFY( len3 == len1 + len2 + 1 );
osst_01 << ends;
const string str_02("+ inventions and dimensions");
int_type len4 = str_02.size();
osst_01 << str_02;
int_type len5 = osst_01.str().size();
VERIFY( len3 < len5 );
VERIFY( len5 == len3 + len4 + 1 );
#ifdef DEBUG_ASSERT
assert(test);
#endif
return test;
}
int main()
{
test01();
test02();
return 0;
}