Skip to content

pabdulin/kaspersky-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

Пояснения к тестовому заданию

Задание 1. "Палиндром"

Солюшен src\palindrome\palindrome.sln.

Включает библиотеку Palindrome, тесты к ней PalindromeTest и приложение PalindromeApp.

Приложение может принимать на вход имя файла со строкой для тестирования, по умолчанию ожидает файл 'input.txt'.

Задание 2. "Блокирующая очередь"

Солюшен src\blocking-queue\blocking-queue.sln.

Включает библиотеку BlockingQueue с интерфейсом и его реализацией, тесты BlockingQueueTest, а также дополнительное тестирующее приложение BlockingQueueApp.

Тестирующее приложение я использовал в процессе отладки класса блокирующей очереди.

К сожалению возникли затруднения с написанием теста на проверку ожидания при попытке получения из пустой очереди.

В Debug версии библиотеки добавляется случайная пауза в каждом из методов для упрощения проверки корректности работы кода.

Оригинальный текст заданий

1)В файле "input.txt" дана строка содержащая только строчные буквы латинского алфавита. Необходимо найти подстроку максимального размера, которая является палиндромом.

Палиндромом называется строка, которая читается одинаково в обоих направлениях.

Если максимальных по длине подстрок больше одной необходимо вывести самую левую из них.

Пример:

Вход: Файл "input.txt": sometextarozaupalanalapuazorasomeanothertext

Вывод программы: arozaupalanalapuazora

Требуется написать код, который решает эту задачу наиболее эффективно. Также необходимо предоставить тесты, которые проверяют алгоритм.

2)Написать код блокирующей очереди, имеющей следующий интерфейс:

  void Put(object o)
  object Get()
  void Disable()     

Put кладет новый элемент в очередь. Get должен блокировать выполнение потока если в очереди нет элементов до тех пор, пока не появится элемент, который можно вернуть. Disable должен освобождать все ждущие потоки. При этом Get должен возвращать null (иликидать исключение - как больше нравится). Все последующие вызовы к Get должны просто возвращать null.

Так же необходимо предоставить набор тестов для проверки корректности имплементации.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages