def test_get_rnd_integer(self): sim = Simulador() self.assertEqual(1, sim.get_rnd_integer(0, 10)) self.assertEqual(1, sim.get_rnd_integer(0.09999, 10)) self.assertEqual(2, sim.get_rnd_integer(0.1, 10)) self.assertEqual(2, sim.get_rnd_integer(0.19999, 10)) self.assertEqual(10, sim.get_rnd_integer(0.9999, 10)) # Nunca llega a 1 self.assertEqual(11, sim.get_rnd_integer(1, 10)) self.assertEqual(1, sim.get_rnd_integer(0.33333333, 3)) self.assertEqual(2, sim.get_rnd_integer(0.33333334, 3)) self.assertEqual(3, sim.get_rnd_integer(0.66666667, 3))
def test_set_fin_llamada_ext(self): sim = Simulador() sim.set_rnd(duracion_ext=[0.554989281341822, 0.583440963508874]) sim.num_llamada_ext_total = 5 sim.set_fin_llamada_ext() self.assertEqual(0.554989281341822, sim.rnd_duracion_ext) self.assertAlmostEqual(6.43991425073458, sim.duracion_ext, delta=0.000001) self.assertAlmostEqual(6.43991425073458, sim.fin_llamada, delta=0.000001) self.assertEqual({5: 6.439914250734576}, sim.fin_llamada_externa) sim.num_llamada_ext_total = 2 sim.set_fin_llamada_ext() self.assertEqual({5: 6.439914250734576, 2: 6.667527708070992}, sim.fin_llamada_externa)
def test_set_fin_llamada_int(self): sim = Simulador() sim.set_rnd(duracion_int=[0.949147020851263, 0.482405844102685]) sim.num_llamada_int_total = 3 sim.set_fin_llamada_int() self.assertEqual(0.949147020851263, sim.rnd_duracion_int) self.assertAlmostEqual(3.84744106255379, sim.duracion_int, delta=0.000001) self.assertAlmostEqual(3.84744106255379, sim.fin_llamada, delta=0.000001) self.assertEqual({3: 3.847441062553789}, sim.fin_llamada_interna) sim.num_llamada_int_total = 4 sim.set_fin_llamada_int() self.assertEqual({3: 3.847441062553789, 4: 2.4472175323080547}, sim.fin_llamada_interna)
def test_estado_linea_externa(self): sim = Simulador() sim.llamada_linea_externa = [False] * 3 sim.set_estado_linea_externa() self.assertEqual(["Libre"] * 3, sim.estado_ext) sim.num_llamada_a_ext = [5] * 3 sim.llamada_linea_externa = [True] * 3 sim.set_estado_linea_externa() self.assertEqual(["Atendiendo 5"] * 3, sim.estado_ext)
def test_set_rnd(self): sim = Simulador() sim.set_rnd( tiempo_llegada_int=[1, 2], tiempo_llegada_ext=[3, 4], duracion_int=[5, 6], duracion_ext=[7, 8], interno_origen=[9, 10], interno_destino=[11, 12], activo=True ) self.assertEqual([1, 2], sim.listas_rnd['tiempo_llegada_int']) self.assertEqual([3, 4], sim.listas_rnd['tiempo_llegada_ext']) self.assertEqual([5, 6], sim.listas_rnd['duracion_int']) self.assertEqual([7, 8], sim.listas_rnd['duracion_ext']) self.assertEqual([9, 10], sim.listas_rnd['interno_origen']) self.assertEqual([11, 12], sim.listas_rnd['interno_destino'])
def test_set_interno_destino(self): sim = Simulador() sim.set_rnd(interno_destino=[0.536524711262778, 0.199421975971938]) sim.set_interno_destino() self.assertEqual(0.536524711262778, sim.rnd_interno_destino) self.assertAlmostEqual(6, sim.interno_destino, delta=0.000001) sim.set_interno_destino() self.assertAlmostEqual(2, sim.interno_destino, delta=0.000001)
def test_set_interno_origen(self): sim = Simulador() sim.set_rnd(interno_origen=[0.881222963703666, 0.777759066106611]) sim.set_interno_origen() self.assertEqual(0.881222963703666, sim.rnd_interno_origen) self.assertAlmostEqual(9, sim.interno_origen, delta=0.000001) sim.set_interno_origen() self.assertAlmostEqual(8, sim.interno_origen, delta=0.000001)
def simular(): global _parameters global resultados sim = Simulador() resultados = sim.simular(_parameters) if(resultados != None): response = app.response_class( response = parseListToJSON(resultados), status = 200, mimetype = 'application/json' ) return response response = app.response_class( response = "", status = 406, mimetype = 'application/json' ) return response
def testAnalisador(errors): sim = Simulador() p = Parametros() p.nCliente = 1000 j = 0 while (j < 3): p.um_tiempo = j i = 0 while (i < 100): p.dist = 0 p.desv_standar = i / 100 p.promedio = i resultados = sim.simular(p) est = Analisis().analizar(resultados) if(not testAnalisisEstadistico(est)): errors.append("[error]: Analisis Estadistico de Distribución Normal con Desv_std = " + str(p.desv_standar) + " y Promedio = " + str(p.promedio)) i = i + 1 i = 0 while (i < 100): p.dist = 1 p.min = i p.max = i + 2 * i resultados = sim.simular(p) est = Analisis().analizar(resultados) if(not testAnalisisEstadistico(est)): errors.append("[error]: Analisis Estadistico de Distribución Uniforme con min = " + str(p.min) + " y max = " + str(p.max)) i = i + 1 i = 0 while (i < 100): p.dist = 2 p.promedio = i resultados = sim.simular(p) est = Analisis().analizar(resultados) if(not testAnalisisEstadistico(est)): errors.append( "[error]: Analisis Estadistico de Distribución Pisson con Promedio = " + str(p.promedio)) i = i + 1 j = j + 1
def test_guardar_iteracion(self): sim = Simulador() sim.guardar_iteracion() self.assertEqual(1, len(sim.iteraciones)) sim.guardar_iteracion() self.assertEqual(2, len(sim.iteraciones))
def test_set_proxima_llegada_int(self): sim = Simulador() sim.set_rnd(tiempo_llegada_int=[0.0463538119218031]) sim.set_proxima_llegada_int() self.assertEqual(0.0463538119218031, sim.rnd_tiempo_llegada_int) self.assertAlmostEqual(0.09492509672, sim.tiempo_llegada_int, delta=0.000001) self.assertAlmostEqual(0.09492509672, sim.proxima_llegada_int, delta=0.000001)
def test_set_proxima_llegada_ext(self): sim = Simulador() sim.set_rnd(tiempo_llegada_ext=[0.527674118744456]) sim.set_proxima_llegada_ext() self.assertEqual(0.527674118744456, sim.rnd_tiempo_llegada_ext) self.assertAlmostEqual(3.750430526, sim.tiempo_llegada_ext, delta=0.000001) self.assertAlmostEqual(3.750430526, sim.proxima_llegada_ext, delta=0.000001)
def test_inicializacion(self): sim = Simulador() sim.set_rnd(tiempo_llegada_int=[0.0463538119218031], tiempo_llegada_ext=[0.527674118744456]) sim.inicializacion() self.assertAlmostEqual(0.09492509672, sim.proxima_llegada_int, delta=0.000001) self.assertAlmostEqual(3.750430526, sim.proxima_llegada_ext, delta=0.000001) self.assertEqual(['Libre'] * 10, sim.estado_int) self.assertEqual(['Libre'] * 3, sim.estado_ext) # Estado self.assertEqual('Inicialización', sim.as_dict()['evento'])
def test_simular(self): sim = Simulador(cant_iteraciones=100) sim.simular() # self.assertEqual(21, len(sim.iteraciones)) # sim = Simulador(cant_iteraciones=100) # sim.simular(1000000) # # self.assertEqual(41, len(sim.iteraciones)) sim = Simulador() sim.set_rnd(tiempo_llegada_int=[0.0463538119218031, 0.857985064561771], tiempo_llegada_ext=[0.527674118744456, 0.847304643698668], duracion_int=[0.949147020851263, 0.482405844102685], duracion_ext=[0.554989281341822, 0.583440963508874], interno_origen=[0.881222963703666, 0.777759066106611], interno_destino=[0.536524711262778, 0.015272640056872], linea_externa=[0.711000714835721, 0.445582430452375] )
# coding=utf-8 from sys import argv from simulador import Simulador simulador = Simulador() if len(argv) == 2: simulador.do_carrega(argv[1]) simulador.do_espaco("1") simulador.do_substitui('1') simulador.do_executa(3) elif len(argv) == 1: simulador.cmdloop() else: print "Programa não lida com essa quantidade de argumentos"
from flask import Flask, request, jsonify, g from flask_cors import CORS import sqlite3 from simulador import Simulador from coordenada import Coordenada from aeropuerto import Aeropuerto DATABASE = './airports.db' sim = Simulador() app = Flask(__name__) CORS(app, resources={r"/*": {"origins": "*"}}) def get_db(): db = getattr(g, '_database', None) if db is None: db = g._database = sqlite3.connect(DATABASE) db.row_factory = sqlite3.Row return db def query_db(query, args=(), one=False): cur = get_db().cursor() cur.execute(query, args) rv = cur.fetchall() cur.close() return (rv[0] if rv else None) if one else rv
def setUp(self): self.sim = Simulador() self.origen = Coordenada(4.81267, -75.7395) self.destino = Coordenada(3.54322, -76.3816) self.maxDiff = None
class SimuladorTestCase(unittest.TestCase): def setUp(self): self.sim = Simulador() self.origen = Coordenada(4.81267, -75.7395) self.destino = Coordenada(3.54322, -76.3816) self.maxDiff = None def test_definir_coordenadas(self): self.sim.definir_coordenadas(self.origen, self.destino) esperado = 4.81267 observado = self.sim.origen.latitud self.assertEqual(esperado, observado) esperado = -76.3816 observado = self.sim.destino.longitud self.assertEqual(esperado, observado) def test_definir_velocidad(self): self.sim.definir_velocidad(1) esperado = 295.0 observado = self.sim.velocidad self.assertEqual(esperado, observado) self.sim.definir_velocidad(1000) esperado = 295000.0 observado = self.sim.velocidad self.assertEqual(esperado, observado) def test_calc_distancia(self): self.sim.definir_coordenadas(self.origen, self.destino) esperado = 157440.23702528956 observado = self.sim.calc_distancia() self.assertEqual(esperado, observado) def test_calc_tiempo(self): self.sim.definir_coordenadas(self.origen, self.destino) self.sim.definir_velocidad(1) esperado = 533.6957187297951 observado = self.sim.calc_tiempo() self.assertEqual(esperado, observado) def test_calcular_ruta(self): self.sim.definir_coordenadas(self.origen, self.destino) self.sim.definir_velocidad(100) esperado = { 0: [4.81267, -75.7395], 1: [4.574854328422334, -75.85997423623975], 2: [4.337016818381328, -75.98036900284852], 3: [4.099158620627947, -76.10068848953729], 4: [3.8612808835291523, -76.22093687700661], 5: [3.6233847532023256, -76.34111833745125], 6: [3.5432200000000003, -76.38160000000003] } self.sim.calcular_ruta() observado = self.sim.ruta self.assertEqual(esperado, observado) def test_temperatura_interior(self): esperado = 23.45 observado = self.sim.temperatura_interior() self.assertLessEqual(esperado, observado) esperado = 23.55 observado = self.sim.temperatura_interior() self.assertGreaterEqual(esperado, observado) def test_temperatura_exterior(self): esperado = -54.15 observado = self.sim.temperatura_exterior() self.assertLessEqual(esperado, observado) esperado = -54.05 observado = self.sim.temperatura_exterior() self.assertGreaterEqual(esperado, observado) def test_altitud(self): esperado = 10666 observado = self.sim.altitud() self.assertLessEqual(esperado, observado) esperado = 10670 observado = self.sim.altitud() self.assertGreaterEqual(esperado, observado) def test_vel(self): self.sim.definir_velocidad(1) esperado = self.sim.velocidad - 0.1 observado = self.sim.vel() self.assertLessEqual(esperado, observado) esperado = self.sim.velocidad + 0.1 observado = self.sim.vel() self.assertGreaterEqual(esperado, observado)
from simulador import Simulador from jogo import Jogo from jogos import Jogos Aposta1 = Jogo(numeros=[1, 2, 3, 4, 5, 6]) Aposta2 = Jogo(numeros=[1, 2, 3, 4, 5, 6, 7]) Apostas = Jogos(listaJogos=[Aposta1, Aposta2]) simulacao = Simulador(apostas=Apostas) def att(): #Aqui entra os codigos para atualizar as apostas para simulacao simulacao.setApostas(Apostas) print('Ultimo jogo da lista de jogos a serem "sorteados": ') print(simulacao.getSorteios().getListaJogos()[-1]) print('Ultimo jogo da lista considerada como banco de dados - historico: ') print(simulacao.getHistorico().getListaJogos()[-1]) print('Aposta 1: ') print(simulacao.getVolantes()[0].getAposta().getNumeros()) print('Valor R$ {:.2f}'.format(simulacao.getVolantes()[0].getPreco())) print('Aposta 2: ') print(simulacao.getVolantes()[1].getAposta().getNumeros()) print('Valor R$ {:.2f}'.format(simulacao.getVolantes()[1].getPreco())) simulacao.update(func=att)
def test_estado_interno(self): sim = Simulador() sim.num_llamada_a_int = [1] * 10 sim.tipo_llamada_interno = [True] * 10 sim.set_estado_interno() self.assertEqual(["Atendiendo int. 1"] * 10, sim.estado_int) sim.num_llamada_a_int = [3] * 10 sim.tipo_llamada_interno = [False] * 10 sim.set_estado_interno() self.assertEqual(["Atendiendo ext. 3"] * 10, sim.estado_int) sim.tipo_llamada_interno = [None] * 10 sim.set_estado_interno() self.assertEqual(["Libre"] * 10, sim.estado_int)
def test_get_rnd(self): sim = Simulador() # Probar que genere numeros aleatoreos self.assertGreaterEqual(1, sim.get_rnd('tiempo_llegada_int')) self.assertLessEqual(0, sim.get_rnd('tiempo_llegada_int')) # Marcandolo como activo sim.set_rnd(activo=True) self.assertGreaterEqual(1, sim.get_rnd('tiempo_llegada_int')) self.assertLessEqual(0, sim.get_rnd('tiempo_llegada_int')) sim.set_rnd( tiempo_llegada_int=[1, 2], tiempo_llegada_ext=[3, 4], duracion_int=[5, 6], duracion_ext=[7, 8], interno_origen=[9, 10], interno_destino=[11, 12], activo=True ) self.assertEqual(1, sim.get_rnd('tiempo_llegada_int')) self.assertEqual(2, sim.get_rnd('tiempo_llegada_int')) self.assertGreaterEqual(1, sim.get_rnd('tiempo_llegada_int')) self.assertLessEqual(0, sim.get_rnd('tiempo_llegada_int')) self.assertEqual(3, sim.get_rnd('tiempo_llegada_ext')) self.assertEqual(4, sim.get_rnd('tiempo_llegada_ext')) self.assertGreaterEqual(1, sim.get_rnd('tiempo_llegada_ext')) self.assertLessEqual(0, sim.get_rnd('tiempo_llegada_ext')) self.assertEqual(5, sim.get_rnd('duracion_int')) self.assertEqual(6, sim.get_rnd('duracion_int')) self.assertGreaterEqual(1, sim.get_rnd('duracion_int')) self.assertLessEqual(0, sim.get_rnd('duracion_int')) self.assertEqual(7, sim.get_rnd('duracion_ext')) self.assertEqual(8, sim.get_rnd('duracion_ext')) self.assertGreaterEqual(1, sim.get_rnd('duracion_ext')) self.assertLessEqual(0, sim.get_rnd('duracion_ext')) self.assertEqual(9, sim.get_rnd('interno_origen')) self.assertEqual(10, sim.get_rnd('interno_origen')) self.assertGreaterEqual(1, sim.get_rnd('interno_origen')) self.assertLessEqual(0, sim.get_rnd('interno_origen')) self.assertEqual(11, sim.get_rnd('interno_destino')) self.assertEqual(12, sim.get_rnd('interno_destino')) self.assertGreaterEqual(1, sim.get_rnd('interno_destino')) self.assertLessEqual(0, sim.get_rnd('interno_destino')) with self.assertRaises(ValueError): sim.get_rnd('otro_valor')
cmd = input.upper() while not cmd in ['FIN', 'LISTO']: if cmd in ['EXIT']: return False self.log_consola('aca iria la consola de arriba pero solo una vez') if __name__ == '__main__': #inicializacion app = App() test = 3 if test in [1]: #TEST 1 app.set_simulador(Simulador()) elif test in [2, 3]: #TEST 2 y 3 app.set_simulador(Simulador(cantidad_db=2, cantidad_recursos=500)) #ingreso de procesos por comando o con ejemplo default if app.interactiva: output = app.consola_interactiva() #si devuelvo una lista es porque insertamos procesos if isinstance(output, list): app.agregar_procesos(output) elif isinstance(output, str): app.log_consola(f'Error en consola interactiva, razon: {output}') else: app.log_consola(f'')
def test_set_proximo_evento(self): sim = Simulador() sim.proxima_llegada_int = 1 sim.proxima_llegada_ext = 2 sim.fin_llamada_interna = {1: 5, 2: 2.5} sim.fin_llamada_externa = {1: 3, 2: 6} sim.set_proximo_evento() self.assertEqual('llegada_llamada_interna', sim.evento) self.assertEqual(1, sim.reloj) sim.proxima_llegada_int = 10 sim.set_proximo_evento() self.assertEqual('llegada_llamada_externa', sim.evento) self.assertEqual(2, sim.reloj) sim.proxima_llegada_ext = 15 sim.set_proximo_evento() self.assertEqual('fin_llamada_interna', sim.evento) self.assertEqual(2.5, sim.reloj) sim.fin_llamada_interna = {1: 15, 2: 20} sim.set_proximo_evento() self.assertEqual('fin_llamada_externa', sim.evento) self.assertEqual(3, sim.reloj)
def test_get_evento(self): sim = Simulador() # Inicializacion self.assertEqual('Inicialización', sim.get_evento()) # Interna sim.tipo_llamada_actual = True sim.num_llamada_int_actual = 3 sim.evento = 'llegada_llamada_interna' self.assertEqual('llegada_llamada_interna (3)', sim.get_evento()) # Externa sim.tipo_llamada_actual = False sim.num_llamada_ext_actual = 2 sim.evento = 'llegada_llamada_externa' self.assertEqual('llegada_llamada_externa (2)', sim.get_evento())
def main(self): #seteo el simulador self.set_simulador(Simulador()) #comienzo la simulacion self.simulador.iniciar()
def test_set_linea_externa(self): sim = Simulador() sim.set_rnd(linea_externa=[0.711000714835721, 0.445582430452375, 0.1, 0.1]) sim.set_linea_externa() self.assertEqual(0.711000714835721, sim.rnd_linea_externa) self.assertAlmostEqual(3, sim.linea_externa, delta=0.0001) sim.set_linea_externa() self.assertAlmostEqual(2, sim.linea_externa, delta=0.0001) #con 1 ocupado sim.set_rnd(linea_externa=[0.1, 0.1, 0.1]) sim.llamada_linea_externa = [True, False, False] sim.set_linea_externa() self.assertEqual(2, sim.linea_externa) sim.llamada_linea_externa = [False, True, False] sim.set_linea_externa() self.assertEqual(1, sim.linea_externa) sim.llamada_linea_externa = [False, False, True] sim.set_linea_externa() self.assertEqual(1, sim.linea_externa) # Con 1 libre sim.set_rnd(linea_externa=[0.9, 0.9, 0.9]) sim.llamada_linea_externa = [True, True, False] sim.set_linea_externa() self.assertEqual(3, sim.linea_externa) sim.llamada_linea_externa = [True, False, True] sim.set_linea_externa() self.assertEqual(2, sim.linea_externa) sim.llamada_linea_externa = [False, True, True] sim.set_linea_externa() self.assertEqual(1, sim.linea_externa) # Cuando no hay disponibles sim.set_rnd(linea_externa=[0.9, .5, .1]) sim.llamada_linea_externa = [True, True, True] sim.set_linea_externa() self.assertEqual(3, sim.linea_externa) sim.set_linea_externa() self.assertEqual(2, sim.linea_externa) sim.set_linea_externa() self.assertEqual(1, sim.linea_externa)