def test_simular_grupo(símismo): vals_extern = [{'Escala': 1}, {'Escala': 2}] mod = ModeloPrueba() ops = OpsSimulGrupo(5, extern=vals_extern) res = mod.simular_grupo(ops) for corr, vl in zip(res.values(), vals_extern): símismo.assertEqual(corr['Escala'].vals.values[0], vl['Escala'])
def test_diario(símismo): mod = ModeloPrueba(unid_tiempo='días') mod.conectar_var_clima('Vacío', 'بارش', conv=1, combin='total') res = mod.simular(EspecTiempo(100, f_inic=símismo.fechas[0]), clima=símismo.clima, vars_interés='Vacío') npt.assert_equal(res['Vacío'].vals[:, 0], símismo.lluvia[:101])
def test_guardar_cada_con_fecha(símismo): mod = ModeloPrueba(unid_tiempo='días') res = mod.simular( t=EspecTiempo(10, '2001-01-01', guardar_cada=2))['Escala'] npt.assert_equal(res.vals, np.arange(11, step=2).reshape((6, 1))) pdt.assert_index_equal(res.vals.indexes[_('fecha')], pd.date_range('2001-01-01', periods=6, freq='2D'), check_names=False)
def test_simular_grupo_combin(símismo): mod = ModeloPrueba() ops = OpsSimulGrupoCombin([5, 6], extern=[{ 'Escala': 1 }, { 'Escala': 2 }]) res = mod.simular_grupo(ops) símismo.assertEqual(len(res), 4)
def test_simular_grupo_con_lista_nombres(símismo): mod = ModeloPrueba() nombres = ['corrida 1', 'corrida 2'] ops = OpsSimulGrupo(5, extern=[{ 'Escala': 1 }, { 'Escala': 2 }], nombre=nombres) res = mod.simular_grupo(ops) símismo.assertSetEqual(set(nombres), set(res))
def test_anual(símismo): mod = ModeloPrueba(unid_tiempo='año') mod.conectar_var_clima('Vacío', 'بارش', conv=1, combin='total') res = mod.simular(EspecTiempo(2, f_inic=símismo.fechas[0]), clima=símismo.clima, vars_interés='Vacío') ref = np.array([ np.sum(x) for x in [ símismo.lluvia[:366], símismo.lluvia[366:366 + 365], símismo.lluvia[366 + 365:366 + 365 + 365] ] ]) npt.assert_equal(res['Vacío'].vals[:, 0], ref)
def _simul_con_extern(extern, ref, var_ref='Vacío', fecha=True): f_inic = '2000-01-01' if fecha else None res = ModeloPrueba(unid_tiempo='días').simular(t=EspecTiempo( 10, f_inic=f_inic), extern=extern) npt.assert_equal(res[var_ref].vals.values.reshape(np.array(ref).shape), ref)
def test_mapa_de_simul(símismo): frm = mapa.FormaDinámicaNumérica(arch_frm_numérica, col_id='Id') extern = {'Vacío': np.arange(len(frm.ids))} res = ModeloPrueba(dims=(215, )).simular(t=10, extern=extern) mapa.dibujar_mapa_de_res(forma_dinámica=frm, res=res, var='Vacío', t=3, directorio=símismo.dir_)
def test_mensual(símismo): mod = ModeloPrueba(unid_tiempo='mes') mod.conectar_var_clima('Vacío', 'بارش', conv=1, combin='suma') res = mod.simular(EspecTiempo(2, f_inic=símismo.fechas[0]), clima=símismo.clima, vars_interés='Vacío') ref = np.array([ np.sum(x) for x in [ símismo.lluvia[:31], símismo.lluvia[31:31 + 29], símismo.lluvia[31 + 29:31 + 29 + 31] ] ]) npt.assert_equal(res['Vacío'].vals[:, 0], ref)
def test_mapa_de_simul_grupo(símismo): ops = OpsSimulGrupo(t=3, extern=[{ 'Vacío': 1 }, { 'Vacío': 3 }], nombre=['701', '101']) res = ModeloPrueba().simular_grupo(ops) frm = mapa.FormaDinámicaNombrada(arch_frm_nombrada, col_id='COD_MUNI') mapa.dibujar_mapa_de_res(forma_dinámica=frm, res=res, var='Vacío', t=3, directorio=símismo.dir_)
def test_simular_t_fecha(símismo): mod = ModeloPrueba(unid_tiempo='días') res = mod.simular(t=EspecTiempo(10, '2001-01-01'))['Escala'] pdt.assert_index_equal(res.vals.indexes[_('fecha')], pd.date_range('2001-01-01', periods=11), check_names=False)
def test_simular_paralelo(símismo): mod = ModeloPrueba() ops = OpsSimulGrupoCombin(5, extern=[{'Escala': 1}, {'Escala': 2}]) sin_paralelo = mod.simular_grupo(ops) con_paralelo = mod.simular_grupo(ops, paralelo=True) símismo.assertEqual(sin_paralelo, con_paralelo)
def test_t_numérico_extern_fecha(símismo): extern = pd.DataFrame(data={'Vacío': np.arange(4)}, index=pd.date_range('2000-01-02', '2000-01-05')) with símismo.assertRaises(TypeError): ModeloPrueba(unid_tiempo='días').simular(t=EspecTiempo(10), extern=extern)
def test_simular_t_int(símismo): mod = ModeloPrueba() res = mod.simular(t=10)['Escala'] npt.assert_equal(res.vals, np.arange(11).reshape((11, 1)))
def test_guardar_cada(símismo): mod = ModeloPrueba() res = mod.simular(t=EspecTiempo(10, guardar_cada=2))['Escala'] npt.assert_equal(res.vals, np.arange(11, step=2).reshape((6, 1))) npt.assert_equal(res.t.eje(), np.arange(11, step=2))
def test_paso_inválido(símismo): mod = ModeloPrueba() with símismo.assertRaises(ValueError): mod.simular(EspecTiempo(100, tmñ_paso=0))
def test_paso(símismo): mod = ModeloPrueba() res = mod.simular(t=EspecTiempo(10, tmñ_paso=2))['Escala'] npt.assert_equal(res.vals, np.arange(21, step=2).reshape((11, 1))) npt.assert_equal(res.vals.indexes[_('fecha')], np.arange(21, step=2))