test_serialization2.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /* Boost.MultiIndex test for serialization, part 2.
  2. *
  3. * Copyright 2003-2008 Joaquin M Lopez Munoz.
  4. * Distributed under the Boost Software License, Version 1.0.
  5. * (See accompanying file LICENSE_1_0.txt or copy at
  6. * http://www.boost.org/LICENSE_1_0.txt)
  7. *
  8. * See http://www.boost.org/libs/multi_index for library home page.
  9. */
  10. #include "test_serialization2.hpp"
  11. #include "test_serialization_template.hpp"
  12. #include <boost/multi_index/ordered_index.hpp>
  13. #include <boost/multi_index/sequenced_index.hpp>
  14. #include <boost/multi_index/random_access_index.hpp>
  15. #include <boost/multi_index/key_extractors.hpp>
  16. #include "non_std_allocator.hpp"
  17. #include "pair_of_ints.hpp"
  18. using namespace boost::multi_index;
  19. void test_serialization2()
  20. {
  21. {
  22. typedef multi_index_container<
  23. pair_of_ints,
  24. indexed_by<
  25. ordered_unique<
  26. BOOST_MULTI_INDEX_MEMBER(pair_of_ints,int,first)
  27. >,
  28. ordered_non_unique<
  29. BOOST_MULTI_INDEX_MEMBER(pair_of_ints,int,second)
  30. >,
  31. random_access<>,
  32. sequenced<>
  33. >,
  34. non_std_allocator<pair_of_ints>
  35. > multi_index_t;
  36. multi_index_t m;
  37. test_serialization(m);
  38. m.insert(pair_of_ints(4,0));
  39. test_serialization(m);
  40. m.insert(pair_of_ints(3,1));
  41. m.insert(pair_of_ints(2,1));
  42. test_serialization(m);
  43. m.insert(pair_of_ints(1,1));
  44. test_serialization(m);
  45. m.insert(pair_of_ints(0,0));
  46. test_serialization(m);
  47. m.insert(pair_of_ints(5,1));
  48. m.insert(pair_of_ints(7,1));
  49. m.insert(pair_of_ints(6,1));
  50. test_serialization(m);
  51. m.insert(pair_of_ints(8,1));
  52. m.insert(pair_of_ints(9,1));
  53. m.insert(pair_of_ints(12,1));
  54. m.insert(pair_of_ints(11,1));
  55. m.insert(pair_of_ints(10,1));
  56. test_serialization(m);
  57. /* testcase for bug reported at
  58. * http://lists.boost.org/boost-users/2006/05/19362.php
  59. */
  60. m.clear();
  61. m.insert(pair_of_ints(0,0));
  62. m.insert(pair_of_ints(1,0));
  63. m.insert(pair_of_ints(2,1));
  64. m.insert(pair_of_ints(4,2));
  65. m.insert(pair_of_ints(3,2));
  66. test_serialization(m);
  67. }
  68. }