def test_reform_choice(): c = cr.Cruncher(inputs="tests/test_adjustment_noreform.json", custom_reform="tests/test_reform.json") assert isinstance(c, cr.Cruncher) with pytest.raises(AttributeError): cr.Cruncher(inputs="tests/test_adjustment.json", custom_reform="tests/test_reform.json")
def read_input(self): """ Reads csv input file Returns self.invar: Tax-Calculator style dataframe of inputs self.rows: number of rows of input file """ ivar = pd.read_csv(self.path, delim_whitespace=True, header=None) # translate INPUT variables into OUTPUT variables c = cr.Cruncher() self.invar = c.translate(ivar) self.rows = len(self.invar.index) return self.invar, self.rows
def read_input(self): """ Reads csv input file Returns self.invar: Tax-Calculator style dataframe of inputs self.rows: number of rows of input file """ if isinstance(self.path, pd.DataFrame): ivar = self.path else: ivar = pd.read_csv(self.path, sep=",", engine="python", header=None) # check that input CSV has 28 columns assert len(ivar.columns) == 28 # check that year is the same across all rows assert ivar[1].max() == ivar[1].min() rows = len(ivar) params = BatchParams() # validate input params.adjust(ivar) array = np.empty((0, rows)) for label in params._data: array = np.append(array, [params._data[label]["value"][0]["value"]], axis=0) params_df = pd.DataFrame(array).transpose() params_marg = params_df.copy() params_marg.loc[:, 9] = params_marg.loc[:, 9] + FINITE_DIFF # translate INPUT variables into OUTPUT variables c = cr.Cruncher() self.invar = c.translate(params_df) self.invar_marg = c.translate(params_marg) self.rows = len(self.invar.index) return self.invar, self.invar_marg, self.rows
def read_input(self): """ Reads csv input file Returns self.invar: Tax-Calculator style dataframe of inputs self.rows: number of rows of input file """ CURRENT_PATH = os.path.abspath(os.path.dirname(__file__)) if isinstance(self.path, pd.DataFrame): ivar = self.path else: input_file = os.path.join(CURRENT_PATH, self.path) ivar = pd.read_csv(input_file, sep=',', engine="python", header=None) # check that input CSV has 24 columns assert len(ivar.columns) == 24 # check that year is the same across all rows assert ivar[1].max() == ivar[1].min() rows = len(ivar) params = BatchParams() # validate input params.adjust(ivar) array = np.empty((0, rows)) for label in params._data: array = np.append(array, [params._data[label]['value'][0]['value']], axis=0) params_df = pd.DataFrame(array).transpose() # translate INPUT variables into OUTPUT variables c = cr.Cruncher() self.invar = c.translate(params_df) self.rows = len(self.invar.index) return self.invar, self.rows
def read_input(self): """ Reads csv input file Returns self.invar: Tax-Calculator style dataframe of inputs self.rows: number of rows of input file """ CURRENT_PATH = os.path.abspath(os.path.dirname(__file__)) if isinstance(self.path, pd.DataFrame): ivar = self.path else: input_file = os.path.join(CURRENT_PATH, self.path) ivar = pd.read_csv(input_file, sep=',', engine="python", header=None) # translate INPUT variables into OUTPUT variables c = cr.Cruncher() self.invar = c.translate(ivar) self.rows = len(self.invar.index) return self.invar, self.rows
def test_reform_choice(): c = cr.Cruncher(inputs=no_reform_path, custom_reform=reform_path) assert isinstance(c, cr.Cruncher) with pytest.raises(AttributeError): cr.Cruncher(inputs=input_path, custom_reform=reform_path)
def test_baseline_choice(): c = cr.Cruncher(baseline=reform_path) assert isinstance(c, cr.Cruncher)
def test_baseline_choice(): c = cr.Cruncher(baseline="tests/test_reform.json") assert isinstance(c, cr.Cruncher)
def create_data(): c = cr.Cruncher(inputs="tests/test_adjustment.json") return c
def cr_data(): return cr.Cruncher(inputs=input_path)
def test_baseline_choice(): c = cr.Cruncher(baseline="tests/test_reform.json") assert isinstance(c, cr.Cruncher) with pytest.raises(AttributeError): cr.Cruncher(baseline="tests/fake_file.json")