Advertisement
cepxuozab

Untitled

Mar 16th, 2023
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.47 KB | None | 0 0
  1. void PrintMatchDocumentResultUTest(int document_id, const std::vector<std::string>& words,
  2.                                    DocumentStatus status) {
  3.     std::cout << "{ "
  4.               << "document_id = " << document_id << ", "
  5.               << "status = " << static_cast<int>(status) << ", "
  6.               << "words =";
  7.     for (const string& word : words) {
  8.         std::cout << ' ' << word;
  9.     }
  10.     std::cout << "}" << std::endl;
  11. }
  12.  
  13. void PrintDocumentUTest(const Document& document) {
  14.     std::cout << "{ "
  15.               << "document_id = " << document.id << ", "
  16.               << "relevance = " << document.relevance << ", "
  17.               << "rating = " << document.rating << " }" << std::endl;
  18. }
  19.  
  20. void TestMatch() {
  21. const std::vector<int> ratings1 = {1, 2, 3, 4, 5};
  22. const std::vector<int> ratings2 = {-1, -2, 30, -3, 44, 5};
  23. const std::vector<int> ratings3 = {12, -20, 80, 0, 8, 0, 0, 9, 67};
  24. const std::vector<int> ratings4 = {7, 0, 3, -49, 5};
  25. const std::vector<int> ratings5 = {81, -6, 7, 94, -7};
  26. const std::vector<int> ratings6 = {41, 8, -7, 897, 5};
  27. const std::vector<int> ratings7 = {543, 0, 43, 4, -5};
  28. const std::vector<int> ratings8 = {91, 7, 3, -88, 56};
  29. const std::vector<int> ratings9 = {0, -87, 93, 66, 5};
  30. const std::vector<int> ratings10 = {11, 2, -43, 4, 895};
  31.     std::string stop_words = "и в на";
  32.     SearchServer search_server(stop_words);
  33.  
  34.     search_server.AddDocument(0, "белый кот и модный ошейник", DocumentStatus::ACTUAL, ratings1);
  35.     search_server.AddDocument(1, "пушистый кот пушистый хвост", DocumentStatus::ACTUAL, ratings2);
  36.     search_server.AddDocument(2, "ухоженный пёс выразительные глаза", DocumentStatus::ACTUAL,
  37.                               ratings3);
  38.     search_server.AddDocument(3, "белый модный кот", DocumentStatus::IRRELEVANT, ratings1);
  39.     search_server.AddDocument(4, "пушистый кот пёс", DocumentStatus::IRRELEVANT, ratings2);
  40.     search_server.AddDocument(5, "ухоженный ошейник выразительные глаза",
  41.                               DocumentStatus::IRRELEVANT, ratings3);
  42.     search_server.AddDocument(6, "кот и ошейник", DocumentStatus::BANNED, ratings1);
  43.     search_server.AddDocument(7, "пёс и хвост", DocumentStatus::BANNED, ratings2);
  44.     search_server.AddDocument(8, "модный пёс пушистый хвост", DocumentStatus::BANNED, ratings3);
  45.     search_server.AddDocument(9, "кот пушистый ошейник", DocumentStatus::REMOVED, ratings1);
  46.     search_server.AddDocument(10, "ухоженный кот и пёс", DocumentStatus::REMOVED, ratings2);
  47.     search_server.AddDocument(11, "хвост и выразительные глаза", DocumentStatus::REMOVED, ratings3);
  48.  
  49.     const std::string query = "пушистый ухоженный кот -ошейник";
  50.     const auto documents = search_server.FindTopDocuments(query);
  51.  
  52.     std::cout << "Top documents for query:" << std::endl;
  53.     for (const Document& document : documents) {
  54.         PrintDocumentUTest(document);
  55.     }
  56.  
  57.     std::cout << "Documents' statuses:" << std::endl;
  58.     const int document_count = search_server.GetDocumentCount();
  59.     for (int document_id = 0; document_id < document_count; ++document_id) {
  60.         const auto [words, status] = search_server.MatchDocument(query, document_id);
  61.         PrintMatchDocumentResultUTest(document_id, words, status);
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement