This is an automated email from the ASF dual-hosted git repository.
alsay pushed a commit to branch density_sketch
in repository https://gitbox.apache.org/repos/asf/datasketches-cpp.git
The following commit(s) were added to refs/heads/density_sketch by this push:
new 1ca2b04 added iterator, removed get_coreset()
1ca2b04 is described below
commit 1ca2b049418fa0ee4de3f5bf4d0ea0ba6a6e2c50
Author: AlexanderSaydakov <[email protected]>
AuthorDate: Wed Dec 21 15:30:55 2022 -0800
added iterator, removed get_coreset()
---
python/src/density_wrapper.cpp | 26 +++-----------------------
python/tests/density_test.py | 9 ++++++---
2 files changed, 9 insertions(+), 26 deletions(-)
diff --git a/python/src/density_wrapper.cpp b/python/src/density_wrapper.cpp
index 6ae5a47..5db808f 100644
--- a/python/src/density_wrapper.cpp
+++ b/python/src/density_wrapper.cpp
@@ -17,33 +17,14 @@
* under the License.
*/
-#include "density_sketch.hpp"
-
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <pybind11/numpy.h>
#include <vector>
-namespace py = pybind11;
-
-namespace datasketches {
-
-namespace python {
-
-template<typename T>
-py::list density_sketch_get_coreset(const density_sketch<T>& sketch) {
- py::list list(sketch.get_num_retained());
- unsigned i = 0;
- for (auto pair: sketch) {
- list[i++] = py::make_tuple(pair.first, pair.second);
- }
- return list;
-}
-
-}
-}
+#include "density_sketch.hpp"
-namespace dspy = datasketches::python;
+namespace py = pybind11;
template<typename T>
void bind_density_sketch(py::module &m, const char* name) {
@@ -71,12 +52,11 @@ void bind_density_sketch(py::module &m, const char* name) {
"Returns True if the sketch is in estimation mode, otherwise False")
.def("get_estimate", &density_sketch<T>::get_estimate, py::arg("point"),
"Returns an approximate density at the given point")
- .def("get_coreset", &dspy::density_sketch_get_coreset<T>,
- "Returns the retained samples with weights")
.def("__str__", &density_sketch<T>::to_string,
py::arg("print_levels")=false, py::arg("print_items")=false,
"Produces a string summary of the sketch")
.def("to_string", &density_sketch<T>::to_string,
py::arg("print_levels")=false, py::arg("print_items")=false,
"Produces a string summary of the sketch")
+ .def("__iter__", [](const density_sketch<T>& s){ return
py::make_iterator(s.begin(), s.end()); })
;
}
diff --git a/python/tests/density_test.py b/python/tests/density_test.py
index 82f5bad..eccb0aa 100644
--- a/python/tests/density_test.py
+++ b/python/tests/density_test.py
@@ -44,10 +44,13 @@ class densityTest(unittest.TestCase):
self.assertLess(sketch.get_num_retained(), n)
self.assertGreater(sketch.get_estimate([n - 1, n - 1, n - 1]), 0)
- print(sketch.to_string())
+ print(sketch)
- list = sketch.get_coreset()
- self.assertEqual(len(list), sketch.get_num_retained())
+ for tuple in sketch:
+ vector = tuple[0]
+ weight = tuple[1]
+ self.assertEqual(len(vector), dim)
+ self.assertGreaterEqual(weight, 1)
def test_density_merge(self):
sketch1 = density_doubles_sketch(10, 2)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]