| 15 | namespace |
| 16 | { |
| 17 | void TestFileSorter(vector<uint32_t> & data, char const * tmpFileName, size_t bufferSize) |
| 18 | { |
| 19 | vector<char> serial; |
| 20 | typedef MemWriter<vector<char>> MemWriterType; |
| 21 | MemWriterType writer(serial); |
| 22 | typedef WriterFunctor<MemWriterType> OutT; |
| 23 | OutT out(writer); |
| 24 | FileSorter<uint32_t, OutT> sorter(bufferSize, tmpFileName, out); |
| 25 | for (size_t i = 0; i < data.size(); ++i) |
| 26 | sorter.Add(data[i]); |
| 27 | sorter.SortAndFinish(); |
| 28 | |
| 29 | TEST_EQUAL(serial.size(), data.size() * sizeof(data[0]), ()); |
| 30 | sort(data.begin(), data.end()); |
| 31 | MemReader reader(&serial[0], serial.size()); |
| 32 | TEST_EQUAL(reader.Size(), data.size() * sizeof(data[0]), ()); |
| 33 | vector<uint32_t> result(data.size()); |
| 34 | reader.Read(0, &result[0], reader.Size()); |
| 35 | TEST_EQUAL(result, data, ()); |
| 36 | } |
| 37 | } // namespace |
| 38 | |
| 39 | UNIT_TEST(FileSorter_Smoke) |