File tree Expand file tree Collapse file tree
crates/consistent-choose-k/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -112,7 +112,10 @@ impl<H: ManySeqBuilder> ConsistentChooseKHasher<H> {
112112 /// being replaced with. Returns the index of the new largest sample.
113113 ///
114114 /// Time: O(k)
115+ ///
116+ /// Panics: if `n` is already at most `k`.
115117 pub fn shrink_n ( & mut self ) -> usize {
118+ assert ! ( self . n > self . k( ) ) ;
116119 let n = self . samples . last ( ) . expect ( "samples must not be empty" ) . pos ;
117120 self . n = n;
118121 self . shrink_n_inner ( n)
@@ -143,7 +146,10 @@ impl<H: ManySeqBuilder> ConsistentChooseKHasher<H> {
143146 /// element was inserted (i.e. its rank position).
144147 ///
145148 /// Time: O(k)
149+ ///
150+ /// Panics: if `k` equals `n`.
146151 pub fn grow_k ( & mut self ) -> usize {
152+ assert ! ( self . k( ) < self . n) ;
147153 let k = self . samples . len ( ) ;
148154 let sk = Sample :: new ( self . get_sample ( k, self . n ) , k) ;
149155 if let Some ( last) = self . samples . last ( ) . copied ( ) {
You can’t perform that action at this time.
0 commit comments