예제 #1
0
def check_comparison(ipp2of_input_variables, input_file_path, output_file_path, ipp2of_output_variables,
                     last_param_scenario = "rien", threshold = 1, verbose = False):
    simulation, param_scenario = run_OF(ipp2of_input_variables, path_dta_input = input_file_path, option = 'list_dta')
    if str(param_scenario) != str(last_param_scenario):
        pbs = compare(output_file_path, ipp2of_output_variables, param_scenario, simulation, threshold,
                      verbose = verbose)
        assert_equal(len(pbs), 0, u"input_file_path={!r}, threshold={!r}, pbs={!r}".format(
            input_file_path, threshold, pbs))
        last_param_scenario = param_scenario
def check_comparison(ipp2of_input_variables, input_file_path, output_file_path, ipp2of_output_variables,
                     last_param_scenario = "rien", threshold = 1, verbose = False):
    simulation, param_scenario = run_OF(ipp2of_input_variables, path_dta_input = input_file_path, option = 'list_dta')
    if str(param_scenario) != str(last_param_scenario):
        pbs = compare(output_file_path, ipp2of_output_variables, param_scenario, simulation, threshold,
                      verbose = verbose)
        assert len(pbs) == 0, \
            u"Avec la base dta {}\n  et un seuil de {} les problèmes suivants ont été identifiés :\n{}".format(
            input_file_path, threshold, pbs)
        last_param_scenario = param_scenario
def test_from_taxipp(selection=None, threshold=1, list_input=None, list_output=None, verbose=False):
    # selection : dernier mot avant le .dta : "actif-chomeur", "ISF", "famille_modeste"
    if not list_input:
        list_input, list_output = list_dta(selection)
    elif not list_output:
        list_output = [file_path.replace("input", "output") for file_path in list_input]
    ipp2of_input_variables, ipp2of_output_variables = build_ipp2of_variables()
    last_param_scenario = "rien"
    for input_file_path, output_file_path in zip(list_input, list_output):
        simulation, param_scenario = run_OF(ipp2of_input_variables, path_dta_input=input_file_path, option="list_dta")
        if str(param_scenario) != str(last_param_scenario):
            pbs = compare(
                output_file_path, ipp2of_output_variables, param_scenario, simulation, threshold, verbose=verbose
            )
            assert (
                len(pbs) == 0
            ), u"Avec la base dta {}\n  et un seuil de {} les problèmes suivants ont été identifiés :\n{}".format(
                input_file_path, threshold, pbs
            )
            last_param_scenario = param_scenario
def test_from_taxipp(selection = "famille_modeste", threshold = 1, list_input = None, list_output = None, verbose = False):
    # selection : dernier mot avant le .dta : "actif-chomeur", "ISF", "famille_modeste"
    def list_dta(date):
        input = []
        output = []
        for filename in os.listdir(ipp_dir + "\\base_IPP"):
            path_file = ipp_dir + '/base_IPP/' + filename
            if filename.startswith("base_IPP_input") and filename.endswith(selection + ".dta"):
                input += [path_file]
            if filename.startswith("base_IPP_output") and filename.endswith(selection + ".dta"):
                output += [path_file]
        return input, output

    if not list_input :
        list_input, list_output = list_dta(selection)

    elif not list_output:
        list_output = []
        for i in range(len(list_input)):
            list_output += [list_input[i].replace('input', 'output')]

    dic_input, dic_output = dic_ipp2of()
    last_param_scenar = "rien"
    for i in range(len(list_input)) :
        input = list_input[i]
        output = list_output[i]
        simulation, openfisca_output, param_scenario = run_OF(dic_input, path_dta_input = input, option = 'list_dta')
        if str(param_scenario) != str(last_param_scenar) :
            pbs = compare(output, openfisca_output, dic_output, param_scenario, simulation, threshold, verbose = verbose)
            try :
                assert len(pbs) == 1
            except :
                print  " Avec la base dta ", input, "\n  et un seuil de ", threshold, ", les problèmes suivants ont été identifiés : \n ", pbs
            last_param_scenar = param_scenario
        else:
            pass