Esempio n. 1
0
    def test_load_with_calculated_and_same_calculated_variable_transformed(
            self):
        self.create_csv()

        # Try with plain calculated variable first
        all_cols = self.create_columns()
        a, b, c = self.create_variables()
        tran = self.get_transform('cell')
        d = Variable('d', 'D', calculation=a + b, available_transforms=[tran])
        load_vars = [a, b, c, d, d.add_one_cell()]
        ds = self.create_source(df=None,
                                columns=all_cols,
                                load_variables=load_vars)
        assert_frame_equal(
            ds.df,
            self.expect_loaded_df_with_calculated_and_calculated_transformed)

        # Now try with plain calculated variable second
        all_cols = self.create_columns()
        a, b, c = self.create_variables()
        tran = self.get_transform('cell')
        d = Variable('d', 'D', calculation=a + b, available_transforms=[tran])
        load_vars = [
            a,
            b,
            c,
            d.add_one_cell(),
            d,
        ]
        ds = self.create_source(df=None,
                                columns=all_cols,
                                load_variables=load_vars)
        assert_frame_equal(
            ds.df,
            self.expect_loaded_df_with_calculated_transformed_and_calculated)
Esempio n. 2
0
    def create_variables(self,
                         transform_data: str = '',
                         apply_transforms: bool = True
                         ) -> Tuple[Variable, Variable, Variable]:
        transform_dict = self.get_transform_dict(
            transform_data=transform_data, apply_transforms=apply_transforms)

        a = Variable('a', 'A', dtype='int', **transform_dict)
        b = Variable('b', 'B', dtype='int', **transform_dict)
        c = Variable('c', 'C', dtype='str')
        return a, b, c
Esempio n. 3
0
 def test_load_with_calculated_variable(self):
     self.create_csv()
     all_cols = self.create_columns()
     a, b, c = self.create_variables()
     d = Variable('d', 'D', calculation=a + b)
     ds = self.create_source(df=None,
                             columns=all_cols,
                             load_variables=[a, b, c, d])
     assert_frame_equal(ds.df, self.expect_loaded_df_with_calculated)
Esempio n. 4
0
 def test_load_with_calculated_transformed_variable(self):
     self.create_csv()
     all_cols = self.create_columns()
     a, b, c = self.create_variables()
     tran = self.get_transform('cell')
     d = Variable('d', 'D', calculation=a + b, available_transforms=[tran])
     ds = self.create_source(df=None,
                             columns=all_cols,
                             load_variables=[a, b, c,
                                             d.add_one_cell()])
     assert_frame_equal(ds.df,
                        self.expect_loaded_df_with_calculated_transformed)
Esempio n. 5
0
 def test_load_with_calculated_variable_from_func(self):
     self.create_csv()
     all_cols = self.create_columns()
     a, b, c = self.create_variables()
     expr = Expression([a, b],
                       func=expression_series_func,
                       summary='Add em up')
     d = Variable('d', 'D', calculation=expr)
     ds = self.create_source(df=None,
                             columns=all_cols,
                             load_variables=[a, b, c, d])
     assert_frame_equal(ds.df, self.expect_loaded_df_with_calculated)
Esempio n. 6
0
 def test_load_with_calculate_on_transformed_before_transform(self):
     self.create_csv()
     all_cols = self.create_columns()
     a, b, c = self.create_variables(transform_data='cell',
                                     apply_transforms=False)
     d = Variable('d', 'D', calculation=a + b)
     ds = self.create_source(
         df=None,
         columns=all_cols,
         load_variables=[a.add_one_cell(),
                         b.add_one_cell(), c, d])
     assert_frame_equal(
         ds.df, self.
         expect_loaded_df_with_calculate_on_transformed_before_transform)
Esempio n. 7
0
    def test_load_with_datetime(self):
        test_df = self.test_df.copy()
        test_df['d'] = pd.to_datetime('1/1/2000')
        self.create_csv(df=test_df)

        expect_df = self.expect_loaded_df_rename_only.copy()
        expect_df['Date'] = pd.to_datetime('1/1/2000')

        date_var = Variable('Date', dtype='datetime')
        date_col = Column(date_var, 'd')
        all_cols = self.create_columns()
        all_cols.append(date_col)

        ds = self.create_source(df=None, columns=all_cols)
        assert_frame_equal(ds.df, expect_df)
Esempio n. 8
0
 def create_variables(self, **kwargs) -> Tuple[Variable, Variable]:
     config_dict = dict()
     config_dict.update(**kwargs)
     v = Variable(*VAR1_ARGS, **config_dict)
     v2 = Variable(*VAR2_ARGS, **config_dict)
     return v, v2