def test_intervalo_uniform(self):
		intervalo_inicial=5.0
		intervalo_final=15.0
		amostras =[]
		for i in range(0,10000):
			amostra = utils_controller.gera_amostra_uniforme(intervalo_inicial, intervalo_final)
			self.assertLess(amostra, intervalo_final)
			self.assertGreater(amostra, intervalo_inicial)
	def test_media_uniform(self):
		intervalo_inicial=5.0
		intervalo_final=15.0
		amostras =[]
		for i in range(0,10000):
			amostra = utils_controller.gera_amostra_uniforme(intervalo_inicial, intervalo_final)
			amostras.append(amostra)
		valor_media = utils_controller.media(amostras)
		self.assertEqual(round(valor_media,0), 10.0)
def agenda_prox_evento(tipo,tempo_atual,cliente_id,taxa_de_chegada,taxa_de_servico,probabilidade,tipo_distribuicao):
    
    if tipo==CHEGADA:
        #Calcula tempo ate proxima chegada do cliente_id
        if tipo_distribuicao==EXPONENCIAL:
            tempo_ate_prox_chegada = gera_amostra_exponencial(taxa_de_chegada)
        elif tipo_distribuicao==DETERMINISTICA:
            tempo_ate_prox_chegada = 1/taxa_de_chegada
        elif tipo_distribuicao==UNIFORME:
            tempo_ate_prox_chegada = gera_amostra_uniforme(5,15)
        return (tempo_atual+tempo_ate_prox_chegada,CHEGADA,cliente_id,tempo_ate_prox_chegada,tempo_atual)
    elif tipo==PARTIDA:
        #Calcula tempo de servico do cliente_id
        if tipo_distribuicao==EXPONENCIAL:
            tempo_de_servico = 1.0/taxa_de_servico
        elif tipo_distribuicao==DETERMINISTICA:
            tempo_de_servico = 1.0/taxa_de_servico
        elif tipo_distribuicao==UNIFORME:
            tempo_de_servico = gera_amostra_exponencial(taxa_de_servico)

        return (tempo_atual+tempo_de_servico,PARTIDA,cliente_id,tempo_de_servico,tempo_atual)