diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2006-07-06 17:45:13 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2006-07-06 17:45:13 +0000 |
commit | 55a4c999b5e0ad5da3838a157246867c29579e63 (patch) | |
tree | 753c197028ee8010989655f612495fa5f89a0855 /libstdc++-v3 | |
parent | cec12c7a9be5075a3b9f1ab3f8c3c96d71078fe0 (diff) | |
download | gcc-55a4c999b5e0ad5da3838a157246867c29579e63.zip gcc-55a4c999b5e0ad5da3838a157246867c29579e63.tar.gz gcc-55a4c999b5e0ad5da3838a157246867c29579e63.tar.bz2 |
trait.hpp: Format.
2006-07-06 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/regression/trait/assoc/trait.hpp: Format.
* testsuite/util/regression/rand/priority_queue/
rand_regression_test.hpp: Same.
* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same.
* testsuite/util/regression/rand/
assoc/container_rand_regression_test.hpp: Same.
* testsuite/util/regression/priority_queue/common_type.hpp: Same.
* testsuite/util/regression/assoc/common_type.hpp: Same.
* testsuite/util/regression/basic_type.hpp: Same.
From-SVN: r115226
Diffstat (limited to 'libstdc++-v3')
8 files changed, 597 insertions, 770 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f52bad9..78f64a0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,16 @@ -2006-07-05 Benjamin Kosnik <bkoz@redhat.com> +2006-07-06 Benjamin Kosnik <bkoz@redhat.com> + + * testsuite/util/regression/trait/assoc/trait.hpp: Format. + * testsuite/util/regression/rand/priority_queue/ + rand_regression_test.hpp: Same. + * testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same. + * testsuite/util/regression/rand/ + assoc/container_rand_regression_test.hpp: Same. + * testsuite/util/regression/priority_queue/common_type.hpp: Same. + * testsuite/util/regression/assoc/common_type.hpp: Same. + * testsuite/util/regression/basic_type.hpp: Same. + +2006-07-05 Benjamin Kosnik <bkoz@redhat.com> * include/Makefile.am (pch_output): New. (clean-local): Use it. diff --git a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp index bc89bd7..fa34568 100644 --- a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp +++ b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp @@ -52,210 +52,93 @@ namespace pb_ds { +namespace test +{ + typedef dbg_ex_allocator<basic_type> alloc_type; - namespace test + struct hash { + typedef alloc_type::rebind<basic_type>::other::const_reference const_key_reference; - typedef - pb_ds::test::dbg_ex_allocator< - pb_ds::test::basic_type> - alloc_type; - - struct hash - { - typedef - alloc_type::rebind< - pb_ds::test::basic_type>::other::const_reference - const_key_reference; - - size_t - operator()(const_key_reference r_key) const - { - size_t ret = 0; - - for (pb_ds::test::basic_type::const_iterator it = r_key.begin(); it != r_key.end(); ++it) - ret = ret* 5 + static_cast<size_t>(*it); - - return (ret); - } - }; - - typedef - pb_ds::string_trie_e_access_traits< - basic_type, - 'a', - 'a' + basic_type::distinct_chars - 1, - false, - alloc_type> - e_access_traits_t; - - template<typename Data_Type> - struct tree_types - { - private: - typedef - typename pb_ds::test::tree_common_types< - pb_ds::test::basic_type, - Data_Type, - std::less< - pb_ds::test::basic_type>, - pb_ds::null_tree_node_update, - alloc_type>::regression_tl - no_order_statistics_tl_t; - - typedef - typename pb_ds::test::tree_common_types< - pb_ds::test::basic_type, - Data_Type, - std::less< - pb_ds::test::basic_type>, - pb_ds::tree_order_statistics_node_update, - alloc_type>::regression_tl - order_statistics_tl_t; - - public: - - typedef - typename pb_ds::detail::typelist_append< - no_order_statistics_tl_t, - order_statistics_tl_t>::type - tl_t; - - typedef no_order_statistics_tl_t min_tl_t; - }; - - template<typename Data_Type> - struct trie_types + size_t + operator()(const_key_reference r_key) const { - private: - typedef - typename pb_ds::test::trie_common_types< - pb_ds::test::basic_type, - Data_Type, - e_access_traits_t, - pb_ds::pat_trie_tag, - pb_ds::null_trie_node_update, - alloc_type>::regression_tl - no_updates_tl_t; - - typedef - typename pb_ds::test::trie_common_types< - pb_ds::test::basic_type, - Data_Type, - e_access_traits_t, - pb_ds::pat_trie_tag, - pb_ds::trie_order_statistics_node_update, - alloc_type>::regression_tl - order_statistics_tl_t; - - typedef - typename pb_ds::test::trie_common_types< - pb_ds::test::basic_type, - Data_Type, - e_access_traits_t, - pb_ds::pat_trie_tag, - pb_ds::trie_prefix_search_node_update, - alloc_type>::regression_tl - prefix_search_tl_t; - - public: - typedef - typename pb_ds::detail::typelist_append< - no_updates_tl_t, - typename pb_ds::detail::typelist_append< - prefix_search_tl_t, - order_statistics_tl_t>::type>::type - tl_t; - - typedef no_updates_tl_t min_tl_t; - }; - - template<typename Data_Type> - struct hash_types - { - typedef - typename pb_ds::test::hash_common_types< - pb_ds::test::basic_type, - Data_Type, - hash, - std::equal_to< - pb_ds::test::basic_type>, - alloc_type>::regression_tl - tl_t; - - typedef tl_t min_tl_t; - }; - - template<typename Data_Type> - struct lu_types - { - typedef - typename pb_ds::test::lu_common_types< - pb_ds::test::basic_type, - Data_Type, - std::equal_to< - pb_ds::test::basic_type>, - alloc_type>::regression_tl - tl_t; - - typedef tl_t min_tl_t; - }; - - typedef - tree_types< - pb_ds::null_mapped_type>::tl_t - tree_set_tl_t; - - typedef - tree_types< - pb_ds::null_mapped_type>::min_tl_t - min_tree_set_tl_t; - - typedef - hash_types< - pb_ds::null_mapped_type>::tl_t - hash_set_tl_t; - - typedef - hash_types< - pb_ds::null_mapped_type>::min_tl_t - min_hash_set_tl_t; - - typedef lu_types< pb_ds::null_mapped_type>::tl_t lu_set_tl_t; - - typedef - lu_types< - pb_ds::null_mapped_type>::min_tl_t - min_lu_set_tl_t; - - typedef - trie_types< - pb_ds::null_mapped_type>::tl_t - trie_set_tl_t; + size_t ret = 0; + typedef basic_type::const_iterator const_iterator; + for (const_iterator it = r_key.begin(); it != r_key.end(); ++it) + ret = ret * 5 + static_cast<size_t>(*it); + return ret; + } + }; + + typedef pb_ds::string_trie_e_access_traits<basic_type, 'a', 'a' + basic_type::distinct_chars - 1, false, alloc_type> e_access_traits_t; + + template<typename Data_Type> + struct tree_types + { + private: + typedef typename tree_common_types<basic_type, Data_Type, std::less<basic_type>, pb_ds::null_tree_node_update, alloc_type>::regression_tl no_order_statistics_tl_t; - typedef - trie_types< - pb_ds::null_mapped_type>::min_tl_t - min_trie_set_tl_t; + typedef typename tree_common_types<basic_type, Data_Type, std::less<basic_type>, pb_ds::tree_order_statistics_node_update, alloc_type>::regression_tl order_statistics_tl_t; - typedef tree_types< basic_type>::tl_t tree_map_tl_t; + public: + typedef typename pb_ds::detail::typelist_append<no_order_statistics_tl_t, order_statistics_tl_t>::type tl_t; - typedef tree_types< basic_type>::min_tl_t min_tree_map_tl_t; + typedef no_order_statistics_tl_t min_tl_t; + }; - typedef hash_types< basic_type>::tl_t hash_map_tl_t; + template<typename Data_Type> + struct trie_types + { + private: + typedef typename trie_common_types<basic_type, Data_Type, e_access_traits_t, pb_ds::pat_trie_tag, pb_ds::null_trie_node_update, alloc_type>::regression_tl no_updates_tl_t; - typedef hash_types< basic_type>::min_tl_t min_hash_map_tl_t; + typedef typename trie_common_types<basic_type, Data_Type, e_access_traits_t, pb_ds::pat_trie_tag, pb_ds::trie_order_statistics_node_update, alloc_type>::regression_tl order_statistics_tl_t; - typedef lu_types< basic_type>::tl_t lu_map_tl_t; + typedef typename trie_common_types<basic_type, Data_Type, e_access_traits_t, pb_ds::pat_trie_tag, pb_ds::trie_prefix_search_node_update, alloc_type>::regression_tl prefix_search_tl_t; - typedef lu_types< basic_type>::min_tl_t min_lu_map_tl_t; + public: + typedef typename pb_ds::detail::typelist_append<no_updates_tl_t, typename pb_ds::detail::typelist_append<prefix_search_tl_t, order_statistics_tl_t>::type>::type tl_t; - typedef trie_types< basic_type>::tl_t trie_map_tl_t; + typedef no_updates_tl_t min_tl_t; + }; - typedef trie_types< basic_type>::min_tl_t min_trie_map_tl_t; + template<typename Data_Type> + struct hash_types + { + typedef typename hash_common_types<basic_type, Data_Type, hash, std::equal_to<basic_type>, alloc_type>::regression_tl tl_t; - } // namespace test + typedef tl_t min_tl_t; + }; + template<typename Data_Type> + struct lu_types + { + typedef typename lu_common_types<basic_type, Data_Type, std::equal_to<basic_type>, alloc_type>::regression_tl tl_t; + + typedef tl_t min_tl_t; + }; + + typedef tree_types<null_mapped_type>::tl_t tree_set_tl_t; + typedef tree_types<null_mapped_type>::min_tl_t min_tree_set_tl_t; + typedef tree_types<basic_type>::tl_t tree_map_tl_t; + typedef tree_types<basic_type>::min_tl_t min_tree_map_tl_t; + + typedef hash_types<null_mapped_type>::tl_t hash_set_tl_t; + typedef hash_types<null_mapped_type>::min_tl_t min_hash_set_tl_t; + typedef hash_types<basic_type>::tl_t hash_map_tl_t; + typedef hash_types<basic_type>::min_tl_t min_hash_map_tl_t; + + typedef lu_types<null_mapped_type>::tl_t lu_set_tl_t; + typedef lu_types<null_mapped_type>::min_tl_t min_lu_set_tl_t; + typedef lu_types<basic_type>::tl_t lu_map_tl_t; + typedef lu_types<basic_type>::min_tl_t min_lu_map_tl_t; + + typedef trie_types<null_mapped_type>::tl_t trie_set_tl_t; + typedef trie_types<null_mapped_type>::min_tl_t min_trie_set_tl_t; + typedef trie_types<basic_type>::tl_t trie_map_tl_t; + typedef trie_types<basic_type>::min_tl_t min_trie_map_tl_t; +} // namespace test } // namespace pb_ds #endif // #ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP diff --git a/libstdc++-v3/testsuite/util/regression/basic_type.hpp b/libstdc++-v3/testsuite/util/regression/basic_type.hpp index 60e970b..626f9e6f 100644 --- a/libstdc++-v3/testsuite/util/regression/basic_type.hpp +++ b/libstdc++-v3/testsuite/util/regression/basic_type.hpp @@ -52,67 +52,52 @@ namespace pb_ds { +namespace test +{ +#define PB_DS_BASE_C_DEC \ + std::basic_string<char, std::char_traits<char>, dbg_ex_allocator<char> > - namespace test + struct basic_type : public PB_DS_BASE_C_DEC { + private: + typedef PB_DS_BASE_C_DEC base_type; -#define PB_DS_BASE_C_DEC \ - std::basic_string< \ - char, \ - std::char_traits< \ - char>, \ - dbg_ex_allocator< \ - char> > - - struct basic_type : public PB_DS_BASE_C_DEC - { - public: - enum - { - distinct_chars = 4 - }; - - public: - basic_type() - { } - - template<typename Gen> - basic_type(Gen& r_gen, size_t max) + public: + enum { - size_t rnd = - r_gen.get_unsigned_long(0, static_cast<unsigned long>(max)); + distinct_chars = 4 + }; - while (rnd > 0) - { - PB_DS_BASE_C_DEC::push_back('a' + - static_cast<char>(rnd % distinct_chars)); + basic_type() { } - rnd /= distinct_chars; - } - } - - basic_type(const std::string other) - { - std::string::const_iterator it = other.begin(); - - while (it != other.end()) - { - PB_DS_BASE_C_DEC::push_back(*it); + template<typename Gen> + basic_type(Gen& r_gen, size_t max) + { + size_t rnd = r_gen.get_unsigned_long(0, static_cast<unsigned long>(max)); + while (rnd > 0) + { + base_type::push_back('a' + static_cast<char>(rnd % distinct_chars)); + rnd /= distinct_chars; + } + } - ++it; - } - } + basic_type(const std::string other) + { + std::string::const_iterator it = other.begin(); + while (it != other.end()) + { + base_type::push_back(*it); + ++it; + } + } - operator std::string() const - { - return (std::string(PB_DS_BASE_C_DEC::c_str())); - } - }; + operator std::string() const + { return std::string(base_type::c_str());} + }; #undef PB_DS_BASE_C_DEC - } // namespace test - +} // namespace test } // namespace pb_ds #endif // #ifndef PB_DS_BASIC_TYPE_HPP diff --git a/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp b/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp index 4c67167..c8e6b3d 100644 --- a/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp +++ b/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp @@ -52,27 +52,14 @@ namespace pb_ds { +namespace test +{ + typedef dbg_ex_allocator<basic_type> alloc_type; - namespace test - { - - typedef - pb_ds::test::dbg_ex_allocator< - pb_ds::test::basic_type> - alloc_type; - - typedef - pb_ds::test::pq_common_types< - pb_ds::test::basic_type, - std::less< - pb_ds::test::basic_type>, - alloc_type>::regression_tl - pq_tl_t; - - typedef pq_tl_t min_pq_tl_t; - - } // namespace test + typedef pq_common_types<basic_type, std::less<basic_type>, alloc_type>::regression_tl pq_tl_t; + typedef pq_tl_t min_pq_tl_t; +} // namespace test } // namespace pb_ds -#endif // #ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP +#endif diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp index 4f4c144..440c349 100644 --- a/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp +++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp @@ -60,432 +60,432 @@ namespace pb_ds { - - namespace test - { - - namespace detail - { +namespace test +{ +namespace detail +{ #ifdef PB_DS_REGRESSION_TRACE #define PB_DS_TRACE(X) std::cerr << X << std::endl -#else // #ifdef PB_DS_REGRESSION_TRACE +#else #define PB_DS_TRACE(X) -#endif // #ifdef PB_DS_REGRESSION_TRACE +#endif -#define PB_DS_CLASS_T_DEC \ - template<typename Cntnr> +#define PB_DS_CLASS_T_DEC \ + template<typename Cntnr> -#define PB_DS_CLASS_C_DEC \ - container_rand_regression_test< \ - Cntnr> +#define PB_DS_CLASS_C_DEC \ + container_rand_regression_test<Cntnr> -#define PB_DS_COND_COMPARE(L, R) \ - if (m_g.get_prob() < m_mp) \ - cmp(L, R, __FUNCTION__); +#define PB_DS_COND_COMPARE(L, R) \ + if (m_g.get_prob() < m_mp) \ + cmp(L, R, __FUNCTION__); -#define PB_DS_RUN_MTHD(MTHD) \ - { \ - bool done = false; \ +#define PB_DS_RUN_MTHD(MTHD) \ + { \ + bool done = false; \ \ - while (!done) \ - done = MTHD(); \ - } - -#define PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, F, L) \ - if (!(PRED)) \ - { \ - std::cerr << "Failure at " << F << ": " << L << std::endl; \ - \ - std::cerr << MORE << std::endl; \ - \ - std::cerr << "container:" << std::endl; \ - \ - print_container(*(P_C)); \ - std::cerr << std::endl; \ - \ - std::cerr << "native container:" << std::endl; \ - \ - print_container(*(P_NC)); \ - std::cerr << std::endl; \ - \ - throw std::logic_error("fucked!"); \ - } + while (!done) \ + done = MTHD(); \ + } + +#define PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, F, L) \ + if (!(PRED)) \ + { \ + std::cerr << "Failure at " << F << ": " << L << std::endl; \ + std::cerr << MORE << std::endl; \ + std::cerr << "container:" << std::endl; \ + print_container(*(P_C)); \ + std::cerr << std::endl; \ + std::cerr << "native container:" << std::endl; \ + print_container(*(P_NC)); \ + std::cerr << std::endl; \ + throw std::logic_error("fucked!"); \ + } #define PB_DS_THROW_IF_FAILED(PRED, MORE, P_C, P_NC) \ - PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, __FILE__, __LINE__) - -#define PB_DS_SET_DESTRUCT_PRINT \ - destructor_printer dest_print___(__FUNCTION__); + PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, __FILE__, __LINE__) -#define PB_DS_CANCEL_DESTRUCT_PRINT \ - dest_print___.cancel_print(); - - // Rand test specialized for a specific container. - template<typename Cntnr> - class container_rand_regression_test - { +#define PB_DS_SET_DESTRUCT_PRINT \ + destructor_printer dest_print___(__FUNCTION__); - public: +#define PB_DS_CANCEL_DESTRUCT_PRINT \ + dest_print___.cancel_print(); - container_rand_regression_test(unsigned long seed, size_t n, size_t m, double tp, double ip, double ep, double cp, double mp, bool disp); + // Rand test specialized for a specific container. + template<typename Cntnr> + class container_rand_regression_test + { + public: - virtual - ~container_rand_regression_test(); + container_rand_regression_test(unsigned long, size_t, size_t, double, + double, double, double, double, bool); - void - operator()(); + virtual + ~container_rand_regression_test(); - private: - typedef Cntnr cntnr; + void + operator()(); - typedef typename cntnr::allocator allocator; + private: + typedef Cntnr cntnr; - typedef typename cntnr::size_type size_type; + typedef typename cntnr::allocator allocator; - typedef twister_rand_gen gen; + typedef typename cntnr::size_type size_type; - typedef regression_test_traits< Cntnr> test_traits; + typedef twister_rand_gen gen; - typedef pb_ds::container_traits< Cntnr> container_traits; + typedef regression_test_traits<Cntnr> test_traits; - typedef typename test_traits::key_type key_type; + typedef pb_ds::container_traits<Cntnr> container_traits; - typedef typename test_traits::const_key_reference const_key_reference; + typedef typename test_traits::key_type key_type; - typedef typename test_traits::value_type value_type; + typedef typename test_traits::const_key_reference const_key_reference; - typedef typename test_traits::native_type native_type; + typedef typename test_traits::value_type value_type; - enum op - { - insert_op, - erase_op, - clear_op, - other_op - }; + typedef typename test_traits::native_type native_type; - typedef dbg_ex_allocator< char> alloc_t; + enum op + { + insert_op, + erase_op, + clear_op, + other_op + }; - private: + typedef dbg_ex_allocator<char> alloc_t; - op - get_next_op(); + private: - size_t - get_next_sub_op(size_t max); + op + get_next_op(); - static void - defs(); + size_t + get_next_sub_op(size_t); - static void - key_defs(); + static void + defs(); - static void - mapped_defs(); + static void + key_defs(); - static void - value_defs(); + static void + mapped_defs(); - static void - ds_defs(); + static void + value_defs(); - static void - iterator_defs(); + static void + ds_defs(); - static void - node_iterator_defs(pb_ds::detail::false_type); + static void + iterator_defs(); - static void - node_iterator_defs(pb_ds::detail::true_type); + static void + node_iterator_defs(pb_ds::detail::false_type); - static void - policy_defs(); + static void + node_iterator_defs(pb_ds::detail::true_type); - static void - policy_defs(pb_ds::basic_hash_tag); + static void + policy_defs(); - static void - policy_defs(pb_ds::cc_hash_tag); + static void + policy_defs(pb_ds::basic_hash_tag); - static void - policy_defs(pb_ds::gp_hash_tag); + static void + policy_defs(pb_ds::cc_hash_tag); - static void - policy_defs(pb_ds::tree_tag); + static void + policy_defs(pb_ds::gp_hash_tag); - static void - policy_defs(pb_ds::list_update_tag); + static void + policy_defs(pb_ds::tree_tag); - static void - policy_defs(pb_ds::pat_trie_tag); + static void + policy_defs(pb_ds::list_update_tag); - void - policy_access(); + static void + policy_defs(pb_ds::pat_trie_tag); - void - policy_access(pb_ds::basic_hash_tag); + void + policy_access(); - void - policy_access(pb_ds::cc_hash_tag); + void + policy_access(pb_ds::basic_hash_tag); - void - policy_access(pb_ds::gp_hash_tag); + void + policy_access(pb_ds::cc_hash_tag); - void - policy_access(pb_ds::tree_tag); + void + policy_access(pb_ds::gp_hash_tag); - void - policy_access(pb_ds::list_update_tag); + void + policy_access(pb_ds::tree_tag); - void - policy_access(pb_ds::pat_trie_tag); + void + policy_access(pb_ds::list_update_tag); - void - it_copy(); + void + policy_access(pb_ds::pat_trie_tag); - void - it_assign(); + void + it_copy(); - void - rev_it_copy(); + void + it_assign(); - void - rev_it_assign(); + void + rev_it_copy(); - void - rev_it_copy_imp(pb_ds::detail::false_type); + void + rev_it_assign(); - void - rev_it_copy_imp(pb_ds::detail::true_type); + void + rev_it_copy_imp(pb_ds::detail::false_type); - void - rev_it_assign_imp(pb_ds::detail::false_type); + void + rev_it_copy_imp(pb_ds::detail::true_type); - void - rev_it_assign_imp(pb_ds::detail::true_type); + void + rev_it_assign_imp(pb_ds::detail::false_type); - bool - default_constructor(); + void + rev_it_assign_imp(pb_ds::detail::true_type); - void - swap(); + bool + default_constructor(); - bool - copy_constructor(); + void + swap(); - bool - assignment_operator(); + bool + copy_constructor(); - bool - it_constructor(); + bool + assignment_operator(); - bool - it_constructor_imp(pb_ds::cc_hash_tag); + bool + it_constructor(); - bool - it_constructor_imp(pb_ds::gp_hash_tag); + bool + it_constructor_imp(pb_ds::cc_hash_tag); - bool - it_constructor_imp(pb_ds::tree_tag); + bool + it_constructor_imp(pb_ds::gp_hash_tag); - bool - it_constructor_imp(pb_ds::list_update_tag); + bool + it_constructor_imp(pb_ds::tree_tag); - bool - it_constructor_imp(pb_ds::pat_trie_tag); + bool + it_constructor_imp(pb_ds::list_update_tag); - bool - insert(); + bool + it_constructor_imp(pb_ds::pat_trie_tag); - bool - erase(); + bool + insert(); - bool - erase_it(); + bool + erase(); - bool - erase_it_imp(pb_ds::detail::false_type); + bool + erase_it(); - bool - erase_it_imp(pb_ds::detail::true_type); + bool + erase_it_imp(pb_ds::detail::false_type); - bool - erase_rev_it(); + bool + erase_it_imp(pb_ds::detail::true_type); - bool - erase_rev_it_imp(pb_ds::detail::false_type); + bool + erase_rev_it(); - bool - erase_rev_it_imp(pb_ds::detail::true_type); + bool + erase_rev_it_imp(pb_ds::detail::false_type); - bool - erase_if(); + bool + erase_rev_it_imp(pb_ds::detail::true_type); - bool - clear(); + bool + erase_if(); - bool - resize(); + bool + clear(); - bool - resize_imp(pb_ds::detail::true_type); + bool + resize(); - bool - resize_imp(pb_ds::detail::false_type); + bool + resize_imp(pb_ds::detail::true_type); - bool - get_set_loads(); + bool + resize_imp(pb_ds::detail::false_type); - bool - get_set_loads_imp(pb_ds::detail::true_type); + bool + get_set_loads(); - bool - get_set_loads_imp(pb_ds::detail::false_type); + bool + get_set_loads_imp(pb_ds::detail::true_type); - void - get_set_load(); + bool + get_set_loads_imp(pb_ds::detail::false_type); - void - get_set_load_imp(pb_ds::detail::true_type); + void + get_set_load(); - void - get_set_load_imp(pb_ds::detail::false_type); + void + get_set_load_imp(pb_ds::detail::true_type); - bool - subscript(); + void + get_set_load_imp(pb_ds::detail::false_type); - bool - subscript_imp(pb_ds::detail::false_type); + bool + subscript(); - bool - subscript_imp(pb_ds::detail::true_type); + bool + subscript_imp(pb_ds::detail::false_type); - bool - split_join(); + bool + subscript_imp(pb_ds::detail::true_type); - bool - split_join_imp(pb_ds::detail::false_type); + bool + split_join(); - bool - split_join_imp(pb_ds::detail::true_type); + bool + split_join_imp(pb_ds::detail::false_type); - void - cmp(const Cntnr& r_container, const native_type& r_native_c, const std::string& r_call_fn); + bool + split_join_imp(pb_ds::detail::true_type); - void - basic_cmp_(const Cntnr& r_container, const native_type& r_native_c); + void + cmp(const Cntnr&, const native_type&, const std::string&); - void - cmp_(const Cntnr& r_container, const native_type& r_native_c); + void + basic_cmp_(const Cntnr&, const native_type&); - void - order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + cmp_(const Cntnr&, const native_type&); - void - order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + order_preserving_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - back_order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + order_preserving_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - back_order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + back_order_preserving_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - reverse_iteration_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + back_order_preserving_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - reverse_iteration_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + reverse_iteration_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - order_statistics_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + reverse_iteration_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - order_statistics_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + order_statistics_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - prefix_search_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + order_statistics_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - prefix_search_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + prefix_search_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - template<typename Const_It, class Const_Native_It> - void - it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e); + void + prefix_search_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - template<typename Const_It, class Const_Native_It> - void - back_it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e); + template<typename Const_It, class Const_Native_It> + void + it_cmp_imp(Const_It, Const_It, Const_Native_It, Const_Native_It); - void - lower_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + template<typename Const_It, class Const_Native_It> + void + back_it_cmp_imp(Const_It, Const_It, Const_Native_It, Const_Native_It); - void - lower_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + lower_bound_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - upper_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type); + void + lower_bound_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - upper_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type); + void + upper_bound_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::false_type); - void - print_container(const native_type& r_cnt, std::ostream& r_os = std::cerr) const; + void + upper_bound_cmp_imp(const Cntnr&, const native_type&, + pb_ds::detail::true_type); - void - print_container(const cntnr& r_cnt, std::ostream& r_os = std::cerr) const; + void + print_container(const native_type&, std::ostream& r_os = std::cerr) const; - private: - struct destructor_printer - { - destructor_printer(const std::string& r_msg) : m_msg(r_msg), - m_print(true) - { } + void + print_container(const cntnr&, std::ostream& r_os = std::cerr) const; - void - cancel_print() - { - m_print = false; - } + private: + struct destructor_printer + { + destructor_printer(const std::string& r_msg) + : m_msg(r_msg), m_print(true) { } - ~destructor_printer() - { - if (!m_print) - return; + void + cancel_print() + { m_print = false; } - std::cerr << std::endl << - "Uncaught exception: " << std::endl << - m_msg << std::endl; - } + ~destructor_printer() + { + if (!m_print) + return; - private: - const std::string m_msg; + std::cerr << std::endl << "Uncaught exception: " << std::endl + << m_msg << std::endl; + } - bool m_print; - }; + private: + const std::string m_msg; + bool m_print; + }; - private: - const unsigned long m_seed; + private: + const unsigned long m_seed; - const size_t m_n; - const size_t m_m; - const double m_tp; - const double m_ip; - const double m_ep; - const double m_cp; - const double m_mp; - const bool m_disp; + const size_t m_n; + const size_t m_m; + const double m_tp; + const double m_ip; + const double m_ep; + const double m_cp; + const double m_mp; + const bool m_disp; - twister_rand_gen m_g; + twister_rand_gen m_g; - Cntnr* m_p_c; + Cntnr* m_p_c; - native_type m_native_c; + native_type m_native_c; - alloc_t m_alloc; + alloc_t m_alloc; - size_t m_i; - }; + size_t m_i; + }; #include <regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp> #include <regression/rand/assoc/detail/cmp_fn_imps.hpp> @@ -504,27 +504,17 @@ namespace pb_ds #include <regression/rand/assoc/detail/diagnostic_fn_imps.hpp> #undef PB_DS_COND_COMPARE - #undef PB_DS_RUN_MTHD - #undef PB_DS_CLASS_T_DEC - #undef PB_DS_CLASS_C_DEC - #undef PB_DS_THROW_IF_FAILED_ - #undef PB_DS_THROW_IF_FAILED - #undef PB_DS_SET_DESTRUCT_PRINT - #undef PB_DS_CANCEL_DESTRUCT_PRINT - #undef PB_DS_TRACE - } // namespace detail - - } // namespace test - +} // namespace detail +} // namespace test } // namespace pb_ds -#endif // #ifndef PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP +#endif diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp index 2a16943..a7c3b7b 100644 --- a/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp +++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp @@ -44,6 +44,9 @@ * Contains a random-operation test. */ +#ifndef PB_DS_ASSOC_RAND_REGRESSION_TEST_HPP +#define PB_DS_ASSOC_RAND_REGRESSION_TEST_HPP + #include <iostream> #include <vector> #include <regression/rand/assoc/container_rand_regression_test.hpp> @@ -120,12 +123,12 @@ namespace detail { detail::verify_params(sd, n, m, tp, ip, ep, cp, mp, disp); } - catch(pb_ds::test::illegal_input_error&) + catch (pb_ds::test::illegal_input_error&) { detail::usage(name); return -1; } - catch(...) + catch (...) { return -2; }; @@ -204,3 +207,4 @@ namespace detail } // namespace test } // namespace pb_ds +#endif diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp index ebd6d33..385a2c4 100644 --- a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp +++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp @@ -44,6 +44,9 @@ * Contains a random-operation test. */ +#ifndef PB_DS_PQ_RAND_REGRESSION_TEST_HPP +#define PB_DS_PQ_RAND_REGRESSION_TEST_HPP + #include <iostream> #include <vector> #include <regression/rand/priority_queue/container_rand_regression_test.hpp> @@ -208,3 +211,4 @@ namespace detail } // namespace test } // namespace pb_ds +#endif diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp index 8cf8c12..65a6363 100644 --- a/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp +++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp @@ -59,231 +59,193 @@ namespace pb_ds { +namespace test +{ +namespace detail +{ - namespace test - { +#define PB_DS_CLASS_T_DEC \ + template<typename Cntnr> - namespace detail - { +#define PB_DS_CLASS_C_DEC \ + regression_test_traits<Cntnr> -#define PB_DS_CLASS_T_DEC \ - template<typename Cntnr> - -#define PB_DS_CLASS_C_DEC \ - regression_test_traits< \ - Cntnr> - -#define PB_DS_TYPE_TRAITS_C_DEC \ - regression_test_type_traits< \ - Cntnr> - -#define PB_DS_NATIVE_TYPE_TRAITS_C_DEC \ - native_type_traits< \ - typename PB_DS_TYPE_TRAITS_C_DEC::key_type, \ - typename PB_DS_TYPE_TRAITS_C_DEC::mapped_type, \ - typename Cntnr::allocator> - -#define PB_DS_RESIZE_TRAITS_C_DEC \ - regression_test_resize_traits< \ - Cntnr, \ - typename Cntnr::container_category> - -#define PB_DS_SET_LOADS_TRAITS_C_DEC \ - regression_test_get_set_loacontainer_traits< \ - Cntnr, \ - typename Cntnr::container_category> - -#define PB_DS_SET_LOAD_TRAITS_C_DEC \ - regression_test_get_set_load_traits< \ - Cntnr, \ - typename Cntnr::container_category> - -#define PB_DS_NODE_UPDATOR_TRAITS_C_DEC \ - regression_test_node_update_traits< \ - Cntnr, \ - typename Cntnr::container_category> - - template<typename Cntnr> - struct regression_test_traits : private PB_DS_TYPE_TRAITS_C_DEC, - private PB_DS_NATIVE_TYPE_TRAITS_C_DEC, - private PB_DS_RESIZE_TRAITS_C_DEC, - private PB_DS_NODE_UPDATOR_TRAITS_C_DEC, - private PB_DS_SET_LOADS_TRAITS_C_DEC, - private PB_DS_SET_LOAD_TRAITS_C_DEC - { +#define PB_DS_TYPE_TRAITS_C_DEC \ + regression_test_type_traits<Cntnr> - private: - typedef PB_DS_NATIVE_TYPE_TRAITS_C_DEC native_type_traits_base; +#define PB_DS_NATIVE_TYPE_TRAITS_C_DEC \ + native_type_traits<typename PB_DS_TYPE_TRAITS_C_DEC::key_type, \ + typename PB_DS_TYPE_TRAITS_C_DEC::mapped_type, \ + typename Cntnr::allocator> - typedef PB_DS_TYPE_TRAITS_C_DEC type_traits_base; +#define PB_DS_RESIZE_TRAITS_C_DEC \ + regression_test_resize_traits<Cntnr, typename Cntnr::container_category> - public: +#define PB_DS_SET_LOADS_TRAITS_C_DEC \ + regression_test_get_set_loacontainer_traits<Cntnr, \ + typename Cntnr::container_category> - typedef typename Cntnr::key_type key_type; +#define PB_DS_SET_LOAD_TRAITS_C_DEC \ + regression_test_get_set_load_traits<Cntnr,typename Cntnr::container_category> - typedef typename Cntnr::const_key_reference const_key_reference; +#define PB_DS_NODE_UPDATOR_TRAITS_C_DEC \ + regression_test_node_update_traits<Cntnr, typename Cntnr::container_category> - typedef typename Cntnr::value_type value_type; + template<typename Cntnr> + struct regression_test_traits : private PB_DS_TYPE_TRAITS_C_DEC, + private PB_DS_NATIVE_TYPE_TRAITS_C_DEC, + private PB_DS_RESIZE_TRAITS_C_DEC, + private PB_DS_NODE_UPDATOR_TRAITS_C_DEC, + private PB_DS_SET_LOADS_TRAITS_C_DEC, + private PB_DS_SET_LOAD_TRAITS_C_DEC + { + private: + typedef PB_DS_NATIVE_TYPE_TRAITS_C_DEC native_type_traits_base; - typedef typename Cntnr::const_reference const_reference; + typedef PB_DS_TYPE_TRAITS_C_DEC type_traits_base; - typedef typename PB_DS_NATIVE_TYPE_TRAITS_C_DEC::type native_type; + public: + typedef typename Cntnr::key_type key_type; - typedef typename native_type::key_type native_key_type; + typedef typename Cntnr::const_key_reference const_key_reference; - typedef typename native_type::value_type native_value_type; + typedef typename Cntnr::value_type value_type; - enum - { - resize = PB_DS_RESIZE_TRAITS_C_DEC::value, - get_set_loads = PB_DS_SET_LOADS_TRAITS_C_DEC::value, - get_set_load = PB_DS_SET_LOAD_TRAITS_C_DEC::value, - order_statistics = - PB_DS_NODE_UPDATOR_TRAITS_C_DEC::order_statistics, - prefix_search = - PB_DS_NODE_UPDATOR_TRAITS_C_DEC::prefix_search - }; - - template<typename T> - struct erase_if_fn : public regression_test_erase_if_fn< - T> - { - - }; - - static size_t - erase_if(native_type& r_native_c) - { - typedef - regression_test_erase_if_fn< - typename native_type::value_type> - erase_if_fn; - - typename native_type::iterator it = r_native_c.begin(); - - size_t num_ersd = 0; - - while (it != r_native_c.end()) - if (erase_if_fn()(*it)) - { - ++num_ersd; - - r_native_c.erase(it); - - it = r_native_c.begin(); - } - else - ++it; - - return (num_ersd); - } - - static void - print_container(const Cntnr& r_c, std::ostream& r_os) - { - PB_DS_TYPE_TRAITS_C_DEC::print_container(r_c, r_os); - } - - public: - - template<typename Gen> - static key_type - generate_key(Gen& r_gen, size_t max) - { - return (PB_DS_TYPE_TRAITS_C_DEC::generate_key(r_gen, max)); - } - - template<typename Gen> - static value_type - generate_value(Gen& r_gen, size_t max) - { - return (PB_DS_TYPE_TRAITS_C_DEC::generate_value(r_gen, max)); - } - - static const_key_reference - extract_key(const_reference r_val) - { - return type_traits_base::extract_key(r_val); - } - - static native_key_type - native_key(const_key_reference r_key) - { - return (native_type_traits_base::native_key(r_key)); - } - - static native_value_type - native_value(const_reference r_val) - { - return (native_type_traits_base::native_value(r_val)); - } - - static const native_key_type& - extract_native_key(const native_value_type& r_val) - { - return (native_type_traits_base::extract_key(r_val)); - } - - static bool - cmp(const_reference r_val, const native_value_type& r_native_val) - { - return (val_to_string(r_val) == - native_val_to_string(r_native_val)); - } - - static std::string - val_to_string(const_reference r_val) - { - return (to_string(r_val)); - } - - static std::string - key_to_string(const_key_reference r_key) - { - return (to_string(r_key)); - } - - static std::string - native_val_to_string(const native_value_type& r_native_val) - { - return (to_string(r_native_val)); - } - - static bool - prefix_match(const_key_reference r_key, const std::string& r_native_key) - { - const size_t native_substr_len = std::min( - r_key.length(), - r_native_key.length()); - - const std::string native_substr = - r_native_key.substr(0, native_substr_len); - - return (native_substr == (const std::string& )r_key); - } + typedef typename Cntnr::const_reference const_reference; + typedef typename PB_DS_NATIVE_TYPE_TRAITS_C_DEC::type native_type; + + typedef typename native_type::key_type native_key_type; + + typedef typename native_type::value_type native_value_type; + + enum + { + resize = PB_DS_RESIZE_TRAITS_C_DEC::value, + get_set_loads = PB_DS_SET_LOADS_TRAITS_C_DEC::value, + get_set_load = PB_DS_SET_LOAD_TRAITS_C_DEC::value, + order_statistics = PB_DS_NODE_UPDATOR_TRAITS_C_DEC::order_statistics, + prefix_search = PB_DS_NODE_UPDATOR_TRAITS_C_DEC::prefix_search }; -#undef PB_DS_TYPE_TRAITS_C_DEC + template<typename T> + struct erase_if_fn : public regression_test_erase_if_fn<T> + { }; -#undef PB_DS_NATIVE_TYPE_TRAITS_C_DEC + static size_t + erase_if(native_type& r_native_c) + { + typedef regression_test_erase_if_fn<typename native_type::value_type> erase_if_fn; -#undef PB_DS_RESIZE_TRAITS_C_DEC + typename native_type::iterator it = r_native_c.begin(); + size_t num_ersd = 0; + while (it != r_native_c.end()) + if (erase_if_fn()(*it)) + { + ++num_ersd; + r_native_c.erase(it); + it = r_native_c.begin(); + } + else + ++it; + return num_ersd; + } + + static void + print_container(const Cntnr& r_c, std::ostream& r_os) + { + PB_DS_TYPE_TRAITS_C_DEC::print_container(r_c, r_os); + } -#undef PB_DS_SET_LOADS_TRAITS_C_DEC + public: -#undef PB_DS_SET_LOAD_TRAITS_C_DEC + template<typename Gen> + static key_type + generate_key(Gen& r_gen, size_t max) + { + return PB_DS_TYPE_TRAITS_C_DEC::generate_key(r_gen, max); + } -#undef PB_DS_NODE_UPDATOR_TRAITS_C_DEC + template<typename Gen> + static value_type + generate_value(Gen& r_gen, size_t max) + { + return PB_DS_TYPE_TRAITS_C_DEC::generate_value(r_gen, max); + } -#undef PB_DS_CLASS_T_DEC + static const_key_reference + extract_key(const_reference r_val) + { + return type_traits_base::extract_key(r_val); + } -#undef PB_DS_CLASS_C_DEC + static native_key_type + native_key(const_key_reference r_key) + { + return native_type_traits_base::native_key(r_key); + } + + static native_value_type + native_value(const_reference r_val) + { + return native_type_traits_base::native_value(r_val); + } - } // namespace detail + static const native_key_type& + extract_native_key(const native_value_type& r_val) + { + return native_type_traits_base::extract_key(r_val); + } - } // namespace test + static bool + cmp(const_reference r_val, const native_value_type& r_native_val) + { + return val_to_string(r_val) == native_val_to_string(r_native_val); + } + + static std::string + val_to_string(const_reference r_val) + { + return to_string(r_val); + } + + static std::string + key_to_string(const_key_reference r_key) + { + return to_string(r_key); + } + + static std::string + native_val_to_string(const native_value_type& r_native_val) + { + return to_string(r_native_val); + } + + static bool + prefix_match(const_key_reference r_key, const std::string& r_native_key) + { + const size_t native_substr_len = std::min(r_key.length(), + r_native_key.length()); + + const std::string native_substr = r_native_key.substr(0, + native_substr_len); + + return native_substr == (const std::string&) r_key; + } + + }; + +#undef PB_DS_TYPE_TRAITS_C_DEC +#undef PB_DS_NATIVE_TYPE_TRAITS_C_DEC +#undef PB_DS_RESIZE_TRAITS_C_DEC +#undef PB_DS_SET_LOADS_TRAITS_C_DEC +#undef PB_DS_SET_LOAD_TRAITS_C_DEC +#undef PB_DS_NODE_UPDATOR_TRAITS_C_DEC +#undef PB_DS_CLASS_T_DEC +#undef PB_DS_CLASS_C_DEC +} // namespace detail +} // namespace test } // namespace pb_ds -#endif // #ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP +#endif |