Skip to content

Commit 32b2330

Browse files
authored
Minor: Move test with code (#7392)
1 parent 283c4b5 commit 32b2330

File tree

2 files changed

+77
-78
lines changed

2 files changed

+77
-78
lines changed

datafusion/core/src/physical_plan/mod.rs

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -410,81 +410,3 @@ use datafusion_execution::TaskContext;
410410
pub use datafusion_physical_expr::{
411411
expressions, functions, hash_utils, ordering_equivalence_properties_helper, udf,
412412
};
413-
414-
#[cfg(test)]
415-
mod tests {
416-
use super::*;
417-
use arrow::datatypes::DataType;
418-
use arrow::datatypes::Schema;
419-
420-
use crate::physical_plan::Distribution;
421-
use crate::physical_plan::Partitioning;
422-
use crate::physical_plan::PhysicalExpr;
423-
use datafusion_physical_expr::expressions::Column;
424-
425-
use std::sync::Arc;
426-
427-
#[tokio::test]
428-
async fn partitioning_satisfy_distribution() -> Result<()> {
429-
let schema = Arc::new(Schema::new(vec![
430-
arrow::datatypes::Field::new("column_1", DataType::Int64, false),
431-
arrow::datatypes::Field::new("column_2", DataType::Utf8, false),
432-
]));
433-
434-
let partition_exprs1: Vec<Arc<dyn PhysicalExpr>> = vec![
435-
Arc::new(Column::new_with_schema("column_1", &schema).unwrap()),
436-
Arc::new(Column::new_with_schema("column_2", &schema).unwrap()),
437-
];
438-
439-
let partition_exprs2: Vec<Arc<dyn PhysicalExpr>> = vec![
440-
Arc::new(Column::new_with_schema("column_2", &schema).unwrap()),
441-
Arc::new(Column::new_with_schema("column_1", &schema).unwrap()),
442-
];
443-
444-
let distribution_types = vec![
445-
Distribution::UnspecifiedDistribution,
446-
Distribution::SinglePartition,
447-
Distribution::HashPartitioned(partition_exprs1.clone()),
448-
];
449-
450-
let single_partition = Partitioning::UnknownPartitioning(1);
451-
let unspecified_partition = Partitioning::UnknownPartitioning(10);
452-
let round_robin_partition = Partitioning::RoundRobinBatch(10);
453-
let hash_partition1 = Partitioning::Hash(partition_exprs1, 10);
454-
let hash_partition2 = Partitioning::Hash(partition_exprs2, 10);
455-
456-
for distribution in distribution_types {
457-
let result = (
458-
single_partition.satisfy(distribution.clone(), || {
459-
EquivalenceProperties::new(schema.clone())
460-
}),
461-
unspecified_partition.satisfy(distribution.clone(), || {
462-
EquivalenceProperties::new(schema.clone())
463-
}),
464-
round_robin_partition.satisfy(distribution.clone(), || {
465-
EquivalenceProperties::new(schema.clone())
466-
}),
467-
hash_partition1.satisfy(distribution.clone(), || {
468-
EquivalenceProperties::new(schema.clone())
469-
}),
470-
hash_partition2.satisfy(distribution.clone(), || {
471-
EquivalenceProperties::new(schema.clone())
472-
}),
473-
);
474-
475-
match distribution {
476-
Distribution::UnspecifiedDistribution => {
477-
assert_eq!(result, (true, true, true, true, true))
478-
}
479-
Distribution::SinglePartition => {
480-
assert_eq!(result, (true, false, false, false, false))
481-
}
482-
Distribution::HashPartitioned(_) => {
483-
assert_eq!(result, (false, false, false, true, false))
484-
}
485-
}
486-
}
487-
488-
Ok(())
489-
}
490-
}

datafusion/physical-expr/src/partitioning.rs

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,80 @@ impl Distribution {
168168
}
169169
}
170170
}
171+
172+
#[cfg(test)]
173+
mod tests {
174+
use crate::expressions::Column;
175+
176+
use super::*;
177+
use arrow::datatypes::DataType;
178+
use arrow::datatypes::Field;
179+
use arrow::datatypes::Schema;
180+
use datafusion_common::Result;
181+
182+
use std::sync::Arc;
183+
184+
#[test]
185+
fn partitioning_satisfy_distribution() -> Result<()> {
186+
let schema = Arc::new(Schema::new(vec![
187+
Field::new("column_1", DataType::Int64, false),
188+
Field::new("column_2", DataType::Utf8, false),
189+
]));
190+
191+
let partition_exprs1: Vec<Arc<dyn PhysicalExpr>> = vec![
192+
Arc::new(Column::new_with_schema("column_1", &schema).unwrap()),
193+
Arc::new(Column::new_with_schema("column_2", &schema).unwrap()),
194+
];
195+
196+
let partition_exprs2: Vec<Arc<dyn PhysicalExpr>> = vec![
197+
Arc::new(Column::new_with_schema("column_2", &schema).unwrap()),
198+
Arc::new(Column::new_with_schema("column_1", &schema).unwrap()),
199+
];
200+
201+
let distribution_types = vec![
202+
Distribution::UnspecifiedDistribution,
203+
Distribution::SinglePartition,
204+
Distribution::HashPartitioned(partition_exprs1.clone()),
205+
];
206+
207+
let single_partition = Partitioning::UnknownPartitioning(1);
208+
let unspecified_partition = Partitioning::UnknownPartitioning(10);
209+
let round_robin_partition = Partitioning::RoundRobinBatch(10);
210+
let hash_partition1 = Partitioning::Hash(partition_exprs1, 10);
211+
let hash_partition2 = Partitioning::Hash(partition_exprs2, 10);
212+
213+
for distribution in distribution_types {
214+
let result = (
215+
single_partition.satisfy(distribution.clone(), || {
216+
EquivalenceProperties::new(schema.clone())
217+
}),
218+
unspecified_partition.satisfy(distribution.clone(), || {
219+
EquivalenceProperties::new(schema.clone())
220+
}),
221+
round_robin_partition.satisfy(distribution.clone(), || {
222+
EquivalenceProperties::new(schema.clone())
223+
}),
224+
hash_partition1.satisfy(distribution.clone(), || {
225+
EquivalenceProperties::new(schema.clone())
226+
}),
227+
hash_partition2.satisfy(distribution.clone(), || {
228+
EquivalenceProperties::new(schema.clone())
229+
}),
230+
);
231+
232+
match distribution {
233+
Distribution::UnspecifiedDistribution => {
234+
assert_eq!(result, (true, true, true, true, true))
235+
}
236+
Distribution::SinglePartition => {
237+
assert_eq!(result, (true, false, false, false, false))
238+
}
239+
Distribution::HashPartitioned(_) => {
240+
assert_eq!(result, (false, false, false, true, false))
241+
}
242+
}
243+
}
244+
245+
Ok(())
246+
}
247+
}

0 commit comments

Comments
 (0)