Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <cmath>
- #include <cassert>
- #include <ctime>
- #include <vector>
- using namespace std;
- vector< int > Unique(const vector< int >& numbers)
- {
- }
- void TestSimple()
- {
- assert(Unique(vector< int >{ 1, 2, 2, 3, 3, 3 }) == (vector<int>{ 1, 2, 3 }));
- assert(Unique(vector<int>{ 1, 1, 1, 1 }) == (vector<int>{ 1 }));
- assert(Unique(vector< int >{ 1, 2, 3, 4 }) == (vector< int >{ 1, 2, 3, 4 }));
- assert(Unique(vector< int >{ 1, 1, 2, 2, 2, 3 }) == (vector< int >{ 1, 2, 3 }));
- assert(Unique(vector< int >{ 1, 1 }) == (vector< int >{ 1 }));
- assert(Unique({ 0 }) == (vector<int>{ 0 }));
- }
- void TestEmpty()
- {
- assert(Unique({}).empty());
- }
- void RandomTest() {
- srand(time(0));
- for (int i = 0; i < 1000; ++i)
- {
- vector< int > numbers(abs(rand() % 100'000));
- for (int& number : numbers) {
- number = rand();
- }
- sort(begin(numbers), end(numbers));
- vector< int > numbers_after_my_func = Unique(numbers);
- auto last = unique(begin(numbers), end(numbers));
- numbers.erase(last, numbers.end());
- assert(numbers_after_my_func == numbers);
- }
- }
- void Test() {
- TestSimple();
- TestEmpty();
- RandomTest();
- }
- int main() {
- Test();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement