priority_queue_test.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*=============================================================================
  2. Copyright (c) 2010 Tim Blechmann
  3. Use, modification and distribution is subject to the Boost Software
  4. License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  5. http://www.boost.org/LICENSE_1_0.txt)
  6. =============================================================================*/
  7. #define BOOST_TEST_MAIN
  8. #include <boost/test/unit_test.hpp>
  9. #include <algorithm>
  10. #include <boost/heap/priority_queue.hpp>
  11. #include "common_heap_tests.hpp"
  12. #include "stable_heap_tests.hpp"
  13. #include "merge_heap_tests.hpp"
  14. template <bool stable>
  15. void run_common_priority_queue_tests(void)
  16. {
  17. typedef boost::heap::priority_queue<int, boost::heap::stable<stable> > pri_queue;
  18. BOOST_CONCEPT_ASSERT((boost::heap::PriorityQueue<pri_queue>));
  19. run_concept_check<pri_queue>();
  20. run_common_heap_tests<pri_queue>();
  21. run_iterator_heap_tests<pri_queue>();
  22. run_copyable_heap_tests<pri_queue>();
  23. run_moveable_heap_tests<pri_queue>();
  24. run_merge_tests<pri_queue>();
  25. if (stable) {
  26. typedef boost::heap::priority_queue<q_tester, boost::heap::stable<stable> > stable_pri_queue;
  27. run_stable_heap_tests<stable_pri_queue>();
  28. }
  29. }
  30. BOOST_AUTO_TEST_CASE( std_pri_queue_test )
  31. {
  32. run_common_priority_queue_tests<false>();
  33. run_common_priority_queue_tests<true>();
  34. }
  35. BOOST_AUTO_TEST_CASE( std_pri_queue_leak_test )
  36. {
  37. typedef boost::heap::priority_queue<boost::shared_ptr<int> > pri_queue;
  38. run_leak_check_test<pri_queue>();
  39. }