@@ -179,6 +179,7 @@ def test_get_priors_from_df():
179179 """Check petab.get_priors_from_df."""
180180 parameter_df = pd .DataFrame (
181181 {
182+ PARAMETER_ID : ["p1" , "p2" , "p3" , "p4" , "p5" ],
182183 PARAMETER_SCALE : [LOG10 , LOG10 , LOG10 , LOG10 , LOG10 ],
183184 LOWER_BOUND : [1e-8 , 1e-9 , 1e-10 , 1e-11 , 1e-5 ],
184185 UPPER_BOUND : [1e8 , 1e9 , 1e10 , 1e11 , 1e5 ],
@@ -193,6 +194,7 @@ def test_get_priors_from_df():
193194 ],
194195 }
195196 )
197+ parameter_df = petab .get_parameter_df (parameter_df )
196198
197199 prior_list = petab .get_priors_from_df (parameter_df , mode = INITIALIZATION )
198200
@@ -225,6 +227,18 @@ def test_get_priors_from_df():
225227 assert prior_pars [1 ] == (- 5 , 5 )
226228 assert prior_pars [2 ] == (1e-5 , 1e5 )
227229
230+ # check subsetting / reordering works
231+ prior_list_subset = petab .get_priors_from_df (
232+ parameter_df , mode = INITIALIZATION , parameter_ids = ["p2" , "p1" ]
233+ )
234+ assert len (prior_list_subset ) == 2
235+ assert prior_list_subset == [prior_list [1 ], prior_list [0 ]]
236+
237+ with pytest .raises (KeyError , match = "Parameter table does not contain" ):
238+ petab .get_priors_from_df (
239+ parameter_df , mode = INITIALIZATION , parameter_ids = ["non_existent" ]
240+ )
241+
228242
229243def test_startpoint_sampling (fujita_model_scaling ):
230244 n_starts = 10
0 commit comments