/*============================================================================= Copyright (c) 2010 Tim Blechmann Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ #define BOOST_TEST_MAIN #include #include #include #include "common_heap_tests.hpp" #include "stable_heap_tests.hpp" #include "mutable_heap_tests.hpp" #include "merge_heap_tests.hpp" template void run_skew_heap_test(void) { typedef boost::heap::skew_heap, boost::heap::compare >, boost::heap::allocator >, boost::heap::constant_time_size, boost::heap::store_parent_pointer > pri_queue; BOOST_CONCEPT_ASSERT((boost::heap::PriorityQueue)); BOOST_CONCEPT_ASSERT((boost::heap::MergablePriorityQueue)); run_common_heap_tests(); run_iterator_heap_tests(); run_copyable_heap_tests(); run_moveable_heap_tests(); run_merge_tests(); pri_queue_test_ordered_iterators(); if (stable) { typedef boost::heap::skew_heap, boost::heap::constant_time_size, boost::heap::store_parent_pointer > stable_pri_queue; run_stable_heap_tests(); } } template void run_skew_heap_mutable_test(void) { typedef boost::heap::skew_heap, boost::heap::mutable_, boost::heap::compare >, boost::heap::allocator >, boost::heap::constant_time_size > pri_queue; BOOST_CONCEPT_ASSERT((boost::heap::MutablePriorityQueue)); BOOST_CONCEPT_ASSERT((boost::heap::MergablePriorityQueue)); run_common_heap_tests(); run_iterator_heap_tests(); run_copyable_heap_tests(); run_moveable_heap_tests(); run_merge_tests(); run_mutable_heap_tests(); run_ordered_iterator_tests(); if (stable) { typedef boost::heap::skew_heap, boost::heap::mutable_, boost::heap::constant_time_size > stable_pri_queue; run_stable_heap_tests(); } } BOOST_AUTO_TEST_CASE( skew_heap_test ) { run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); run_skew_heap_test(); RUN_EMPLACE_TEST(skew_heap); } BOOST_AUTO_TEST_CASE( skew_heap_mutable_test ) { run_skew_heap_mutable_test(); run_skew_heap_mutable_test(); run_skew_heap_mutable_test(); run_skew_heap_mutable_test(); } BOOST_AUTO_TEST_CASE( skew_heap_compare_lookup_test ) { typedef boost::heap::skew_heap, boost::heap::allocator > > pri_queue; run_common_heap_tests(); } BOOST_AUTO_TEST_CASE( skew_heap_leak_test ) { typedef boost::heap::skew_heap > pri_queue; run_leak_check_test(); }