Skip to content

CatherineFish/ConsultantPlusNAP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание НАП

Консольное приложение, ищущее в текстовом файле пару заданных слов на определённом расстоянии друг от друга.

Оглавление

  1. Описание элементов приложения и тестирования
  2. Сборка
  3. Тестирование
    1. Описание тестов
    2. Запуск тестов
    3. Примечание к тестам

Описание элементов приложения и тестирования

В репозитории содержатся следующие файлы:

  • main.cpp - основной файл запуска приложения;
  • myLibrary.h - библиотека собственных функций;
  • myLibrary.cpp - реализация собственных функци;
  • Makefile;
  • features/findPair.feature - описание сценариев;
  • features/steps/findPair.py - обработчики сценариев;
  • features/materials - папка с текстовыми документами для тестирования.

Сборка

Чтобы собрать приложение:

make

Образуются файлы:

  • count_pairs.exe - приложение;
  • main.o;
  • myLibrary.o.

Чтобы очистить папку:

make clean

Тестирование

Реализована возможность запуска тестов на «человеческом языке» с использованием фреймворка Behave

Описание тестов

Тесты представляют собой основные логические развилки в работе приложения и имеют:

  • Scenario: - краткое описание тестируемой развилки работы приложения;
  • Given - исходное состояние приложения и используемых данных;
  • When - непосрественное описание способа запуска приложения;
  • Then - получаемый результат.

Реализованы тесты:

  • Выдающие ошибку:
    • несуществующий файл во входных параметрах;
    • недостаточно входных параметров;
    • слишком много входных параметров;
    • документ с неправильной кодировкой (ошибка конвертирования произойдёт).
  • Отрабатывающие корректно:
    • поиск пары слов на малом расстоянии, пары находятся;
    • поиск пары слов на малом расстоянии, пары не находятся;
    • поиск пары слов на среднем расстоянии, пары находятся;
    • поиск пары слов на среднем расстоянии, пары не находятся;
    • поиск пары слов на большом расстоянии, пары находятся;
    • поиск пары слов на большом расстоянии, пары не находятся;

Запуск тестов

Чтобы запустить тесты, соберите приложение и запустите работу Behave:

make
behave

Примечание к тестам

В формулировке задания мне остался не до конца ясным один момент - нужно ли считать только ближайшие пары или вообще все. Поясню на примере: пусть заданное расстояние 5, а в тексте содержится фраза:

firstKeyWord word firstKeyWord secondKeyWord Word secondKeyWord

Пар тут, конечно, две. Но алгоритм при такой задаче будет весьма сложным, так как нужно хранить информацию о наличии первых ключевых слов ранее на заданном состоянии при обработке каждого слова в документе. В моём приложении реализован вариант, когда ответ на данном примере - 1, считается только внутренняя пара.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors