Advertisement
TwITe

Untitled

Aug 20th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cassert>
  4. using namespace std;
  5.  
  6. vector <int> vector_set;
  7.  
  8. void destroy_vector_set() {
  9.     vector_set.clear();
  10. }
  11.  
  12. bool check_element_exist(int number) {
  13.     for (auto element : vector_set) {
  14.         if (element == number) {
  15.             return false;
  16.         }
  17.     }
  18.     return true;
  19. }
  20.  
  21. void add_element(int number) {
  22.     if (check_element_exist(number)) {
  23.         vector_set.push_back(number);
  24.     }
  25. }
  26.  
  27. bool delete_element(int number) {
  28.     for (int i = 0; i < vector_set.size(); i++) {
  29.         if (vector_set[i] == number) {
  30.             vector_set.erase(vector_set.begin() + i);
  31.             return true;
  32.         }
  33.     }
  34.     return false;
  35. }
  36.  
  37. int find_element(int number) {
  38.     for (auto element : vector_set) {
  39.         if (element == number) {
  40.             return true;
  41.         }
  42.     }
  43.     return false;
  44. }
  45.  
  46. int get_element(int number) {
  47.     for (auto element : vector_set) {
  48.         if (element == number) {
  49.             return element;
  50.         }
  51.     }
  52.     throw std::runtime_error("number isn't exist");
  53. }
  54.  
  55. //Тесты
  56. void can_add_elements_to_vector_set_test() {
  57.     destroy_vector_set();
  58.  
  59.     for (int i = 0; i < 2000; i++) {
  60.         add_element(i);
  61.     }
  62.     for (int i = 0; i < 2000; i++) {
  63.         int current_element = get_element(i);
  64.         assert(current_element == i);
  65.     }
  66. }
  67.  
  68. void cannot_delete_not_existed_element_test() {
  69.     destroy_vector_set();
  70.  
  71.     for (int i = 0; i < 1000; i++) {
  72.         add_element(i);
  73.     }
  74.  
  75.     assert(delete_element(1000) == false);
  76.     assert(delete_element(2000) == false);
  77.     assert(delete_element(2500) == false);
  78.     assert(delete_element(3000) == false);
  79. }
  80.  
  81. void can_delete_existed_element_test() {
  82.     destroy_vector_set();
  83.  
  84.     for (int i = 0; i < 5; i++) {
  85.         add_element(i * 2);
  86.     }
  87.  
  88.     assert(delete_element(2) == true);
  89.     assert(delete_element(6) == true);
  90.  
  91.     assert(get_element(0) == 0);
  92.     assert(get_element(4) == 4);
  93.     assert(get_element(8) == 8);
  94. }
  95.  
  96. void can_find_element_with_valid_value_test() {
  97.     destroy_vector_set();
  98.  
  99.     for (int i = 0; i < 10; i++) {
  100.         add_element(i + 2);
  101.     }
  102.  
  103.     for (int i = 0; i < 10; i++) {
  104.         assert(find_element(i + 2) == true);
  105.     }
  106. }
  107.  
  108. void cannot_find_element_with_invalid_value_test() {
  109.     destroy_vector_set();
  110.  
  111.     for (int i = 0; i < 10; ++i) {
  112.         add_element(i + 2);
  113.     }
  114.  
  115.     assert(find_element(0) == false);
  116.    
  117.     for (int i = 20; i < 100; i++) {
  118.         assert(find_element(i) == false);
  119.     }
  120. }
  121.  
  122. int main() {
  123.     can_add_elements_to_vector_set_test();
  124.     cannot_delete_not_existed_element_test;
  125.     can_delete_existed_element_test();
  126.     can_find_element_with_valid_value_test();
  127.     cannot_find_element_with_invalid_value_test();
  128.  
  129.     system("PAUSE");
  130.     return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement