Skip to content

ValeraTychov/29.04.2019

Repository files navigation

Читать

Encoding

String

StringBuilder

Задания

  1. (deadline - 29.04.2019, 12.00) Реализовать метод, который принимает на вход строку source и количество итераций count (проект StringExtension).

      public string Convert(string source, int count)
    

На каждой итерации метода объединяются нечетные символы строки и переносятся в ее начало, и четные символы, которые переносяться в конец.

Пример (строка «Привет Епам!»):

1 итерация: «Пие пмрвтЕа!»
2 итерация: «Пепртаи мвЕ!»
...

Результат работы метода – результат склеек символов через count итераций.

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

Проверить аргументы на валидность:

  • Запрещается передавать пустые строки, строки из пробелов, null.
  • Количество итераций должно быть больше 0.

При нарушении этих условий метод генерирует исключение.

Проверить работу метода с помощью модульных тестов (проект StringExtension.Tests), к предложенным тест кейсам добавить дополнительные.

Проверить возможность работы разработанного метода с большими строками и большим количеством итераций (проект StringExtensionWithFiles), замерить время счета.

  1. Для объектов класса Book, у которого есть свойства Title, Author, Year, PublishingHous, Edition, Pages и Price реализовать возможность строкового представления различного вида. Например, для объекта со значениями Title = "C# in Depth", Author = "Jon Skeet", Year = 2019, PublishingHous = "Manning", Edition = 4, Pages = 900, Price = 40$. могут быть следующие варианты:
  • Book record: Jon Skeet, C# in Depth, 2019, "Manning",
  • Book record: Jon Skeet, C# in Depth, 2019
  • Book record: Jon Skeet, C# in Depth
  • Book record: C# in Depth, 2019, "Manning"
  • Book record: C# in Depth и т.д.

Разработать модульные тесты. (NUnit фреймворк).

  1. Не изменяя класс Book, добавить для объектов данного класса дополнительную (любую не существующую у класса изначально) возможность форматирования, не предусмотренную классом. Разработать модульные тесты. (NUnit фреймворк).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages