11"""Execute petab test suite."""
22
33import logging
4- import os
54import sys
65
76import petabtests
2221logging .basicConfig (level = logging .INFO )
2322logger = logging .getLogger (__name__ )
2423
24+ MODEL_TYPE = "sbml"
25+ PETAB_VERSION = "v1.0.0"
2526
26- @pytest .fixture (params = petabtests .CASES_LIST )
27+
28+ @pytest .fixture (params = petabtests .get_cases (MODEL_TYPE , version = PETAB_VERSION ))
2729def case (request ):
2830 """A single test case."""
2931 return request .param
@@ -63,11 +65,10 @@ def _execute_case(case):
6365 case = petabtests .test_id_str (case )
6466 logger .info (f"Case { case } " )
6567
66- # case folder
67- case_dir = os .path .join (petabtests .CASES_DIR , case )
68-
6968 # load solution
70- solution = petabtests .load_solution (case , format = 'sbml' )
69+ solution = petabtests .load_solution (
70+ case , format = MODEL_TYPE , version = PETAB_VERSION
71+ )
7172 gt_chi2 = solution [petabtests .CHI2 ]
7273 gt_llh = solution [petabtests .LLH ]
7374 gt_simulation_dfs = solution [petabtests .SIMULATION_DFS ]
@@ -79,16 +80,23 @@ def _execute_case(case):
7980 output_folder = f'amici_models/model_{ case } '
8081
8182 # import petab problem
82- yaml_file = os .path .join (case_dir , petabtests .problem_yaml_name (case ))
83+ case_dir = petabtests .get_case_dir (case , MODEL_TYPE , PETAB_VERSION )
84+ yaml_file = case_dir / petabtests .problem_yaml_name (case )
8385
8486 # create problem
8587 petab_problem = petab .Problem .from_yaml (yaml_file )
8688
8789 # compile amici
8890 if output_folder not in sys .path :
8991 sys .path .insert (0 , output_folder )
92+
93+ # use distinct model IDs for each test case since we cannot import different
94+ # models with the same name in a single python session
95+ model_name = f"petab_{ MODEL_TYPE } _test_case_{ case } _{ PETAB_VERSION .replace ('.' , '_' )} "
96+
9097 amici_model = amici .petab_import .import_petab_problem (
9198 petab_problem = petab_problem ,
99+ model_name = model_name ,
92100 model_output_dir = output_folder ,
93101 generate_sensitivity_code = False ,
94102 )
0 commit comments