Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Vector_map
- #include <iostream>
- #include <vector>
- #include <cassert>
- using namespace std;
- vector <int> vector_map;
- void destroy_vector_map() {
- vector_map.clear();
- }
- int get_element(int key) {
- if (key > vector_map.size() || key < 0) {
- throw std::runtime_error("invalid key");
- }
- else {
- return vector_map[key];
- }
- }
- bool find_element(int key) {
- if (key < vector_map.size()) {
- return true;
- }
- return false;
- }
- void add_element(int key, int value) {
- if (key > vector_map.size() || key < 0) {
- throw std::runtime_error("invalid key");
- }
- if (key == vector_map.size()) {
- vector_map.push_back(value);
- }
- else {
- vector_map[key] = value;
- }
- }
- bool delete_element(int key) {
- if (key > vector_map.size() || key < 0) {
- return false;
- }
- vector_map.erase(vector_map.begin() + key);
- return true;
- }
- //Тесты
- void can_add_elements_to_vector_map_test() {
- destroy_vector_map();
- for (int i = 0; i < 2000; i++) {
- add_element(i, i + 2);
- }
- for (int i = 0; i < 2000; i++) {
- assert(find_element(i) == true);
- }
- bool invalid_key = false;
- try {
- add_element(3000, -1);
- }
- catch (...) {
- invalid_key = true;
- }
- assert(invalid_key == true);
- }
- void cannot_delete_not_existed_element_test() {
- destroy_vector_map();
- for (int i = 0; i < 1000; i++) {
- add_element(i, i + 2);
- }
- assert(delete_element(1000) == false);
- assert(delete_element(2000) == false);
- assert(delete_element(2500) == false);
- assert(delete_element(3000) == false);
- }
- void can_delete_existed_element_test() {
- destroy_vector_map();
- for (int i = 0; i < 10; i++) {
- add_element(i, i + 2);
- }
- assert(delete_element(2) == true);
- assert(delete_element(5) == true);
- assert(delete_element(6) == true);
- assert(find_element(0) == true);
- assert(find_element(4) == true);
- }
- void can_find_element_with_valid_key_test() {
- destroy_vector_map();
- for (int i = 0; i < 10; i++) {
- add_element(i, i + 2);
- }
- for (int i = 0; i < 10; i++) {
- assert(find_element(i) == true);
- }
- }
- void cannot_find_element_with_invalid_key_test() {
- destroy_vector_map();
- for (int i = 0; i < 10; ++i) {
- add_element(i, i + 2);
- }
- for (int i = 10; i < 100; i++) {
- assert(find_element(i) == false);
- }
- }
- void can_get_element_with_valid_key_test() {
- destroy_vector_map();
- for (int i = 0; i < 1000; i++) {
- add_element(i, i + 2);
- }
- for (int i = 0; i < 1000; i++) {
- int current_element = get_element(i);
- assert(current_element == i + 2);
- }
- }
- void cannot_get_element_with_invalid_key_test() {
- destroy_vector_map();
- bool invalid_key = false;
- for (int i = 0; i < 100; i++) {
- add_element(i, i + 2);
- }
- try {
- get_element(-1);
- }
- catch (...) {
- invalid_key = true;
- }
- assert(invalid_key == true);
- invalid_key = false;
- try {
- get_element(1000);
- }
- catch (...) {
- invalid_key = true;
- }
- assert(invalid_key == true);
- }
- int main() {
- can_add_elements_to_vector_map_test();
- cannot_delete_not_existed_element_test;
- can_delete_existed_element_test();
- can_find_element_with_valid_key_test();
- cannot_find_element_with_invalid_key_test();
- can_get_element_with_valid_key_test();
- cannot_get_element_with_invalid_key_test();
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement