【Poco】Poco::NumberFormatter的例子

#include "../tmain.hpp"

void test_NumberFormatter_Format()
{
	// 整数的格式化
	assert (Poco::NumberFormatter::format(123) == "123");
	assert (Poco::NumberFormatter::format(-123) == "-123");
	assert (Poco::NumberFormatter::format(-123, 5) == " -123");

	assert (Poco::NumberFormatter::format((unsigned) 123) == "123");
	assert (Poco::NumberFormatter::format((unsigned) 123, 5) == "  123");
	assert (Poco::NumberFormatter::format0((unsigned) 123, 5) == "00123");

	assert (Poco::NumberFormatter::format((long) 123) == "123");
	assert (Poco::NumberFormatter::format((long) -123) == "-123");
	assert (Poco::NumberFormatter::format((long) -123, 5) == " -123");

	assert (Poco::NumberFormatter::format((unsigned long) 123) == "123");
	assert (Poco::NumberFormatter::format((unsigned long) 123, 5) == "  123");	

#if defined(POCO_HAVE_INT64)
	assert (Poco::NumberFormatter::format((Poco::Int64) 123) == "123");
	assert (Poco::NumberFormatter::format((Poco::Int64) -123) == "-123");
	assert (Poco::NumberFormatter::format((Poco::Int64) -123, 5) == " -123");

	assert (Poco::NumberFormatter::format((Poco::UInt64) 123) == "123");
	assert (Poco::NumberFormatter::format((Poco::UInt64) 123, 5) == "  123");	
#endif

	if (sizeof(void*) == 4)
	{
		assert (Poco::NumberFormatter::format((void*) 0x12345678) == "12345678");
	}
	else
	{
		assert (Poco::NumberFormatter::format((void*) 0x12345678) == "0000000012345678");
	}

	// 小数的格式化
	assert (Poco::NumberFormatter::format(12.25) == "12.25");
	assert (Poco::NumberFormatter::format(12.25, 4) == "12.2500");
	assert (Poco::NumberFormatter::format(12.25, 8, 4) == " 12.2500");	
}

void test_NumberFormatter_Format0()
{
	assert (Poco::NumberFormatter::format0(123, 5) == "00123");
	assert (Poco::NumberFormatter::format0(-123, 5) == "-0123");
	assert (Poco::NumberFormatter::format0((long) 123, 5) == "00123");
	assert (Poco::NumberFormatter::format0((long) -123, 5) == "-0123");
	assert (Poco::NumberFormatter::format0((unsigned long) 123, 5) == "00123");
}

void test_NumberFormatterHex()
{
	assert (Poco::NumberFormatter::formatHex(0x12) == "12");
	assert (Poco::NumberFormatter::formatHex(0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex(0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex(0xab, 4) == "00AB");

	assert (Poco::NumberFormatter::formatHex((unsigned) 0x12) == "12");
	assert (Poco::NumberFormatter::formatHex((unsigned) 0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex((unsigned) 0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex((unsigned) 0xab, 4) == "00AB");

	assert (Poco::NumberFormatter::formatHex((long) 0x12) == "12");
	assert (Poco::NumberFormatter::formatHex((long) 0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex((long) 0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex((long) 0xab, 4) == "00AB");

	assert (Poco::NumberFormatter::formatHex((unsigned long) 0x12) == "12");
	assert (Poco::NumberFormatter::formatHex((unsigned long) 0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex((unsigned long) 0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex((unsigned long) 0xab, 4) == "00AB");

#if defined(POCO_HAVE_INT64)
	assert (Poco::NumberFormatter::formatHex((Poco::Int64) 0x12) == "12");
	assert (Poco::NumberFormatter::formatHex((Poco::Int64) 0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex((Poco::Int64) 0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex((Poco::Int64) 0xab, 4) == "00AB");

	assert (Poco::NumberFormatter::formatHex((Poco::UInt64) 0x12) == "12");
	assert (Poco::NumberFormatter::formatHex((Poco::UInt64) 0xab) == "AB");
	assert (Poco::NumberFormatter::formatHex((Poco::UInt64) 0x12, 4) == "0012");
	assert (Poco::NumberFormatter::formatHex((Poco::UInt64) 0xab, 4) == "00AB");
#endif
}

void test_NumberFormatterFloat()
{
	std::string s(Poco::NumberFormatter::format(1.0f));
	assert (s == "1");
	s = Poco::NumberFormatter::format(0.1f);
	assert (s == "0.1");

	s = Poco::NumberFormatter::format(1.0);
	assert (s == "1");
	s = Poco::NumberFormatter::format(0.1);
	assert (s == "0.1");	
}


你可能感兴趣的:(【Poco】Poco::NumberFormatter的例子)