def test_run_through(): years = [2006, 2007, 2008, 2009, 2010, 2011] df = get_denombrements_fiscaux_data_frame(years=years) index_by_variable_name = create_index_by_variable_name( formula_by_variable_name, level_2_formula_by_variable_name) variable_name = 'interets_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years=years) variable_name = 'dividendes_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years=years) variable_name = 'revenus_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years=years, fill_value=0) variable_name = 'assurances_vie_imposees_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years=years) variable_name = 'f2da' get_or_construct_value(df, variable_name, index_by_variable_name, years=years) variable_name = u'f5he' get_or_construct_value(df, variable_name, index_by_variable_name, years=range(2010, 2012)) variable_name = u'f5jr' get_or_construct_value(df, variable_name, index_by_variable_name, years=range(2007, 2012), fill_value=0) variable_name = 'plus_values_professionnelles_regime_normal' get_or_construct_value(df, variable_name, index_by_variable_name, years=range(2007, 2012), fill_value=0)
def test_run_through(): years = [2006, 2007, 2008, 2009, 2010, 2011] df = get_denombrements_fiscaux_data_frame(years = years) index_by_variable_name = create_index_by_variable_name(formula_by_variable_name, level_2_formula_by_variable_name) variable_name = 'interets_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years = years) variable_name = 'dividendes_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years = years) variable_name = 'revenus_imposes_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years = years, fill_value = 0) variable_name = 'assurances_vie_imposees_au_prelevement_liberatoire' get_or_construct_value(df, variable_name, index_by_variable_name, years = years) variable_name = 'f2da' get_or_construct_value(df, variable_name, index_by_variable_name, years = years) variable_name = u'f5he' get_or_construct_value(df, variable_name, index_by_variable_name, years = range(2010, 2012)) variable_name = u'f5jr' get_or_construct_value(df, variable_name, index_by_variable_name, years = range(2007, 2012), fill_value = 0) variable_name = 'plus_values_professionnelles_regime_normal' get_or_construct_value(df, variable_name, index_by_variable_name, years = range(2007, 2012), fill_value = 0)
def test_corrections(): years = range(2006, 2013) df = get_denombrements_fiscaux_data_frame(years=years) index_by_variable_name = create_index_by_variable_name( formula_by_variable_name, level_2_formula_by_variable_name) test_by_variable = dict( # Correction of f5io in 2008 in Agrégats IPP benefices_agricoles_forfait_imposables=[ { 'year': 2006, 'target': 896512850 }, { 'year': 2008, 'target': 883970587 }, ], benefices_agricoles_reels_imposables=[ { 'year': 2006, 'target': 5150417953 }, { 'year': 2008, 'target': 6515953706 }, ], benefices_agricoles_reels_imposables_sans_cga=[ { 'year': 2006, 'target': 165830038 }, ], benefices_agricoles_reels_deficits=[ { 'year': 2006, 'target': 519217942 }, ], benefices_agricoles_reels_sans_cga_deficits=[ { 'year': 2006, 'target': 208934263 }, ], deficits_industriels_commerciaux_professionnels=[ { 'year': 2006, 'target': 1427052021 }, ], deficits_industriels_commerciaux_non_professionnels=[ { 'year': 2006, 'target': 301194784 }, ], plus_values_mobilieres_stock_options=[ { 'year': 2008, 'target': 228873359 }, # {'year': 2010, 'target': 690459289}, TODO: check dénombremenst DGFIP vs IPP ], revenus_imposes_au_bareme=[ { 'year': 2010, 'target': 18907148239 }, ], plus_values_mobilieres_regime_normal=[ { 'year': 2010, 'target': 5393808406 }, ], plus_values_professionnelles_regime_normal=[ { 'year': 2011, 'target': 1101248065 }, { 'year': 2010, 'target': 1083102431 }, ], # Inversion 2ch et 2gr dans dénombrements fiscax (Agrégats IPP et en ligne) assurances_vie_imposees_au_bareme=[ { 'year': 2009, 'target': 1063726777 }, ], # Test revenus exonérés benefices_agricoles_forfait_exoneres=[ { 'year': 2011, 'target': (5826752 + 466632 + 467) }, ], benefices_agricoles_reels_exoneres=[ { 'year': 2011, 'target': (64880784 + 15074222 + 3733) }, ], benefices_agricoles_reels_exoneres_sans_cga=[ { 'year': 2011, 'target': (10214497 + 2275427 + 171787) }, ], ) def assert_value_construction(variable_name, test): year = test['year'] target = test['target'] value = get_or_construct_value(df, variable_name, index_by_variable_name, years=years, fill_value=0)[0].loc[year] if year >= 2009: assert all( value == target), "{} for {}: got {} instead of {}".format( variable_name, year, value.values, target) for variable_name, tests in test_by_variable.iteritems(): for test in tests: yield assert_value_construction, variable_name, test
def build_irpp_tables(years=None, fill_value=numpy.NaN): assert years is not None assert isinstance(years, list) raw_data = get_denombrements_fiscaux_data_frame(years=years, fill_value=0) aggregates = build_aggregates( raw_data, formula_by_variable_name, level_2_formula_by_variable_name=level_2_formula_by_variable_name, years=years, fill_value=fill_value, ) data_frame_by_irpp_table_name = collections.OrderedDict([ # 1. Tableau IRPP1: Les revenus figurant dans les déclarations de revenus ( 'irpp_1', aggregates[[ 'salaires', 'salaires_imposables', 'heures_supplementaires', # TODO 'revenus_d_activite_non_salariee', 'benefices_agricoles', 'benefices_industriels_commerciaux', 'benefices_non_commerciaux', 'revenus_activite_non_salariee_exoneres', 'revenus_de_remplacement', 'pensions_de_retraite', 'allocations_chomage', 'revenus_fonciers', 'revenus_fonciers_regime_normal', 'revenus_fonciers_micro_foncier', 'revenus_financiers', 'frais_reels', 'pensions_alimentaires_percues', ]]), # 2. Tableau IRPP2: Détails des revenus financiers (intérêts, dividendes, plus-values) figurant dans les # déclations de revenus (imposition au barème, imposition au prélèvement forfaitaire libératoire (PL) et # plus-values) ('irpp_2', aggregates[[ 'revenus_imposes_au_bareme', 'dividendes_imposes_au_bareme', 'interet_imposes_au_bareme', 'assurances_vie_imposees_au_bareme', 'revenus_imposes_au_prelevement_liberatoire', 'dividendes_imposes_au_prelevement_liberatoire', 'interets_imposes_au_prelevement_liberatoire', 'assurances_vie_imposees_au_prelevement_liberatoire', 'plus_values', 'revenus_financiers', 'revenus_financiers_hors_plus_values' ]]), # 3. Tableau IRPP3: Plus-values mobilières et professionnelles ('irpp_3', aggregates[[ 'plus_values', 'plus_values_mobilieres', 'plus_values_mobilieres_regime_normal', 'plus_values_mobilieres_stock_options', 'plus_values_mobilieres_retraite_dirigeant', 'plus_values_professionnelles', 'plus_values_professionnelles_regime_normal', 'plus_values_professionnelles_retraite_dirigeant', ]]), ( 'irpp_4', aggregates[[ 'revenus_d_activite_non_salariee', 'benefices_agricoles', 'benefices_agricoles_bruts', 'deficits_agricoles', 'benefices_industriels_commerciaux', 'benefices_industriels_commerciaux_bruts', 'deficits_industriels_commerciaux', # 'bnc', 'revenus_activite_non_salariee_exoneres', ]]), # ('irpp_5_a', aggregates[[ # 'benefices_agricoles', # 'benefices_agricoles_forfait_exoneres', # 'benefices_agricoles_forfait_imposables', # 'benefices_agricoles_reels_exoneres', # 'benefices_agricoles_reels_imposables', # 'benefices_agricoles_reels_deficits', # 'benefices_agricoles_reels_exoneres_sans_cga', # 'benefices_agricoles_reels_imposables_sans_cga', # 'benefices_agricoles_reels_sans_cga_deficits', # ]]) ]) return data_frame_by_irpp_table_name
def test_corrections(): years = range(2006, 2013) df = get_denombrements_fiscaux_data_frame(years = years) index_by_variable_name = create_index_by_variable_name(formula_by_variable_name, level_2_formula_by_variable_name) test_by_variable = dict( # Correction of f5io in 2008 in Agrégats IPP benefices_agricoles_forfait_imposables = [ {'year': 2006, 'target': 896512850}, {'year': 2008, 'target': 883970587}, ], benefices_agricoles_reels_imposables = [ {'year': 2006, 'target': 5150417953}, {'year': 2008, 'target': 6515953706}, ], benefices_agricoles_reels_imposables_sans_cga = [ {'year': 2006, 'target': 165830038}, ], benefices_agricoles_reels_deficits = [ {'year': 2006, 'target': 519217942}, ], benefices_agricoles_reels_sans_cga_deficits = [ {'year': 2006, 'target': 208934263}, ], deficits_industriels_commerciaux_professionnels = [ {'year': 2006, 'target': 1427052021}, ], deficits_industriels_commerciaux_non_professionnels = [ {'year': 2006, 'target': 301194784}, ], plus_values_mobilieres_stock_options = [ {'year': 2008, 'target': 228873359}, # {'year': 2010, 'target': 690459289}, TODO: check dénombremenst DGFIP vs IPP ], revenus_imposes_au_bareme = [ {'year': 2010, 'target': 18907148239}, ], plus_values_mobilieres_regime_normal = [ {'year': 2010, 'target': 5393808406}, ], plus_values_professionnelles_regime_normal = [ {'year': 2011, 'target': 1101248065}, {'year': 2010, 'target': 1083102431}, ], # Inversion 2ch et 2gr dans dénombrements fiscax (Agrégats IPP et en ligne) assurances_vie_imposees_au_bareme = [ {'year': 2009, 'target': 1063726777}, ], # Test revenus exonérés benefices_agricoles_forfait_exoneres = [ {'year': 2011, 'target': (5826752 + 466632 + 467)}, ], benefices_agricoles_reels_exoneres = [ {'year': 2011, 'target': (64880784 + 15074222 + 3733)}, ], benefices_agricoles_reels_exoneres_sans_cga = [ {'year': 2011, 'target': (10214497 + 2275427 + 171787)}, ], ) def assert_value_construction(variable_name, test): year = test['year'] target = test['target'] value = get_or_construct_value( df, variable_name, index_by_variable_name, years = years, fill_value = 0)[0].loc[year] if year >= 2009: assert all(value == target), "{} for {}: got {} instead of {}".format( variable_name, year, value.values, target) for variable_name, tests in test_by_variable.iteritems(): for test in tests: yield assert_value_construction, variable_name, test
def build_irpp_tables(years = None, fill_value = numpy.NaN): assert years is not None assert isinstance(years, list) raw_data = get_denombrements_fiscaux_data_frame(years = years, fill_value = 0) aggregates = build_aggregates( raw_data, formula_by_variable_name, level_2_formula_by_variable_name = level_2_formula_by_variable_name, years = years, fill_value = fill_value, ) data_frame_by_irpp_table_name = collections.OrderedDict([ # 1. Tableau IRPP1: Les revenus figurant dans les déclarations de revenus ('irpp_1', aggregates[[ 'salaires', 'salaires_imposables', 'heures_supplementaires', # TODO 'revenus_d_activite_non_salariee', 'benefices_agricoles', 'benefices_industriels_commerciaux', 'benefices_non_commerciaux', 'revenus_activite_non_salariee_exoneres', 'revenus_de_remplacement', 'pensions_de_retraite', 'allocations_chomage', 'revenus_fonciers', 'revenus_fonciers_regime_normal', 'revenus_fonciers_micro_foncier', 'revenus_financiers', 'frais_reels', 'pensions_alimentaires_percues', ]]), # 2. Tableau IRPP2: Détails des revenus financiers (intérêts, dividendes, plus-values) figurant dans les # déclations de revenus (imposition au barème, imposition au prélèvement forfaitaire libératoire (PL) et # plus-values) ('irpp_2', aggregates[[ 'revenus_imposes_au_bareme', 'dividendes_imposes_au_bareme', 'interet_imposes_au_bareme', 'assurances_vie_imposees_au_bareme', 'revenus_imposes_au_prelevement_liberatoire', 'dividendes_imposes_au_prelevement_liberatoire', 'interets_imposes_au_prelevement_liberatoire', 'assurances_vie_imposees_au_prelevement_liberatoire', 'plus_values', 'revenus_financiers', 'revenus_financiers_hors_plus_values' ]]), # 3. Tableau IRPP3: Plus-values mobilières et professionnelles ('irpp_3', aggregates[[ 'plus_values', 'plus_values_mobilieres', 'plus_values_mobilieres_regime_normal', 'plus_values_mobilieres_stock_options', 'plus_values_mobilieres_retraite_dirigeant', 'plus_values_professionnelles', 'plus_values_professionnelles_regime_normal', 'plus_values_professionnelles_retraite_dirigeant', ]]), ('irpp_4', aggregates[[ 'revenus_d_activite_non_salariee', 'benefices_agricoles', 'benefices_agricoles_bruts', 'deficits_agricoles', 'benefices_industriels_commerciaux', 'benefices_industriels_commerciaux_bruts', 'deficits_industriels_commerciaux', # 'bnc', 'revenus_activite_non_salariee_exoneres', ]]), # ('irpp_5_a', aggregates[[ # 'benefices_agricoles', # 'benefices_agricoles_forfait_exoneres', # 'benefices_agricoles_forfait_imposables', # 'benefices_agricoles_reels_exoneres', # 'benefices_agricoles_reels_imposables', # 'benefices_agricoles_reels_deficits', # 'benefices_agricoles_reels_exoneres_sans_cga', # 'benefices_agricoles_reels_imposables_sans_cga', # 'benefices_agricoles_reels_sans_cga_deficits', # ]]) ]) return data_frame_by_irpp_table_name