std::string DoTestReverseUniqSort(size_t n) { TCounter::Reset(); { TList<TCounter, std::allocator<TCounter>> lst; TList<int> lint; for (size_t i = 0; i < 2 * n; ++i) { lst.push_back(TCounter()); lint.push_back(i / 2); } lst.reverse(); lint.unique(); if (lint.size() != n) return "lint.uniq(): wrong answer"; lint.reverse(); TList<int>::const_iterator it = lint.cbegin(); for (size_t i = 0; i < n; ++i, ++it) if (*it != n - i - 1) return "lint.reverse(): wrong answer"; lint.sort(); it = lint.cbegin(); for (size_t i = 0; i < n; ++i, ++it) if (*it != i) return "lint.sort(): wrong answer"; } TCounter::CheckTotalOperationsCount(n * 10 + 100, 2 * n + 100); return TCounter::GetAllErrors(); }