| 13 | |
| 14 | template <class T> |
| 15 | void TestStringCodingT(T const * arr, size_t count, size_t maxSize) |
| 16 | { |
| 17 | for (size_t i = 0; i < count; ++i) |
| 18 | { |
| 19 | auto const ethalon = strings::to_string(arr[i]); |
| 20 | |
| 21 | StringNumericOptimal s; |
| 22 | s.Set(ethalon); |
| 23 | |
| 24 | std::vector<char> buffer; |
| 25 | MemWriter<std::vector<char>> w(buffer); |
| 26 | |
| 27 | s.Write(w); |
| 28 | |
| 29 | size_t const sz = buffer.size(); |
| 30 | TEST_GREATER(sz, 0, ()); |
| 31 | TEST_LESS_OR_EQUAL(sz, maxSize, ()); |
| 32 | |
| 33 | MemReader r(&buffer[0], sz); |
| 34 | ReaderSource<MemReader> src(r); |
| 35 | s.Read(src); |
| 36 | |
| 37 | TEST_EQUAL(ethalon, s.Get(), ()); |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | } // namespace |
| 42 | |