def test_every_thing_should_be_ok_on_petit_probleme_lp():
    """Testing the problem_generator function"""
    prob_list = [os.path.join('..', 'data', 'petit_probleme.lp')]
    cons_to_vary = ['demand_0', 'demand_7', 'demand_8']
    vars_to_vary = None
    Number = 10
    Deviation = 0.1

    data = problem_generator(prob_list, Number, Deviation, cons_to_vary,
                             vars_to_vary, Xpress_Problem_Factory())
    rhs_list = data.get_RHS()
    solutions = data.get_solutions()
    assert len(rhs_list) == len(solutions) == Number and len(rhs_list[0]) == len(cons_to_vary), "" \
        "Error in problem generator function."
def test_generation():
    """
    Test generation on petit_probleme.lp, varying constraints demand_0, demand_7 and demand_8
    one by one.
    """
    cons_list = ["demand_0", "demand_7", "demand_8"]
    Number = 10000
    Deviation = 1.5
    prob_list = ["petit_probleme.lp"]
    vars_to_vary = None
    for elem in cons_list:
        cons_to_vary = [elem]
        data = problem_generator(prob_list,
                                 Number,
                                 Deviation,
                                 cons_to_vary,
                                 vars_to_vary,
                                 Xpress_Problem_Factory(),
                                 save=True,
                                 single_file=True)
    assert True
예제 #3
0
def test_preprocessing_postprocessing_linearmax():
    prob_list = ["petit_probleme.lp"]
    cons_to_vary = ["demand_0"]
    vars_to_vary = None
    number = 100
    deviation = 0.1

    data = problem_generator(prob_list,
                             number,
                             deviation,
                             cons_to_vary,
                             vars_to_vary,
                             Xpress_Problem_Factory(),
                             save=False)
    test_data = data.copy()

    processor = SolutionProcessorLinearMax()
    processor.compute_parameters(test_data)

    processor.pre_process(test_data)

    processed_solutions = test_data.get_solutions().copy()
    output_test = OutputData(processed_solutions, processed_solutions)

    processor.post_process(output_test)

    solutions = data.get_solutions()
    test_solutions = output_test.get_solutions()

    size = test_data.size()

    for i in range(size):
        assert np.isclose(test_solutions[i],
                          solutions[i],
                          atol=1e-06,
                          rtol=1e-06)
예제 #4
0
def test_read_problem_from_file_fails():
    with pytest.raises(xp.SolverError):
        prob = Xpress_Problem_Factory().read_problem_from_file(
            "petit_probleme.lp")
예제 #5
0
def test_get_constraints_names():
    prob = Xpress_Problem_Factory().read_problem_from_file(
        os.path.join("..", "data", "petit_probleme.lp"))
    name_list = prob.get_constraint_names()
    assert (name_list[0], name_list[23], name_list[32]) == ("FlotMax_0,6", "demand_0", "flot_9"), "" \
        "Constraint name extraction failed, verify if solver has added spaces at the end of the variable names."
예제 #6
0
def test_read_problem_from_file():
    prob = Xpress_Problem_Factory().read_problem_from_file(
        os.path.join("..", "data", "petit_probleme.lp"))
    assert isinstance(prob,
                      Xpress_problem), "problem creation from file failed."