Advertisement
Derga

Untitled

Sep 26th, 2023
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <algorithm>
  2. #include <cmath>
  3. #include <cassert>
  4. #include <ctime>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. vector< int > Unique(const vector< int >& numbers)
  10. {
  11.    
  12. }
  13.  
  14. void TestSimple()
  15. {  
  16.     assert(Unique(vector< int >{ 1, 2, 2, 3, 3, 3 }) == (vector<int>{ 1, 2, 3 }));
  17.     assert(Unique(vector<int>{ 1, 1, 1, 1 }) == (vector<int>{ 1 }));
  18.     assert(Unique(vector< int >{ 1, 2, 3, 4 }) == (vector< int >{ 1, 2, 3, 4 }));
  19.     assert(Unique(vector< int >{ 1, 1, 2, 2, 2, 3 }) == (vector< int >{ 1, 2, 3 }));
  20.     assert(Unique(vector< int >{ 1, 1 }) == (vector< int >{ 1 }));
  21.     assert(Unique({ 0 }) == (vector<int>{ 0 }));
  22. }
  23.  
  24. void TestEmpty()
  25. {
  26.     assert(Unique({}).empty());
  27. }
  28.  
  29. void RandomTest() {
  30.     srand(time(0));
  31.  
  32.     for (int i = 0; i < 1000; ++i)
  33.     {
  34.         vector< int > numbers(abs(rand() % 100'000));
  35.         for (int& number : numbers) {
  36.             number = rand();
  37.         }
  38.        
  39.         sort(begin(numbers), end(numbers));
  40.         vector< int > numbers_after_my_func = Unique(numbers);
  41.  
  42.         auto last = unique(begin(numbers), end(numbers));
  43.         numbers.erase(last, numbers.end());
  44.        
  45.         assert(numbers_after_my_func == numbers);
  46.     }
  47. }
  48.  
  49. void Test() {
  50.     TestSimple();
  51.     TestEmpty();
  52.     RandomTest();
  53. }
  54.  
  55. int main() {
  56.     Test();
  57.  return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement