From d23921e504d17999da582f75376cac40d6fef56c Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Fri, 3 Jul 2026 00:05:09 +0200 Subject: [PATCH 1/2] Return independent empty covariance feature outputs --- src/pyrecest/utils/pairwise_covariance_features.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pyrecest/utils/pairwise_covariance_features.py b/src/pyrecest/utils/pairwise_covariance_features.py index 89193b808..dfbbc6335 100644 --- a/src/pyrecest/utils/pairwise_covariance_features.py +++ b/src/pyrecest/utils/pairwise_covariance_features.py @@ -158,8 +158,11 @@ def pairwise_covariance_shape_components( n_a = covariances_a.shape[2] n_b = covariances_b.shape[2] if n_a == 0 or n_b == 0: - empty = zeros((n_a, n_b), dtype=float64) - return empty, empty, empty + return ( + zeros((n_a, n_b), dtype=float64), + zeros((n_a, n_b), dtype=float64), + zeros((n_a, n_b), dtype=float64), + ) moved_covariances_a = _symmetrized_covariance_batch(covariances_a) moved_covariances_b = _symmetrized_covariance_batch(covariances_b) From 2b5e1d2de9ba400a8f91263c880c543ea6704005 Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Fri, 3 Jul 2026 00:07:48 +0200 Subject: [PATCH 2/2] Add covariance empty output independence regression --- tests/test_covariance_empty_outputs.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/test_covariance_empty_outputs.py diff --git a/tests/test_covariance_empty_outputs.py b/tests/test_covariance_empty_outputs.py new file mode 100644 index 000000000..d687ccd99 --- /dev/null +++ b/tests/test_covariance_empty_outputs.py @@ -0,0 +1,13 @@ +from pyrecest.backend import zeros +from pyrecest.utils import pairwise_covariance_shape_components + + +def test_pairwise_covariance_empty_outputs_are_independent_objects(): + shape_cost, logdet_cost, shape_similarity = pairwise_covariance_shape_components( + zeros((2, 2, 0)), zeros((2, 2, 4)) + ) + + assert shape_cost.shape == (0, 4) + assert logdet_cost.shape == (0, 4) + assert shape_similarity.shape == (0, 4) + assert len({id(shape_cost), id(logdet_cost), id(shape_similarity)}) == 3