diff options
Diffstat (limited to 'test/eh/TestClass.h')
-rw-r--r-- | test/eh/TestClass.h | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/test/eh/TestClass.h b/test/eh/TestClass.h deleted file mode 100644 index 79f5c09..0000000 --- a/test/eh/TestClass.h +++ /dev/null @@ -1,161 +0,0 @@ -/*********************************************************************************** - TestClass.h - - * Copyright (c) 1997-1998 - * Mark of the Unicorn, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Mark of the Unicorn makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - - SUMMARY: TestClass simulates a class that uses resources. It is designed to - cause exceptions when it is constructed or copied. - -***********************************************************************************/ -#ifndef INCLUDED_MOTU_TestClass -#define INCLUDED_MOTU_TestClass 1 - -# include "Prefix.h" - -# include <functional> -# include <utility> -# include <climits> - -#include <iosfwd> -#include "random_number.h" -#include "nc_alloc.h" - -class TestClass -{ -public: - inline TestClass(); - inline TestClass( int value ); - inline TestClass( const TestClass& rhs ); - inline ~TestClass(); - - inline TestClass& operator=( const TestClass& rhs ); - inline int value() const; - - inline TestClass operator!() const; - - bool operator==( const TestClass& rhs ) const - { - return value() == rhs.value(); - } - - bool operator<( const TestClass& rhs ) const { - return value() < rhs.value(); - } - -protected: - static inline unsigned int get_random(unsigned range = UINT_MAX); -private: - inline void Init( int value ); - -#if TESTCLASS_DEEP_DATA - int *p; -#else - int v; -#endif -}; - -#if defined( __MWERKS__ ) && __MWERKS__ <= 0x3000 && !__SGI_STL -# if defined( __MSL__ ) && __MSL__ < 0x2406 -# include <iterator.h> -__MSL_FIX_ITERATORS__(TestClass); -__MSL_FIX_ITERATORS__(const TestClass); -typedef EH_STD::pair<const TestClass, TestClass> pair_testclass_testclass; -__MSL_FIX_ITERATORS__( pair_testclass_testclass ); -__MSL_FIX_ITERATORS__( const pair_testclass_testclass ); -# endif -#endif - -inline void TestClass::Init( int value ) -{ -#if TESTCLASS_DEEP_DATA - p = new int( value ); -#else - simulate_constructor(); - v = value; -#endif -} - -inline TestClass::TestClass() -{ - Init( int(get_random()) ); -} - -inline TestClass::TestClass( int value ) -{ - Init( value ); -} - -inline TestClass::TestClass( const TestClass& rhs ) -{ - Init( rhs.value() ); -} - -inline TestClass::~TestClass() -{ -#if TESTCLASS_DEEP_DATA - delete p; -#else - simulate_destructor(); -#endif -} - -inline TestClass& TestClass::operator=( const TestClass& rhs ) -{ -#if TESTCLASS_DEEP_DATA - int *newP = new int( rhs.value() ); - delete p; - p = newP; -#else - simulate_possible_failure(); - v = rhs.value(); -#endif - return *this; -} - -inline int TestClass::value() const -{ -#if TESTCLASS_DEEP_DATA - return *p; -#else - return v; -#endif -} - -inline TestClass TestClass::operator!() const -{ - return TestClass( value()+1 ); -} - -inline bool operator>( const TestClass& lhs, const TestClass& rhs ) { - return rhs < lhs; -} - -inline bool operator>=( const TestClass& lhs, const TestClass& rhs ) { - return !(lhs < rhs); -} - -inline bool operator<=( const TestClass& lhs, const TestClass& rhs ) { - return !(rhs < lhs); -} - -inline bool operator != ( const TestClass& lhs, const TestClass& rhs ) { - return lhs.value() != rhs.value(); -} - -inline unsigned int TestClass::get_random( unsigned range ) -{ - return random_number( range ); -} - -extern std::ostream& operator << ( std::ostream& s, const TestClass&); - -#endif // INCLUDED_MOTU_TestClass |