Advertisement
cepxuozab

Untitled

Mar 19th, 2023
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.72 KB | None | 0 0
  1. void Insert() {
  2.         typedef int type_t;
  3.     constexpr size_t SIZE = 4u;
  4.     constexpr type_t VALUE = 5;
  5.     constexpr std::initializer_list<type_t> LIST = {1, 2, 3, 4};
  6.     constexpr size_t LIST_SIZE = LIST.size();
  7.         {
  8.             SimpleVector<type_t> v;
  9.  
  10.             PRACTIKUM_ASSERT(v.Insert(v.end(), -10) == v.end() - 1);
  11.             PRACTIKUM_ASSERT(v.GetSize() == 1u);
  12.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  13.             PRACTIKUM_ASSERT(v[0] == -10);
  14.  
  15.             PRACTIKUM_ASSERT(v.Insert(v.end(), -11) == v.end() - 1);
  16.             PRACTIKUM_ASSERT(v.GetSize() == 2u);
  17.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  18.             PRACTIKUM_ASSERT(v[0] == -10);
  19.             PRACTIKUM_ASSERT(v[1] == -11);
  20.  
  21.             const size_t old_capacity = v.GetCapacity();
  22.             v.Clear();
  23.             PRACTIKUM_ASSERT(v.Insert(v.end(), -1) == v.end() - 1);
  24.             PRACTIKUM_ASSERT(v[0] == -1);
  25.             PRACTIKUM_ASSERT(v.GetSize() == 1u);
  26.             PRACTIKUM_ASSERT(v.GetCapacity() == old_capacity);
  27.         }
  28.         {
  29.             SimpleVector<type_t> v(SIZE);
  30.  
  31.             PRACTIKUM_ASSERT(v.Insert(v.end(), -10) == v.end() - 1);
  32.             PRACTIKUM_ASSERT(v.GetSize() == SIZE + 1u);
  33.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  34.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 1u, [](const type_t& item) {
  35.                 return item == type_t{};
  36.             }));
  37.             PRACTIKUM_ASSERT(v[SIZE] == -10);
  38.  
  39.             PRACTIKUM_ASSERT(v.Insert(v.end(), -11) == v.end() - 1);
  40.             PRACTIKUM_ASSERT(v.GetSize() == SIZE + 2u);
  41.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  42.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 2u, [](const type_t& item) {
  43.                 return item == type_t{};
  44.             }));
  45.             PRACTIKUM_ASSERT(v[SIZE] == -10);
  46.             PRACTIKUM_ASSERT(v[SIZE+1u] == -11);
  47.  
  48.             const size_t old_capacity = v.GetCapacity();
  49.             v.Clear();
  50.             PRACTIKUM_ASSERT(v.Insert(v.end(), -1) == v.end() - 1);
  51.             PRACTIKUM_ASSERT(v[0] == -1);
  52.             PRACTIKUM_ASSERT(v.GetSize() == 1u);
  53.             PRACTIKUM_ASSERT(v.GetCapacity() == old_capacity);
  54.         }
  55.         {
  56.             SimpleVector<type_t> v(SIZE, VALUE);
  57.  
  58.             PRACTIKUM_ASSERT(v.Insert(v.end(), -10) == v.end() - 1);
  59.             PRACTIKUM_ASSERT(v.GetSize() == SIZE + 1u);
  60.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  61.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 1u, [](const type_t& item) {
  62.                 return item == VALUE;
  63.             }));
  64.             PRACTIKUM_ASSERT(v[SIZE] == -10);
  65.  
  66.             PRACTIKUM_ASSERT(v.Insert(v.end(), -11) == v.end() - 1);
  67.             PRACTIKUM_ASSERT(v.GetSize() == SIZE + 2u);
  68.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  69.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 2u, [](const type_t& item) {
  70.                 return item == VALUE;
  71.             }));
  72.             PRACTIKUM_ASSERT(v[SIZE] == -10);
  73.             PRACTIKUM_ASSERT(v[SIZE+1u] == -11);
  74.  
  75.             const size_t old_capacity = v.GetCapacity();
  76.             v.Clear();
  77.             PRACTIKUM_ASSERT(v.Insert(v.end(), -1) == v.end() - 1);
  78.             PRACTIKUM_ASSERT(v[0] == -1);
  79.             PRACTIKUM_ASSERT(v.GetSize() == 1u);
  80.             PRACTIKUM_ASSERT(v.GetCapacity() == old_capacity);
  81.         }
  82.         {
  83.             SimpleVector<type_t> v(LIST);
  84.  
  85.             PRACTIKUM_ASSERT(v.Insert(v.end(), -10) == v.end() - 1);
  86.             PRACTIKUM_ASSERT(v.GetSize() == LIST_SIZE + 1u);
  87.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  88.             auto iter = LIST.begin();
  89.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 1u, [&iter](const type_t& item) {
  90.                 return item == *iter++;
  91.             }));
  92.             PRACTIKUM_ASSERT(v[LIST_SIZE] == -10);
  93.  
  94.             PRACTIKUM_ASSERT(v.Insert(v.end(), -11) == v.end() - 1);
  95.             PRACTIKUM_ASSERT(v.GetSize() == LIST_SIZE + 2u);
  96.             PRACTIKUM_ASSERT(v.GetCapacity() >= v.GetSize());
  97.             iter = LIST.begin();
  98.             PRACTIKUM_ASSERT(std::all_of(v.begin(), v.end() - 2u, [&iter](const type_t& item) {
  99.                 return item == *iter++;
  100.             }));
  101.             PRACTIKUM_ASSERT(v[LIST_SIZE] == -10);
  102.             PRACTIKUM_ASSERT(v[LIST_SIZE+1u] == -11);
  103.  
  104.             const size_t old_capacity = v.GetCapacity();
  105.             v.Clear();
  106.             PRACTIKUM_ASSERT(v.Insert(v.end(), -1) == v.end() - 1);
  107.             PRACTIKUM_ASSERT(v[0] == -1);
  108.             PRACTIKUM_ASSERT(v.GetSize() == 1u);
  109.             PRACTIKUM_ASSERT(v.GetCapacity() == old_capacity);
  110.         }
  111.     }
  112.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement