Онлайн тест бинарный код

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

Поля могут быть двух типов:

Простые поля

Не могут быть пустыми, не могут содержать пробелов и разделяются одним или несколькими пробелами.

Поля в кавычках

Могут содержать пробелы и быть пустыми. То есть строка a “bcd ef” 'x y' содержит три поля a, bcd ef и x y, а не пять.

eToro - Popular Investor

Кавычки разных типов могут быть вложенными. То есть строка “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) который принимает первым аргументом входные данные, а вторым ожидаемый вывод.

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