From b0c30098e423fcfdbdcb1f5f987fe2a1b8f76ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20N=2E=20Robalino?= Date: Fri, 19 Jun 2020 23:34:36 -0500 Subject: [PATCH] Sort primitives explictly. (#2016) * Sort primitives explictly. * Write backing up test. --- crates/nu-cli/src/commands/sort_by.rs | 3 ++- crates/nu-cli/tests/commands/math/median.rs | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/crates/nu-cli/src/commands/sort_by.rs b/crates/nu-cli/src/commands/sort_by.rs index bf273d115..c01c00376 100644 --- a/crates/nu-cli/src/commands/sort_by.rs +++ b/crates/nu-cli/src/commands/sort_by.rs @@ -1,4 +1,5 @@ use crate::commands::WholeStreamCommand; +use crate::data::base::coerce_compare; use crate::prelude::*; use nu_errors::ShellError; use nu_protocol::{Signature, SyntaxShape, UntaggedValue, Value}; @@ -112,7 +113,7 @@ pub fn sort( value: UntaggedValue::Primitive(_), .. } => { - vec.sort(); + vec.sort_by(|a, b| coerce_compare(a, b).expect("Unimplemented BUG: What about primitives that don't have an order defined?").compare()); } _ => { let calc_key = |item: &Value| { diff --git a/crates/nu-cli/tests/commands/math/median.rs b/crates/nu-cli/tests/commands/math/median.rs index 79f4da6d4..90070859c 100644 --- a/crates/nu-cli/tests/commands/math/median.rs +++ b/crates/nu-cli/tests/commands/math/median.rs @@ -27,3 +27,17 @@ fn median_numbers_with_odd_rows() { assert_eq!(actual.out, "10.5") } + +#[test] +fn median_mixed_numbers() { + let actual = nu!( + cwd: ".", pipeline( + r#" + echo [-11.5 -13.5 10] + | math median + | echo $it + "# + )); + + assert_eq!(actual.out, "-11.5") +}