예제 #1
0
파일: 03.cpp 프로젝트: filaPro/my
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();
}