Prezados,
O método que escrevi está igual ao do vídeo 3 (Mais testes e classes de equivalência) apresentado, porém aqui para mim da o erro no menor valor, pois mostra que ele é 1.7976... e o valor a ser comparado é 150. Seguem códigos:
Código classes:
import sys
class Usuario:
def __init__(self, nome):
self.__nome = nome
@property
def nome(self):
return self.__nome
class Lance:
def __init__(self, usuario, valor):
self.usuario = usuario
self.valor = valor
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
@property
def lances(self):
return self.__lances
class Avaliador:
def __init__(self):
self.maior_lance = sys.float_info.min
self.menor_lance = sys.float_info.max
def avalia(self, leilao: 'Espera receber um leilao'):
for lance in leilao.lances:
if(lance.valor > self.maior_lance):
self.maior_lance = lance.valor
elif(lance.valor < self.menor_lance):
self.menor_lance = lance.valor
Código teste
from unittest import TestCase
from src.leilao.dominio import Usuario, Lance, Leilao, Avaliador
def test_deve_retornar_o_mesmo_valor_para_o_maior_e_menor_lance_quando_leilao_tiver_um_lance(self):
gui = Usuario('gui'.capitalize())
lance_gui = Lance(gui, 150.00)
leiao_celular = Leilao('celular'.capitalize())
leiao_celular.lances.append(lance_gui)
avaliador = Avaliador()
avaliador.avalia(leiao_celular)
self.assertEqual(150.00, avaliador.menor_lance)
self.assertEqual(150.00, avaliador.maior_lance)
Obrigado.