From 205fab0914676c740dcc05cb63c02a6d4bc9ec4a Mon Sep 17 00:00:00 2001 From: Brian Silah <71752651+unpervertedkid@users.noreply.github.com> Date: Sat, 18 Nov 2023 17:11:30 +0300 Subject: [PATCH] Correct the percentile values passed to the percentile function in DescriptiveStats for the index describe command (#4136) --- quickwit/quickwit-cli/src/index.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/quickwit/quickwit-cli/src/index.rs b/quickwit/quickwit-cli/src/index.rs index 8c002828982..3c6a8434617 100644 --- a/quickwit/quickwit-cli/src/index.rs +++ b/quickwit/quickwit-cli/src/index.rs @@ -765,10 +765,10 @@ impl DescriptiveStats { min_val: *values.iter().min().expect("Values should not be empty."), max_val: *values.iter().max().expect("Values should not be empty."), q1: percentile(values, 1), - q25: percentile(values, 50), + q25: percentile(values, 25), q50: percentile(values, 50), q75: percentile(values, 75), - q99: percentile(values, 75), + q99: percentile(values, 99), }) } } @@ -1201,11 +1201,26 @@ mod test { let num_docs_descriptive = DescriptiveStats::maybe_new(&splits_num_docs); let num_bytes_descriptive = DescriptiveStats::maybe_new(&splits_bytes); - let descriptive_stats_none = DescriptiveStats::maybe_new(&[]); assert!(num_docs_descriptive.is_some()); assert!(num_bytes_descriptive.is_some()); + let num_docs_descriptive = num_docs_descriptive.unwrap(); + let num_bytes_descriptive = num_bytes_descriptive.unwrap(); + + assert_eq!(num_docs_descriptive.q1, 40900.0); + assert_eq!(num_docs_descriptive.q25, 62500.0); + assert_eq!(num_docs_descriptive.q50, 80000.0); + assert_eq!(num_docs_descriptive.q75, 97500.0); + assert_eq!(num_docs_descriptive.q99, 119100.0); + + assert_eq!(num_bytes_descriptive.q1, 55150000.0); + assert_eq!(num_bytes_descriptive.q25, 58750000.0); + assert_eq!(num_bytes_descriptive.q50, 87500000.0); + assert_eq!(num_bytes_descriptive.q75, 122500000.0); + assert_eq!(num_bytes_descriptive.q99, 144100000.0); + + let descriptive_stats_none = DescriptiveStats::maybe_new(&[]); assert!(descriptive_stats_none.is_none()); Ok(())