conv_test.cpp 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // Boost string_algo library conv_test.cpp file ---------------------------//
  2. // Copyright Pavol Droba 2002-2003. Use, modification and
  3. // distribution is subject to the Boost Software License, Version
  4. // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. // See http://www.boost.org for updates, documentation, and revision history.
  7. #include <boost/algorithm/string/case_conv.hpp>
  8. // Include unit test framework
  9. #define BOOST_TEST_MAIN
  10. #include <boost/test/unit_test.hpp>
  11. #include <string>
  12. #include <iostream>
  13. #include <algorithm>
  14. #include <boost/test/test_tools.hpp>
  15. using namespace std;
  16. using namespace boost;
  17. void conv_test()
  18. {
  19. string str1("AbCdEfG 123 xxxYYYzZzZ");
  20. string str2("AbCdEfG 123 xxxYYYzZzZ");
  21. string str3("");
  22. const char pch[]="AbCdEfG 123 xxxYYYzZzZ";
  23. unsigned int pchlen=sizeof(pch);
  24. char* pch1=new char[pchlen];
  25. std::copy(pch, pch+pchlen, pch1);
  26. char* pch2=new char[pchlen];
  27. std::copy(pch, pch+pchlen, pch2);
  28. // *** iterator tests *** //
  29. string strout;
  30. to_lower_copy( back_inserter(strout), str1 );
  31. BOOST_CHECK( strout=="abcdefg 123 xxxyyyzzzz" );
  32. strout.clear();
  33. to_upper_copy( back_inserter(strout), str1 );
  34. BOOST_CHECK( strout=="ABCDEFG 123 XXXYYYZZZZ" );
  35. strout.clear();
  36. to_lower_copy( back_inserter(strout), "AbCdEfG 123 xxxYYYzZzZ" );
  37. BOOST_CHECK( strout=="abcdefg 123 xxxyyyzzzz" );
  38. strout.clear();
  39. to_upper_copy( back_inserter(strout), "AbCdEfG 123 xxxYYYzZzZ" );
  40. BOOST_CHECK( strout=="ABCDEFG 123 XXXYYYZZZZ" );
  41. strout.clear();
  42. to_lower_copy( back_inserter(strout), pch1 );
  43. BOOST_CHECK( strout=="abcdefg 123 xxxyyyzzzz" );
  44. strout.clear();
  45. to_upper_copy( back_inserter(strout), pch1 );
  46. BOOST_CHECK( strout=="ABCDEFG 123 XXXYYYZZZZ" );
  47. // *** value passing tests *** //
  48. BOOST_CHECK( to_lower_copy( str1 )=="abcdefg 123 xxxyyyzzzz" );
  49. BOOST_CHECK( to_upper_copy( str1 )=="ABCDEFG 123 XXXYYYZZZZ" );
  50. BOOST_CHECK( to_lower_copy( str3 )=="" );
  51. BOOST_CHECK( to_upper_copy( str3 )=="" );
  52. // *** inplace tests *** //
  53. to_lower( str1 );
  54. BOOST_CHECK( str1=="abcdefg 123 xxxyyyzzzz" );
  55. to_upper( str2 );
  56. BOOST_CHECK( str2=="ABCDEFG 123 XXXYYYZZZZ" );
  57. // c-string modification
  58. to_lower( pch1 );
  59. BOOST_CHECK( string(pch1)=="abcdefg 123 xxxyyyzzzz" );
  60. to_upper( pch2 );
  61. BOOST_CHECK( string(pch2)=="ABCDEFG 123 XXXYYYZZZZ" );
  62. to_lower( str3 );
  63. BOOST_CHECK( str3=="" );
  64. to_upper( str3 );
  65. BOOST_CHECK( str3=="" );
  66. delete[] pch1;
  67. delete[] pch2;
  68. }
  69. // test main
  70. BOOST_AUTO_TEST_CASE( test_main )
  71. {
  72. conv_test();
  73. }