From e1abc4facbd1b79d13509b17d937999d07a98f10 Mon Sep 17 00:00:00 2001 From: Colm Talbot Date: Tue, 31 Mar 2026 14:01:14 -0400 Subject: [PATCH 1/2] Refactor quantile summary calculations Refactor summary calculations for quantiles in result.py. --- bilby/core/result.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/bilby/core/result.py b/bilby/core/result.py index e9d9cb9ef..c6eaa8239 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, upper, string) @latex_plot_format def plot_single_density(self, key, prior=None, cumulative=False, From f46af03d634c4b15378c97462875fe93f5d56bfc Mon Sep 17 00:00:00 2001 From: Colm Talbot Date: Tue, 31 Mar 2026 14:06:24 -0400 Subject: [PATCH 2/2] BUG: add test of get_one_dimensional_median_and_error_bar --- bilby/core/result.py | 2 +- test/core/result_test.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/bilby/core/result.py b/bilby/core/result.py index c6eaa8239..fadb57d09 100644 --- a/bilby/core/result.py +++ b/bilby/core/result.py @@ -1055,7 +1055,7 @@ def get_one_dimensional_median_and_error_bar(self, key, fmt='.2f', fmt = "{{0:{0}}}".format(fmt).format string_template = r"${{{0}}}_{{-{1}}}^{{+{2}}}$" string = string_template.format(fmt(median), fmt(minus), fmt(plus)) - return summary(median, minus, upper, string) + 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):