示例#1
0
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")
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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
示例#6
0
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)
示例#7
0
def test_baseline_choice():
    c = cr.Cruncher(baseline=reform_path)
    assert isinstance(c, cr.Cruncher)
示例#8
0
def test_baseline_choice():
    c = cr.Cruncher(baseline="tests/test_reform.json")
    assert isinstance(c, cr.Cruncher)
示例#9
0
def create_data():
    c = cr.Cruncher(inputs="tests/test_adjustment.json")
    return c
示例#10
0
def cr_data():
    return cr.Cruncher(inputs=input_path)
示例#11
0
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")