case_handling3.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // Copyright (c) 2001-2010 Hartmut Kaiser
  2. //
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. #include <boost/config/warning_disable.hpp>
  6. #include <boost/detail/lightweight_test.hpp>
  7. #include <boost/detail/workaround.hpp>
  8. #include <boost/spirit/include/karma_char.hpp>
  9. #include <boost/spirit/include/karma_string.hpp>
  10. #include <boost/spirit/include/karma_generate.hpp>
  11. #include <boost/spirit/include/karma_directive.hpp>
  12. #include "test.hpp"
  13. using namespace spirit_test;
  14. ///////////////////////////////////////////////////////////////////////////////
  15. int
  16. main()
  17. {
  18. using namespace boost::spirit;
  19. { // test extended ASCII characters
  20. using namespace boost::spirit::iso8859_1;
  21. BOOST_TEST(test("\xE4", lower['\xC4']));
  22. BOOST_TEST(test("\xE4", lower['\xE4']));
  23. BOOST_TEST(test("\xC4", upper['\xC4']));
  24. BOOST_TEST(test("\xC4", upper['\xE4']));
  25. }
  26. {
  27. using namespace boost::spirit::ascii;
  28. BOOST_TEST(test("a1- ", lower["a1- "]));
  29. BOOST_TEST(test("a1- ", lower["a1- "]));
  30. BOOST_TEST(test("a1- ", lower["a1- "]));
  31. BOOST_TEST(test("a1- ", lower["A1- "]));
  32. BOOST_TEST(test("a1- ", lower[string], "a1- "));
  33. BOOST_TEST(test("a1- ", lower[string], "A1- "));
  34. BOOST_TEST(test("a1- ", lower[lit("a1- ")]));
  35. BOOST_TEST(test("a1- ", lower[lit("A1- ")]));
  36. BOOST_TEST(test("a1- ", lower[string("a1- ")]));
  37. BOOST_TEST(test("a1- ", lower[string("A1- ")]));
  38. BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
  39. BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
  40. BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
  41. BOOST_TEST(test("a1- ", lower[lower["A1- "]]));
  42. BOOST_TEST(test("a1- ", lower[lower[string]], "a1- "));
  43. BOOST_TEST(test("a1- ", lower[lower[string]], "A1- "));
  44. BOOST_TEST(test("a1- ", lower[lower[lit("a1- ")]]));
  45. BOOST_TEST(test("a1- ", lower[lower[lit("A1- ")]]));
  46. BOOST_TEST(test("a1- ", lower[lower[string("a1- ")]]));
  47. BOOST_TEST(test("a1- ", lower[lower[string("A1- ")]]));
  48. BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
  49. BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
  50. BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
  51. BOOST_TEST(test("A1- ", upper[lower["A1- "]]));
  52. BOOST_TEST(test("A1- ", upper[lower[string]], "a1- "));
  53. BOOST_TEST(test("A1- ", upper[lower[string]], "A1- "));
  54. BOOST_TEST(test("A1- ", upper[lower[lit("a1- ")]]));
  55. BOOST_TEST(test("A1- ", upper[lower[lit("A1- ")]]));
  56. BOOST_TEST(test("A1- ", upper[lower[string("a1- ")]]));
  57. BOOST_TEST(test("A1- ", upper[lower[string("A1- ")]]));
  58. BOOST_TEST(test("A1- ", upper["a1- "]));
  59. BOOST_TEST(test("A1- ", upper["a1- "]));
  60. BOOST_TEST(test("A1- ", upper["a1- "]));
  61. BOOST_TEST(test("A1- ", upper["A1- "]));
  62. BOOST_TEST(test("A1- ", upper[string], "a1- "));
  63. BOOST_TEST(test("A1- ", upper[string], "A1- "));
  64. BOOST_TEST(test("A1- ", upper[lit("a1- ")]));
  65. BOOST_TEST(test("A1- ", upper[lit("A1- ")]));
  66. BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
  67. BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
  68. BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
  69. BOOST_TEST(test("a1- ", lower[upper["A1- "]]));
  70. BOOST_TEST(test("a1- ", lower[upper[string]], "a1- "));
  71. BOOST_TEST(test("a1- ", lower[upper[string]], "A1- "));
  72. BOOST_TEST(test("a1- ", lower[upper[lit("a1- ")]]));
  73. BOOST_TEST(test("a1- ", lower[upper[lit("A1- ")]]));
  74. BOOST_TEST(test("a1- ", lower[upper[string("a1- ")]]));
  75. BOOST_TEST(test("a1- ", lower[upper[string("A1- ")]]));
  76. BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
  77. BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
  78. BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
  79. BOOST_TEST(test("A1- ", upper[upper["A1- "]]));
  80. BOOST_TEST(test("A1- ", upper[upper[string]], "a1- "));
  81. BOOST_TEST(test("A1- ", upper[upper[string]], "A1- "));
  82. BOOST_TEST(test("A1- ", upper[upper[lit("a1- ")]]));
  83. BOOST_TEST(test("A1- ", upper[upper[lit("A1- ")]]));
  84. BOOST_TEST(test("A1- ", upper[upper[string("a1- ")]]));
  85. BOOST_TEST(test("A1- ", upper[upper[string("A1- ")]]));
  86. }
  87. return boost::report_errors();
  88. }