У меня есть класс 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().