Ищем строковые операции крайних случаев. Что мне нужно проверить? - PullRequest
0 голосов
/ 12 января 2009

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

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

Так есть ли какие-то конкретные вещи, которые я мог бы проверить и получить хоть какую-то уверенность, что я все делаю правильно? Я знаю, например, о том, что ß равно SS при игнорировании падежей на немецком языке; о пунктирной и не пунктирной я по-турецки.

Ответы [ 3 ]

2 голосов
/ 12 января 2009

Суррогатные пары, если вы планируете их поддерживать, включая недопустимые комбинации (например, только одну часть из них).

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

1 голос
/ 12 января 2009

Вы должны имитировать реализации методов String и использовать базовую библиотеку, чтобы сделать это за вас. Очень трудно учитывать каждый возможный аспект каждой культуры. Вместо того, чтобы заново изобретать колесо, используйте отражатель в методах String и смотрите внутренние вызовы. Например, String.Compare использует CultureInfo.CurrentCulture.CompareInfo.Compare для сравнения двух строк в текущей культуре.

1 голос
/ 12 января 2009

Турецкий тест - лучшее, что я знаю :)

...