|
25 | 25 | //! summary per segment of a grid that every window's boundaries lie on, and |
26 | 26 | //! each query merges the segments its range covers. |
27 | 27 |
|
28 | | -use std::collections::{BTreeMap, BTreeSet, HashMap}; |
| 28 | +use std::collections::{BTreeSet, HashMap}; |
29 | 29 | use std::rc::Rc; |
30 | 30 | use std::time::Duration; |
31 | 31 |
|
@@ -546,10 +546,11 @@ mod tests { |
546 | 546 | use super::*; |
547 | 547 | use crate::pass1::logical_candidates::enumerate_local_logical_candidates; |
548 | 548 | use crate::test_support::lower_promql; |
549 | | - use std::ops::Bound; |
550 | 549 | use asap_types::ir::schema::SketchAlgorithm; |
551 | 550 | use asap_types::types::AccuracyTarget; |
552 | 551 | use asap_types::workload::{Predictability, RepetitionInterval}; |
| 552 | + use std::collections::BTreeMap; |
| 553 | + use std::ops::Bound; |
553 | 554 |
|
554 | 555 | fn every(ms: u32) -> RootDemand { |
555 | 556 | RootDemand { |
@@ -675,9 +676,12 @@ mod tests { |
675 | 676 | let Some(NonASAPOp::Aggregate { child, .. }) = target.target.non_asap() else { |
676 | 677 | panic!("aggregate") |
677 | 678 | }; |
678 | | - let merged = |
679 | | - tumbling_state(child, WindowForm::Tumbling { pane_ms: 60_000 }, kll_state(target)) |
680 | | - .unwrap(); |
| 679 | + let merged = tumbling_state( |
| 680 | + child, |
| 681 | + WindowForm::Tumbling { pane_ms: 60_000 }, |
| 682 | + kll_state(target), |
| 683 | + ) |
| 684 | + .unwrap(); |
681 | 685 | let Operator::ASAP(ASAPOp::SummaryMerge { children }) = &merged.operator else { |
682 | 686 | panic!("merge") |
683 | 687 | }; |
@@ -766,16 +770,18 @@ mod tests { |
766 | 770 | target: &crate::pass1::logical_candidates::LocalLogicalTarget, |
767 | 771 | ) -> impl Fn(Rc<OperatorNode>) -> Result<Rc<OperatorNode>, LogicalCandidateError> + '_ { |
768 | 772 | move |input| { |
769 | | - Ok(OperatorNode::new_shared(Operator::ASAP(ASAPOp::SummaryAgg { |
770 | | - child: input, |
771 | | - family: family(&target.alternatives[1], &GroupingStrategy::default()).unwrap(), |
772 | | - input: asap_types::ir::schema::SummaryUpdate::column( |
773 | | - asap_types::ir::scalar::ColumnRef::SampleValue, |
774 | | - ), |
775 | | - reduction: asap_types::ir::operator::Reduction::PerEntity, |
776 | | - grouping: GroupingStrategy::default(), |
777 | | - filter: None, |
778 | | - }))?) |
| 773 | + Ok(OperatorNode::new_shared(Operator::ASAP( |
| 774 | + ASAPOp::SummaryAgg { |
| 775 | + child: input, |
| 776 | + family: family(&target.alternatives[1], &GroupingStrategy::default()).unwrap(), |
| 777 | + input: asap_types::ir::schema::SummaryUpdate::column( |
| 778 | + asap_types::ir::scalar::ColumnRef::SampleValue, |
| 779 | + ), |
| 780 | + reduction: asap_types::ir::operator::Reduction::PerEntity, |
| 781 | + grouping: GroupingStrategy::default(), |
| 782 | + filter: None, |
| 783 | + }, |
| 784 | + ))?) |
779 | 785 | } |
780 | 786 | } |
781 | 787 |
|
@@ -829,10 +835,12 @@ mod tests { |
829 | 835 | merge(vec![pane(0, 60_000), pane(60_000, 60_000)]).unwrap(); |
830 | 836 | assert!(merge(vec![pane(0, 120_000), pane(60_000, 60_000)]).is_err()); |
831 | 837 | // Panes of 2m over a 5m window leave the oldest minute uncovered. |
832 | | - assert!( |
833 | | - tumbling_state(child, WindowForm::Tumbling { pane_ms: 120_000 }, kll_state(target)) |
834 | | - .is_err() |
835 | | - ); |
| 838 | + assert!(tumbling_state( |
| 839 | + child, |
| 840 | + WindowForm::Tumbling { pane_ms: 120_000 }, |
| 841 | + kll_state(target) |
| 842 | + ) |
| 843 | + .is_err()); |
836 | 844 | } |
837 | 845 |
|
838 | 846 | const YEAR_MS: u64 = 365 * 86_400_000; |
|
0 commit comments