Я пишу несколько тестов для моего кода симпози, и, естественно, мне нужно сравнить две матрицы симпй.Каждая матрица содержит объекты типа Poly
в качестве своих записей (на самом деле, она содержит объекты класса, который я создал, который расширяет класс Poly
, но это не должно иметь значения).
Проблема в том, что когда я пытаюсь сравнить эти объекты в тестах, даже если выражения одинаковы, генераторы различаются, что приводит к неудачному тесту, даже если они одинаковы.
Например:
from sympy.matrices import Matrix
expected_matrix = Matrix([[Poly(1.0*y1 + 2.0*x2 + 1.0*x1, y1, x2, x1, domain='RR')]])
actual_matrix = Matrix([[Poly(1.0*y1 + 1.0*x2, y2, y1, x2, x1, domain='RR') + Poly(1.0*x2 + 1.0*x1, y2, y1, x2, x1, domain='RR')]])
# however, when these get compared, they don't agree because notice that the `y2` generator does not appear in the `expected_matrix`.
У меня вопрос, как сделать генераторы равными.Как добавить генераторы к фактическому выводу?Или уберите генераторы от ожидаемого выхода?
Поскольку атрибут gens
является кортежем, это усложняет задачу, поскольку я не могу просто добавить элемент к атрибуту gens
:
actual_matrix.gens = expected_matrix.gens
Возможно, я мог бы сравнить выраженияв одиночку, но это кажется мне рискованным (если только кто-то с большим опытом в этом не сможет убедить меня в обратном).
Как мне сравнить эти две вещи?