def test_generation_extraction(): # Creating a fake cohort n = 0.00 r = 0.00 g = 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 = DataCohorts(population) # Applying projection methods year_length = 199 method = 'stable' cohort.population_project(year_length, method=method) cohort.fill(profile) typ = None cohort.proj_tax(g, r, typ, method='per_capita') cohort = AccountingCohorts(cohort) cohort._types = ['tax'] #Extracting generations start = 2030 age = 0 generation = cohort.extract_generation(start, typ='tax', age=age) count = age while count <= 100 & start + count <= array( list(generation.index_sets['year'])).max(): assert abs((1 + g)**(count + (start - 2001)) + generation.get_value((count, 1, start + count), 'tax')) == 0.0 count += 1
def test_generation_extraction(): # Creating a fake cohort n = 0.00 r = 0.00 g = 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 = DataCohorts(population) # Applying projection methods year_length = 199 method = "stable" cohort.population_project(year_length, method=method) cohort.fill(profile) typ = None cohort.proj_tax(g, r, typ, method="per_capita") cohort = AccountingCohorts(cohort) cohort._types = ["tax"] # Extracting generations start = 2030 age = 0 generation = cohort.extract_generation(start, typ="tax", age=age) count = age while count <= 100 & start + count <= array(list(generation.index_sets["year"])).max(): assert abs((1 + g) ** (count + (start - 2001)) + generation.get_value((count, 1, start + count), "tax")) == 0.0 count += 1
def test_population_projection(): # Create cohorts start_data = 2001 end_data = 2061 population = create_empty_population_dataframe(start_data, end_data) cohorts = DataCohorts(data = population, columns = ['pop']) # Complete population projection year_length = 100 end_project = start_data + year_length method = 'exp_growth' growth_rate = n = 0.05 cohorts.population_project(year_length, method = method, growth_rate = n) year_control = 2082 control_value = (1+n)**(year_control - end_data - 1) test_value = cohorts.get_value((0,0,2081), "pop") assert test_value == control_value
def test_tax_projection(): population = create_empty_population_dataframe(2001, 2061) profile = create_constant_profiles_dataframe(population, tax = -1, sub=0.5) g = 0.05 r = 0 cohort = DataCohorts(population) year_length = 200 method = 'stable' cohort.population_project(year_length, method = method) cohort.fill(profile) typ = None cohort.proj_tax(g, r, typ, method = 'per_capita') # print cohort test_value = cohort.get_value((0,1,2002), 'tax') test_value2 = cohort.get_value((0,1,2002), 'sub') # print test_value, test_value2 # TODO: I don't understand the following <- Just wanted to check if the for loop works by changing the value of typ in the test assert test_value2 > 0.5 and test_value < -1