Я пытаюсь проверить, что два объекта равны. Тип этих объектов - это Point, который является классом, определенным ROS (Robot Operating System). У меня есть следующий тест:Неподдерживаемые операнды (ы) при попытке assertAlmostEqual/assertEqual
def test_when_getting_position_after_2s_then_position_at_2s_is_returned(self):
self.expected_position.x = -self.radius
self.expected_position.y = 0
self.assertAlmostEqual(
self.expected_position,
self.trajectory.get_position_at(2))
Я использую unittest
, и когда я пытаюсь утверждать, если они почти равны, я получаю сообщение об ошибке, которая говорит:
TypeError: unsupported operand type(s) for -: 'Point' and 'Point'
я получаю ту же ошибку когда я использую assertEqual
, и я знаю, что могу это сделать:
self.assertAlmostEqual(self.expected_position.x, self.trajectory.get_position_at(1).x)
self.assertAlmostEqual(self.expected_position.y, self.trajectory.get_position_at(1).y)
Однако, я хотел бы иметь возможность утверждать положение и не определенные поля. Как я могу это достичь?
Edit: Полный отслеживающий за исключением является:
Error
Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 329, in run
testMethod()
File "/home/m/turtlebot_ws/src/trajectory_tracking/src/test/trajectory/test_astroid_trajectory.py", line 26, in test_when_getting_position_after_1s_then_position_at_1s_is_returned
self.assertAlmostEqual(self.expected_position, self.trajectory.get_position_at(1))
File "/usr/lib/python2.7/unittest/case.py", line 554, in assertAlmostEqual
if round(abs(second-first), places) == 0:
TypeError: unsupported operand type(s) for -: 'Point' and 'Point'
Что такое * полная трассировка исключения? –
@MartijnPieters, я только что отредактировал свой вопрос, предоставив полную трассу. – lmiguelvargasf