$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r65760 - sandbox/variadic_macro_data/libs/variadic_macro_data/test
From: eldiener_at_[hidden]
Date: 2010-10-04 22:42:38
Author: eldiener
Date: 2010-10-04 22:42:37 EDT (Mon, 04 Oct 2010)
New Revision: 65760
URL: http://svn.boost.org/trac/boost/changeset/65760
Log:
Better tests
Text files modified: 
   sandbox/variadic_macro_data/libs/variadic_macro_data/test/TestData.cpp |    50 ++++++++++++++++++++++++++++++++++++--- 
   1 files changed, 46 insertions(+), 4 deletions(-)
Modified: sandbox/variadic_macro_data/libs/variadic_macro_data/test/TestData.cpp
==============================================================================
--- sandbox/variadic_macro_data/libs/variadic_macro_data/test/TestData.cpp	(original)
+++ sandbox/variadic_macro_data/libs/variadic_macro_data/test/TestData.cpp	2010-10-04 22:42:37 EDT (Mon, 04 Oct 2010)
@@ -1,23 +1,32 @@
 #include <boost/variadic_macro_data/VariadicMacroData.hpp>
 #include <boost/detail/lightweight_test.hpp>
 #include <vector>
+#include <string>
 #include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_const.hpp>
 #include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/control.hpp>
+#include <boost/preprocessor/comparison/less.hpp>
+#include <boost/preprocessor/logical/and.hpp>
+#include <boost/preprocessor/logical/bitor.hpp>
+#include <boost/preprocessor/selection/max.hpp>
+#include <boost/preprocessor/stringize.hpp>
 
 int main()
   {
   
 #if !defined(BOOST_NO_VARIADIC_MACROS)
 
-  #define VMD_TEST_THE_DATA 657,1298,the,*,we99,33,++,jjgg,+=
+  #define VMD_TEST_THE_DATA 147,12,the,*,we99,33,++,jjgg,+=,0,1
   
   int mSize(VMD_DATA_SIZE(VMD_TEST_THE_DATA));
 
-  BOOST_TEST_EQ(mSize,9);
+  BOOST_TEST_EQ(mSize,11);
   
   mSize VMD_DATA_ELEM(8,VMD_TEST_THE_DATA) 5;
   
-  BOOST_TEST_EQ(mSize,14);
+  BOOST_TEST_EQ(mSize,16);
   
   int aSize(VMD_DATA_SIZE(23,ll,678,456));
   
@@ -25,14 +34,47 @@
   
   aSize += mSize VMD_DATA_ELEM(3,VMD_TEST_THE_DATA) VMD_DATA_SIZE(VMD_TEST_THE_DATA);
   
-  BOOST_TEST_EQ(aSize,130);
+  BOOST_TEST_EQ(aSize,4 + (16 * 11));
   
   BOOST_TEST_EQ(BOOST_PP_INC(VMD_DATA_ELEM(5,VMD_TEST_THE_DATA)),34);
   
+  aSize BOOST_PP_CAT(VMD_DATA_ELEM(3,VMD_TEST_THE_DATA),=) VMD_DATA_ELEM(1,VMD_TEST_THE_DATA);
+  
+  BOOST_TEST_EQ(aSize,(4 + (16 * 11)) * 12);
+  
   int anElement(VMD_DATA_ELEM(2,23,ll,678,456));
   
   BOOST_TEST_EQ(anElement,678);
   
+  BOOST_TEST_EQ(BOOST_PP_LESS(VMD_DATA_SIZE(VMD_TEST_THE_DATA),12),1);
+  
+  typedef BOOST_PP_EXPR_IF(VMD_DATA_ELEM(9,VMD_TEST_THE_DATA),const) int AnIntType;
+  
+  BOOST_TEST(!(boost::is_const<AnIntType>::value));
+  
+  typedef BOOST_PP_EXPR_IIF(VMD_DATA_ELEM(10,VMD_TEST_THE_DATA),const) int AnotherIntType;
+  
+  BOOST_TEST(boost::is_const<AnotherIntType>::value);
+  
+  BOOST_TEST_EQ(BOOST_PP_IF(VMD_DATA_ELEM(5,VMD_TEST_THE_DATA),10,20),10);
+
+  BOOST_TEST_EQ(BOOST_PP_IIF(VMD_DATA_ELEM(9,VMD_TEST_THE_DATA),10,20),20);
+  
+  bool tb(BOOST_PP_AND(VMD_DATA_ELEM(9,VMD_TEST_THE_DATA),VMD_DATA_ELEM(1,VMD_TEST_THE_DATA)));
+  
+  BOOST_TEST_EQ(tb,false);
+  
+  tb = BOOST_PP_BITOR(VMD_DATA_ELEM(10,VMD_TEST_THE_DATA),VMD_DATA_ELEM(10,VMD_TEST_THE_DATA));
+  
+  BOOST_TEST_EQ(tb,true);
+  
+  BOOST_TEST_EQ(BOOST_PP_MAX(VMD_DATA_ELEM(1,VMD_TEST_THE_DATA),VMD_DATA_SIZE(VMD_TEST_THE_DATA)),12);
+  
+  std::string ss(BOOST_PP_STRINGIZE(VMD_DATA_ELEM(4,VMD_TEST_THE_DATA)));
+  std::string ss2("we99");
+  
+  BOOST_TEST(ss == ss2);
+  
   #define VMD_TEST_EXPAND(...) int,__VA_ARGS__
   
   int numberOfTypes(VMD_DATA_SIZE(VMD_TEST_EXPAND(unsigned,long,short,unsigned long)));