【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");	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值