Ejemplo n.º 1
0
    def setUpClass(cls):
        dic_datos = {
            'lugar': [708, 708, 7, 7, 7, 701],
            'fecha': ['2000', '2002', '2000', '2002', '2003', '1990'],
            'var_completo': [1, 2, 2, 3, 4, 0],
            'var_incompleto': ['', 10, 20, '', 30, 15],
            'temp': [1, 1, 1, 1, 1, 1]
        }

        cls.bds = {
            'pandas':
            MicroDatos('Pandas', pd.DataFrame(dic_datos)),
            'csv':
            MicroDatos('CSV', arch_microdatos),
            'dic':
            MicroDatos('Dic', dic_datos),
            'dic_anidado':
            MicroDatos(
                'Dic Anidado', {
                    '708': {
                        'fecha': ['2000', '2002'],
                        'var_completo': [1, 2],
                        'var_incompleto': ['', 10],
                        'temp': [1, 1]
                    },
                    '7': {
                        'fecha': ['2000', '2002', '2003'],
                        'var_completo': [2, 3, 4],
                        'var_incompleto': [20, '', 30],
                        'temp': [1, 1, 1]
                    },
                    '701': {
                        'fecha': ['1990'],
                        'var_completo': [0],
                        'var_incompleto': [15],
                        'temp': [1]
                    }
                }),
            'xarray':
            MicroDatos('Xarray',
                       xr.Dataset({
                           'var_completo': ('n', dic_datos['var_completo']),
                           'var_incompleto':
                           ('n', dic_datos['var_incompleto']),
                           'fecha': ('n', dic_datos['fecha']),
                           'lugar': ('n', dic_datos['lugar'])
                       }),
                       tiempo='fecha',
                       lugar='lugar')
        }
Ejemplo n.º 2
0
 def test_desconectar_datos(símismo):
     bd_temp = MicroDatos(nombre='temp',
                          fuente=arch_microdatos,
                          tiempo='fecha',
                          lugar='lugar')
     símismo.bd.conectar_datos(bd=bd_temp)
     símismo.bd.desconectar_datos(bd=bd_temp)
     símismo.assertNotIn(bd_temp.nombre, símismo.bd.bds)
Ejemplo n.º 3
0
 def test_fechas_columna(símismo):
     fechas = ['1947-8-14', '1947-8-15']
     bd = MicroDatos('prueba',
                     pd.DataFrame({
                         'a': [1, 2],
                         'f': fechas
                     }),
                     tiempo='f')
     lista_fechas_igual(bd.obt_datos('a')['tiempo'].values, fechas)
Ejemplo n.º 4
0
 def test_lugares_columna(símismo):
     lugar = ['1', '2']
     bd = MicroDatos('prueba',
                     pd.DataFrame({
                         'a': [1, 2],
                         'l': lugar
                     }),
                     lugar='l')
     lugares_bd = bd.obt_datos('a').lugar.values.tolist()
     símismo.assertListEqual(lugares_bd, lugar)
Ejemplo n.º 5
0
    def setUpClass(cls):
        n_obs = 50
        datos_x = np.random.rand(n_obs)

        datos_y = cls.paráms['a'] * datos_x + cls.paráms['b'] + np.random.normal(0, 0.1, n_obs)
        bd_pds = pd.DataFrame({'y': datos_y, 'x': datos_x})
        bd_datos = MicroDatos('Datos Generados', bd_pds)

        cls.bd_datos = SuperBD(nombre='BD Principal', bds=bd_datos)
        cls.bd_datos.espec_var('x')
        cls.bd_datos.espec_var('y')
Ejemplo n.º 6
0
    def setUpClass(cls):
        bd_región = Datos(nombre='prueba regional',
                          fuente=arch_reg,
                          tiempo='fecha',
                          lugar='lugar')
        bd_indiv = MicroDatos(nombre='prueba individual',
                              fuente=arch_microdatos,
                              tiempo='fecha',
                              lugar='lugar')
        cls.bd = SuperBD(nombre='BD Central',
                         bds=[bd_región, bd_indiv],
                         auto_conectar=True)

        cls.bd.espec_var(var='completo', var_bd='var_completo')
        cls.bd.espec_var(var='incompleto', var_bd='var_incompleto')
Ejemplo n.º 7
0
    def setUpClass(cls):
        n_obs = {'701': 500, '708': 50, '1001': 500}
        datos_x = {lg: np.random.rand(n) for lg, n in n_obs.items()}
        datos_y = {lg: datos_x[lg] * d['Factor a'] + d['Factor b'] + np.random.normal(0, 0.1, n_obs[lg])
                   for lg, d in cls.paráms.items()}  # y = a*x + b
        lugares = [x for ll, v in datos_x.items() for x in [ll] * v.size]
        x = [i for v in datos_x.values() for i in v]
        y = [i for v in datos_y.values() for i in v]
        bd_pds = MicroDatos('Datos geográficos', pd.DataFrame({'lugar': lugares, 'x': x, 'y': y}),
                            lugar='lugar')

        cls.geog = Geografía('Geografía Iximulew', arch_csv_geog)
        cls.bd = SuperBD('BD Central', bd_pds)

        cls.mod = ModeloPySD(arch_mds)
Ejemplo n.º 8
0
 def test_obt_datos_código_vacío(símismo):
     bd = MicroDatos('prueba',
                     pd.DataFrame({'a': [1, 2, 'jaja']}),
                     cód_vacío='jaja')
     npt.assert_array_equal(bd.obt_datos('a')['a'], [1, 2, np.nan])
Ejemplo n.º 9
0
 def test_lugares_texto(símismo):
     bd = MicroDatos('prueba', pd.DataFrame({'a': [1, 2]}), lugar='708')
     lugares_bd = bd.obt_datos('a').lugar.values.tolist()
     símismo.assertListEqual(lugares_bd, ['708'] * 2)
Ejemplo n.º 10
0
 def test_fechas_error(símismo):
     with símismo.assertRaises(ValueError):
         MicroDatos('pueba',
                    pd.DataFrame({'a': [1, 2]}),
                    tiempo='No soy una columna')
Ejemplo n.º 11
0
 def test_fecha_texto(símismo):
     fecha = '1966-7-21'
     bd = MicroDatos('prueba', pd.DataFrame({'a': [1, 2]}), tiempo=fecha)
     lista_fechas_igual(bd.obt_datos('a')['tiempo'].values, [fecha] * 2)
Ejemplo n.º 12
0
 def test_fechas_ft(símismo):
     fecha = ft.date(1966, 1, 1)
     bd = MicroDatos('prueba', pd.DataFrame({'a': [1, 2]}), tiempo=fecha)
     lista_fechas_igual(bd.obt_datos('a')['tiempo'].values, [fecha] * 2)
Ejemplo n.º 13
0
 def test_fechas_texto_año(símismo):
     bd = MicroDatos('prueba', pd.DataFrame({'a': [1, 2]}), tiempo='1966')
     lista_fechas_igual(
         bd.obt_datos('a')['tiempo'].values, [ft.date(1966, 1, 1)] * 2)