На вход программе подается строка текста. На выход нужно вернуть массив полей, извлечённых из входа, либо пустой массив если полей нет.
Поля могут быть двух типов:
Простые поля
Не могут быть пустыми, не могут содержать пробелов и разделяются одним или несколькими пробелами.
Поля в кавычках
Могут содержать пробелы и быть пустыми. То есть строка a "bcd ef" 'x y' содержит три поля a, bcd ef и x y, а не пять.
Кавычки разных типов могут быть вложенными. То есть строка "a 'b' 'c' d" '"1" "2" "3"' содержит два поля a 'b' 'c' d и "1" "2" "3".
Поля, заключенные в кавычки, могут не отделяться от других полей пробелами. То есть строка a"b c d e"f содержит 3 поля a, b c d e и f.
Если в строке отсутствует последняя парная закрывающая кавычка, считать, что соответствующее поле заканчивается в конце строки. То есть строка abc "def g h содержит два поля.
Поле внутри кавычек может содержать символы кавычек, экранированные символом ‘\’. Символ ‘\’ также может быть экранирован самим же собой. То есть строка "a \"c\"" содержит одно поле, а строка "\\" b — два поля.
В простых полях символ ‘\’ не считается экранирующим символом, поэтому строка \\ — это одно поле из двух слэшей, а \"a b\" — это два поля \ и a b"
Игнорируйте пробелы в начале или в конце строки, если они не входят в поле.
Задача
В этой задаче вам не нужно реализовывать алгоритм. Вместо этого напишите набор тестов, который покрывает все основные ситуации для данной задачи.
Используйте метод Test(string input, string[] expectedOutput) который принимает первым аргументом входные данные, а вторым ожидаемый вывод.
Не пишите сложных тестов, которые проверяют сразу много различных свойств алгоритма. Если такой тест падает, то сложно понять в чем на самом деле была ошибка.
public static void RunTests()
{
Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂

