Python Модульный тест для наименьшего общего предка дает TypeError: объект 'int' не вызывается - PullRequest
0 голосов
/ 14 января 2020

При запуске файла он выдает TypeError: объект int не вызывается . Я просто изучаю юнит-тест в python. Не можете понять, почему и что со мной не так?

file lca.py

class Node:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None

root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)

def least_common_ancestor(root=root, n1=1, n2=1):
    if root.value == n1 or root.value == n2:
        return root.value

    left = least_common_ancestor(root.left, n1, n2)
    right = least_common_ancestor(root.right, n1, n2)

    if left and right:
        return root.value

    if left:
        return left
    else:
        return right

least_common_ancestor = least_common_ancestor(root, node1, node2)

file unittest.py

import lca

class TaskTest(unittest.TestCase):
    def test_least_common_ancestor(self):
        result_1 = lca.least_common_ancestor(node1=1, node2=3)
        self.assertEqual(result_1, 3)

if __name__ == '__main__':
    unittest.main()

ошибки, которые я получаю при запуске unit_test.py:

..E
======================================================================
ERROR: test_least_common_ancestor (__main__.TaskTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/user/Desktop/learn_python/unit_test.py", line 5, in test_least_common_ancestor
    result_1 = lca.least_common_ancestor(node1=1, node2=3)
TypeError: 'int' object is not callable

1 Ответ

1 голос
/ 14 января 2020

Проблема заключается в этой строке Min__common_ancestor = Min__Common_ancestor (root, узел1, узел2) . Эта переменная содержит целочисленное значение и конфликтует с именем метода. Попробуйте переименовать переменную. Еще одно изменение, вам необходимо передать root узел в качестве первого параметра. Попробуйте result_1 = lca.least_common_ancestor (lca. root, 1, 3) . Наслаждайтесь кодированием.

...