#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { let mut v = [-5i32, 4, 1, -3, 2]; let (lesser, median, greater) = v.select_nth_unstable_by_key(2, |a| a.abs()); assert!(lesser == [1, 2] || lesser == [2, 1]); assert_eq!(median, & mut - 3); assert!(greater == [4, - 5] || greater == [- 5, 4]); assert!( v == [1, 2, - 3, 4, - 5] || v == [1, 2, - 3, - 5, 4] || v == [2, 1, - 3, 4, - 5] || v == [2, 1, - 3, - 5, 4] ); }