diff options
Diffstat (limited to 'libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp')
-rw-r--r-- | libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp | 261 |
1 files changed, 72 insertions, 189 deletions
diff --git a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp index bc89bd71789..fa34568b3ed 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 |