⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 must_init_unittest_.h

📁 新版本TR1的stl
💻 H
字号:

// Updated: 6th January 2007

#if !defined(STLSOFT_INCL_STLSOFT_UTIL_HPP_MUST_INIT)
# error This file cannot be directly included, and should only be included within stlsoft/util/must_init.hpp
#endif /* !STLSOFT_INCL_STLSOFT_UTIL_HPP_MUST_INIT */

#if !defined(STLSOFT_UNITTEST)
# error This file cannot be included when not unit-testing STLSoft
#endif /* !STLSOFT_UNITTEST */

namespace unittest
{
	namespace
	{
		ss_bool_t test_stlsoft_util_must_init(unittest_reporter *r)
		{
			ss_bool_t				bSuccess	=	true;

			unittest_initialiser	init(r, "STLSoft", "util/must_init", __FILE__);

			{	// bool

				bool_init_t 	b1(false);
	
				if(false != b1.get())
				{
					r->report("must_init<bool> instance has wrong value", __LINE__);
					bSuccess = false;
				}

				bool_init_t 	b2(true);
	
				if(true != b2.get())
				{
					r->report("must_init<bool> instance has wrong value", __LINE__);
					bSuccess = false;
				}
			}

#ifndef CHAR_MIN
# define STLSOFT_DEFINING_CHAR_MIN
# ifdef STLSOFT_CF_CHAR_IS_UNSIGNED
#  define CHAR_MIN					(0)
# else /* ? STLSOFT_CF_CHAR_IS_UNSIGNED */
#  define CHAR_MIN					UCHAR_MIN
# endif /* STLSOFT_CF_CHAR_IS_UNSIGNED */
#endif /* STLSOFT_DEFINING_CHAR_MAX */

#ifndef CHAR_MAX
# define STLSOFT_DEFINING_CHAR_MAX
# ifdef STLSOFT_CF_CHAR_IS_UNSIGNED
#  define CHAR_MAX					(0)
# else /* ? STLSOFT_CF_CHAR_IS_UNSIGNED */
#  define CHAR_MAX					UCHAR_MAX
# endif /* STLSOFT_CF_CHAR_IS_UNSIGNED */
#endif /* STLSOFT_DEFINING_CHAR_MAX */

			{	// char

				{ for(char i = CHAR_MIN; ; ++i)
				{
					char_init_t 	ch(i);

					if(ch.get() != i)
					{
						r->report("must_init<char> instance has wrong value", __LINE__);
						bSuccess = false;
					}

					if(CHAR_MAX == i)
					{
						break;
					}
				}}

			}

#ifdef STLSOFT_DEFINING_CHAR_MIN
# undef CHAR_MIN
# undef STLSOFT_DEFINING_CHAR_MIN
#endif /* STLSOFT_DEFINING_CHAR_MIN */

#ifdef STLSOFT_DEFINING_CHAR_MAX
# undef CHAR_MAX
# undef STLSOFT_DEFINING_CHAR_MAX
#endif /* STLSOFT_DEFINING_CHAR_MAX */

			{	// wchar_t


			}

			{	// signed char

				{ for(signed char i = SCHAR_MIN; ; ++i)
				{
					signed_char_init_t	ch(i);

					if(ch.get() != i)
					{
						r->report("must_init<signed char> instance has wrong value", __LINE__);
						bSuccess = false;
					}

					if(SCHAR_MAX == i)
					{
						break;
					}
				}}

			}

			{	// unsigned char

				{ for(unsigned char i = 0; ; ++i)
				{
					unsigned_char_init_t	ch(i);

					if(ch.get() != i)
					{
						r->report("must_init<unsigned char> instance has wrong value", __LINE__);
						bSuccess = false;
					}

					if(UCHAR_MAX == i)
					{
						break;
					}
				}}

			}

			{	// short

				{ for(short i = SHRT_MIN; ; ++i)
				{
					short_init_t	ch(i);

					if(ch.get() != i)
					{
						r->report("must_init<short> instance has wrong value", __LINE__);
						bSuccess = false;
					}

					if(SHRT_MAX == i)
					{
						break;
					}
				}}

			}

			{	// unsigned short

				{ for(unsigned short i = 0; ; ++i)
				{
					unsigned_short_init_t	ch(i);

					if(ch.get() != i)
					{
						r->report("must_init<unsigned short> instance has wrong value", __LINE__);
						bSuccess = false;
					}

					if(USHRT_MAX == i)
					{
						break;
					}
				}}

			}

#if 0
typedef must_init<int>					int_init_t;

typedef must_init<unsigned int> 		unsigned_int_init_t;

typedef must_init<long> 				long_init_t;

typedef must_init<unsigned long>		unsigned_long_init_t;

#ifdef STLSOFT_CF_64BIT_INT_SUPPORT

typedef must_init<ss_sint64_t>			sint64_init_t;

typedef must_init<ss_uint64_t>			uint64_init_t;

#endif /* STLSOFT_CF_64BIT_INT_SUPPORT */

typedef must_init<float>				float_init_t;

typedef must_init<double>				double_init_t;

typedef must_init<long double>			long_double_init_t;

			;
#endif /* 0 */

			return bSuccess;
		}

		unittest_registrar	  unittest_stlsoft_util_must_init(test_stlsoft_util_must_init);
	} // anonymous namespace

} // namespace unittest

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -