From 0289a4708d71f475295a6191faa624edd07dd6b7 Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Tue, 6 Jan 2026 16:20:39 +0530 Subject: [PATCH 01/13] Fix ratio plot x alignment for Int axes --- src/hist/plot.py | 2 +- tests/conftest.py | 2 ++ tests/test_plot.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/hist/plot.py b/src/hist/plot.py index 31e8833b..6df39574 100644 --- a/src/hist/plot.py +++ b/src/hist/plot.py @@ -429,7 +429,7 @@ def plot_ratio_array( the ratio values and their uncertainties. """ - x_values = __hist.axes[0].centers + x_values = __hist.axes[0].edges[:-1] left_edge = __hist.axes.edges[0][0] right_edge = __hist.axes.edges[-1][-1] diff --git a/tests/conftest.py b/tests/conftest.py index 6b6474a2..a4d548c5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,8 @@ from __future__ import annotations import pytest +import matplotlib +matplotlib.use("Agg") from hist import Hist, NamedHist from hist.hist import BaseHist diff --git a/tests/test_plot.py b/tests/test_plot.py index a7c2753f..9207fdd1 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -847,3 +847,34 @@ def test_plot1d_legend_1d_histogram(): assert artists is not None plt.close(fig) + +def test_plot_ratio_misalignment() : + import hist + import numpy as np + from hist.plot import plot_ratio_array + + h = hist.new.Int(0,3,name = "x").Double() + h.fill([0,1,2]) + + ratio = np.ones(3) + ratio_uncert = np.zeros((2,3)) + + captured = {} + + def record_x(self, x , *a, **k) : + captured["x"] = x + + class Ax : + errorbar = record_x + bar = record_x + axhline = lambda *a, **k : None + set_xlim = lambda *a, **k: None + set_ylim = lambda *a, **k: None + set_xlabel = lambda *a, **k: None + set_ylabel = lambda *a, **k: None + + plot_ratio_array ( + h, ratio, ratio_uncert, ax = Ax(), uncert_draw_type = "line" + ) + + assert np.all(captured["x"] == h.axes[0].edges[:-1]) \ No newline at end of file From b42bb67cbefa0f3fe9afe50da55229cdab0a3ffc Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:58:59 +0000 Subject: [PATCH 02/13] style: pre-commit fixes --- tests/conftest.py | 3 ++- tests/test_plot.py | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index a4d548c5..30fef9a6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,7 +1,8 @@ from __future__ import annotations -import pytest import matplotlib +import pytest + matplotlib.use("Agg") from hist import Hist, NamedHist diff --git a/tests/test_plot.py b/tests/test_plot.py index 9207fdd1..49d493a1 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -848,33 +848,33 @@ def test_plot1d_legend_1d_histogram(): plt.close(fig) -def test_plot_ratio_misalignment() : - import hist - import numpy as np + +def test_plot_ratio_misalignment(): + import numpy as np + + import hist from hist.plot import plot_ratio_array - h = hist.new.Int(0,3,name = "x").Double() - h.fill([0,1,2]) + h = hist.new.Int(0, 3, name="x").Double() + h.fill([0, 1, 2]) ratio = np.ones(3) - ratio_uncert = np.zeros((2,3)) + ratio_uncert = np.zeros((2, 3)) captured = {} - def record_x(self, x , *a, **k) : - captured["x"] = x + def record_x(self, x, *a, **k): + captured["x"] = x - class Ax : - errorbar = record_x - bar = record_x - axhline = lambda *a, **k : None + class Ax: + errorbar = record_x + bar = record_x + axhline = lambda *a, **k: None set_xlim = lambda *a, **k: None set_ylim = lambda *a, **k: None set_xlabel = lambda *a, **k: None set_ylabel = lambda *a, **k: None - plot_ratio_array ( - h, ratio, ratio_uncert, ax = Ax(), uncert_draw_type = "line" - ) + plot_ratio_array(h, ratio, ratio_uncert, ax=Ax(), uncert_draw_type="line") - assert np.all(captured["x"] == h.axes[0].edges[:-1]) \ No newline at end of file + assert np.all(captured["x"] == h.axes[0].edges[:-1]) From 331f4e6e9f3f30ad247f9686bf29e8dbf583b576 Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Tue, 6 Jan 2026 17:08:15 +0530 Subject: [PATCH 03/13] Fix plot_ratio by using bin edges for Int axes --- tests/conftest.py | 5 ++--- tests/test_plot.py | 35 +++++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 30fef9a6..0016f491 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,9 +1,8 @@ from __future__ import annotations -import matplotlib import pytest - -matplotlib.use("Agg") +import matplotlib as mpl +mpl.use("Agg") from hist import Hist, NamedHist from hist.hist import BaseHist diff --git a/tests/test_plot.py b/tests/test_plot.py index 49d493a1..3bc341fb 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -854,27 +854,34 @@ def test_plot_ratio_misalignment(): import hist from hist.plot import plot_ratio_array + import matplotlib.pyplot as plt + h = hist.new.Int(0, 3, name="x").Double() h.fill([0, 1, 2]) ratio = np.ones(3) - ratio_uncert = np.zeros((2, 3)) + ratio_uncert = np.full((2,3), 1e-6) captured = {} - def record_x(self, x, *a, **k): - captured["x"] = x - - class Ax: - errorbar = record_x - bar = record_x - axhline = lambda *a, **k: None - set_xlim = lambda *a, **k: None - set_ylim = lambda *a, **k: None - set_xlabel = lambda *a, **k: None - set_ylabel = lambda *a, **k: None - - plot_ratio_array(h, ratio, ratio_uncert, ax=Ax(), uncert_draw_type="line") + def record_x(x , *a, **k) : + captured["x"] = np.asarray(x) + return [] + + fig, ax = plt.subplots() + + ax.errorbar = record_x + ax.bar = record_x + ax.axhline = lambda *a, **k : None + + plot_ratio_array( + h, + ratio, + ratio_uncert, + ax = ax, + uncert_draw_type = "line" + ) assert np.all(captured["x"] == h.axes[0].edges[:-1]) + From 0973083a667f6ff48a5751fe4433eaf3690cd878 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 11:45:40 +0000 Subject: [PATCH 04/13] style: pre-commit fixes --- tests/conftest.py | 3 ++- tests/test_plot.py | 28 ++++++++++------------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 0016f491..9eccd1f8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,7 +1,8 @@ from __future__ import annotations -import pytest import matplotlib as mpl +import pytest + mpl.use("Agg") from hist import Hist, NamedHist diff --git a/tests/test_plot.py b/tests/test_plot.py index 3bc341fb..2e21b01b 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -850,38 +850,30 @@ def test_plot1d_legend_1d_histogram(): def test_plot_ratio_misalignment(): + import matplotlib.pyplot as plt import numpy as np import hist from hist.plot import plot_ratio_array - import matplotlib.pyplot as plt - h = hist.new.Int(0, 3, name="x").Double() h.fill([0, 1, 2]) ratio = np.ones(3) - ratio_uncert = np.full((2,3), 1e-6) + ratio_uncert = np.full((2, 3), 1e-6) captured = {} - def record_x(x , *a, **k) : - captured["x"] = np.asarray(x) + def record_x(x, *a, **k): + captured["x"] = np.asarray(x) return [] - - fig, ax = plt.subplots() - ax.errorbar = record_x + fig, ax = plt.subplots() + + ax.errorbar = record_x ax.bar = record_x - ax.axhline = lambda *a, **k : None - - plot_ratio_array( - h, - ratio, - ratio_uncert, - ax = ax, - uncert_draw_type = "line" - ) + ax.axhline = lambda *a, **k: None - assert np.all(captured["x"] == h.axes[0].edges[:-1]) + plot_ratio_array(h, ratio, ratio_uncert, ax=ax, uncert_draw_type="line") + assert np.all(captured["x"] == h.axes[0].edges[:-1]) From d6efce5ed0a23638e2ea6aa027abbd41051a8dff Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Tue, 6 Jan 2026 17:18:34 +0530 Subject: [PATCH 05/13] Fix unused variable in plot_ratio regression test --- tests/test_plot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_plot.py b/tests/test_plot.py index 2e21b01b..9dde948d 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -867,6 +867,8 @@ def test_plot_ratio_misalignment(): def record_x(x, *a, **k): captured["x"] = np.asarray(x) return [] + + _, ax = plt.subplots() fig, ax = plt.subplots() From 4ed2a85aed9f8d97b033b098f8dbdfa2a8ac9566 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 11:54:25 +0000 Subject: [PATCH 06/13] style: pre-commit fixes --- tests/test_plot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_plot.py b/tests/test_plot.py index 9dde948d..b5f7722f 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -867,8 +867,8 @@ def test_plot_ratio_misalignment(): def record_x(x, *a, **k): captured["x"] = np.asarray(x) return [] - - _, ax = plt.subplots() + + _, ax = plt.subplots() fig, ax = plt.subplots() From c211a8f84b57542b11a6377c398dd13bee60110d Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Tue, 6 Jan 2026 17:28:13 +0530 Subject: [PATCH 07/13] Fix unused variable in plot_ratio misalignment test --- tests/test_plot.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/test_plot.py b/tests/test_plot.py index b5f7722f..61288c41 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -870,8 +870,6 @@ def record_x(x, *a, **k): _, ax = plt.subplots() - fig, ax = plt.subplots() - ax.errorbar = record_x ax.bar = record_x ax.axhline = lambda *a, **k: None From a1353462c2835dbc21606cdb676c208f27fa0f6c Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Tue, 6 Jan 2026 16:20:39 +0530 Subject: [PATCH 08/13] Fix ratio plot x alignment for Int axes --- tests/baseline/test_image_plot_pull.png | Bin 20841 -> 18463 bytes .../test_image_plot_ratio_callable.png | Bin 19173 -> 17597 bytes tests/baseline/test_image_plot_ratio_hist.png | Bin 13695 -> 12286 bytes tests/baseline/test_plot1d_auto_handling.png | Bin 21478 -> 19828 bytes tests/conftest.py | 2 + tests/test_plot.py | 38 +++++++++--------- 6 files changed, 22 insertions(+), 18 deletions(-) diff --git a/tests/baseline/test_image_plot_pull.png b/tests/baseline/test_image_plot_pull.png index bb3ec178aef8e218fa367e87294b9ac1443f8d41..a9bf1d99d484c61b9d724ef14680c57a872293b0 100644 GIT binary patch literal 18463 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 literal 20841 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%0AG+i}kevKh(UR|evfVfp%`27-( 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 diff --git a/tests/baseline/test_image_plot_ratio_callable.png b/tests/baseline/test_image_plot_ratio_callable.png index 55bd8bd393b1f08b3dd175280c2d0cdaf3712c5c..117dcdf89edb4eedd9346f6e95563898ac1f7c7a 100644 GIT binary patch literal 17597 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ÛHz~wLl8f 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 OtqRFZ7mMtI;=13vv$Kr= diff --git a/tests/baseline/test_image_plot_ratio_hist.png b/tests/baseline/test_image_plot_ratio_hist.png index ea6db414bc1bbb88d5bcfe635b3d318cc0fa0118..864e6c5f93378688b498b87975ba27838d30cb9a 100644 GIT binary patch literal 12286 zcmcJ#WmHvB`!Bj^q(f3lq&uZcS`Y*Tq)S9Vx{(g)Qo1{&yHgsZQyQeZ8_wi?|7YBL z&KURO{jfJXm}{*)*PPGutDyG^( }C=djp%gRV7Ll8_PcrYO&f=~8q*E_(UXVx+r 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 diff --git a/tests/baseline/test_plot1d_auto_handling.png b/tests/baseline/test_plot1d_auto_handling.png index 1292b2e59e62a846def30e1944866e4671caff47..c5aa8f5118c984deeabdf1ceccb90d75d1669bd0 100644 GIT binary patch literal 19828 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 literal 21478 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 diff --git a/tests/conftest.py b/tests/conftest.py index 9eccd1f8..b712502b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,6 +2,8 @@ import matplotlib as mpl import pytest +import matplotlib +matplotlib.use("Agg") mpl.use("Agg") diff --git a/tests/test_plot.py b/tests/test_plot.py index 61288c41..71fe6e07 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -849,31 +849,33 @@ def test_plot1d_legend_1d_histogram(): plt.close(fig) -def test_plot_ratio_misalignment(): - import matplotlib.pyplot as plt - import numpy as np - - import hist +def test_plot_ratio_misalignment() : + import hist + import numpy as np from hist.plot import plot_ratio_array - h = hist.new.Int(0, 3, name="x").Double() - h.fill([0, 1, 2]) + h = hist.new.Int(0,3,name = "x").Double() + h.fill([0,1,2]) ratio = np.ones(3) - ratio_uncert = np.full((2, 3), 1e-6) + ratio_uncert = np.zeros((2,3)) captured = {} - def record_x(x, *a, **k): - captured["x"] = np.asarray(x) - return [] - - _, ax = plt.subplots() + def record_x(self, x , *a, **k) : + captured["x"] = x - ax.errorbar = record_x - ax.bar = record_x - ax.axhline = lambda *a, **k: None + class Ax : + errorbar = record_x + bar = record_x + axhline = lambda *a, **k : None + set_xlim = lambda *a, **k: None + set_ylim = lambda *a, **k: None + set_xlabel = lambda *a, **k: None + set_ylabel = lambda *a, **k: None - plot_ratio_array(h, ratio, ratio_uncert, ax=ax, uncert_draw_type="line") + plot_ratio_array ( + h, ratio, ratio_uncert, ax = Ax(), uncert_draw_type = "line" + ) - assert np.all(captured["x"] == h.axes[0].edges[:-1]) + assert np.all(captured["x"] == h.axes[0].edges[:-1]) \ No newline at end of file From bd346b402ebb581e33807a68e1c936d166bd83d9 Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Wed, 7 Jan 2026 14:50:53 +0530 Subject: [PATCH 09/13] Final pre-commit fixes, all checks passing --- tests/conftest.py | 4 ++-- tests/test_plot.py | 49 +++++++++++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index b712502b..11c4cf6f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,8 +2,8 @@ import matplotlib as mpl import pytest -import matplotlib -matplotlib.use("Agg") + +mpl.use("Agg") mpl.use("Agg") diff --git a/tests/test_plot.py b/tests/test_plot.py index 71fe6e07..83b1e43f 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -849,33 +849,42 @@ def test_plot1d_legend_1d_histogram(): plt.close(fig) -def test_plot_ratio_misalignment() : - import hist - import numpy as np +def test_plot_ratio_misalignment(): + import numpy as np + + import hist from hist.plot import plot_ratio_array - h = hist.new.Int(0,3,name = "x").Double() - h.fill([0,1,2]) + h = hist.new.Int(0, 3, name="x").Double() + h.fill([0, 1, 2]) ratio = np.ones(3) - ratio_uncert = np.zeros((2,3)) + ratio_uncert = np.zeros((2, 3)) captured = {} - def record_x(self, x , *a, **k) : - captured["x"] = x + def record_x(x, *a, **k): + captured["x"] = x - class Ax : - errorbar = record_x - bar = record_x - axhline = lambda *a, **k : None - set_xlim = lambda *a, **k: None - set_ylim = lambda *a, **k: None - set_xlabel = lambda *a, **k: None - set_ylabel = lambda *a, **k: None + class Ax: + errorbar = record_x + bar = record_x - plot_ratio_array ( - h, ratio, ratio_uncert, ax = Ax(), uncert_draw_type = "line" - ) + def aaxhline(self, *a, **k): + return None + + def set_xlim(self, *a, **k): + return None + + def set_ylim(self, *a, **K): + return None + + def set_xlabel(self, *a, **k): + return None + + def setI_ylabel(self, *a, **K): + return None + + plot_ratio_array(h, ratio, ratio_uncert, ax=Ax(), uncert_draw_type="line") - assert np.all(captured["x"] == h.axes[0].edges[:-1]) \ No newline at end of file + assert np.all(captured["x"] == h.axes[0].edges[:-1]) From 465d59f9d4bd7414c9ca17286edeef29628b13da Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Wed, 7 Jan 2026 15:36:30 +0530 Subject: [PATCH 10/13] Finally fixed ratio plot x-axis bin-edge alignment --- tests/test_plot.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_plot.py b/tests/test_plot.py index 83b1e43f..af5a29d7 100644 --- a/tests/test_plot.py +++ b/tests/test_plot.py @@ -863,14 +863,14 @@ def test_plot_ratio_misalignment(): captured = {} - def record_x(x, *a, **k): - captured["x"] = x + def record_x(_self, x, *a, **k): + captured["x"] = np.asarray(x) class Ax: errorbar = record_x bar = record_x - def aaxhline(self, *a, **k): + def axhline(self, *a, **k): return None def set_xlim(self, *a, **k): @@ -882,9 +882,9 @@ def set_ylim(self, *a, **K): def set_xlabel(self, *a, **k): return None - def setI_ylabel(self, *a, **K): + def set_ylabel(self, *a, **K): return None plot_ratio_array(h, ratio, ratio_uncert, ax=Ax(), uncert_draw_type="line") - assert np.all(captured["x"] == h.axes[0].edges[:-1]) + assert np.allclose(captured["x"], h.axes[0].edges[:-1]) From 3f5b82a9cfacd55ea57955e06bdfcbf82c1841b7 Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Fri, 9 Jan 2026 15:28:42 +0530 Subject: [PATCH 11/13] Disallow duplicate entries in categorical axes --- src/hist/axis/__init__.py | 5 +++++ tests/test_axis.py | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/hist/axis/__init__.py b/src/hist/axis/__init__.py index 49a6d03c..ed8e83b8 100644 --- a/src/hist/axis/__init__.py +++ b/src/hist/axis/__init__.py @@ -253,6 +253,11 @@ def __init__( __dict__: dict[str, Any] | None = None, ) -> None: has_flow = flow if overflow is None else overflow + + categories = list(categories) + if len(categories)!=len(set(categories)) : + raise ValueError("Categorical axis entries must be unique") + super().__init__( categories, metadata=metadata, diff --git a/tests/test_axis.py b/tests/test_axis.py index 940c6fc7..0aee8aac 100644 --- a/tests/test_axis.py +++ b/tests/test_axis.py @@ -64,3 +64,14 @@ def test_axis_disallowed_names(): hist.Hist(axis.Regular(10, 0, 10, name="sample")) with pytest.warns(UserWarning, match="threads is a protected keyword"): hist.Hist(axis.Regular(10, 0, 10, name="threads")) + +def test_duplicate_strcategory() : + import hist + + try : + hist.axis.StrCategory(["a","a"]) + assert False, "Axis creation should have failed due to duplicate categories" + + except ValueError : + assert True + \ No newline at end of file From c7ef31776d9790071f73a81446c4d1b0cc3b71ba Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Fri, 9 Jan 2026 15:49:22 +0530 Subject: [PATCH 12/13] Disallow duplicate entries in categorical axes --- src/hist/axis/__init__.py | 6 +++--- tests/test_axis.py | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/hist/axis/__init__.py b/src/hist/axis/__init__.py index ed8e83b8..1f0281e7 100644 --- a/src/hist/axis/__init__.py +++ b/src/hist/axis/__init__.py @@ -255,9 +255,9 @@ def __init__( has_flow = flow if overflow is None else overflow categories = list(categories) - if len(categories)!=len(set(categories)) : - raise ValueError("Categorical axis entries must be unique") - + if len(categories) != len(set(categories)): + raise ValueError("Categorical axis entries must be unique") + super().__init__( categories, metadata=metadata, diff --git a/tests/test_axis.py b/tests/test_axis.py index 0aee8aac..cde0fa69 100644 --- a/tests/test_axis.py +++ b/tests/test_axis.py @@ -65,13 +65,13 @@ def test_axis_disallowed_names(): with pytest.warns(UserWarning, match="threads is a protected keyword"): hist.Hist(axis.Regular(10, 0, 10, name="threads")) -def test_duplicate_strcategory() : - import hist - - try : - hist.axis.StrCategory(["a","a"]) - assert False, "Axis creation should have failed due to duplicate categories" - - except ValueError : - assert True - \ No newline at end of file + +def test_duplicate_strcategory(): + import hist + + try: + hist.axis.StrCategory(["a", "a"]) + raise RuntimeError("Axis creation should have failed due to duplicate categories") + + except ValueError: + pass From c12a7c771ea031a8b3bfd2b2b626b8eb58d723fe Mon Sep 17 00:00:00 2001 From: Rachit931 Date: Fri, 9 Jan 2026 15:52:01 +0530 Subject: [PATCH 13/13] Disallow duplicate entries in categorical axes --- tests/test_axis.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_axis.py b/tests/test_axis.py index cde0fa69..32c1271f 100644 --- a/tests/test_axis.py +++ b/tests/test_axis.py @@ -71,7 +71,9 @@ def test_duplicate_strcategory(): try: hist.axis.StrCategory(["a", "a"]) - raise RuntimeError("Axis creation should have failed due to duplicate categories") + raise RuntimeError( + "Axis creation should have failed due to duplicate categories" + ) except ValueError: - pass + pass