You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by ti...@apache.org on 2026/07/25 10:39:43 UTC

(datasketches-rust) 02/02: for tuples

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

tisonkun pushed a commit to branch test-support
in repository https://gitbox.apache.org/repos/asf/datasketches-rust.git

commit 8c968515f38ac8d86cf0bcecd23506ab368d366e
Author: tison <wa...@gmail.com>
AuthorDate: Sat Jul 25 18:35:49 2026 +0800

    for tuples
    
    Signed-off-by: tison <wa...@gmail.com>
---
 datasketches/Cargo.toml                            |  5 +++++
 datasketches/tests/support/tuple_builder.rs        | 24 ----------------------
 .../a_not_b.rs}                                    | 11 ++--------
 .../intersection.rs}                               | 11 ++--------
 .../tuple_fixtures.rs => tuple_test/main.rs}       | 14 ++++++++++---
 .../{tuple_sketch_test.rs => tuple_test/sketch.rs} |  7 +------
 6 files changed, 21 insertions(+), 51 deletions(-)

diff --git a/datasketches/Cargo.toml b/datasketches/Cargo.toml
index d4db61e..3dad132 100644
--- a/datasketches/Cargo.toml
+++ b/datasketches/Cargo.toml
@@ -47,6 +47,11 @@ tdigest = []
 theta = []
 tuple = []
 
+[[test]]
+name = "tuple_test"
+path = "tests/tuple_test/main.rs"
+required-features = ["tuple"]
+
 [dev-dependencies]
 googletest = { workspace = true }
 insta = { workspace = true }
diff --git a/datasketches/tests/support/tuple_builder.rs b/datasketches/tests/support/tuple_builder.rs
deleted file mode 100644
index ea017d5..0000000
--- a/datasketches/tests/support/tuple_builder.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-use datasketches::tuple::DefaultUpdatePolicy;
-use datasketches::tuple::TupleSketchBuilder;
-
-/// Returns a tuple sketch builder with the default additive `u64` summary policy.
-pub fn default_tuple_sketch_builder() -> TupleSketchBuilder<DefaultUpdatePolicy<u64>> {
-    TupleSketchBuilder::new(DefaultUpdatePolicy::<u64>::default())
-}
diff --git a/datasketches/tests/tuple_a_not_b_test.rs b/datasketches/tests/tuple_test/a_not_b.rs
similarity index 96%
rename from datasketches/tests/tuple_a_not_b_test.rs
rename to datasketches/tests/tuple_test/a_not_b.rs
index e92aec8..c7ec9eb 100644
--- a/datasketches/tests/tuple_a_not_b_test.rs
+++ b/datasketches/tests/tuple_test/a_not_b.rs
@@ -21,18 +21,11 @@
 //! summaries from `a`. These tests use a `u64` summary with the default additive update policy,
 //! so the distinct-count behavior matches a plain Theta a-not-B.
 
-#![cfg(feature = "tuple")]
-
-#[path = "support/tuple_builder.rs"]
-mod tuple_builder;
-#[path = "support/tuple_fixtures.rs"]
-mod tuple_fixtures;
-
 use datasketches::tuple::CompactTupleSketch;
 use datasketches::tuple::TupleAnotB;
 
-use crate::tuple_builder::default_tuple_sketch_builder;
-use crate::tuple_fixtures::tuple_sketch_with_range;
+use super::default_tuple_sketch_builder;
+use super::tuple_sketch_with_range;
 
 #[test]
 fn test_basic_difference_keeps_summaries_from_a() {
diff --git a/datasketches/tests/tuple_intersection_test.rs b/datasketches/tests/tuple_test/intersection.rs
similarity index 97%
rename from datasketches/tests/tuple_intersection_test.rs
rename to datasketches/tests/tuple_test/intersection.rs
index 15b7412..5beab8b 100644
--- a/datasketches/tests/tuple_intersection_test.rs
+++ b/datasketches/tests/tuple_test/intersection.rs
@@ -15,20 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#![cfg(feature = "tuple")]
-
-#[path = "support/tuple_builder.rs"]
-mod tuple_builder;
-#[path = "support/tuple_fixtures.rs"]
-mod tuple_fixtures;
-
 use datasketches::tuple::CompactTupleSketch;
 use datasketches::tuple::SummaryCombinePolicy;
 use datasketches::tuple::SummaryPolicy;
 use datasketches::tuple::TupleIntersection;
 
-use crate::tuple_builder::default_tuple_sketch_builder;
-use crate::tuple_fixtures::tuple_sketch_with_range;
+use super::default_tuple_sketch_builder;
+use super::tuple_sketch_with_range;
 
 #[derive(Debug, Default, Clone, Copy)]
 struct SumPolicy;
diff --git a/datasketches/tests/support/tuple_fixtures.rs b/datasketches/tests/tuple_test/main.rs
similarity index 72%
rename from datasketches/tests/support/tuple_fixtures.rs
rename to datasketches/tests/tuple_test/main.rs
index 5778fbb..4e2ab27 100644
--- a/datasketches/tests/support/tuple_fixtures.rs
+++ b/datasketches/tests/tuple_test/main.rs
@@ -15,13 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
+//! Integration tests for tuple sketches and set operations.
+
+mod a_not_b;
+mod intersection;
+mod sketch;
+
 use datasketches::tuple::DefaultUpdatePolicy;
 use datasketches::tuple::TupleSketch;
+use datasketches::tuple::TupleSketchBuilder;
 
-use crate::tuple_builder::default_tuple_sketch_builder;
+fn default_tuple_sketch_builder() -> TupleSketchBuilder<DefaultUpdatePolicy<u64>> {
+    TupleSketchBuilder::new(DefaultUpdatePolicy::<u64>::default())
+}
 
-/// Builds a tuple sketch updated with keys `start..start + count`, each with summary 1.
-pub fn tuple_sketch_with_range(start: u64, count: u64) -> TupleSketch<DefaultUpdatePolicy<u64>> {
+fn tuple_sketch_with_range(start: u64, count: u64) -> TupleSketch<DefaultUpdatePolicy<u64>> {
     let mut sketch = default_tuple_sketch_builder().build();
     for i in 0..count {
         sketch.update(start + i, 1u64);
diff --git a/datasketches/tests/tuple_sketch_test.rs b/datasketches/tests/tuple_test/sketch.rs
similarity index 98%
rename from datasketches/tests/tuple_sketch_test.rs
rename to datasketches/tests/tuple_test/sketch.rs
index 269eed2..148c19f 100644
--- a/datasketches/tests/tuple_sketch_test.rs
+++ b/datasketches/tests/tuple_test/sketch.rs
@@ -15,15 +15,10 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#![cfg(feature = "tuple")]
-
-#[path = "support/tuple_builder.rs"]
-mod tuple_builder;
-
 use datasketches::common::NumStdDev;
 use datasketches::hash_value;
 
-use crate::tuple_builder::default_tuple_sketch_builder;
+use super::default_tuple_sketch_builder;
 
 #[test]
 fn test_basic_update() {


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