You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by al...@apache.org on 2024/02/26 18:55:48 UTC

(datasketches-cpp) 02/02: better assertions

This is an automated email from the ASF dual-hosted git repository.

alsay pushed a commit to branch tdigest
in repository https://gitbox.apache.org/repos/asf/datasketches-cpp.git

commit f25c6f60da7e4cd04ddb03f49a6771d32820c0a3
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Mon Feb 26 10:54:08 2024 -0800

    better assertions
---
 tdigest/test/tdigest_test.cpp | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/tdigest/test/tdigest_test.cpp b/tdigest/test/tdigest_test.cpp
index 4aebef4..0aa4941 100644
--- a/tdigest/test/tdigest_test.cpp
+++ b/tdigest/test/tdigest_test.cpp
@@ -220,14 +220,18 @@ TEST_CASE("serialize deserialize steam and bytes equivalence empty", "[tdigest]"
   auto deserialized_td2 = tdigest<double>::deserialize(bytes.data(), bytes.size());
   REQUIRE(bytes.size() == static_cast<size_t>(s.tellg()));
 
-  REQUIRE(deserialized_td1.get_k() == deserialized_td2.get_k());
-  REQUIRE(deserialized_td1.get_total_weight() == deserialized_td2.get_total_weight());
-  REQUIRE(deserialized_td1.is_empty() == deserialized_td2.is_empty());
+  REQUIRE(deserialized_td1.is_empty());
+  REQUIRE(deserialized_td2.is_empty());
+  REQUIRE(deserialized_td1.get_k() == 100);
+  REQUIRE(deserialized_td2.get_k() == 100);
+  REQUIRE(deserialized_td1.get_total_weight() == 0);
+  REQUIRE(deserialized_td2.get_total_weight() == 0);
 }
 
 TEST_CASE("serialize deserialize steam and bytes equivalence", "[tdigest]") {
   tdigest<double> td(100);
-  for (int i = 0; i < 1000; ++i) td.update(i);
+  const int n = 1000;
+  for (int i = 0; i < n; ++i) td.update(i);
   std::stringstream s(std::ios::in | std::ios::out | std::ios::binary);
   td.serialize(s);
   auto bytes = td.serialize();
@@ -242,12 +246,19 @@ TEST_CASE("serialize deserialize steam and bytes equivalence", "[tdigest]") {
   auto deserialized_td2 = tdigest<double>::deserialize(bytes.data(), bytes.size());
   REQUIRE(bytes.size() == static_cast<size_t>(s.tellg()));
 
-  REQUIRE(deserialized_td1.get_k() == deserialized_td2.get_k());
-  REQUIRE(deserialized_td1.get_total_weight() == deserialized_td2.get_total_weight());
-  REQUIRE(deserialized_td1.is_empty() == deserialized_td2.is_empty());
-  REQUIRE(deserialized_td1.get_min_value() == deserialized_td2.get_min_value());
-  REQUIRE(deserialized_td1.get_max_value() == deserialized_td2.get_max_value());
-  REQUIRE(deserialized_td1.get_rank(500) == deserialized_td2.get_rank(500));
+  REQUIRE_FALSE(deserialized_td1.is_empty());
+  REQUIRE(deserialized_td1.get_k() == 100);
+  REQUIRE(deserialized_td1.get_total_weight() == n);
+  REQUIRE(deserialized_td1.get_min_value() == 0);
+  REQUIRE(deserialized_td1.get_max_value() == n - 1);
+
+  REQUIRE_FALSE(deserialized_td2.is_empty());
+  REQUIRE(deserialized_td2.get_k() == 100);
+  REQUIRE(deserialized_td2.get_total_weight() == n);
+  REQUIRE(deserialized_td2.get_min_value() == 0);
+  REQUIRE(deserialized_td2.get_max_value() == n - 1);
+
+  REQUIRE(deserialized_td1.get_rank(n / 2) == deserialized_td2.get_rank(n / 2));
   REQUIRE(deserialized_td1.get_quantile(0.5) == deserialized_td2.get_quantile(0.5));
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org