Реализовать модуль polynomial и класс Polynomial - полином от одной переменной с целочисленными коэффициентами. Конструктор должен принимать список или кортеж коэффициентов в том же порядке, как и в классической записи: Polynomial([1, 2, -4]) означает x^2 + 2x - 4.
Обязательные поддерживаемые операции:
- сложение;
- сложение с константой (с обеих сторон);
- вычитание;
- вычитание с константой (с обеих сторон);
- умножение;
- умножение на константу (с обеих сторон);
- сравнение;
- преобразование к строке
str(p)в стиле"x^2 + 2x - 4"; - печать внутреннего представления объекта
repr(p)в стиле"Polynomial([1, 2, -4])"; - копирование в стиле
Polynomial(p), где p - объект класса Polynomial; - список коэффициентов (list) можно получать/модифицировать, как
p.coeffs.
В случае недопустимых значений или типов входных данных должны выбрасываться соответствующие исключения.
Также реализовать модульные тесты для всех методов, используя встроенный модуль unittest.