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