from typing import TypeVar
from hypothesis import given
from src.Pol_Crea_termino import creaTermino
from src.TAD.Polinomio import (Polinomio, coefLider, consPol, grado, polCero,
polinomioAleatorio)
A = TypeVar('A', int, float, complex)
# 1ª solución
# ===========
def termLider(p: Polinomio[A]) -> Polinomio[A]:
return creaTermino(grado(p), coefLider(p))
# 2ª solución
# ===========
def termLider2(p: Polinomio[A]) -> Polinomio[A]:
return creaTermino(p.grado(), p.coefLider())
# La función creaTermino está definida en el ejercicio
# "Construcción de términos" que se encuentra en
# https://bit.ly/3GXteuH
# Equivalencia de las definiciones
# ================================
# La propiedad es
@given(p=polinomioAleatorio())
def test_termLider(p: Polinomio[int]) -> None:
assert termLider(p) == termLider2(p)
# La comprobación es
# > poetry run pytest -q Pol_Termino_lider.py
# 1 passed in 0.21s