dataset_example67.run.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // (C) Copyright Raffi Enficiaud 2014.
  2. // Distributed under the Boost Software License, Version 1.0.
  3. // (See accompanying file LICENSE_1_0.txt or copy at
  4. // http://www.boost.org/LICENSE_1_0.txt)
  5. // See http://www.boost.org/libs/test for the library home page.
  6. //[example_code
  7. #define BOOST_TEST_MODULE example67
  8. #include <boost/test/included/unit_test.hpp>
  9. #include <boost/test/data/test_case.hpp>
  10. #include <boost/test/data/monomorphic.hpp>
  11. #include <sstream>
  12. namespace bdata = boost::unit_test::data;
  13. // Generates a Fibonacci sequence
  14. std::vector<float> fibonacci() {
  15. std::vector<float> ret(8);
  16. ret[0] = 0;
  17. ret[1] = 1;
  18. for(std::size_t s(2); s < ret.size(); s++)
  19. {
  20. ret[s] = ret[s-1] + ret[s-2];
  21. }
  22. return ret;
  23. }
  24. BOOST_DATA_TEST_CASE(
  25. test1,
  26. bdata::make(fibonacci()),
  27. array_element)
  28. {
  29. std::cout << "test 1: "
  30. << array_element
  31. << std::endl;
  32. BOOST_TEST(array_element <= 13);
  33. }
  34. // Generates a map from a vector
  35. std::map<std::string, float> vect_2_str(std::vector<float> v)
  36. {
  37. std::map<std::string, float> out;
  38. for(std::size_t s(0); s < v.size(); s++)
  39. {
  40. std::ostringstream o;
  41. o << v[s];
  42. out[o.str()] = v[s];
  43. }
  44. return out;
  45. }
  46. typedef std::pair<const std::string, float> pair_map_t;
  47. BOOST_TEST_DONT_PRINT_LOG_VALUE( pair_map_t )
  48. BOOST_DATA_TEST_CASE(
  49. test2,
  50. bdata::make(vect_2_str(fibonacci())),
  51. array_element)
  52. {
  53. std::cout << "test 2: \""
  54. << array_element.first << "\", "
  55. << array_element.second
  56. << std::endl;
  57. BOOST_TEST(array_element.second <= 13);
  58. }
  59. //]