У меня есть некоторые модульные тесты на С#, которые выполняют некоторые операции float/double, и я хотел бы unit test их. Assert.AreEqual недостаточно из-за ошибок округления.
В качестве примера возьмем преобразование единиц. 10,5 метров до фута имеет коэффициент пересчета 3,281, поэтому я получаю 34.4505. Использование более точного коэффициента преобразования дает мне 34.4488189. Я хочу протестировать это, скажем, 0,1 (так что 34.3488-34.5488 пройдет тест).
Я мог бы вручную проверить значение с допуском в моем unit test, но это очень повторяющееся, а сообщение об ошибке не было бы очень описательным (опять же без необходимости писать собственное сообщение об ошибке Assert):
Assert.IsTrue(Math.Abs(34.4488189 - value) < 0.1);
Как я могу unit test выполнить мои операции с плавающей точкой с допустимым допуском? Я не могу найти классы Assert, которые делают это с VS. Я пропустил его или мне нужно катиться самостоятельно?
Существуют ли стандартные методы тестирования float/doubles, которые нужно иметь в виду?