Как обеспечить хорошее покрытие кода логики с плавающей запятой?

Я вручную создаю новый код. Я хотел бы убедиться, что я не оставлю камня на камне.

Могу ли я сделать что-нибудь конкретное, кроме указания Code Contracts, чтобы направлять Pex, чтобы он обеспечивал хорошее покрытие в коде с интенсивным числовым использованием?

Попробуйте выполнить поиск http://research.microsoft.com/en-us/projects/pex/pexconcepts.pdfпо ключевому слову 'float' для получения дополнительной информации.

Арифметические ограничениянад числами с плавающей запятой аппроксимируются преобразованием в рациональные числа, а методы эвристического поиска используются за пределами Z3 для нахождения приблизительных решений для ограничений с плавающей запятой.

...а также...

Символическое рассуждение. Pex использует автоматический решатель ограничений, чтобы определить, какие значения относятся к тесту и тестируемому коду. Однако возможности решателя ограничений всегда были и будут ограниченными. В частности, Z3 не может точно рассуждать об арифметике с плавающей запятой.

В качестве альтернативы, знаете ли вы инструмент для .NET, который лучше подходит для задачи поиска числовых аномалий в .NET? Я знаю о http://fscheck.codeplex.com/, но он не выполняет символьные рассуждения.

13
задан GregC 27 May 2012 в 04:31
поделиться