susumu.yata
null+****@clear*****
Mon Jul 1 13:17:21 JST 2013
susumu.yata 2013-07-01 13:17:21 +0900 (Mon, 01 Jul 2013) New Revision: a15c5165d71fb2e77ac08558f8d1587986ebe268 https://github.com/groonga/grnxx/commit/a15c5165d71fb2e77ac08558f8d1587986ebe268 Message: Update tests for grnxx::StringBuilder. Modified files: test/test_string_builder.cpp test/test_string_format.cpp Modified: test/test_string_builder.cpp (+55 -64) =================================================================== --- test/test_string_builder.cpp 2013-07-01 13:07:41 +0900 (5e080be) +++ test/test_string_builder.cpp 2013-07-01 13:17:21 +0900 (8cfba9c) @@ -17,62 +17,68 @@ */ #include <cassert> +#include "grnxx/bytes.hpp" #include "grnxx/logger.hpp" #include "grnxx/string_builder.hpp" #include "grnxx/time.hpp" void test_basic_operations() { - grnxx::StringBuilder builder; + { + grnxx::StringBuilder builder; + assert(builder); + assert(builder.bytes() == ""); - assert(builder); - assert(builder.bytes() == ""); - - assert(!builder.append('X')); - assert(builder.bytes() == ""); - - char buf[4]; - builder = grnxx::StringBuilder(buf); - - assert(builder); - assert(builder.bytes() == ""); - - assert(builder.append('0')); - assert(builder.append('1')); - assert(builder.append('2')); - assert(!builder.append('3')); - assert(builder.bytes() == "012"); - - builder = grnxx::StringBuilder(buf, 3); - - assert(!builder.append("0123", 4)); - assert(builder.bytes() == "01"); + assert(!builder.append('X')); + assert(builder.bytes() == ""); + } - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); + { + char buf[4]; + grnxx::StringBuilder builder(buf); + assert(builder); + assert(builder.bytes() == ""); + + assert(builder.append('0')); + assert(builder.append('1')); + assert(builder.append('2')); + assert(!builder.append('3')); + assert(builder.bytes() == "012"); + } - assert(builder.append('X', 3)); - assert(builder.append('Y', 2)); - assert(builder.append('Z', 1)); - assert(builder.append('-', 0)); - assert(builder.bytes() == "XXXYYZ"); + { + char buf[4]; + grnxx::StringBuilder builder(buf, 3); + assert(!builder.append("0123", 4)); + assert(builder.bytes() == "01"); + } - assert(builder.resize(4).bytes() == "XXXY"); - assert(builder.resize(1000).length() == 1000); + { + grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); + assert(builder.append('X', 3)); + assert(builder.append('Y', 2)); + assert(builder.append('Z', 1)); + assert(builder.append('-', 0)); + assert(builder.bytes() == "XXXYYZ"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); + assert(builder.resize(4).bytes() == "XXXY"); + assert(builder.resize(1000).length() == 1000); + } - assert(builder); - assert(builder.bytes() == ""); + { + grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); + assert(builder); + assert(builder.bytes() == ""); - const size_t STRING_LENGTH = 1 << 20; - for (size_t i = 0; i < STRING_LENGTH; ++i) { - assert(builder.append('X')); + const size_t STRING_LENGTH = 1 << 20; + for (size_t i = 0; i < STRING_LENGTH; ++i) { + assert(builder.append('X')); + } + assert(builder.bytes().size() == STRING_LENGTH); } - assert(builder.bytes().size() == STRING_LENGTH); } void test_char() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << '0'; builder << '1'; builder << '2'; @@ -82,41 +88,35 @@ void test_char() { void test_integer() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << 0; assert(builder.bytes() == "0"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << 0U; assert(builder.bytes() == "0"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << std::numeric_limits<std::int8_t>::min() << '/' << std::numeric_limits<std::int8_t>::max() << ',' << std::numeric_limits<std::uint8_t>::min() << '/' << std::numeric_limits<std::uint8_t>::max(); assert(builder.bytes() == "-128/127,0/255"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << std::numeric_limits<std::int16_t>::min() << '/' << std::numeric_limits<std::int16_t>::max() << ',' << std::numeric_limits<std::uint16_t>::min() << '/' << std::numeric_limits<std::uint16_t>::max(); assert(builder.bytes() == "-32768/32767,0/65535"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << std::numeric_limits<std::int32_t>::min() << '/' << std::numeric_limits<std::int32_t>::max() << ',' << std::numeric_limits<std::uint32_t>::min() << '/' << std::numeric_limits<std::uint32_t>::max(); assert(builder.bytes() == "-2147483648/2147483647,0/4294967295"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << std::numeric_limits<std::int64_t>::min() << '/' << std::numeric_limits<std::int64_t>::max() << ',' << std::numeric_limits<std::uint64_t>::min() << '/' @@ -127,36 +127,30 @@ void test_integer() { void test_floating_point_number() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << 0.0; assert(builder.bytes() == "0.000000"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << 16.5; assert(builder.bytes() == "16.500000"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << 2.75F; assert(builder.bytes() == "2.750000"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << (1.0 / 0.0) << '/' << (-1.0 / 0.0) << '/' << (0.0 / 0.0); assert(builder.bytes() == "inf/-inf/nan"); } void test_bool() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << true << '/' << false; assert(builder.bytes() == "true/false"); } void test_void_pointer() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << reinterpret_cast<void *>(0x13579BDF); if (sizeof(void *) == 4) { assert(builder.bytes() == "0x13579BDF"); @@ -164,20 +158,17 @@ void test_void_pointer() { assert(builder.bytes() == "0x0000000013579BDF"); } - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << static_cast<void *>(nullptr); assert(builder.bytes() == "nullptr"); } void test_zero_terminated_string() { grnxx::StringBuilder builder(grnxx::STRING_BUILDER_AUTO_RESIZE); - builder << "Hello, " << "world!"; assert(builder.bytes() == "Hello, world!"); - builder = grnxx::StringBuilder(grnxx::STRING_BUILDER_AUTO_RESIZE); - + builder.clear(); builder << static_cast<char *>(nullptr); assert(builder.bytes() == "nullptr"); } Modified: test/test_string_format.cpp (+14 -32) =================================================================== --- test/test_string_format.cpp 2013-07-01 13:07:41 +0900 (09f40a8) +++ test/test_string_format.cpp 2013-07-01 13:17:21 +0900 (5ba7ba6) @@ -20,89 +20,71 @@ #include <iostream> #include <sstream> +#include "grnxx/bytes.hpp" #include "grnxx/logger.hpp" #include "grnxx/stopwatch.hpp" +#include "grnxx/string_builder.hpp" #include "grnxx/string_format.hpp" void test_align() { - grnxx::StringBuilder builder; - char buf[8]; - builder = grnxx::StringBuilder(buf); - + grnxx::StringBuilder builder(buf); assert(builder << grnxx::StringFormat::align( "ABC", 6, '-', grnxx::STRING_FORMAT_ALIGNMENT_LEFT)); assert(builder.bytes() == "ABC---"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(builder << grnxx::StringFormat::align( "ABC", 6, '-', grnxx::STRING_FORMAT_ALIGNMENT_RIGHT)); assert(builder.bytes() == "---ABC"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(builder << grnxx::StringFormat::align( "ABC", 6, '-', grnxx::STRING_FORMAT_ALIGNMENT_CENTER)); assert(builder.bytes() == "-ABC--"); } void test_align_left() { - grnxx::StringBuilder builder; - char buf[8]; - builder = grnxx::StringBuilder(buf); - + grnxx::StringBuilder builder(buf); assert(builder << grnxx::StringFormat::align_left(123, 5)); assert(builder.bytes() == "123 "); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(builder << grnxx::StringFormat::align_left(234, 5, 'X')); assert(builder.bytes() == "234XX"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(!(builder << grnxx::StringFormat::align_left(345, 10, 'x'))); assert(builder.bytes() == "345xxxx"); } void test_align_right() { - grnxx::StringBuilder builder; - char buf[8]; - builder = grnxx::StringBuilder(buf); - + grnxx::StringBuilder builder(buf); assert(builder << grnxx::StringFormat::align_right(456, 5)); assert(builder.bytes() == " 456"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(builder << grnxx::StringFormat::align_right(567, 5, 'X')); assert(builder.bytes() == "XX567"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(!(builder << grnxx::StringFormat::align_right(678, 8, 'x'))); assert(builder.bytes() == "xxxxx67"); } void test_align_center() { - grnxx::StringBuilder builder; - char buf[8]; - builder = grnxx::StringBuilder(buf); - + grnxx::StringBuilder builder(buf); assert(builder << grnxx::StringFormat::align_center(789, 5)); assert(builder.bytes() == " 789 "); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(builder << grnxx::StringFormat::align_center(890, 5, 'X')); assert(builder.bytes() == "X890X"); - builder = grnxx::StringBuilder(buf); - + builder.clear(); assert(!(builder << grnxx::StringFormat::align_center(901, 8, 'x'))); assert(builder.bytes() == "xx901xx"); } -------------- next part -------------- HTML����������������������������...Download