eps.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright (c) 2001-2011 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/spirit/include/karma_auxiliary.hpp>
  8. #include <boost/spirit/include/karma_char.hpp>
  9. #include <boost/spirit/include/karma_numeric.hpp>
  10. #include <boost/spirit/include/karma_generate.hpp>
  11. #include <boost/spirit/include/karma_operator.hpp>
  12. #include <boost/spirit/include/phoenix_core.hpp>
  13. #include <iostream>
  14. #include "test.hpp"
  15. int
  16. main()
  17. {
  18. using namespace spirit_test;
  19. using namespace boost::spirit;
  20. {
  21. using namespace boost::spirit::ascii;
  22. BOOST_TEST(test("", eps));
  23. BOOST_TEST(test_delimited(" ", eps, space));
  24. BOOST_TEST(!test("", !eps));
  25. BOOST_TEST(!test_delimited(" ", !eps, space));
  26. }
  27. { // test direct argument
  28. using namespace boost::phoenix;
  29. BOOST_TEST(test("", eps(true)));
  30. BOOST_TEST(!test("", eps(false)));
  31. }
  32. { // test action
  33. using namespace boost::phoenix;
  34. BOOST_TEST(test("", eps(val(true))));
  35. BOOST_TEST(!test("", eps(val(false))));
  36. }
  37. { // test no delimiter when argument is false
  38. using namespace boost::spirit::ascii;
  39. std::string generated;
  40. std::back_insert_iterator<std::string> outit(generated);
  41. BOOST_TEST(!karma::generate_delimited(outit, eps(false), space));
  42. BOOST_TEST(generated.empty());
  43. }
  44. return boost::report_errors();
  45. }