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