From 236730d0c8dd843113d254faa29201e23aefb92d Mon Sep 17 00:00:00 2001 From: nobody Date: Mon, 12 Jan 2004 20:58:23 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'RC_1_31_0'. [SVN r21650] --- test/is_abstract_test.cpp | 231 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100755 test/is_abstract_test.cpp diff --git a/test/is_abstract_test.cpp b/test/is_abstract_test.cpp new file mode 100755 index 0000000..6e56aa4 --- /dev/null +++ b/test/is_abstract_test.cpp @@ -0,0 +1,231 @@ + +// (C) Copyright Rani Sharoni,Robert Ramey and Pavel Vozenilek 2004. +// Use, modification and distribution are 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) + + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + + +struct TestA {}; +struct TestB { virtual void foo(void) = 0; }; +struct TestC { private: virtual void foo(void) = 0; }; +struct TestD : TestA {}; +struct TestE : TestB {}; +struct TestF : TestC {}; +struct TestG : TestB { virtual void foo(void) {} }; +struct TestH : TestC { private: virtual void foo(void) {} }; +struct TestI : TestB, TestC {}; +struct TestJ : TestI { virtual void foo(void) {} }; +struct TestK : TestB { virtual void foo(void); virtual void foo2(void) = 0; }; +struct TestL : TestK { virtual void foo2(void) {} }; +struct TestM : virtual TestB {}; +struct TestN : virtual TestC {}; +struct TestO : TestM, TestN {}; +struct TestP : TestO { virtual void foo(void) {} }; +struct TestQ : TestB { virtual void foo(void) = 0; }; +struct TestR : TestC { private: virtual void foo(void) = 0; }; +struct TestS { virtual void foo(void) {} }; +struct TestT { virtual ~TestT(void) {} virtual void foo(void) {} }; +struct TestU : TestT { virtual void foo(void) = 0; }; +struct TestV : TestT { virtual void foo(void) {} }; +struct TestW { virtual void foo1(void) = 0; virtual void foo2(void) = 0; }; +struct TestX : TestW { virtual void foo1(void) {} virtual void foo2(void) {} }; +struct TestY { virtual ~TestY(void) = 0; }; +struct TestZ { virtual ~TestZ(void) = 0; }; TestZ::~TestZ(void) {} +struct TestAA : TestZ { virtual ~TestAA(void) = 0; }; TestAA::~TestAA(void) {} +struct TestAB : TestAA { virtual ~TestAB(void) {} }; +struct TestAC { virtual void foo(void) = 0; }; void TestAC::foo(void) {} +struct TestAD : TestAC {}; +struct TestAE : TestAD { virtual void foo() {} }; +struct TestAF : TestAD { virtual void foo(); }; void TestAF::foo(void) {} +struct TestAG : virtual TestA {}; + + +TT_TEST_BEGIN(is_abstract) + +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); + +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); + +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); + +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); + +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); +BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); + +TT_TEST_END + + + + + + +