diff --git a/test/set.cpp b/test/set.cpp index f19352b..944f9fe 100644 --- a/test/set.cpp +++ b/test/set.cpp @@ -18,63 +18,81 @@ #include "boost/mpl/set/set0.hpp" #include "boost/mpl/has_key.hpp" #include "boost/mpl/order.hpp" +#include "boost/mpl/insert.hpp" #include "boost/mpl/begin_end.hpp" -#include "boost/type_traits/is_same.hpp" -#include "boost/static_assert.hpp" +#include "boost/mpl/aux_/test.hpp" using namespace boost::mpl; using namespace boost; -#define MPL_TEST_CASE( test_name ) void test_name() -#define MPL_TEST_ASSERT( expr ) BOOST_STATIC_ASSERT( expr ) +CTT_test_case( false_positives, (S)(T) ) + { + CTT_assert(( !has_key::type::value )); // notation test + CTT_assert(( !has_key::value )); -struct UDT {}; -struct incomplete; + CTT_assert_same(3, (BOOST_MSVC_TYPENAME order::type, void_)); + } -MPL_TEST_CASE( has_key_test2 ) +CTT_test_case( empty_set, (T) ) + { + typedef set0<> s; + + CTT_for_each( + (T) CTT_basic_modifiers(T) + , false_positives + , (s)(_1) + ); + } + +CTT_test_case( one_element_set, (T) ) + { + typedef s_item > s; + + CTT_for_each( + CTT_basic_modifiers(T) + , false_positives + , (s)(_1) + ); + + CTT_assert(( has_key::type::value )); // notation test + CTT_assert(( has_key::value )); + + CTT_assert_equal(3, (order::type::value, 1)); // notation test + CTT_assert_equal(3, (order::value, 1)); + } + +CTT_test_case( insertion, (T) ) + { + typedef s_item > s1; + typedef typename insert< set0<>,T >::type s2; + + CTT_assert_same(2, (s1, s2)); + } + +/* +CTT_test_case( erasure, (T) ) { typedef s_mask > > > s; - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( has_key::type::value )); - MPL_TEST_ASSERT(( order::type::value == 1 )); - MPL_TEST_ASSERT(( is_same< order::type,void_ >::value )); + CTT_TEST_ASSERT(( !has_key::type::value )); + CTT_TEST_ASSERT(( has_key::type::value )); + CTT_TEST_ASSERT(( order::type::value == 1 )); + CTT_TEST_ASSERT(( is_same< order::type,void_ >::value )); typedef begin::type first; typedef end::type last; - MPL_TEST_ASSERT(( is_same::value )); - MPL_TEST_ASSERT(( is_same::value )); + CTT_TEST_ASSERT(( is_same::value )); + CTT_TEST_ASSERT(( is_same::value )); } - -MPL_TEST_CASE( empty_set_test ) -{ - typedef set0<> s; - - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - MPL_TEST_ASSERT(( !has_key::type::value )); - -} - +*/ int main() { - + CTT_for_each( CTT_basic_types(), empty_set, (_1)); +// CTT_for_each( CTT_basic_types(), one_element_set, (_1)); + CTT_for_each( CTT_basic_types(), insertion, (_1)); + return 0; }