def test_dsct(): population = create_empty_population_dataframe(2001, 2061) cohorts = Cohorts(data = population, columns = ['pop']) cohorts.gen_dsct(0.05) test_value = cohorts.get_value((0,0,2060), 'dsct') # print test_value assert test_value <= 1
def test_fr(): # # # ############################################################ ## load data ############################################################ # load population data DIR = '../data_fr/proj_pop_insee' store = HDFStore(os.path.join(DIR, 'proj_pop.h5')) pop = store['projpop0760_FECcentESPcentMIGcent'] store.close() profiles = Cohorts(data=pop, columns=['pop']) DIR = '../data_fr' store = HDFStore(os.path.join(DIR, 'profiles.h5')) vars = store['profiles'] store.close() profiles.fill(vars) # set r and g r = 0.060 g = 0.012 # create discount factor and growth rate # print out.to_string() # print coh.totaux(['year', 'age'], pivot = True).to_string() profiles.gen_grth(g) profiles.gen_dsct(r) # profiles.to_percap() # profiles.to_csv('out.csv') # profiles['typ1'].unstack(level = 'year').to_csv('out.csv') #print profiles['typ1'].unstack(level = 'year').head().to_string() #print profiles['grth'] #print profiles['tva'] var = 'educ' pv_g = profiles.pv_ga(var) y = 2060 a = 4 # print (profiles.ix[a,1,y][var]*profiles.ix[a,1,y]['pop']*profiles.ix[a,1,y]['grth']*profiles.ix[a,1,y]['dsct']) # print pvf[2060].head() # print pvf.index # print pv_g[2060].head() p = profiles.pv_percap(var) print p.index.names print p.ix[:, 0, 2007].to_string() print p
def test_fr(): # # # ############################################################ ## load data ############################################################ # load population data DIR= '../data_fr/proj_pop_insee' store = HDFStore(os.path.join(DIR,'proj_pop.h5')) pop = store['projpop0760_FECcentESPcentMIGcent'] store.close() profiles = Cohorts(data = pop, columns = ['pop']) DIR= '../data_fr' store = HDFStore(os.path.join(DIR,'profiles.h5')) vars = store['profiles'] store.close() profiles.fill(vars) # set r and g r = 0.060 g = 0.012 # create discount factor and growth rate # print out.to_string() # print coh.totaux(['year', 'age'], pivot = True).to_string() profiles.gen_grth(g) profiles.gen_dsct(r) # profiles.to_percap() # profiles.to_csv('out.csv') # profiles['typ1'].unstack(level = 'year').to_csv('out.csv') #print profiles['typ1'].unstack(level = 'year').head().to_string() #print profiles['grth'] #print profiles['tva'] var = 'educ' pv_g = profiles.pv_ga(var) y = 2060 a = 4 # print (profiles.ix[a,1,y][var]*profiles.ix[a,1,y]['pop']*profiles.ix[a,1,y]['grth']*profiles.ix[a,1,y]['dsct']) # print pvf[2060].head() # print pvf.index # print pv_g[2060].head() p = profiles.pv_percap(var) print p.index.names print p.ix[:,0,2007].to_string() print p
def test_filter_value(): """ Testing the method to filter data from a given cohort """ #Generate a testing cohort with 5% population and economy growth n = 0.05 population = create_testing_population_dataframe(year_start=2001, year_end=2061, rate=n) profile = create_constant_profiles_dataframe(population, tax=-1, sub=0.5) cohort = Cohorts(population) cohort.fill(profile) r = 0.0 g = 0.05 column = None cohort.proj_tax(g, r, column, method='per_capita') #Testing restrictions cohort_filtered = cohort.filter_value(age=list(range(0, 100, 1)), year=list(range(2001, 2060, 5)), typ='tax') count = 2001 while count <= 2060: assert abs( cohort_filtered.get_value((0, 1, count), 'tax') + (1 + g)**(count - 2001)) == 0.0 count += 5
def test_us(): ############################################" ## set simulation parameters ############################################" # set path to data DIR= 'data_us' # number of types (tax or transfer) nb_type = 17 # define aggregate scenario agg_scenar = 'aggmed' # can be in ('agglow', 'aggmed', 'agghigh') # define population scenario pop_scenar = 'popmed' # can be in ('popmed', 'pophigh', 'poplow') ############################################################ ## load data ############################################################ # load population data datafile = os.path.join(DIR, pop_scenar +'.csv') profiles = Cohorts() profiles.set_population_from_csv(datafile) # load relative profiles and fill Cohorte datafile = os.path.join(DIR, 'rp.csv') data = read_csv(datafile, index_col = [0,1]) for i in range(1, nb_type + 1): var = 'typ%i'%i profiles.new_type(var) for sex in profiles.index_sets['sex']: profiles.fill(data.ix[sex, i], var, sex) # load aggregate data (year x types) datafile = os.path.join(DIR, agg_scenar+'.csv') agg = read_csv(datafile, index_col = 0) profiles.add_agg(agg) # set r and g r = 0.060 g = 0.012 # create discount factor and growth rate # print out.to_string() # print coh.totaux(['year', 'age'], pivot = True).to_string() profiles.gen_grth(g) profiles.gen_dsct(r) profiles.to_percap() # profiles['typ1'].unstack(level = 'year').to_csv('out.csv') #print profiles['typ1'].unstack(level = 'year').head().to_string() print profiles.pv_ga('typ1')
def test_us(): ############################################" ## set simulation parameters ############################################" # set path to data DIR = 'data_us' # number of types (tax or transfer) nb_type = 17 # define aggregate scenario agg_scenar = 'aggmed' # can be in ('agglow', 'aggmed', 'agghigh') # define population scenario pop_scenar = 'popmed' # can be in ('popmed', 'pophigh', 'poplow') ############################################################ ## load data ############################################################ # load population data datafile = os.path.join(DIR, pop_scenar + '.csv') profiles = Cohorts() profiles.set_population_from_csv(datafile) # load relative profiles and fill Cohorte datafile = os.path.join(DIR, 'rp.csv') data = read_csv(datafile, index_col=[0, 1]) for i in range(1, nb_type + 1): var = 'typ%i' % i profiles.new_type(var) for sex in profiles.index_sets['sex']: profiles.fill(data.ix[sex, i], var, sex) # load aggregate data (year x types) datafile = os.path.join(DIR, agg_scenar + '.csv') agg = read_csv(datafile, index_col=0) profiles.add_agg(agg) # set r and g r = 0.060 g = 0.012 # create discount factor and growth rate # print out.to_string() # print coh.totaux(['year', 'age'], pivot = True).to_string() profiles.gen_grth(g) profiles.gen_dsct(r) profiles.to_percap() # profiles['typ1'].unstack(level = 'year').to_csv('out.csv') #print profiles['typ1'].unstack(level = 'year').head().to_string() print profiles.pv_ga('typ1')