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
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)
def test_read_problem_from_file_fails(): with pytest.raises(xp.SolverError): prob = Xpress_Problem_Factory().read_problem_from_file( "petit_probleme.lp")
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."
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."