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