Я вручную создаю новый код. Я хотел бы убедиться, что я не оставлю камня на камне.
Могу ли я сделать что-нибудь конкретное, кроме указания Code Contracts, чтобы направлять Pex, чтобы он обеспечивал хорошее покрытие в коде с интенсивным числовым использованием?
Попробуйте выполнить поиск http://research.microsoft.com/en-us/projects/pex/pexconcepts.pdfпо ключевому слову 'float' для получения дополнительной информации.
Арифметические ограничениянад числами с плавающей запятой аппроксимируются преобразованием в рациональные числа, а методы эвристического поиска используются за пределами Z3 для нахождения приблизительных решений для ограничений с плавающей запятой.
...а также...
Символическое рассуждение. Pex использует автоматический решатель ограничений, чтобы определить, какие значения относятся к тесту и тестируемому коду. Однако возможности решателя ограничений всегда были и будут ограниченными. В частности, Z3 не может точно рассуждать об арифметике с плавающей запятой.
В качестве альтернативы, знаете ли вы инструмент для .NET, который лучше подходит для задачи поиска числовых аномалий в .NET? Я знаю о http://fscheck.codeplex.com/, но он не выполняет символьные рассуждения.