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
示例#2
0
    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)
示例#3
0
 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))
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
 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
示例#8
0
 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')
     ]
示例#9
0
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)
示例#10
0
 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))
示例#11
0
    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)
示例#12
0
 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
示例#14
0
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)