Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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