示例#1
0
    def test_generación_auto_mds_modelo_erróneo(símismo):
        """
        Asegurarse que un fuente erróneo devuelva un error.
        """

        with símismo.assertRaises(FileNotFoundError):
            generar_mds('recursos/MDS/Yo no existo.mdl')
示例#2
0
    def test_generación_auto_mds_con_error_extensión(símismo):
        """
        Comprobar que extensiones no reconocidas devuelvan un error.
        """

        with símismo.assertRaises(ValueError):
            generar_mds('Modelo con extensión no reconocida.வணக்கம்')
示例#3
0
    def test_generación_auto_mds_con_error_extensión(símismo):
        """
        Comprobar que extensiones no reconocidas devuelvan un error.
        """

        with símismo.assertRaises(ValueError):
            generar_mds(os.path.join(dir_act, 'recursos/MDS/Modelo con extensión no reconocida.வணக்கம்'))
示例#4
0
    def test_generación_auto_mds_con_motor_especificado(símismo):
        """
        Comprobar la generación de modelos DS con el motor de simulación especificado.
        """

        mod = generar_mds(tipos_modelos['PySDVensim']['prueba'], motor=ModeloPySD)
        símismo.assertIsInstance(mod, ModeloPySD)

        mod = generar_mds(tipos_modelos['PySDVensim']['prueba'], motor=ModeloVensim, enforzar_instalado=False)
        símismo.assertIsInstance(mod, ModeloVensim)
 def setUpClass(cls):
     cls.paráms = {
         'taza de contacto': {
             '708': 81.25,
             '1010': 50
         },
         'taza de infección': {
             '708': 0.007,
             '1010': 0.005
         },
         'número inicial infectado': {
             '708': 22.5,
             '1010': 40
         },
         'taza de recuperación': {
             '708': 0.0375,
             '1010': 0.050
         }
     }
     cls.mod = mod = generar_mds(arch_mds)
     mod.geog = Geografía('prueba', archivo=arch_csv_geog)
     mod.cargar_calibs(cls.paráms)
     cls.datos = mod.simular_en(t_final=100,
                                en=['708', '1010'],
                                vars_interés=[
                                    'Individuos Suceptibles',
                                    'Individuos Infectados',
                                    'Individuos Resistentes'
                                ])
     mod.borrar_calibs()
示例#6
0
 def test_generar_sin_submodelos(símismo):
     mds = generar_mds(archivo=arch_mds)
     bf = ModeloPrueba(unid_tiempo='mes')
     cnctd = Conectado()
     cnctd.estab_bf(bf)
     cnctd.estab_mds(mds)
     símismo.assertSetEqual(set(cnctd.modelos), {'mds', 'bf'})
示例#7
0
    def __init__(símismo, archivo, nombre='mds'):
        super().__init__(archivo=archivo, nombre=nombre)

        from tinamit.EnvolturasMDS import generar_mds
        símismo.mod = None  # type: EnvolturaMDS
        símismo._estab_mod(generar_mds(archivo=archivo))
        símismo.combin_incrs = símismo.mod.combin_pasos

        símismo.editado = False
示例#8
0
    def _iniciar_modelo(símismo, tiempo_final, nombre_corrida, vals_inic):
        from tinamit.EnvolturasMDS import generar_mds
        if símismo.mod is None or símismo.editado:
            símismo.publicar_modelo()
            símismo._estab_mod(generar_mds())
            símismo.editado = False

        símismo.mod.corrida_activa = nombre_corrida
        símismo.mod._iniciar_modelo(tiempo_final=tiempo_final,
                                    nombre_corrida=nombre_corrida,
                                    vals_inic=vals_inic)
示例#9
0
    def test_generación_auto_mds(símismo):
        """
        Verificamos que funcione la generación automática de modelos DS a base de un fuente.
        """

        for m, d in tipos_modelos.items():
            with símismo.subTest(ext=os.path.splitext(d['prueba'])[1], envlt=d['envlt'].__name__):
                try:
                    mod = generar_mds(d['prueba'])  # Generar el modelo
                    símismo.assertIsInstance(mod, EnvolturaMDS)
                except ValueError:
                    # No hay problema si el MDS no se pudo leer en la computadora actual. De pronto no estaba instalado.
                    pass
    def setUpClass(cls):
        cls.paráms = {
            'taza de contacto': 81.25,
            'taza de infección': 0.007,
            'número inicial infectado': 22.5,
            'taza de recuperación': 0.0375
        }
        cls.mod = generar_mds(arch_mds)

        cls.datos = cls.mod.simular(t_final=100,
                                    vals_inic=cls.paráms,
                                    vars_interés=[
                                        'Individuos Suceptibles',
                                        'Individuos Infectados',
                                        'Individuos Resistentes'
                                    ])
示例#11
0
    def estab_mds(símismo, archivo_mds):
        """
        Establecemos el modelo de dinámicas de los sistemas (:class:`~tinamit.EnvolturasMDS.EnvolturasMDS`).

        :param archivo_mds: El fuente del modelo DS, o el modelo sí mismo.
        :type archivo_mds: str | EnvolturaMDS

        """

        # Generamos un objeto de modelo DS.
        if isinstance(archivo_mds, str):
            modelo_mds = generar_mds(archivo=archivo_mds)
        elif isinstance(archivo_mds, EnvolturaMDS):
            modelo_mds = archivo_mds
        else:
            raise TypeError(_('Debes dar o un modelo DS, o la dirección hacia el fuente de uno.'))

        # Conectamos el modelo DS.
        símismo.agregar_modelo(modelo=modelo_mds)

        # Y hacemos la referencia rápida.
        símismo.mds = modelo_mds
示例#12
0
 def setUpClass(cls):
     cls.mds = generar_mds(archivo=arch_mds)