def test_compra_propriedade(): NUM_TENTATIVAS = 5000 resultado = [] for i in range(NUM_TENTATIVAS): propriedade = Propriedade(60, 5, "Apartamento - Ibirapuera") aleatorio = Aleatorio("Maria") saldo_anterior = aleatorio.saldo aleatorio.acao(propriedade) if aleatorio.saldo == saldo_anterior - propriedade.venda: # Comprou resultado.append("comprou") else: resultado.append(("Nao Comprou")) compras = len([r for r in resultado if r == "comprou" ]) / NUM_TENTATIVAS * 100 assert compras > 48 and compras < 52
def test_deve_pagar_aluguel_quando_esta_vendida(self): jogador = Impulsivo('Azul') propriedade = self.tabuleiro.propriedades[0] propriedade.proprietario = Aleatorio('Vermelho') temQuePagarAluguel = self.tabuleiro.temQuePagarAluguel( propriedade, jogador) self.assertTrue(temQuePagarAluguel)
def executa(self): # Coloca cliente no servico - na fila ou a ser atendido, conforme o caso self.servico.insereClient(cliente.Client(), self.servico.proximo_servico) # Agenda nova chegada para daqui a aleatorio.exponencial(self.simulator.media_cheg) instantes self.simulator.insereEvento( Chegada( self.simulator.instant + Aleatorio.exponencial(self.media_cheg, self.servico.seed), self.simulator, self.media_cheg, self.servico))
def test_deve_pagar_aluguel_quando_o_proprietario_for_diferente_da_vez_do_jogador( self): jogador = Impulsivo('Azul') propriedade = self.tabuleiro.propriedades[0] propriedade.proprietario = Aleatorio('Vermelho') temQuePagarAluguel = self.tabuleiro.temQuePagarAluguel( propriedade, jogador) self.assertTrue(temQuePagarAluguel)
def test_deve_descontar_do_saldo_do_jogador_que_esta_na_posicao_da_propriedade_vendida( self): jogador = Impulsivo('Azul') propriedade = self.tabuleiro.propriedades[0] propriedade.proprietario = Aleatorio('Vermelho') saldoEsperado = jogador.saldo - propriedade.valorDoAluguel self.tabuleiro.pagarAluguel(propriedade, jogador) self.assertEqual(saldoEsperado, jogador.saldo)
def test_deve_acrescentar_o_saldo_do_proprietario_que_teve_o_aluguel_pago( self): jogador = Impulsivo('Azul') propriedade = self.tabuleiro.propriedades[0] propriedade.proprietario = Aleatorio('Vermelho') proprietario = self.tabuleiro.obterJogador('Vermelho') saldoEsperado = proprietario.saldo + propriedade.valorDoAluguel self.tabuleiro.pagarAluguel(propriedade, jogador) self.assertEqual(saldoEsperado, proprietario.saldo)
def insereClient(self, client, tipo_servico): if self.estado < self.numero_de_maquinas: # Se servico livre(se estado menor que numero de atendedores) self.estado += 1 # Fica ocupado e agenda saida do cliente self.simulator.insereEvento( eventos.Saida( self.simulator.instant + Aleatorio.normal( self.media_serv, self.desvio_padrao, self.seed)[0], self.simulator, tipo_servico, client, self)) else: self.fila.append( client ) # Se servico ocupado, o cliente vai para a fila de espera
def __init__(self): self.vencedor = None self.propriedades = [ Propriedade('Morumbi', 300, 100), Propriedade('Santo Amaro', 200, 50) ] self.jogadores = [ Impulsivo('Azul'), Aleatorio('Vermelho'), Exigente('Verde'), Cauteloso('Amarelo') ]
class ImpulsivoTest(unittest.TestCase): def setUp(self): self.aleatorio = Aleatorio("Cleber Carmo") self.aleatorio.temProbabilidade = MagicMock(return_value=True) def test_deve_poder_comprar_quando_houver_saldo(self): deveComprar = self.aleatorio.deveComprar({}) self.assertTrue(deveComprar) def test_nao_deve_poder_comprar_quando_nao_houver_saldo(self): self.aleatorio.saldo = 0 deveComprar = self.aleatorio.deveComprar({}) self.assertFalse(deveComprar) def test_deve_poder_comprar_quando_com_probabilidade_a_partir_de_50_por_cento( self): deveComprar = self.aleatorio.deveComprar({}) self.assertTrue(deveComprar)
def removeClient(self, tipo_servico): self.atendidos += 1 # Regista que acabou de atender + 1 cliente if not self.fila: # Se a fila esta vazia, self.estado -= 1 # liberta o servico else: # vai buscar proximo cliente a fila de espera e agenda a sua saida if self.aux_rand == 0: ran = Aleatorio.normal(self.media_serv, self.desvio_padrao, self.seed) random_number = ran[0] self.aux_rand = ran[1] else: random_number = self.aux_rand self.aux_rand = 0 self.simulator.insereEvento( eventos.Saida(self.simulator.instant + random_number, self.simulator, tipo_servico, self.fila.pop(0), self))
def __init__(self): self.rodada = 0 self.vencedor = "Ninguem" self.timeout = False self.propriedades = [ Propriedade(0,0,"Inicio"), #0 Inicio Propriedade(60, 5, "Apartamento - Ibirapuera"), #1 Propriedade(60, 35, "Loja - Moema"), #2 Propriedade(20, 5, "Supermercado - Brooklin"), #3 Propriedade(70, 15, "Apartamento - Santo Amaro"), #4 Propriedade(120, 55, "Mercearia - Socorro"), #5 Propriedade(90, 60, "Pastelaria - Tatuape"), #6 Propriedade(60, 15, "Loja - Penha"), #7 Propriedade(30, 5, "Farmacia - Santana"), #8 Propriedade(230, 60, "Hotel - Casa Verde"), #9 Propriedade(40, 5, "Escola - Butantã"), #10 Propriedade(110, 55, "Apartamento - Pirituba"), #11 Propriedade(60 , 15, "Loja - Freguesia do O"), #12 Propriedade(50, 15, "Supermercado - Lapa"), #13 Propriedade(130, 50, "Apartamento - Pinheiros"), #14 Propriedade(60, 5 , "Mercearia - Pompeia"), #15 Propriedade(30, 5, "Hotel - Vila Madalena"), #16 Propriedade(85, 30, "Loja - Santa Ifigenia"), #17 Propriedade(70 , 25, "Farmacia - Anhangabau"), #18 Propriedade(60, 10, "Minimercado - Liberdade"), #19 Propriedade(20, 5, "Escola - Mooca"), #20 ] self.NUM_PROPRIEDADES = len(self.propriedades) - 1 self.jogadores = [ Impulsivo("João"), Exigente("José"), Cauteloso("Ana"), Aleatorio("Maria") ] self.JOGANDO = len(self.jogadores)
def setUp(self): self.aleatorio = Aleatorio("Cleber Carmo") self.aleatorio.temProbabilidade = MagicMock(return_value=True)
from jogador import Jogador from aleatorio import Aleatorio from propriedade import Propriedade propriedade = Propriedade(60, 5, "Apartamento - Ibirapuera") aleatorio = Aleatorio("Maria") def test_compra_propriedade(): NUM_TENTATIVAS = 5000 resultado = [] for i in range(NUM_TENTATIVAS): propriedade = Propriedade(60, 5, "Apartamento - Ibirapuera") aleatorio = Aleatorio("Maria") saldo_anterior = aleatorio.saldo aleatorio.acao(propriedade) if aleatorio.saldo == saldo_anterior - propriedade.venda: # Comprou resultado.append("comprou") else: resultado.append(("Nao Comprou")) compras = len([r for r in resultado if r == "comprou" ]) / NUM_TENTATIVAS * 100 assert compras > 48 and compras < 52 def test_aluga_propriedade(): jogador = Jogador("Carlos") propriedade.dono = jogador saldo_anteriro = aleatorio.saldo
from aleatorio import Aleatorio import random import matplotlib.pyplot as plt listExponencial = [] listNormal = [] ciclos = 10000 for i in range(ciclos): listExponencial.append(Aleatorio().exponencial(random.randint(0, 99), 25)) for i in range(ciclos): listNormal.append(Aleatorio().normal(random.randint(0, 99), [200, 15])) plt.hist(listExponencial, 100) plt.hist(listNormal, 100) plt.show()
def setUp(self): self.aleatorio = Aleatorio("Rafael T") self.aleatorio.temProbabilidade = MagicMock(return_value=True)