Exemplo n.º 1
0
    def test_acceptance_columnsTypes_int(self):
        # Log to file
        self.logger.debug("\n\n### Test Acceptance Columns Int Type\n")
        # Seleziono le colonne dalle info del DB
        default_cols_int = {
            i: col
            for i, col in self.default_columns_type.items()
            if 'int' in str(col)
        }
        test_columns_types = dict()
        cast_result = dict()
        # seleziono le colonne tipo int
        for num_col in default_cols_int.keys():
            selected_cols_df = self.anagrafica.df.iloc[:, num_col].to_frame()
            # casting
            try:
                col_casted = selected_cols_df.fillna(0).astype('int32')
                cast_result[num_col] = True
            except:
                cast_result[num_col] = False
                col_casted = selected_cols_df
            test_columns_types[num_col] = getColumnsTypes(
                col_casted).popitem()[1]

        # LOG
        super().logDifferences_types(self.anagrafica.df, cast_result)

        self.assertEqual(
            test_columns_types, default_cols_int,
            "Selected columns [26, 28] must be np.dtype('int32')")
Exemplo n.º 2
0
 def test_acceptance_columnsTypes_obj(self):
     # Log to file
     self.logger.debug("\n\n### Test Acceptance Columns Object Type\n")
     # Seleziono le colonne dalle info del DB
     default_cols_obj = {
         i: col
         for i, col in self.default_columns_type.items()
         if 'obj' in str(col)
     }
     # seleziono le colonne tipo object
     selected_cols_df = self.anagrafica.df.iloc[:,
                                                list(default_cols_obj.keys(
                                                ))]
     test_columns_types = dict()
     cast_result = dict()
     for num_col in default_cols_obj.keys():
         selected_cols_df = self.anagrafica.df.iloc[:, num_col].to_frame()
         # casting
         try:
             col_casted = selected_cols_df.astype('object')
             cast_result[num_col] = True
         except:
             cast_result[num_col] = False
             col_casted = selected_cols_df
         test_columns_types[num_col] = getColumnsTypes(
             col_casted).popitem()[1]
     # LOG
     super().logDifferences_types(self.anagrafica.df, cast_result)
     self.assertEqual(test_columns_types, default_cols_obj,
                      "Selected columns must be np.dtype('object')")
Exemplo n.º 3
0
    def test_getColumnsTypes_right(self):
        datetimes = [
            datetime(2019, 9, 30),
            datetime(2020, 2, 29),
            datetime(2018, 8, 30)
        ]
        test_data = {
            'col0': ['casa', '000342', 'abcABC0123lk#'],
            'col1': [0, 123, 9999999],
            'col2': [0.2, 0.0002, 123.456],
            'col3': [
                np.datetime64(datetimes[0]),
                np.datetime64(datetimes[1]),
                np.datetime64(datetimes[2])
            ]
        }
        test_df = pd.DataFrame(test_data)

        self.assertDictEqual(
            getColumnsTypes(test_df),
            {
                0: np.dtype('O'),  # object type
                1: np.dtype('int64'),  # signed integer
                2: np.dtype('float64'),  # float
                3: np.dtype('<M8[ns]')  # datetime
            },
            "Error test getColumnsTypes")