added docstrings wrap struct into tuple
Some checks failed
Build on RHEL8 / build (push) Failing after 3m42s
Build on RHEL9 / build (push) Failing after 3m41s

This commit is contained in:
2025-10-23 19:16:33 +02:00
parent dbffea15c0
commit df7b9be5a5
3 changed files with 27 additions and 7 deletions

View File

@@ -62,7 +62,13 @@ void define_Cluster(py::module &m, const std::string &typestr) {
.def( .def(
"max_sum_2x2", "max_sum_2x2",
&Cluster<Type, ClusterSizeX, ClusterSizeY, CoordType>::max_sum_2x2); [](Cluster<Type, ClusterSizeX, ClusterSizeY, CoordType> &self) {
auto max_sum = self.max_sum_2x2();
return py::make_tuple(max_sum.sum,
static_cast<int>(max_sum.index));
},
R"(calculates sum of 2x2 subcluster with highest energy and index relative to cluster center 0: top_left, 1: top_right, 2: bottom_left, 3: bottom_right
)");
} }
template <typename T, uint8_t ClusterSizeX, uint8_t ClusterSizeY, template <typename T, uint8_t ClusterSizeX, uint8_t ClusterSizeY,

View File

@@ -44,13 +44,16 @@ void define_ClusterVector(py::module &m, const std::string &typestr) {
auto *vec = new std::vector<Type>(self.sum()); auto *vec = new std::vector<Type>(self.sum());
return return_vector(vec); return return_vector(vec);
}) })
.def("sum_2x2", .def(
"sum_2x2",
[](ClusterVector<ClusterType> &self) { [](ClusterVector<ClusterType> &self) {
auto *vec = new std::vector<Sum_index_pair<Type, corner>>( auto *vec = new std::vector<Sum_index_pair<Type, corner>>(
self.sum_2x2()); self.sum_2x2());
return return_vector(vec); return return_vector(vec);
}) },
R"(calculates sum of 2x2 subcluster with highest energy and index relative to cluster center 0: top_left, 1: top_right, 2: bottom_left, 3: bottom_right
)")
.def_property_readonly("size", &ClusterVector<ClusterType>::size) .def_property_readonly("size", &ClusterVector<ClusterType>::size)
.def("item_size", &ClusterVector<ClusterType>::item_size) .def("item_size", &ClusterVector<ClusterType>::item_size)
.def_property_readonly("fmt", .def_property_readonly("fmt",

View File

@@ -86,6 +86,17 @@ def test_calculate_eta():
assert eta2[1,0] == 0.5 assert eta2[1,0] == 0.5
assert eta2[1,1] == 0.4 #2/5 assert eta2[1,1] == 0.4 #2/5
def test_max_sum():
"""Max 2x2 Sum"""
cluster = _aare.Cluster3x3i(5,5,np.array([1, 1, 1, 2, 3, 1, 2, 2, 1], dtype=np.int32))
max_sum = cluster.max_sum_2x2()
assert max_sum[0] == 9
assert max_sum[1] == 2
def test_cluster_finder(): def test_cluster_finder():
"""Test ClusterFinder""" """Test ClusterFinder"""