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

📄 pod_vector_unittest_.h

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

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

#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_containers_pod_vector(unittest_reporter *r)
		{
			ss_bool_t				bSuccess	=	true;

			unittest_initialiser	init(r, "STLSoft", "containers/pod_vector", __FILE__);

			typedef pod_vector< int
							,	stlsoft::allocator_selector<int>::allocator_type
							,	64
							>			iv_t;

			// Set up some vectors
			iv_t		v1(10);
			iv_t		v2(32, 1);
			iv_t const	v3(100, -1);
			ss_size_t	i;

			for(i = 0; i < v1.size(); ++i)
			{
				v1[i] = static_cast<int>(i);
			}
			for(i = 0; i < v2.size(); ++i)
			{
				v2[i] = static_cast<int>(i * 100);
			}

			// (i) Test copy construction
			iv_t		v4(v1);

#if !defined(STLSOFT_COMPILER_IS_DMC) || \
	__DMC__ < 0x0845
			if(v4 != v1)
			{
				r->report("copy construction failed", __LINE__);
				bSuccess = false;
			}
#endif /* compiler */

			// (ii) Test iterator construction
			iv_t		v5(const_cast<iv_t const&>(v2).begin(), const_cast<iv_t const&>(v2).end());

#if !defined(STLSOFT_COMPILER_IS_DMC) || \
	__DMC__ < 0x0845
			if(v5 != v2)
			{
				r->report("iterator construction failed", __LINE__);
				bSuccess = false;
			}
#endif /* compiler */

			v1.begin();
			v2.begin();
			v1.end();
			v2.end();
#if defined(STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT)
			v1.rbegin();
			v2.rbegin();
			v1.rend();
			v2.rend();
#endif /* STLSOFT_CF_BIDIRECTIONAL_ITERATOR_SUPPORT */

			v1.size();
			v2.capacity();
			v3.max_size();
			v4.empty();
			v1.get_allocator();

			STLSOFT_SUPPRESS_UNUSED(v1.at(0));
			STLSOFT_SUPPRESS_UNUSED(v2.at(0));
			STLSOFT_SUPPRESS_UNUSED(v1[0]);
			STLSOFT_SUPPRESS_UNUSED(v2[0]);
			STLSOFT_SUPPRESS_UNUSED(v1.front());
			STLSOFT_SUPPRESS_UNUSED(v2.front());
			STLSOFT_SUPPRESS_UNUSED(v1.back());
			STLSOFT_SUPPRESS_UNUSED(v2.back());

			v1.clear();
			v1.swap(v4);
			v1.reserve(v1.size() * 2);
			v1.resize(v1.capacity());
			v4.resize(1000, 127);
			v1.push_back(101);
			v1.pop_back();

			v1.assign(const_cast<iv_t const&>(v4).begin(), const_cast<iv_t const&>(v4).end());
#if 0
			v3.assign(100, 65535);
#endif /* 0 */

#if 0
			iterator	insert(iterator it, value_type const& value = value_type());
			void		insert(iterator it, size_type cItems, value_type const& value);
			void		insert(iterator it, const_iterator first, const_iterator last);
			iterator	erase(iterator it);
			iterator	erase(iterator first, iterator last);
#endif /* 0 */

//#else /* ? compiler */
//			STLSOFT_SUPPRESS_UNUSED(bSuccess);
//#endif /* compiler */

			return bSuccess;
		}

		unittest_registrar	  unittest_stlsoft_containers_pod_vector(test_stlsoft_containers_pod_vector);
	} // anonymous namespace

} // namespace unittest

⌨️ 快捷键说明

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