diff --git a/bilby/core/result.py b/bilby/core/result.py index e9d9cb9ef..fadb57d09 100644 --- a/bilby/core/result.py +++ b/bilby/core/result.py @@ -1048,15 +1048,14 @@ def get_one_dimensional_median_and_error_bar(self, key, fmt='.2f', quants_to_compute = np.array([quantiles[0], 0.5, quantiles[1]]) quants = np.percentile(self.posterior[key], quants_to_compute * 100) - summary.median = quants[1] - summary.plus = quants[2] - summary.median - summary.minus = summary.median - quants[0] + median = quants[1] + plus = quants[2] - median + minus = median - quants[0] fmt = "{{0:{0}}}".format(fmt).format string_template = r"${{{0}}}_{{-{1}}}^{{+{2}}}$" - summary.string = string_template.format( - fmt(summary.median), fmt(summary.minus), fmt(summary.plus)) - return summary + string = string_template.format(fmt(median), fmt(minus), fmt(plus)) + return summary(median, minus, plus, string) @latex_plot_format def plot_single_density(self, key, prior=None, cumulative=False, diff --git a/test/core/result_test.py b/test/core/result_test.py index dc13a20e8..139e6be25 100644 --- a/test/core/result_test.py +++ b/test/core/result_test.py @@ -6,6 +6,7 @@ import json import parameterized import pytest +from collections import namedtuple from unittest.mock import patch import bilby @@ -622,6 +623,18 @@ class NotAResult(bilby.core.result.Result): # so should a result loaded from cache assert isinstance(cached_result, NotAResult) + def test_get_one_dimensional_median_and_error_bar(self): + """ + Test that this method returns an object with the correct structure. + """ + summary = self.result.get_one_dimensional_median_and_error_bar("x") + + assert isinstance(summary, namedtuple) + assert isinstance(summary.median, float) + assert isinstance(summary.lower, float) + assert isinstance(summary.upper, float) + assert isinstance(summary.string, str) + class TestResultListError(unittest.TestCase): def setUp(self):