Skip to content
4 changes: 4 additions & 0 deletions mesa/batchrunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ def __init__(self, model_cls, variable_parameters=None,
self.model_cls = model_cls
self.variable_parameters = self._process_parameters(variable_parameters)
self.fixed_parameters = fixed_parameters or {}
self._include_fixed = len(self.fixed_parameters.keys()) > 0
self.iterations = iterations
self.max_steps = max_steps

Expand Down Expand Up @@ -193,4 +194,7 @@ def _prepare_report_table(self, vars_dict, extra_cols=None):
rest_cols = set(df.columns) - set(index_cols)
ordered = df[index_cols + list(sorted(rest_cols))]
ordered.sort_values(by='Run', inplace=True)
if self._include_fixed:
for param in self.fixed_parameters.keys():
ordered[param] = self.fixed_parameters[param]
return ordered
1 change: 1 addition & 0 deletions tests/test_batchrunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ def test_model_with_variable_and_fixed_kwargs(self):
batch = self.launch_batch_processing()
model_vars = batch.get_model_vars_dataframe()
expected_cols = (len(self.variable_params) +
len(self.fixed_params) +
len(self.model_reporters) +
1)
self.assertEqual(model_vars.shape, (self.model_runs, expected_cols))
Expand Down