У меня есть класс Vector, который представляет точку в 3-мерном пространстве. Этот вектор имеет метод normalize(self, length = 1)
, который масштабирует вектор вниз/вверх до length == vec.normalize(length).length
.
Отключить для этого метода иногда не удается из-за неточности чисел с плавающей запятой. Мой вопрос: как я могу убедиться, что этот тест не сработает, если методы реализованы правильно? Возможно ли это сделать без тестирования для приблизительного значения?
Дополнительная информация:
def testNormalize(self):
vec = Vector(random.random(), random.random(), random.random())
self.assertEqual(vec.normalize(5).length, 5)
Этот иногда приводит к AssertionError: 4.999999999999999 != 5
или AssertionError: 5.000000000000001 != 5
.
Примечание. Я знаю, что проблема с плавающей запятой может быть в свойстве Vector.length
или в Vector.normalize()
.