Почему я получаю ошибку подтверждения в Python? - PullRequest
0 голосов
/ 09 января 2020

Я тестирую функцию в Python. Это функция, которую я написал.

def hypotenuse(a, b):
   math.sqrt(a**2 + b**2)

Я использовал этот тестовый пример.

def test_hypotenuse_1(self):
   self.assertEqual(funcs.hypotenuse, 3, 4)

Пришла ошибка подтверждения.

======================================================================
FAIL: test_hypotenuse_1 (__main__.TestCases)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "funcs_tests.py", line 27, in test_hypotenuse_1
    self.assertEqual(funcs.hypotenuse, 3, 4)
AssertionError: <function hypotenuse at 0x7f397f2d79d8> != 3 : 4

Что я сделал неправильно? Извините, если это базовый c вопрос, я начинающий программист.

1 Ответ

2 голосов
/ 10 января 2020

Вам нужно вызвать функцию, а затем указать, какой результат этого вызова должен быть равен

def test_hypotenuse_1(self):
    self.assertEqual(funcs.hypotenuse(3, 4), 5)

Это утверждает, что гипотенуза треугольника со сторонами 3 и 4 равна 5.

Ваш тест все равно не пройден, поскольку hypotenuse() не возвращает результат. Это должно быть:

def hypotenuse(a, b):
    return math.sqrt(a**2 + b**2)

Обратите внимание, что обычно вы не должны использовать проверку на равенство для такой математической функции, как эта. Он использует арифметику с плавающей запятой c, которая может иметь ошибку округления. Для этого вы можете использовать функцию assertAlmostEqual().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...