def get_tax_free_series(self) -> pd.Series: """ Return a datafarme of the amount of w2 that can be earned without paying taxes """ mod = self.get_household_modifier_df() credits = mod[list(self._credits)].sum(axis=1) income = tax_to_income(credits, self._tax_df) return income + self._std_ser
def test_highest_bracket(self, married_income_tax_df): """Ensure the highest bracket works too.""" income = 1_000_000_000_000_000_000 ser = pd.Series([income], index=[2020]) out = tax_to_income(ser, married_income_tax_df) assert isinstance(out, pd.Series) # the value should approximate the highest bracket df = married_income_tax_df max_tax = df[df['year'] == 2020]['tax_percent'].max() / 100. assert np.isclose(out.values[0], income / max_tax)
def _get_tax_free_gains(self) -> pd.Series: """return a series of tax free capital gains.""" ser = pd.Series(np.zeros(len(self.years)), index=self.years) gains = tax_to_income(ser, self._captial_gains_df) return gains
def test_zero(self, married_income_tax_df): """Ensure zero returns zero""" ser = pd.Series([0], index=[2020]) out = tax_to_income(ser, married_income_tax_df) assert (out == 0).all()
def test_lowest_bracket(self, married_income_tax_df): """ensure the lowest bracket works as well.""" ser = pd.Series([10], index=[2020]) out = tax_to_income(ser, married_income_tax_df) assert (out == 100).all()
def test_basic(self, married_income_tax_df): """Test getting basic tax to income.""" ser = pd.Series([4000], index=[2020]) out = tax_to_income(ser, married_income_tax_df) breakpoint() assert ((out < 40_000) & (out > 30_000)).all()