def test_case_study(year = 2013, verbose = False): ''' Tests that _salbrut which computes "salaire brut" from "imposable" yields an amount compatbe with the one obtained from running openfisca satrting with a "salaire brut" ''' for type_sal_category in ['prive_non_cadre', 'prive_cadre']: # , 'public_titulaire_etat']: simulation = ScenarioSimulation() maxrev = 24000 simulation.set_config(year = year, reforme = False, nmen = 11, maxrev = maxrev, x_axis = 'salbrut') simulation.scenario.indiv[0]['salbrut'] = maxrev simulation.scenario.indiv[0]['type_sal'] = CAT[type_sal_category] if type_sal_category == 'public_titulaire_etat': from openfisca_france.model.cotisations_sociales.travail import TAUX_DE_PRIME simulation.scenario.indiv[0]['primes'] = TAUX_DE_PRIME * maxrev simulation.set_param() # The aefa prestation can be disabled by uncommenting the following line: # simulation.disable_prestations( ['aefa']) df = simulation.get_results_dataframe(index_by_code = True) from openfisca_france.model.inversion_revenus import _salbrut df_b2i = df.transpose() if verbose: print df_b2i.to_string() sali = df_b2i['sal'].get_values() hsup = simulation.input_table.table['hsup'].get_values() type_sal = simulation.input_table.table['type_sal'].get_values() primes = simulation.input_table.table['hsup'].get_values() defaultP = simulation.P_default from pandas import DataFrame df_i2b = DataFrame({'sal': sali, 'salbrut' : _salbrut(sali, hsup, type_sal, defaultP) }) if verbose: print df_i2b.to_string() for var in ['sal', 'salbrut']: passed = ((df_b2i[var] - df_i2b[var]).abs() < .01).all() if (not passed) or type_sal_category in ['public_titulaire_etat']: print (df_b2i / 12).to_string() print (df_i2b / 12).to_string() assert passed, "difference in %s for %s" % (var, type_sal_category)
def test_sal(year = 2013, verbose = False): ''' Tests that _salbrut which computes "salaire brut" from "imposable" yields an amount compatbe with the one obtained from running openfisca satrting with a "salaire brut" ''' for type_sal_category in ['prive_non_cadre', 'prive_cadre']: # , 'public_titulaire_etat']: simulation = ScenarioSimulation() maxrev = 24000 simulation.set_config(year = year, reforme = False, nmen = 11, maxrev = maxrev, x_axis = 'salbrut') simulation.scenario.indiv[0]['salbrut'] = maxrev simulation.scenario.indiv[0]['type_sal'] = CAT[type_sal_category] if type_sal_category == 'public_titulaire_etat': from openfisca_france.model.cotisations_sociales.travail import TAUX_DE_PRIME simulation.scenario.indiv[0]['primes'] = TAUX_DE_PRIME * maxrev simulation.set_param() df = simulation.get_results_dataframe(index_by_code = True) from openfisca_france.model.inversion_revenus import _salbrut df_b2i = df.transpose() if verbose: print df_b2i.to_string() sali = df_b2i['sal'].get_values() hsup = simulation.input_table.table['hsup'].get_values() type_sal = simulation.input_table.table['type_sal'].get_values() primes = simulation.input_table.table['hsup'].get_values() defaultP = simulation.P_default from pandas import DataFrame df_i2b = DataFrame({'sal': sali, 'salbrut' : _salbrut(sali, hsup, type_sal, defaultP) }) if verbose: print df_i2b.to_string() for var in ['sal', 'salbrut']: passed = ((df_b2i[var] - df_i2b[var]).abs() < .01).all() if (not passed) or type_sal_category in ['public_titulaire_etat']: print (df_b2i / 12).to_string() print (df_i2b / 12).to_string() assert passed, "difference in %s for %s" % (var, type_sal_category)
def test_sal(year = 2013, verbose = False): ''' Tests that _salbrut which computes "salaire brut" from "imposable" yields an amount compatbe with the one obtained from running openfisca satrting with a "salaire brut" ''' maxrev = 50000 for type_sal_category in ['prive_non_cadre', 'prive_cadre']: # , 'public_titulaire_etat']: simulation = tax_benefit_system.new_scenario().init_single_entity( axes = [ dict(name = 'salbrut', max = maxrev, min = 0, count = 11) ], parent1 = dict( birth = datetime.date(year - 40, 1, 1), primes = TAUX_DE_PRIME * maxrev if type_sal_category == 'public_titulaire_etat' else None, type_sal = CAT[type_sal_category], ), year = year, ).new_simulation(debug = True) df_b2i = DataFrame(dict(sal = simulation.calculate('sal'), salbrut = simulation.calculate('salbrut'), )) from openfisca_france.model.inversion_revenus import _salbrut sali = df_b2i['sal'].get_values() hsup = simulation.calculate('hsup') type_sal = simulation.calculate('type_sal') # primes = simulation.calculate('primes') defaultP = simulation.default_compact_legislation df_i2b = DataFrame({'sal': sali, 'salbrut' : _salbrut(sali, hsup, type_sal, defaultP) }) for var in ['sal', 'salbrut']: passed = ((df_b2i[var] - df_i2b[var]).abs() < .01).all() if (not passed) or type_sal_category in ['public_titulaire_etat'] or verbose: print "Brut to imposable" print (df_b2i[['salbrut', 'sal' ]] / 12).to_string() print "Imposable to brut" print (df_i2b / 12).to_string() assert passed, "difference in %s for %s" % (var, type_sal_category)